]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
ASoC: Intel: sof_es8336: fix headphone GPIO logic inversion
authorTagir Garaev <tgaraev653@gmail.com>
Wed, 21 Jan 2026 15:24:35 +0000 (18:24 +0300)
committerMark Brown <broonie@kernel.org>
Tue, 27 Jan 2026 12:45:47 +0000 (12:45 +0000)
The headphone GPIO should be set to the inverse of speaker_en.
When speakers are enabled, headphones should be disabled and vice versa.

Currently both GPIOs are set to the same value (speaker_en), causing
audio to play through both speakers and headphones simultaneously
when headphones are plugged in.

Tested on Huawei Matebook (BOD-WXX9) with ES8336 codec.

Fixes: 6e1ff1459e00 ("ASoC: Intel: sof_es8336: support a separate gpio to control headphone")
Signed-off-by: Tagir Garaev <tgaraev653@gmail.com>
Link: https://patch.msgid.link/20260121152435.101698-1-tgaraev653@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/intel/boards/sof_es8336.c

index 774fff58d51b93d6de2dba33a37c4347e50f170e..fce50fd9f0938958a3c8386281cc1769c408d0d7 100644 (file)
@@ -120,7 +120,7 @@ static void pcm_pop_work_events(struct work_struct *work)
        gpiod_set_value_cansleep(priv->gpio_speakers, priv->speaker_en);
 
        if (quirk & SOF_ES8336_HEADPHONE_GPIO)
-               gpiod_set_value_cansleep(priv->gpio_headphone, priv->speaker_en);
+               gpiod_set_value_cansleep(priv->gpio_headphone, !priv->speaker_en);
 
 }