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...
+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.