[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <2c062ab0-905c-f1fe-eca2-02e23cc9fa6f@quicinc.com>
Date: Fri, 10 Feb 2023 14:49:35 -0800
From: Wesley Cheng <quic_wcheng@...cinc.com>
To: Greg KH <gregkh@...uxfoundation.org>
CC: <srinivas.kandagatla@...aro.org>, <mathias.nyman@...el.com>,
<perex@...ex.cz>, <lgirdwood@...il.com>, <andersson@...nel.org>,
<krzysztof.kozlowski+dt@...aro.org>, <Thinh.Nguyen@...opsys.com>,
<broonie@...nel.org>, <bgoswami@...cinc.com>, <tiwai@...e.com>,
<robh+dt@...nel.org>, <agross@...nel.org>,
<linux-kernel@...r.kernel.org>, <linux-arm-msm@...r.kernel.org>,
<alsa-devel@...a-project.org>, <devicetree@...r.kernel.org>,
<linux-usb@...r.kernel.org>, <quic_jackp@...cinc.com>,
<quic_plai@...cinc.com>
Subject: Re: [RFC PATCH v2 12/22] sound: usb: card: Introduce USB SND platform
op callbacks
Hi Greg,
On 1/28/2023 5:28 AM, Greg KH wrote:
> On Wed, Jan 25, 2023 at 07:14:14PM -0800, Wesley Cheng wrote:
>> Allow for different platforms to be notified on USB SND connect/disconnect
>> seqeunces. This allows for platform USB SND modules to properly initialize
>> and populate internal structures with references to the USB SND chip
>> device.
>>
>> Signed-off-by: Wesley Cheng <quic_wcheng@...cinc.com>
>> ---
>> sound/usb/card.c | 28 ++++++++++++++++++++++++++++
>> sound/usb/card.h | 20 ++++++++++++++++++++
>> 2 files changed, 48 insertions(+)
>>
>> diff --git a/sound/usb/card.c b/sound/usb/card.c
>> index 26268ffb8274..803230343c16 100644
>> --- a/sound/usb/card.c
>> +++ b/sound/usb/card.c
>> @@ -117,6 +117,24 @@ MODULE_PARM_DESC(skip_validation, "Skip unit descriptor validation (default: no)
>> static DEFINE_MUTEX(register_mutex);
>> static struct snd_usb_audio *usb_chip[SNDRV_CARDS];
>> static struct usb_driver usb_audio_driver;
>> +static struct snd_usb_platform_ops *platform_ops;
>
> You can not have a single "platform_ops" pointer, this HAS to be
> per-bus.
>
Agreed.
> And what is a "platform operations" anyway? Shouldn't this be a driver
> type or something like that? "offload_operations"?
>
The reason for going with platform operations is because every platform
may implement the offloading differently. The offload operations term
is more direct though in terms of explaining what the ops are going to
be used for, so I can see the incentive of moving to that phrase.
>> +
>> +int snd_usb_register_platform_ops(struct snd_usb_platform_ops *ops)
>> +{
>> + if (platform_ops)
>> + return -EEXIST;
>> +
>> + platform_ops = ops;
>> + return 0;
>
> No locking? not good.
>
> But again, this has to be per-USB-bus, it can NOT be system wide for
> obvious reasons.
>
Sure, will change that when moving to per USB bus.
Thanks
Wesley Cheng
Powered by blists - more mailing lists