[RFC PATCH v2 11/22] ASoC: qcom: Add USB backend ASoC driver for Q6

Wesley Cheng quic_wcheng at quicinc.com
Mon Jan 30 23:59:38 CET 2023


Hi Pierre,

On 1/26/2023 7:44 AM, Pierre-Louis Bossart wrote:
> 
> 
> On 1/25/23 21:14, Wesley Cheng wrote:
>> Create a USB BE component that will register a new USB port to the ASoC USB
>> framework.  This will handle determination on if the requested audio
>> profile is supported by the USB device currently selected.
> 
> Can you clarify how? because ...
> 
> 
>> +static struct snd_soc_dai_driver q6usb_be_dais[] = {
>> +	{
>> +		.playback = {
>> +			.stream_name = "USB BE RX",
>> +			.rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_11025 |
>> +				SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_22050 |
>> +				SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_44100 |
>> +				SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_96000 |
>> +				SNDRV_PCM_RATE_192000,
>> +			.formats = SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S16_BE |
>> +				SNDRV_PCM_FMTBIT_U16_LE | SNDRV_PCM_FMTBIT_U16_BE |
>> +				SNDRV_PCM_FMTBIT_S24_LE | SNDRV_PCM_FMTBIT_S24_BE |
>> +				SNDRV_PCM_FMTBIT_U24_LE | SNDRV_PCM_FMTBIT_U24_BE,
>> +			.channels_min = 1,
>> +			.channels_max = 2,
>> +			.rate_max =     192000,
>> +			.rate_min =	8000,
>> +		},
>> +		.id = USB_RX,
>> +		.name = "USB_RX_BE",
>> +		.ops = &q6usb_ops,
>> +	},
>> +};
> 
> ... here I see a single DAI, so presumably ONE endpoint can be supported?
> 

One USB audio device can be supported.
one AFE port = one USB audio device

> I didn't see in the rest of the code how a card with multiple endpoint
> would be rejected, nor how the capabilities are checked?
> 

Need to take a look at this query a bit more.  Let me try to pass in a 
format that can't be supported by the audio DSP, and see if the formats 
specified in this structure will not allow userspace to start the session.

When you say a "card with multiple endpoints" are you referring to a USB 
device that exposes multiple data (ISOC let's say) eps for its data 
interface?  I haven't run into a device like that.

Thanks
Wesley Cheng


More information about the Alsa-devel mailing list