]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
ASoC: sdw_utils: cs42l43: Enable Headphone pin for LINEOUT jack type
authorCole Leavitt <cole@unwrap.rs>
Wed, 14 Jan 2026 02:55:18 +0000 (19:55 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 23 Jan 2026 10:18:39 +0000 (11:18 +0100)
commitfa4744e659e1427a5f0f3105808dfef8e17377de
treed85905c4a50d6355ef4d965ebac94a2ae8a92cd3
parent362e269bb03f7076ba9990e518aeddb898232e50
ASoC: sdw_utils: cs42l43: Enable Headphone pin for LINEOUT jack type

[ Upstream commit 390caeed0897fcac75f3c414dbdd85d593183d9c ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
sound/soc/sdw_utils/soc_sdw_cs42l43.c