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

Joel Selvaraj joelselvaraj.oss at gmail.com
Sun Oct 9 02:48:51 CEST 2022


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 at gmail.com>

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 at dylanvanassche.be>
> ---
>  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,


More information about the Alsa-devel mailing list