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