Skip to content

Commit d6f6ef8

Browse files
tiwaigregkh
authored andcommitted
ALSA: hda/realtek: Workaround for resume on Dell Venue 11 Pro 7130
commit 8c2fa44 upstream. It was reported that the headphone output on Dell Venue 11 Pro 7130 becomes mono after PM resume. The cause seems to be the BIOS setting up the codec COEF 0x0d bit 0x40 wrongly by some reason, and restoring the original value 0x2800 fixes the problem. This patch adds the quirk entry to perform the COEF restore. Cc: <[email protected]> Link: https://bugzilla.kernel.org/show_bug.cgi?id=219697 Link: https://bugzilla.opensuse.org/show_bug.cgi?id=1235686 Link: https://patch.msgid.link/[email protected] Signed-off-by: Takashi Iwai <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
1 parent b6b0726 commit d6f6ef8

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

sound/pci/hda/patch_realtek.c

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7485,6 +7485,16 @@ static void alc287_fixup_lenovo_thinkpad_with_alc1318(struct hda_codec *codec,
74857485
spec->gen.pcm_playback_hook = alc287_alc1318_playback_pcm_hook;
74867486
}
74877487

7488+
/*
7489+
* Clear COEF 0x0d (PCBEEP passthrough) bit 0x40 where BIOS sets it wrongly
7490+
* at PM resume
7491+
*/
7492+
static void alc283_fixup_dell_hp_resume(struct hda_codec *codec,
7493+
const struct hda_fixup *fix, int action)
7494+
{
7495+
if (action == HDA_FIXUP_ACT_INIT)
7496+
alc_write_coef_idx(codec, 0xd, 0x2800);
7497+
}
74887498

74897499
enum {
74907500
ALC269_FIXUP_GPIO2,
@@ -7785,6 +7795,7 @@ enum {
77857795
ALC269_FIXUP_VAIO_VJFH52_MIC_NO_PRESENCE,
77867796
ALC233_FIXUP_MEDION_MTL_SPK,
77877797
ALC294_FIXUP_BASS_SPEAKER_15,
7798+
ALC283_FIXUP_DELL_HP_RESUME,
77887799
};
77897800

77907801
/* A special fixup for Lenovo C940 and Yoga Duet 7;
@@ -10117,6 +10128,10 @@ static const struct hda_fixup alc269_fixups[] = {
1011710128
.type = HDA_FIXUP_FUNC,
1011810129
.v.func = alc294_fixup_bass_speaker_15,
1011910130
},
10131+
[ALC283_FIXUP_DELL_HP_RESUME] = {
10132+
.type = HDA_FIXUP_FUNC,
10133+
.v.func = alc283_fixup_dell_hp_resume,
10134+
},
1012010135
};
1012110136

1012210137
static const struct hda_quirk alc269_fixup_tbl[] = {
@@ -10177,6 +10192,7 @@ static const struct hda_quirk alc269_fixup_tbl[] = {
1017710192
SND_PCI_QUIRK(0x1028, 0x05f4, "Dell", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE),
1017810193
SND_PCI_QUIRK(0x1028, 0x05f5, "Dell", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE),
1017910194
SND_PCI_QUIRK(0x1028, 0x05f6, "Dell", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE),
10195+
SND_PCI_QUIRK(0x1028, 0x0604, "Dell Venue 11 Pro 7130", ALC283_FIXUP_DELL_HP_RESUME),
1018010196
SND_PCI_QUIRK(0x1028, 0x0615, "Dell Vostro 5470", ALC290_FIXUP_SUBWOOFER_HSJACK),
1018110197
SND_PCI_QUIRK(0x1028, 0x0616, "Dell Vostro 5470", ALC290_FIXUP_SUBWOOFER_HSJACK),
1018210198
SND_PCI_QUIRK(0x1028, 0x062c, "Dell Latitude E5550", ALC292_FIXUP_DELL_E7X),

0 commit comments

Comments
 (0)