[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <8f827e42-e5d8-1190-b5ae-2f99c71fbeee@linux.intel.com>
Date: Mon, 30 Jan 2023 17:50:23 -0600
From: Pierre-Louis Bossart <pierre-louis.bossart@...ux.intel.com>
To: Wesley Cheng <quic_wcheng@...cinc.com>,
srinivas.kandagatla@...aro.org, mathias.nyman@...el.com,
perex@...ex.cz, 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,
agross@...nel.org
Cc: devicetree@...r.kernel.org, alsa-devel@...a-project.org,
linux-arm-msm@...r.kernel.org, linux-usb@...r.kernel.org,
linux-kernel@...r.kernel.org, quic_jackp@...cinc.com,
quic_plai@...cinc.com
Subject: Re: [RFC PATCH v2 11/22] ASoC: qcom: Add USB backend ASoC driver for
Q6
>>> +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.
A headset will typically only have two isoc endpoints for playback and
capture respectively, but while that's a very large market USB audio is
far from restricted to this configuration. It's not uncommon for the pro
or prosumer market to see devices with multiple input/output
capabilities and run-time mixing on the host.
Powered by blists - more mailing lists