* [PATCH] ASoC: sdw_utils: cs42l43: Enable Headphone pin for LINEOUT jack type
@ 2026-01-13 8:44 Cole Leavitt
2026-01-13 11:33 ` Charles Keepax
` (3 more replies)
0 siblings, 4 replies; 6+ messages in thread
From: Cole Leavitt @ 2026-01-13 8:44 UTC (permalink / raw)
To: linux-sound; +Cc: ckeepax, sbinding, broonie, patches, cole
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: 45b8e93bd0c7 ("ASoC: sdw_utils: Add helper for soc_sdw_cs42l43")
Signed-off-by: Cole Leavitt <cole@unwrap.rs>
---
sound/soc/sdw_utils/soc_sdw_cs42l43.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
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",
--
2.52.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH] ASoC: sdw_utils: cs42l43: Enable Headphone pin for LINEOUT jack type
2026-01-13 8:44 [PATCH] ASoC: sdw_utils: cs42l43: Enable Headphone pin for LINEOUT jack type Cole Leavitt
@ 2026-01-13 11:33 ` Charles Keepax
2026-01-13 17:13 ` Mark Brown
` (2 subsequent siblings)
3 siblings, 0 replies; 6+ messages in thread
From: Charles Keepax @ 2026-01-13 11:33 UTC (permalink / raw)
To: Cole Leavitt; +Cc: linux-sound, sbinding, broonie, patches
On Tue, Jan 13, 2026 at 01:44:02AM -0700, Cole Leavitt wrote:
> 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: 45b8e93bd0c7 ("ASoC: sdw_utils: Add helper for soc_sdw_cs42l43")
> Signed-off-by: Cole Leavitt <cole@unwrap.rs>
> ---
> sound/soc/sdw_utils/soc_sdw_cs42l43.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> 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,
This looks pretty reasonable we don't have any intention to do
different routing for headphone/lineout:
Reviewed-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Thanks,
Charles
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] ASoC: sdw_utils: cs42l43: Enable Headphone pin for LINEOUT jack type
2026-01-13 8:44 [PATCH] ASoC: sdw_utils: cs42l43: Enable Headphone pin for LINEOUT jack type Cole Leavitt
2026-01-13 11:33 ` Charles Keepax
@ 2026-01-13 17:13 ` Mark Brown
2026-01-14 2:55 ` [PATCH v2] " Cole Leavitt
2026-01-14 19:38 ` [PATCH] " Mark Brown
3 siblings, 0 replies; 6+ messages in thread
From: Mark Brown @ 2026-01-13 17:13 UTC (permalink / raw)
To: Cole Leavitt; +Cc: linux-sound, ckeepax, sbinding, patches
[-- Attachment #1: Type: text/plain, Size: 417 bytes --]
On Tue, Jan 13, 2026 at 01:44:02AM -0700, Cole Leavitt wrote:
> Fixes: 45b8e93bd0c7 ("ASoC: sdw_utils: Add helper for soc_sdw_cs42l43")
> Signed-off-by: Cole Leavitt <cole@unwrap.rs>
Commit: fcfa8321d41b ("ASoC: sdw_utils: cs42l43: Enable Headphone pin for LINEOUT jack type")
Fixes tag: Fixes: 45b8e93bd0c7 ("ASoC: sdw_utils: Add helper for soc_sdw_cs42l43")
Has these problem(s):
- Target SHA1 does not exist
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH v2] ASoC: sdw_utils: cs42l43: Enable Headphone pin for LINEOUT jack type
2026-01-13 8:44 [PATCH] ASoC: sdw_utils: cs42l43: Enable Headphone pin for LINEOUT jack type Cole Leavitt
2026-01-13 11:33 ` Charles Keepax
2026-01-13 17:13 ` Mark Brown
@ 2026-01-14 2:55 ` Cole Leavitt
2026-01-14 19:38 ` Mark Brown
2026-01-14 19:38 ` [PATCH] " Mark Brown
3 siblings, 1 reply; 6+ messages in thread
From: Cole Leavitt @ 2026-01-14 2:55 UTC (permalink / raw)
To: linux-sound; +Cc: ckeepax, sbinding, broonie, patches, cole
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>
---
Changes in v2:
- Fixed Fixes tag to reference correct commit d74bad3b7452
- Added Reviewed-by from Charles Keepax
---
sound/soc/sdw_utils/soc_sdw_cs42l43.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
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",
--
2.52.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH] ASoC: sdw_utils: cs42l43: Enable Headphone pin for LINEOUT jack type
2026-01-13 8:44 [PATCH] ASoC: sdw_utils: cs42l43: Enable Headphone pin for LINEOUT jack type Cole Leavitt
` (2 preceding siblings ...)
2026-01-14 2:55 ` [PATCH v2] " Cole Leavitt
@ 2026-01-14 19:38 ` Mark Brown
3 siblings, 0 replies; 6+ messages in thread
From: Mark Brown @ 2026-01-14 19:38 UTC (permalink / raw)
To: linux-sound, Cole Leavitt; +Cc: ckeepax, sbinding, patches
On Tue, 13 Jan 2026 01:44:02 -0700, Cole Leavitt wrote:
> 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.
>
> [...]
Applied to
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next
Thanks!
[1/1] ASoC: sdw_utils: cs42l43: Enable Headphone pin for LINEOUT jack type
commit: 390caeed0897fcac75f3c414dbdd85d593183d9c
All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.
You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.
If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.
Please add any relevant lists and maintainers to the CCs when replying
to this mail.
Thanks,
Mark
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v2] ASoC: sdw_utils: cs42l43: Enable Headphone pin for LINEOUT jack type
2026-01-14 2:55 ` [PATCH v2] " Cole Leavitt
@ 2026-01-14 19:38 ` Mark Brown
0 siblings, 0 replies; 6+ messages in thread
From: Mark Brown @ 2026-01-14 19:38 UTC (permalink / raw)
To: linux-sound, Cole Leavitt; +Cc: ckeepax, sbinding, patches
On Tue, 13 Jan 2026 19:55:18 -0700, Cole Leavitt wrote:
> 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.
>
> [...]
Applied to
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next
Thanks!
[1/1] ASoC: sdw_utils: cs42l43: Enable Headphone pin for LINEOUT jack type
commit: 390caeed0897fcac75f3c414dbdd85d593183d9c
All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.
You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.
If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.
Please add any relevant lists and maintainers to the CCs when replying
to this mail.
Thanks,
Mark
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2026-01-14 19:38 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-01-13 8:44 [PATCH] ASoC: sdw_utils: cs42l43: Enable Headphone pin for LINEOUT jack type Cole Leavitt
2026-01-13 11:33 ` Charles Keepax
2026-01-13 17:13 ` Mark Brown
2026-01-14 2:55 ` [PATCH v2] " Cole Leavitt
2026-01-14 19:38 ` Mark Brown
2026-01-14 19:38 ` [PATCH] " Mark Brown
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox