Skip to content

Commit 8c2fa44

Browse files
committed
ALSA: hda/realtek: Workaround for resume on Dell Venue 11 Pro 7130
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: <stable@vger.kernel.org> 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/20250130123301.8996-1-tiwai@suse.de Signed-off-by: Takashi Iwai <tiwai@suse.de>
1 parent 86d0d3e commit 8c2fa44

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
@@ -7497,6 +7497,16 @@ static void alc287_fixup_lenovo_thinkpad_with_alc1318(struct hda_codec *codec,
74977497
spec->gen.pcm_playback_hook = alc287_alc1318_playback_pcm_hook;
74987498
}
74997499

7500+
/*
7501+
* Clear COEF 0x0d (PCBEEP passthrough) bit 0x40 where BIOS sets it wrongly
7502+
* at PM resume
7503+
*/
7504+
static void alc283_fixup_dell_hp_resume(struct hda_codec *codec,
7505+
const struct hda_fixup *fix, int action)
7506+
{
7507+
if (action == HDA_FIXUP_ACT_INIT)
7508+
alc_write_coef_idx(codec, 0xd, 0x2800);
7509+
}
75007510

75017511
enum {
75027512
ALC269_FIXUP_GPIO2,
@@ -7799,6 +7809,7 @@ enum {
77997809
ALC269_FIXUP_VAIO_VJFH52_MIC_NO_PRESENCE,
78007810
ALC233_FIXUP_MEDION_MTL_SPK,
78017811
ALC294_FIXUP_BASS_SPEAKER_15,
7812+
ALC283_FIXUP_DELL_HP_RESUME,
78027813
};
78037814

78047815
/* A special fixup for Lenovo C940 and Yoga Duet 7;
@@ -10143,6 +10154,10 @@ static const struct hda_fixup alc269_fixups[] = {
1014310154
.type = HDA_FIXUP_FUNC,
1014410155
.v.func = alc294_fixup_bass_speaker_15,
1014510156
},
10157+
[ALC283_FIXUP_DELL_HP_RESUME] = {
10158+
.type = HDA_FIXUP_FUNC,
10159+
.v.func = alc283_fixup_dell_hp_resume,
10160+
},
1014610161
};
1014710162

1014810163
static const struct hda_quirk alc269_fixup_tbl[] = {
@@ -10203,6 +10218,7 @@ static const struct hda_quirk alc269_fixup_tbl[] = {
1020310218
SND_PCI_QUIRK(0x1028, 0x05f4, "Dell", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE),
1020410219
SND_PCI_QUIRK(0x1028, 0x05f5, "Dell", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE),
1020510220
SND_PCI_QUIRK(0x1028, 0x05f6, "Dell", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE),
10221+
SND_PCI_QUIRK(0x1028, 0x0604, "Dell Venue 11 Pro 7130", ALC283_FIXUP_DELL_HP_RESUME),
1020610222
SND_PCI_QUIRK(0x1028, 0x0615, "Dell Vostro 5470", ALC290_FIXUP_SUBWOOFER_HSJACK),
1020710223
SND_PCI_QUIRK(0x1028, 0x0616, "Dell Vostro 5470", ALC290_FIXUP_SUBWOOFER_HSJACK),
1020810224
SND_PCI_QUIRK(0x1028, 0x062c, "Dell Latitude E5550", ALC292_FIXUP_DELL_E7X),

0 commit comments

Comments
 (0)