]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
ALSA: hda/ca0132: Disable auto-detect on manual output select
authorMatt DeVillier <matt.devillier@gmail.com>
Thu, 7 May 2026 14:58:41 +0000 (09:58 -0500)
committerTakashi Iwai <tiwai@suse.de>
Fri, 15 May 2026 09:19:48 +0000 (11:19 +0200)
commit6fd9f6e870ea285f05102e8e00e6a7f4495a9a02
tree2a2039b23f00ece6b4e609899257e2fcdce228ba
parent7d1051ad68df3d584b5f24bfa1fb19f3a24db278
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@gmail.com>
Link: https://lore.kernel.org/CAFTm+6AfeXKf=b2frG4xC5yC4jjM9TkD6c8+dOWWFw6BDjDESw@mail.gmail.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/hda/codecs/ca0132.c