From: Wesley Cheng <quic_wcheng@quicinc.com>
To: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>,
<srinivas.kandagatla@linaro.org>, <mathias.nyman@intel.com>,
<perex@perex.cz>, <conor+dt@kernel.org>, <corbet@lwn.net>,
<lgirdwood@gmail.com>, <andersson@kernel.org>,
<krzk+dt@kernel.org>, <gregkh@linuxfoundation.org>,
<Thinh.Nguyen@synopsys.com>, <broonie@kernel.org>,
<bgoswami@quicinc.com>, <tiwai@suse.com>, <bagasdotme@gmail.com>,
<robh@kernel.org>, <konrad.dybcio@linaro.org>
Cc: <linux-kernel@vger.kernel.org>, <devicetree@vger.kernel.org>,
<linux-sound@vger.kernel.org>, <linux-usb@vger.kernel.org>,
<linux-arm-msm@vger.kernel.org>, <linux-doc@vger.kernel.org>,
<alsa-devel@alsa-project.org>
Subject: Re: [PATCH v21 09/39] ASoC: qcom: qdsp6: Introduce USB AFE port to q6dsp
Date: Thu, 9 May 2024 14:34:01 -0700 [thread overview]
Message-ID: <d0c1e6a8-3caa-3530-d49a-a8b820d19cf1@quicinc.com> (raw)
In-Reply-To: <726e7006-30b4-4525-84c8-4fb2ef380994@linux.intel.com>
Hi Pierre,
On 5/9/2024 5:54 AM, Pierre-Louis Bossart wrote:
>
>
>
>>> Wait, is this saying you will have exactly one PCM device/FE DAI
>>> connected to the USB BE DAI exposed in patch 11?
>>>
>>>> + SND_SOC_DAPM_MIXER("USB Mixer", SND_SOC_NOPM, 0, 0,
>>>> + usb_mixer_controls,
>>>> + ARRAY_SIZE(usb_mixer_controls)),
>>>> +
>>>
>>> And then what is the role of the USB mixer if you only have one input?
>>>
>>> I must be missing something.
>>>
>>
>> Not sure if this is a QCOM specific implementation, but the way the DT
>> is defined for the USB offload path is as follows:
>>
>> usb-dai-link {
>> link-name = "USB Playback";
>>
>> cpu {
>> sound-dai = <&q6afedai USB_RX>;
>> };
>>
>> codec {
>> sound-dai = <&usbdai USB_RX>;
>> };
>>
>> platform {
>> sound-dai = <&q6routing>;
>> };
>> };
>>
>> Based on our DT parser helper API (qcom_snd_parse_of()) this isn't going
>> to create a PCM device. The PCM devices are created for nodes that
>> don't have a codec and platform defined:
>>
>> mm1-dai-link {
>> link-name = "MultiMedia1";
>> cpu {
>> sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA1>;
>> };
>> };
>>
>> The ASM path is the entity that defines the number of PCM devices that
>> is created for the QC ASoC platform card, and is where the actual PCM
>> data is sent over to the DSP. So there could be several PCM devices
>> that can use the USB BE DAI.
>
> ok, but then how would this work with the ALSA controls reporting which
> PCM device can be used? I didn't see a mechanism allowing for more than
> one offloaded device, IIRC the control reported just ONE PCM device number.
With respects to the PCM devices exposed by the ASoC card, the USB Mixer
controls which "Multimedia" (ASM) path can be routed to the USB BE DAI.
The kcontrols you are mentioning are controlling which USB card and USB
PCM device to execute the offloading on. As of now, at least for the
QCOM implementation, we support only offloading on one path/USB
interface. I can't comment on how other offloading solutions look like,
but we pass the USB PCM and card index as part of our AFE port open
command (done from USB BE DAI). This will result in a USB QMI message
back (from ADSP) to our USB SND offload driver, which carries all the
information about the selected card and PCM index to execute offloading on.
One thing I can do is to actually make the kcontrols for selecting the
PCM and card devices to look at the num_supported_streams. This would
at least allow for vendors that have support for more potential
offloading streams to select more than one.
Thanks
Wesley Cheng
next prev parent reply other threads:[~2024-05-09 21:34 UTC|newest]
Thread overview: 70+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-05-07 19:50 [PATCH v21 00/39] Introduce QC USB SND audio offloading support Wesley Cheng
2024-05-07 19:50 ` [PATCH v21 01/39] xhci: add helper to stop endpoint and wait for completion Wesley Cheng
2024-05-07 19:50 ` [PATCH v21 02/39] usb: host: xhci: Repurpose event handler for skipping interrupter events Wesley Cheng
2024-05-07 19:50 ` [PATCH v21 03/39] xhci: sideband: add initial api to register a sideband entity Wesley Cheng
2024-05-07 19:50 ` [PATCH v21 04/39] usb: xhci: Allow for secondary interrupter to set IMOD Wesley Cheng
2024-05-07 19:50 ` [PATCH v21 05/39] usb: host: xhci-mem: Cleanup pending secondary event ring events Wesley Cheng
2024-05-07 19:50 ` [PATCH v21 06/39] usb: host: xhci-mem: Allow for interrupter clients to choose specific index Wesley Cheng
2024-05-07 19:50 ` [PATCH v21 07/39] ASoC: Add SOC USB APIs for adding an USB backend Wesley Cheng
2024-05-07 20:26 ` Pierre-Louis Bossart
2024-05-08 20:16 ` Wesley Cheng
2024-05-07 19:50 ` [PATCH v21 08/39] ASoC: dt-bindings: qcom,q6dsp-lpass-ports: Add USB_RX port Wesley Cheng
2024-05-07 19:50 ` [PATCH v21 09/39] ASoC: qcom: qdsp6: Introduce USB AFE port to q6dsp Wesley Cheng
2024-05-07 20:37 ` Pierre-Louis Bossart
2024-05-08 23:34 ` Wesley Cheng
2024-05-09 12:54 ` Pierre-Louis Bossart
2024-05-09 21:34 ` Wesley Cheng [this message]
2024-05-07 19:50 ` [PATCH v21 10/39] ASoC: qdsp6: q6afe: Increase APR timeout Wesley Cheng
2024-05-07 19:50 ` [PATCH v21 11/39] ASoC: qcom: qdsp6: Add USB backend ASoC driver for Q6 Wesley Cheng
2024-05-07 20:39 ` Pierre-Louis Bossart
2024-05-07 19:50 ` [PATCH v21 12/39] ALSA: usb-audio: Introduce USB SND platform op callbacks Wesley Cheng
2024-05-07 19:50 ` [PATCH v21 13/39] ALSA: usb-audio: Export USB SND APIs for modules Wesley Cheng
2024-05-07 19:50 ` [PATCH v21 14/39] ALSA: usb-audio: Save UAC sample size information Wesley Cheng
2024-05-07 19:50 ` [PATCH v21 15/39] usb: dwc3: Specify maximum number of XHCI interrupters Wesley Cheng
2024-05-07 19:50 ` [PATCH v21 16/39] usb: host: xhci-plat: Set XHCI max interrupters if property is present Wesley Cheng
2024-05-07 19:50 ` [PATCH v21 17/39] ALSA: usb-audio: qcom: Add USB QMI definitions Wesley Cheng
2024-05-07 19:50 ` [PATCH v21 18/39] ALSA: usb-audio: qcom: Introduce QC USB SND offloading support Wesley Cheng
2024-05-07 19:50 ` [PATCH v21 19/39] ALSA: usb-audio: Check for support for requested audio format Wesley Cheng
2024-05-07 19:50 ` [PATCH v21 20/39] ASoC: usb: Add PCM format check API for USB backend Wesley Cheng
2024-05-07 19:50 ` [PATCH v21 21/39] ASoC: qcom: qdsp6: Ensure PCM format is supported by USB audio device Wesley Cheng
2024-05-07 19:50 ` [PATCH v21 22/39] ALSA: usb-audio: Prevent starting of audio stream if in use Wesley Cheng
2024-05-07 21:20 ` Pierre-Louis Bossart
2024-05-08 23:40 ` Wesley Cheng
2024-05-09 13:01 ` Pierre-Louis Bossart
2024-05-09 21:38 ` Wesley Cheng
2024-05-07 19:51 ` [PATCH v21 23/39] ALSA: usb-audio: Do not allow USB offload path if PCM device is " Wesley Cheng
2024-05-07 19:51 ` [PATCH v21 24/39] ASoC: dt-bindings: Update example for enabling USB offload on SM8250 Wesley Cheng
2024-05-07 19:51 ` [PATCH v21 25/39] ALSA: usb-audio: qcom: Populate PCM and USB chip information Wesley Cheng
2024-05-07 19:51 ` [PATCH v21 26/39] ASoC: qcom: qdsp6: Add support to track available USB PCM devices Wesley Cheng
2024-05-07 21:23 ` Pierre-Louis Bossart
2024-05-08 23:57 ` Wesley Cheng
2024-05-09 13:02 ` Pierre-Louis Bossart
2024-05-09 21:49 ` Wesley Cheng
2024-05-07 19:51 ` [PATCH v21 27/39] ASoC: Introduce SND kcontrols to select sound card and PCM device Wesley Cheng
2024-05-07 21:26 ` Pierre-Louis Bossart
2024-05-09 0:10 ` Wesley Cheng
2024-05-09 13:07 ` Pierre-Louis Bossart
2024-05-09 22:32 ` Wesley Cheng
2024-05-07 19:51 ` [PATCH v21 28/39] ASoC: qcom: qdsp6: Add SOC USB offload select get/put callbacks Wesley Cheng
2024-05-07 19:51 ` [PATCH v21 29/39] ASoC: Introduce SND kcontrols to track USB offloading state Wesley Cheng
2024-05-07 19:51 ` [PATCH v21 30/39] ASoC: qcom: qdsp6: Add PCM ops to track current state Wesley Cheng
2024-05-07 19:51 ` [PATCH v21 31/39] ASoC: usb: Create SOC USB SND jack kcontrol Wesley Cheng
2024-05-07 19:51 ` [PATCH v21 32/39] ASoC: qcom: qdsp6: Add headphone jack for offload connection status Wesley Cheng
2024-05-07 19:51 ` [PATCH v21 33/39] ASoC: usb: Fetch ASoC sound card information Wesley Cheng
2024-05-07 21:33 ` Pierre-Louis Bossart
2024-05-09 0:13 ` Wesley Cheng
2024-05-07 19:51 ` [PATCH v21 34/39] ALSA: usb-audio: Add USB offloading capable kcontrol Wesley Cheng
2024-05-07 21:37 ` Pierre-Louis Bossart
2024-05-08 19:41 ` Wesley Cheng
2024-05-09 0:42 ` Wesley Cheng
2024-05-09 13:11 ` Pierre-Louis Bossart
2024-05-09 22:05 ` Wesley Cheng
2024-05-07 19:51 ` [PATCH v21 35/39] ALSA: usb-audio: Allow for rediscovery of connected USB SND devices Wesley Cheng
2024-05-07 19:51 ` [PATCH v21 36/39] ALSA: usb-audio: qcom: Use card and PCM index from QMI request Wesley Cheng
2024-05-07 19:51 ` [PATCH v21 37/39] ASoC: usb: Rediscover USB SND devices on USB port add Wesley Cheng
2024-05-07 19:51 ` [PATCH v21 38/39] ASoC: qcom: Populate SoC components string Wesley Cheng
2024-05-07 21:40 ` Pierre-Louis Bossart
2024-05-08 20:06 ` Wesley Cheng
2024-05-09 13:17 ` Pierre-Louis Bossart
2024-05-09 22:09 ` Wesley Cheng
2024-05-07 19:51 ` [PATCH v21 39/39] ASoC: doc: Add documentation for SOC USB Wesley Cheng
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=d0c1e6a8-3caa-3530-d49a-a8b820d19cf1@quicinc.com \
--to=quic_wcheng@quicinc.com \
--cc=Thinh.Nguyen@synopsys.com \
--cc=alsa-devel@alsa-project.org \
--cc=andersson@kernel.org \
--cc=bagasdotme@gmail.com \
--cc=bgoswami@quicinc.com \
--cc=broonie@kernel.org \
--cc=conor+dt@kernel.org \
--cc=corbet@lwn.net \
--cc=devicetree@vger.kernel.org \
--cc=gregkh@linuxfoundation.org \
--cc=konrad.dybcio@linaro.org \
--cc=krzk+dt@kernel.org \
--cc=lgirdwood@gmail.com \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-sound@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=mathias.nyman@intel.com \
--cc=perex@perex.cz \
--cc=pierre-louis.bossart@linux.intel.com \
--cc=robh@kernel.org \
--cc=srinivas.kandagatla@linaro.org \
--cc=tiwai@suse.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).