Re: [PATCH v15 46/50] ALSA: usb-audio: Add USB offloading capable kcontrol

From: Wesley Cheng
Date: Wed Feb 14 2024 - 18:03:05 EST


Hi Takashi,

On 2/13/2024 4:18 AM, Takashi Iwai wrote:
On Tue, 13 Feb 2024 01:54:18 +0100,
Wesley Cheng wrote:

--- a/sound/usb/Makefile
+++ b/sound/usb/Makefile
@@ -22,6 +22,7 @@ snd-usb-audio-objs := card.o \
stream.o \
validate.o
+snd-usb-audio-$(CONFIG_SND_USB_OFFLOAD_MIXER) += mixer_usb_offload.o
snd-usb-audio-$(CONFIG_SND_USB_AUDIO_MIDI_V2) += midi2.o
snd-usb-audio-$(CONFIG_SND_USB_AUDIO_USE_MEDIA_CONTROLLER) += media.o

This puts the code into snd-usb-audio driver, and that causes a
dependency mess, since...


I see what you mean after moving some things into modules, etc... Will fix this accordingly.

+snd_usb_offload_available_get(struct snd_kcontrol *kcontrol,
+ struct snd_ctl_elem_value *ucontrol)
+{
+ struct device *sysdev = snd_kcontrol_chip(kcontrol);
+ int ret;
+
+ ret = snd_soc_usb_device_offload_available(sysdev);

... here you call snd_soc_usb_*() stuff that belongs to snd-soc-usb.
That is, with this patch, snd-usb-audio driver will depend on
snd-soc-usb, while snd-soc-usb also depends on snd-usb-audio for its
helpers again.

I believe the better way would be to move this whole miser_usb_offload
code into sound/usb/qcom/. You need only usb_device and snd_card
objects at the creation, and you can get them in qcom driver side,
too.


Yes, plan is just to compile this as part of the overall offload module if the config is enabled.

Thanks
Wesley Cheng