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.
thanks,
Takashi