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

From: Takashi Iwai
Date: Tue Feb 13 2024 - 07:18:19 EST


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