Re: [RFC PATCH 03/14] ASoC: qcom: Add USB backend ASoC driver for Q6

From: Pierre-Louis Bossart
Date: Wed Jan 04 2023 - 18:59:30 EST



> +int q6usb_alsa_connection_cb(struct snd_soc_usb *usb, int card_idx,
> + int connected)
> +{
> + struct snd_soc_dapm_context *dapm;
> + struct q6usb_port_data *data;
> +
> + if (!usb->component)
> + return 0;
> +
> + dapm = snd_soc_component_get_dapm(usb->component);
> + data = dev_get_drvdata(usb->component->dev);
> +
> + if (connected) {
> + snd_soc_dapm_enable_pin(dapm, "USB_RX_BE");
> + /* We only track the latest USB headset plugged in */

that answers to my earlier question on how to deal with multiple
devices, but is this a desirable policy? This could lead to a lot of
confusion. If there are restrictions to a single device, then it might
be more interesting for userspace or the user to indicate which USB
device gets to use USB offload and all others use legacy.

> + data->active_idx = card_idx;
> + } else {
> + snd_soc_dapm_disable_pin(dapm, "USB_RX_BE");
> + }
> + snd_soc_dapm_sync(dapm);
> +
> + return 0;
> +}