mirror of
https://github.com/torvalds/linux.git
synced 2026-05-31 10:33:41 +02:00
ALSA: hda/ca0132: Set HP/Speaker auto-detect default from headphone pin verb
HP/Speaker auto-detect (VNID_HP_ASEL) has been off by default for every CA0132 device since the driver was added in 2012. vnode_lswitch is always initialized to 0 in ca0132_init_chip(), and no quirk or other code path enables it. As a result, headphone jack detection works only after the user manually turns on "HP/Speaker Auto Detect" in alsamixer, which is not obvious on laptops with combo jacks (e.g. Google Link, Alienware). Change the default to follow the headphone pin config: if the pin verb has presence detect enabled (no AC_DEFCFG_MISC_NO_PRESENCE) and the codec supports it (AC_PINCAP_PRES_DETECT), enable HP_ASEL by default. This lets firmware (coreboot, UEFI, etc.) express whether the headphone jack supports insertion detection. Devices with combo jacks can default to auto-detect; devices with fixed/no jack leave it off. Signed-off-by: Matt DeVillier <matt.devillier@gmail.com> Link: https://patch.msgid.link/20260226163055.825167-1-matt.devillier@gmail.com Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
71c1978ab6
commit
778031e165
|
|
@ -9816,6 +9816,15 @@ static void ca0132_config(struct hda_codec *codec)
|
||||||
spec->dig_in = 0x09;
|
spec->dig_in = 0x09;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Default HP/Speaker auto-detect from headphone pin verb: enable if the
|
||||||
|
* pin config indicates presence detect (not AC_DEFCFG_MISC_NO_PRESENCE).
|
||||||
|
*/
|
||||||
|
if (spec->unsol_tag_hp &&
|
||||||
|
(snd_hda_query_pin_caps(codec, spec->unsol_tag_hp) & AC_PINCAP_PRES_DETECT) &&
|
||||||
|
!(get_defcfg_misc(snd_hda_codec_get_pincfg(codec, spec->unsol_tag_hp)) &
|
||||||
|
AC_DEFCFG_MISC_NO_PRESENCE))
|
||||||
|
spec->vnode_lswitch[VNID_HP_ASEL - VNODE_START_NID] = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int ca0132_prepare_verbs(struct hda_codec *codec)
|
static int ca0132_prepare_verbs(struct hda_codec *codec)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user