From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
To: Wesley Cheng <quic_wcheng@quicinc.com>,
srinivas.kandagatla@linaro.org, mathias.nyman@intel.com,
perex@perex.cz, conor+dt@kernel.org, corbet@lwn.net,
broonie@kernel.org, lgirdwood@gmail.com, krzk+dt@kernel.org,
Thinh.Nguyen@synopsys.com, bgoswami@quicinc.com, tiwai@suse.com,
gregkh@linuxfoundation.org, robh@kernel.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 v24 29/34] ALSA: usb-audio: qcom: Add USB offload route kcontrol
Date: Wed, 21 Aug 2024 09:02:37 +0200 [thread overview]
Message-ID: <7b3421f5-8d57-4138-9456-1bf0eb4662c0@linux.intel.com> (raw)
In-Reply-To: <56ebd11e-9522-406b-9ca4-5e284eaac409@quicinc.com>
>>>>>> +/**
>>>>>> + * snd_usb_offload_create_ctl() - Add USB offload bounded mixer
>>>>>> + * @chip - USB SND chip device
>>>>>> + *
>>>>>> + * Creates a sound control for a USB audio device, so that applications can
>>>>>> + * query for if there is an available USB audio offload path, and which
>>>>>> + * card is managing it.
>>>>>> + */
>>>>>> +int snd_usb_offload_create_ctl(struct snd_usb_audio *chip)
>>>>>> +{
>>>>>> + struct usb_device *udev = chip->dev;
>>>>>> + struct snd_kcontrol_new *chip_kctl;
>>>>>> + struct snd_usb_stream *as;
>>>>>> + char ctl_name[37];
>>>>>> + int ret;
>>>>>> +
>>>>>> + list_for_each_entry(as, &chip->pcm_list, list) {
>>>>>> + chip_kctl = &snd_usb_offload_mapped_ctl;
>>>>>> + chip_kctl->count = 1;
>>>>>> + /*
>>>>>> + * Store the associated USB SND card number and PCM index for
>>>>>> + * the kctl.
>>>>>> + */
>>>>>> + chip_kctl->private_value = as->pcm_index |
>>>>>> + chip->card->number << 16;
>>>>>> + sprintf(ctl_name, "USB Offload Playback Route PCM#%d",
>>>>>> + as->pcm_index);
>>>>>> + chip_kctl->name = ctl_name;
>>>>>> + ret = snd_ctl_add(chip->card, snd_ctl_new1(chip_kctl,
>>>>>> + udev->bus->sysdev));
>>>>>> + if (ret < 0)
>>>>>> + break;
>>>>>> + }
>>>>>> +
>>>>>> + return ret;
>>>> Hi Pierre,
>>>>> None of this looks Qualcomm-specific, shouldn't this be part of the
>>>>> soc_usb framework instead of being added in the qcom/ stuff?
>>>> Started working on this particular comment, and there are some things that needs to be considered if we moved this into SOC USB:
>>>>
>>>> 1. We do save the reference to the USB BE DAI link within the USB DT node, which can be fetched/referenced based on sysdev. However, I'm not sure if everyone would potentially follow that way.
>>>>
>>>> 2. I tried a few implementations of adding a new SOC USB API, and the argument list was a bit long, because I didn't want to directly reference the usb_chip.
>>>>
>>>> Sorry for the delay, but I wanted to give a good stab at implementing this before bringing up the implications. It is possible, but definitely not as clean as how we have it now IMO.
>>> My comment was only referring to the location of the code, it's now in
>>> sound/usb/qcom/mixer_usb_offload.c but does not contain anything
>>> specific to Qualcomm. I was not asking for any encapsulation inside of
>>> soc-usb, I was only suggesting a move of the code to a shared helper
>>> library so that this code can be reused as is and not duplicated if the
>>> QCOM parts are not compiled in.
>> Ah, great, thanks for the clarification. Let me take a look with that perspective.
>>
> Going back on the history behind moving it into qcom/ was based off feedback that Takashi pointed out in v14[1]. It was mainly due to the fact that we would be adding another hard dependency between USB SND and the offloading components. Hence the reason for moving it to within the QCOM offloading package.
>
> Thanks
>
> Wesley Cheng
>
> [1]: https://lore.kernel.org/linux-usb/87y1bt2acg.wl-tiwai@suse.de/
I don't see anything wrong with the initial proposal
+config SND_USB_OFFLOAD_MIXER
+ bool
+
config SND_USB_AUDIO_QMI
tristate "Qualcomm Audio Offload driver"
depends on QCOM_QMI_HELPERS && SND_USB_AUDIO && USB_XHCI_SIDEBAND
select SND_PCM
+ select SND_USB_OFFLOAD_MIXER
That would allows the SND_USB_OFFLOAD_MIXER to be build as a module, and
it would allow other non-QCON solutions to use the module.
Maybe just make it a tristate?
next prev parent reply other threads:[~2024-08-21 7:02 UTC|newest]
Thread overview: 87+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-08-01 1:16 [PATCH v24 00/34] Introduce QC USB SND audio offloading support Wesley Cheng
2024-08-01 1:16 ` [PATCH v24 01/34] xhci: add helper to stop endpoint and wait for completion Wesley Cheng
2024-08-01 1:16 ` [PATCH v24 02/34] usb: host: xhci: Repurpose event handler for skipping interrupter events Wesley Cheng
2024-08-01 1:16 ` [PATCH v24 03/34] xhci: sideband: add initial api to register a sideband entity Wesley Cheng
2024-08-06 14:49 ` Amadeusz Sławiński
2024-08-20 18:03 ` Wesley Cheng
2024-08-01 1:17 ` [PATCH v24 04/34] usb: xhci: Allow for secondary interrupter to set IMOD Wesley Cheng
2024-08-01 1:17 ` [PATCH v24 05/34] usb: host: xhci-mem: Cleanup pending secondary event ring events Wesley Cheng
2024-08-06 14:50 ` Amadeusz Sławiński
2024-08-20 18:18 ` Wesley Cheng
2024-08-01 1:17 ` [PATCH v24 06/34] usb: host: xhci-mem: Allow for interrupter clients to choose specific index Wesley Cheng
2024-08-06 14:50 ` Amadeusz Sławiński
2024-08-01 1:17 ` [PATCH v24 07/34] usb: host: xhci-plat: Set XHCI max interrupters if property is present Wesley Cheng
2024-08-01 1:17 ` [PATCH v24 08/34] usb: dwc3: Specify maximum number of XHCI interrupters Wesley Cheng
2024-08-01 1:17 ` [PATCH v24 09/34] ASoC: Add SOC USB APIs for adding an USB backend Wesley Cheng
2024-08-01 8:02 ` Pierre-Louis Bossart
2024-08-01 21:43 ` Wesley Cheng
2024-08-02 6:26 ` Pierre-Louis Bossart
2024-08-06 19:52 ` Wesley Cheng
2024-08-16 21:48 ` Wesley Cheng
2024-08-19 6:26 ` Pierre-Louis Bossart
2024-08-13 22:57 ` Wesley Cheng
2024-08-14 9:20 ` Pierre-Louis Bossart
2024-08-01 1:17 ` [PATCH v24 10/34] ASoC: usb: Create SOC USB SND jack kcontrol Wesley Cheng
2024-08-01 8:07 ` Pierre-Louis Bossart
2024-08-01 22:43 ` Wesley Cheng
2024-08-06 14:51 ` Amadeusz Sławiński
2024-08-08 1:24 ` Wesley Cheng
2024-08-01 1:17 ` [PATCH v24 11/34] ASoC: usb: Fetch ASoC card and pcm device information Wesley Cheng
2024-08-01 8:11 ` Pierre-Louis Bossart
2024-08-01 22:46 ` Wesley Cheng
2024-08-01 1:17 ` [PATCH v24 12/34] ASoC: doc: Add documentation for SOC USB Wesley Cheng
2024-08-01 8:26 ` Pierre-Louis Bossart
2024-08-01 23:50 ` Wesley Cheng
2024-08-06 14:51 ` Amadeusz Sławiński
2024-08-08 1:23 ` Wesley Cheng
2024-08-01 1:17 ` [PATCH v24 13/34] ASoC: dt-bindings: Update example for enabling USB offload on SM8250 Wesley Cheng
2024-08-01 2:22 ` Rob Herring (Arm)
2024-08-01 1:17 ` [PATCH v24 14/34] ASoC: dt-bindings: qcom,q6dsp-lpass-ports: Add USB_RX port Wesley Cheng
2024-08-01 1:17 ` [PATCH v24 15/34] ASoC: qcom: qdsp6: Introduce USB AFE port to q6dsp Wesley Cheng
2024-08-01 8:30 ` Pierre-Louis Bossart
2024-08-01 1:17 ` [PATCH v24 16/34] ASoC: qcom: qdsp6: q6afe: Increase APR timeout Wesley Cheng
2024-08-01 8:33 ` Pierre-Louis Bossart
2024-08-01 23:04 ` Wesley Cheng
2024-08-01 1:17 ` [PATCH v24 17/34] ASoC: qcom: qdsp6: Add USB backend ASoC driver for Q6 Wesley Cheng
2024-08-01 8:40 ` Pierre-Louis Bossart
2024-08-01 23:10 ` Wesley Cheng
2024-08-02 6:32 ` Pierre-Louis Bossart
2024-08-07 20:05 ` Wesley Cheng
2024-08-01 1:17 ` [PATCH v24 18/34] ASoC: qcom: qdsp6: Add headphone jack for offload connection status Wesley Cheng
2024-08-01 1:17 ` [PATCH v24 19/34] ASoC: qcom: qdsp6: Fetch USB offload mapped card and PCM device Wesley Cheng
2024-08-01 8:46 ` Pierre-Louis Bossart
2024-08-01 1:17 ` [PATCH v24 20/34] ALSA: usb-audio: Introduce USB SND platform op callbacks Wesley Cheng
2024-08-01 8:49 ` Pierre-Louis Bossart
2024-08-01 1:17 ` [PATCH v24 21/34] ALSA: usb-audio: Export USB SND APIs for modules Wesley Cheng
2024-08-01 1:17 ` [PATCH v24 22/34] ALSA: usb-audio: Save UAC sample size information Wesley Cheng
2024-08-01 1:17 ` [PATCH v24 23/34] ALSA: usb-audio: Prevent starting of audio stream if in use Wesley Cheng
2024-08-06 14:51 ` Amadeusz Sławiński
2024-08-08 1:19 ` Wesley Cheng
2024-08-08 12:11 ` Amadeusz Sławiński
2024-08-08 12:36 ` Pierre-Louis Bossart
2024-08-08 14:54 ` Amadeusz Sławiński
2024-08-08 19:47 ` Wesley Cheng
2024-08-01 1:17 ` [PATCH v24 24/34] ALSA: usb-audio: qcom: Add USB QMI definitions Wesley Cheng
2024-08-01 1:17 ` [PATCH v24 25/34] ALSA: usb-audio: qcom: Introduce QC USB SND offloading support Wesley Cheng
2024-08-01 1:17 ` [PATCH v24 26/34] ALSA: usb-audio: qcom: Don't allow USB offload path if PCM device is in use Wesley Cheng
2024-08-01 8:57 ` Pierre-Louis Bossart
2024-08-08 1:03 ` Wesley Cheng
2024-08-01 1:17 ` [PATCH v24 27/34] ALSA: usb-audio: qcom: Use card and PCM index from QMI request Wesley Cheng
2024-08-01 1:17 ` [PATCH v24 28/34] ALSA: usb-audio: qcom: Populate PCM and USB chip information Wesley Cheng
2024-08-01 1:17 ` [PATCH v24 29/34] ALSA: usb-audio: qcom: Add USB offload route kcontrol Wesley Cheng
2024-08-01 9:02 ` Pierre-Louis Bossart
2024-08-08 1:10 ` Wesley Cheng
2024-08-20 2:33 ` Wesley Cheng
2024-08-20 6:39 ` Pierre-Louis Bossart
2024-08-20 17:37 ` Wesley Cheng
2024-08-20 23:38 ` Wesley Cheng
2024-08-21 7:02 ` Pierre-Louis Bossart [this message]
2024-08-21 19:21 ` Wesley Cheng
2024-08-01 1:17 ` [PATCH v24 30/34] ALSA: usb-audio: Allow for rediscovery of connected USB SND devices Wesley Cheng
2024-08-01 1:17 ` [PATCH v24 31/34] ASoC: usb: Rediscover USB SND devices on USB port add Wesley Cheng
2024-08-01 1:17 ` [PATCH v24 32/34] ALSA: usb-audio: Check for support for requested audio format Wesley Cheng
2024-08-01 1:17 ` [PATCH v24 33/34] ASoC: usb: Add PCM format check API for USB backend Wesley Cheng
2024-08-01 1:17 ` [PATCH v24 34/34] ASoC: qcom: qdsp6: Ensure PCM format is supported by USB audio device Wesley Cheng
2024-08-01 9:04 ` Pierre-Louis Bossart
2024-08-01 8:36 ` [PATCH v24 00/34] Introduce QC USB SND audio offloading support Krzysztof Kozlowski
2024-08-01 9:10 ` Pierre-Louis Bossart
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=7b3421f5-8d57-4138-9456-1bf0eb4662c0@linux.intel.com \
--to=pierre-louis.bossart@linux.intel.com \
--cc=Thinh.Nguyen@synopsys.com \
--cc=alsa-devel@alsa-project.org \
--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=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=quic_wcheng@quicinc.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 NNTP newsgroup(s).