diff options
| author | Cole Leavitt <cole@unwrap.rs> | 2026-01-13 19:55:18 -0700 |
|---|---|---|
| committer | Mark Brown <broonie@kernel.org> | 2026-01-14 13:35:24 +0000 |
| commit | 390caeed0897fcac75f3c414dbdd85d593183d9c (patch) | |
| tree | 1e5d78697ca1465478fe9c031f6b98352ab83d44 | |
| parent | ASoC: dt-bindings: realtek,rt5640: Various fixes (diff) | |
| download | linux-390caeed0897fcac75f3c414dbdd85d593183d9c.tar.gz linux-390caeed0897fcac75f3c414dbdd85d593183d9c.zip | |
ASoC: sdw_utils: cs42l43: Enable Headphone pin for LINEOUT jack type
The CS42L43 codec's load detection can return different impedance values
that map to either HEADPHONE or LINEOUT jack types. However, the
soc_jack_pins array only maps SND_JACK_HEADPHONE to the "Headphone" DAPM
pin, not SND_JACK_LINEOUT.
When headphones are detected with an impedance that maps to LINEOUT
(such as impedance value 0x2), the driver reports SND_JACK_LINEOUT.
Since this doesn't match the jack pin mask, the "Headphone" DAPM pin
is not activated, and no audio is routed to the headphone outputs.
Fix by adding SND_JACK_LINEOUT to the Headphone pin mask, so that both
headphone and line-out detection properly enable the headphone output
path.
This fixes no audio output on devices like the Lenovo ThinkPad P16 Gen 3
where headphones are detected with LINEOUT impedance.
Fixes: d74bad3b7452 ("ASoC: intel: sof_sdw_cs42l43: Create separate jacks for hp and mic")
Reviewed-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Signed-off-by: Cole Leavitt <cole@unwrap.rs>
Link: https://patch.msgid.link/20260114025518.28519-1-cole@unwrap.rs
Signed-off-by: Mark Brown <broonie@kernel.org>
| -rw-r--r-- | sound/soc/sdw_utils/soc_sdw_cs42l43.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sound/soc/sdw_utils/soc_sdw_cs42l43.c b/sound/soc/sdw_utils/soc_sdw_cs42l43.c index 4c954501e500..2685ff4f0932 100644 --- a/sound/soc/sdw_utils/soc_sdw_cs42l43.c +++ b/sound/soc/sdw_utils/soc_sdw_cs42l43.c @@ -44,7 +44,7 @@ static const struct snd_soc_dapm_route cs42l43_dmic_map[] = { static struct snd_soc_jack_pin soc_jack_pins[] = { { .pin = "Headphone", - .mask = SND_JACK_HEADPHONE, + .mask = SND_JACK_HEADPHONE | SND_JACK_LINEOUT, }, { .pin = "Headset Mic", |
