[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <5b7af169-1fc0-265c-5253-c82010388e82@quicinc.com>
Date: Tue, 13 Feb 2024 14:58:40 -0800
From: Wesley Cheng <quic_wcheng@...cinc.com>
To: Takashi Iwai <tiwai@...e.de>
CC: <srinivas.kandagatla@...aro.org>, <mathias.nyman@...el.com>,
<perex@...ex.cz>, <conor+dt@...nel.org>, <corbet@....net>,
<lgirdwood@...il.com>, <andersson@...nel.org>,
<krzysztof.kozlowski+dt@...aro.org>, <gregkh@...uxfoundation.org>,
<Thinh.Nguyen@...opsys.com>, <broonie@...nel.org>,
<bgoswami@...cinc.com>, <tiwai@...e.com>, <robh+dt@...nel.org>,
<konrad.dybcio@...aro.org>, <linux-kernel@...r.kernel.org>,
<devicetree@...r.kernel.org>, <linux-sound@...r.kernel.org>,
<linux-usb@...r.kernel.org>, <linux-arm-msm@...r.kernel.org>,
<linux-doc@...r.kernel.org>, <alsa-devel@...a-project.org>
Subject: Re: [PATCH v15 41/50] ASoC: Add SND kcontrol for fetching USB offload
status
Hi Takashi,
On 2/13/2024 4:10 AM, Takashi Iwai wrote:
> On Tue, 13 Feb 2024 01:54:13 +0100,
> Wesley Cheng wrote:
>>
>> Add a kcontrol to the platform sound card to fetch the current offload
>> status. This can allow for userspace to ensure/check which USB SND
>> resources are actually busy versus having to attempt opening the USB SND
>> devices, which will result in an error if offloading is active.
>>
>> An example of fetching the USB offloading status would look like:
>> tinymix -D 0 get 'USB Offload Playback Route Status'
>> -1, -1 (range -1->32) --> [Offload is idle]
>>
>> tinymix -D 0 get 'USB Offload Playback Route Status'
>> 1, 0 (range -1->32) --> [Offload active on card#1 pcm#0]
>
> Ah, I didn't notice until now that the second value is the PCM index.
>
>> +static int snd_soc_usb_offload_status_info(struct snd_kcontrol *kcontrol,
>> + struct snd_ctl_elem_info *uinfo)
>> +{
>> + struct snd_soc_component *component = snd_kcontrol_chip(kcontrol);
>> + struct snd_soc_usb *ctx = snd_soc_find_usb_ctx(component->dev->of_node);
>> +
>> + uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
>> + uinfo->count = 2*ctx->num_supported_streams;
>> + uinfo->value.integer.min = -1;
>> + uinfo->value.integer.max = SNDRV_CARDS;
>
> Then it's bogus to set SNDRV_CARDS as max. The PCM index number is
> independent from the card number. In theory, it can be even more than
> the card max (very unlikely, though).
>
I don't think its technically capped anywhere :). I just used
SNDRV_CARDS to cap the sound card number. If I split this as a separate
entity, then I'll need to change the max value for the PCM dev.
> Wouldn't it be more intuitive to provide two different controls, one
> for card number and one for PCM index number?
>
Sure, I can split this up.
Thanks
Wesley Cheng
Powered by blists - more mailing lists