Re: [regression] ctxfi: no speaker output when headphones connected on >=7.0.x
From: Takashi Iwai
Date: Thu May 07 2026 - 11:13:15 EST
On Thu, 07 May 2026 17:02:14 +0200,
Matt DeVillier wrote:
>
>
> On Thu, May 7, 2026 at 8:24 AM Takashi Iwai <tiwai@xxxxxxx> wrote:
>
> On Thu, 07 May 2026 14:47:03 +0200,
> Dutch Ingraham wrote:
> >
> > > Sent: Thursday, May 07, 2026 at 1:30 AM
> > > From: "Takashi Iwai" <tiwai@xxxxxxx>
> > > To: "Harin Lee" <me@xxxxxxxxx>
> > > Cc: "Takashi Iwai" <tiwai@xxxxxxx>, "Thorsten Leemhuis" <
> regressions@xxxxxxxxxxxxx>, "Jaroslav Kysela" <perex@xxxxxxxx>, "Takashi
> Iwai" <tiwai@xxxxxxxx>, "Linux kernel regressions list" <
> regressions@xxxxxxxxxxxxxxx>, "Linux Sound System" <
> linux-sound@xxxxxxxxxxxxxxx>, "LKML" <linux-kernel@xxxxxxxxxxxxxxx>,
> stoa@xxxxxx
> > > Subject: Re: [regression] ctxfi: no speaker output when headphones
> connected on >=7.0.x
> > >
> > > On Thu, 07 May 2026 00:06:11 +0200,
> > > Harin Lee wrote:
> > > >
> > > > On 5/6/26 4:05 PM, Takashi Iwai wrote:
> > > > > On Wed, 06 May 2026 08:24:36 +0200,
> > > > > Thorsten Leemhuis wrote:
> > > > >>
> > > > >> Hi! Just FYI, I noticed a regression report in bugzilla:
> > > > >>
> > > > >> https://bugzilla.kernel.org/show_bug.cgi?id=221461
> > > > >>
> > > > >> To quote:
> > > > >>
> > > > >>> Dutch Ingraham 2026-05-03 18:12:49 UTC
> > > > >>>
> > > > >>> Kernels >=7.0.1 contain a regression as to Creative Sound
> Blaster Z SE
> > > > >>> discrete pci sound card, but not integrated. Kernels 7.0.1,
> 7.0.2, and
> > > > >>> 7.0.3 tested; 7.0.0 not tested. Reverting to any 6.18.x or
> 6.12.x does
> > > > >>> not present the issue.
> > > > >>>
> > > > >>> Specifically, using pipewire managed by pavucontrol, on both
> Gentoo and
> > > > >>> Arch Linux, when both external speakers and headphones are
> connected,
> > > > >>> all sound is routed through the headphones regardless of
> whether settings
> > > > >>> are set to Line Out/Speaker or Line Out/Headphones; there is no
> speaker
> > > > >>> output. If headphones are disconnected, without reboot,
> speakers work;
> > > > >>> reconnect headphones, without reboot, sound reverts to
> headphones.
> > > > >>>
> > > > >>> Kernel: 7.0.3, Gentoo compiled from source using olddefconfig
> on 6.18.24
> > > > >>> .config; Arch standard release
> > > > >>> 'lspci -nnk | grep -i audio' attached
> > > > >>> 'dmesg | grep -i audio' for 7.0.3 and 6.18.24 attached
> > > > >>> pipewire-1.6.4 on both Gentoo and Arch Linux
> > > > >>> alsa-firmware-1.2.4 on both Gentoo and Arch Linux
> > > > >>> 'cat /proc/sys/kernel/tainted' returns 0 for both Gentoo and
> Arch Linux
> > > > >>>
> > > > >>> Processor : AMD Ryzen7 5700G
> > > > >>> Motherboard : Asus Prime X570-Pro
> > > > >>> RAM : Patriot Viper Steel DDR-4
> @3200mHz
> > > > >>> Graphics : ASRock AMD Radeon RX 7600 Challenger 8GB OC
> > > > >>> Sound Card : Creative Sound Blaster Z SE
> > > > >>>
> > > > >>>
> > > > >>> Expected outcome: ability to choose output to either speakers
> or head-
> > > > >>> phones while both are plugged-in to sound card.
> > > > >>>
> > > > >>> Workaround: none known.
> > > > >>
> > > > >> See the ticket for more details. One of them: 7.1-rc2 is
> affected as
> > > > >> well. Reporter is CCed. Forwarded this to ensure this report
> makes it to
> > > > >> the interested parties, as bugzilla might not have forwarded
> this.
> > > > >>
> > > > >> Dutch Ingraham: if nobody within a few days has an idea why this
> > > > >> happens, you will likely have to use a git bisection to get this
> resolved.
> > > > >
> > > > > As there have been many significant changes in ctxfi since 6.18,
> it's
> > > > > hard to tell what broke. Please go git bisect.
> > > > >
> > > > >
> > > > > thanks,
> > > > >
> > > > > Takashi
> > > > >
> > > >
> > > > Creative Sound Blaster Z-series uses the snd_hda_codec_ca0132
> driver,
> > > > not snd_ctxfi. The dmesg logs in the bugzilla shows only ca0132
> > > > entries.
> > >
> > > Ah, sorry, then it's easier. The only major change is the
> > > commit 778031e1658d206a52bf9491c91ae5d4f4a2509d
> > > ALSA: hda/ca0132: Set HP/Speaker auto-detect default from
> headphone pin verb
> > >
> > > Try to revert this one.
> > >
> > >
> > > thanks,
> > >
> > > Takashi
> > >
> >
> > I can confirm this seems like a good candidate. I built and tested
> 6.19.14
> > and 7.0. On 6.19.14, speakers work as expected; on 7.0, speakers are
> not
> > working as expected and the offending patch is included in the 7.0
> patchset.
> >
> > Thank you all for your work on this issue.
>
> OK, then let's put Matt to the party.
> Matt, could you help for debugging the regression?
>
> Takashi
>
> I can confirm the regression here on my 2013 Chromebook Pixel w/CA0132.
>
> Looking more closely, the issue is that tVNID_HP_ASEL and VNID_HP_SEL are
> mutually exclusive selection sources in ca0132_select_out() /
> ca0132_alt_select_out(),
> and auto-detect always "wins." So, enabling auto-detect effectively disabled
> user
> override.
>
> While reverting would fix this problem, it would reintroduce the problem of
> jack-detect being
> ignored completely. A better solution would be to default to auto-detect, but
> allow manual selection
> to override. Here's a quick patch I whipped up that should resolve the issue
> (untested though):
> ---
> From: Matt DeVillier <matt.devillier@xxxxxxxxx>
> Date: Thu, 7 May 2026 09:58:41 -0500
> Subject: [PATCH] ALSA: hda/ca0132: Disable auto-detect on manual output
> select
>
> Commit 778031e1658d ("ALSA: hda/ca0132: Set HP/Speaker
> auto-detect default from headphone pin verb") enables HP/Speaker
> auto-detect by default when the headphone pin supports presence detect.
>
> With auto-detect enabled, ca0132_select_out() and ca0132_alt_select_out()
> choose the output from jack presence instead of the manual HP/Speaker
> selection. This means selecting speaker output while headphones are
> plugged in updates the control state, but audio still routes to the
> headphones.
>
> Treat an explicit manual output selection as a request to leave
> auto-detect mode. Clear the HP/Speaker auto-detect switch before applying
> the manual selection, and notify userspace so the auto-detect control
> state is updated in mixers. Do this for both the normal HP/Speaker
> Playback Switch and the alternate Output Select control used by desktop
> cards.
>
> This keeps auto-detect enabled by default for devices with jack presence
> detection, while preserving the expected behavior that a manual output
> choice takes effect immediately.
>
> Fixes: 778031e1658d ("ALSA: hda/ca0132: Set HP/Speaker auto-detect default
> from headphone pin verb")
> Signed-off-by: Matt DeVillier <matt.devillier@xxxxxxxxx>
> ---
> sound/hda/codecs/ca0132.c | 44 +++++++++++++++++++++++++++++++-------------
> 1 file changed, 31 insertions(+), 13 deletions(-)
>
> diff --git a/sound/hda/codecs/ca0132.c b/sound/hda/codecs/ca0132.c
> index ad533b04ab29..be565ffaade0 100644
> --- a/sound/hda/codecs/ca0132.c
> +++ b/sound/hda/codecs/ca0132.c
> @@ -5498,6 +5498,30 @@ static int zxr_headphone_gain_set(struct hda_codec
> *codec, long val)
> return 0;
> }
(snip)
It looks like that the patch is malformed by your mailer.
For avoiding unneeded troubles, please fix the setup or give an
attachment, too.
thanks,
Takashi