Re: [PATCH v2] sound: soc: codecs: wcd-mbhc-v2: expose ALSA control for jack

From: Joel Selvaraj
Date: Sat Oct 08 2022 - 20:49:23 EST


Can confirm that this is required for Pulseaudio to pick up the
headphones properly. I tested this in my Xiaomi Poco F1 running
postmarketOS (Phosh Mobile Desktop Environment). You can check the
following pulseaudio issue for some more info.

Link: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/issues/1377

Tested-by: Joel Selvaraj <joelselvaraj.oss@xxxxxxxxx>

On 07/10/22 10:57, Dylan Van Assche wrote:
> Jack detection is currently fully functional via the input
> interface together with multimedia buttons, but is not exposed
> as an ALSA control. Therefore, ALSA clients such as PulseAudio
> do not pick up the jack detection events as they only support
> one of the possible interface (ALSA control or input interface,
> but not both). Expose the jack events as an ALSA control and input
> interface to provide ALSA clients both interfaces.
>
> Signed-off-by: Dylan Van Assche <me@xxxxxxxxxxxxxxxxx>
> ---
> sound/soc/codecs/wcd-mbhc-v2.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/sound/soc/codecs/wcd-mbhc-v2.c b/sound/soc/codecs/wcd-mbhc-v2.c
> index 1911750f7445..1b75f49b2858 100644
> --- a/sound/soc/codecs/wcd-mbhc-v2.c
> +++ b/sound/soc/codecs/wcd-mbhc-v2.c
> @@ -725,6 +725,10 @@ static int wcd_mbhc_initialise(struct wcd_mbhc *mbhc)
>
> mutex_lock(&mbhc->lock);
>
> + ret = snd_jack_add_new_kctl(mbhc->jack->jack, "Headset Jack", WCD_MBHC_JACK_MASK);
> + if (ret)
> + dev_warn(component->dev, "failed creating Headset Jack kctl with err: %d\n", ret);
> +
> /* enable HS detection */
> if (mbhc->mbhc_cb->hph_pull_up_control_v2)
> mbhc->mbhc_cb->hph_pull_up_control_v2(component,