Skip to content
This repository was archived by the owner on Oct 31, 2024. It is now read-only.

Commit 6fadf21

Browse files
kovalev0gregkh
authored andcommitted
ALSA: hda/conexant - Fix audio routing for HP EliteOne 1000 G2
commit 9988844 upstream. There is a problem with simultaneous audio output to headphones and speakers, and when headphones are turned off, the speakers also turn off and do not turn them on. However, it was found that if you boot linux immediately after windows, there are no such problems. When comparing alsa-info, the only difference is the different configuration of Node 0x1d: working conf. (windows): Pin-ctls: 0x80: HP not working (linux): Pin-ctls: 0xc0: OUT HP This patch disable the AC_PINCTL_OUT_EN bit of Node 0x1d and fixes the described problem. Signed-off-by: Vasiliy Kovalev <kovalev@altlinux.org> Cc: <stable@vger.kernel.org> Link: https://patch.msgid.link/20241009134248.662175-1-kovalev@altlinux.org Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
1 parent 0a3bfe9 commit 6fadf21

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed

sound/pci/hda/patch_conexant.c

+19
Original file line numberDiff line numberDiff line change
@@ -303,6 +303,7 @@ enum {
303303
CXT_FIXUP_HP_SPECTRE,
304304
CXT_FIXUP_HP_GATE_MIC,
305305
CXT_FIXUP_MUTE_LED_GPIO,
306+
CXT_FIXUP_HP_ELITEONE_OUT_DIS,
306307
CXT_FIXUP_HP_ZBOOK_MUTE_LED,
307308
CXT_FIXUP_HEADSET_MIC,
308309
CXT_FIXUP_HP_MIC_NO_PRESENCE,
@@ -320,6 +321,19 @@ static void cxt_fixup_stereo_dmic(struct hda_codec *codec,
320321
spec->gen.inv_dmic_split = 1;
321322
}
322323

324+
/* fix widget control pin settings */
325+
static void cxt_fixup_update_pinctl(struct hda_codec *codec,
326+
const struct hda_fixup *fix, int action)
327+
{
328+
if (action == HDA_FIXUP_ACT_PROBE) {
329+
/* Unset OUT_EN for this Node pin, leaving only HP_EN.
330+
* This is the value stored in the codec register after
331+
* the correct initialization of the previous windows boot.
332+
*/
333+
snd_hda_set_pin_ctl(codec, 0x1d, AC_PINCTL_HP_EN);
334+
}
335+
}
336+
323337
static void cxt5066_increase_mic_boost(struct hda_codec *codec,
324338
const struct hda_fixup *fix, int action)
325339
{
@@ -971,6 +985,10 @@ static const struct hda_fixup cxt_fixups[] = {
971985
.type = HDA_FIXUP_FUNC,
972986
.v.func = cxt_fixup_mute_led_gpio,
973987
},
988+
[CXT_FIXUP_HP_ELITEONE_OUT_DIS] = {
989+
.type = HDA_FIXUP_FUNC,
990+
.v.func = cxt_fixup_update_pinctl,
991+
},
974992
[CXT_FIXUP_HP_ZBOOK_MUTE_LED] = {
975993
.type = HDA_FIXUP_FUNC,
976994
.v.func = cxt_fixup_hp_zbook_mute_led,
@@ -1061,6 +1079,7 @@ static const struct snd_pci_quirk cxt5066_fixups[] = {
10611079
SND_PCI_QUIRK(0x103c, 0x83b2, "HP EliteBook 840 G5", CXT_FIXUP_HP_DOCK),
10621080
SND_PCI_QUIRK(0x103c, 0x83b3, "HP EliteBook 830 G5", CXT_FIXUP_HP_DOCK),
10631081
SND_PCI_QUIRK(0x103c, 0x83d3, "HP ProBook 640 G4", CXT_FIXUP_HP_DOCK),
1082+
SND_PCI_QUIRK(0x103c, 0x83e5, "HP EliteOne 1000 G2", CXT_FIXUP_HP_ELITEONE_OUT_DIS),
10641083
SND_PCI_QUIRK(0x103c, 0x8402, "HP ProBook 645 G4", CXT_FIXUP_MUTE_LED_GPIO),
10651084
SND_PCI_QUIRK(0x103c, 0x8427, "HP ZBook Studio G5", CXT_FIXUP_HP_ZBOOK_MUTE_LED),
10661085
SND_PCI_QUIRK(0x103c, 0x844f, "HP ZBook Studio G5", CXT_FIXUP_HP_ZBOOK_MUTE_LED),

0 commit comments

Comments
 (0)