Re: [regression] ctxfi: no speaker output when headphones connected on >=7.0.x
Takashi Iwai <[email protected]>
| Newsgroups | dev.linux.lists.regressions,org.kernel.vger.linux-kernel,org.kernel.vger.linux-sound |
|---|---|
| Message-ID | <[email protected]> |
On Thu, 07 May 2026 20:23:25 +0200, Dutch Ingraham wrote: > > > > > Sent: Thursday, May 07, 2026 at 10:12 AM > > From: "Matt DeVillier" <[email protected]> > > To: "Takashi Iwai" <[email protected]> > > Cc: "Dutch Ingraham" <[email protected]>, "Harin Lee" <[email protected]>, "Thorsten Leemhuis" <[email protected]>, "Jaroslav Kysela" <[email protected]>, "Takashi Iwai" <[email protected]>, "Linux kernel regressions list" <[email protected]>, "Linux Sound System" <[email protected]>, "LKML" <[email protected]> > > Subject: Re: [regression] ctxfi: no speaker output when headphones connected on >=7.0.x > > > > On Thu, May 7, 2026 at 10:07 AM Takashi Iwai <[email protected]> wrote: > > > > > > On Thu, 07 May 2026 17:02:14 +0200, > > > Matt DeVillier wrote: > > > > > > > > > > > > On Thu, May 7, 2026 at 8:24 AM Takashi Iwai <[email protected]> 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" <[email protected]> > > > > > > To: "Harin Lee" <[email protected]> > > > > > > Cc: "Takashi Iwai" <[email protected]>, "Thorsten Leemhuis" < > > > > [email protected]>, "Jaroslav Kysela" <[email protected]>, "Takashi > > > > Iwai" <[email protected]>, "Linux kernel regressions list" < > > > > [email protected]>, "Linux Sound System" < > > > > [email protected]>, "LKML" <[email protected]>, > > > > [email protected] > > > > > > 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 <[email protected]> > > > > 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 <[email protected]> > > > > --- > > > > 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 > > > > My apologies, forgot to ensure text-mode sending when I replied. > > Hopefully better this time. > > > > regards, > > Matt > > > > Patched against originally non-working v7.0. Now, works as expected; can > choose Line Out / Speaker or Line Out / Headphones and default holds > across reboots. > > Thank you Matt and all others who gave your attention to this issue. Thanks for confirmation. Now I applied the fix. Takashi