mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-20 03:04:01 +08:00
ALSA: hda - Fix silent output on ASUS W7J laptop
The recent kernels got regressions on ASUS W7J with ALC660 codec where no sound comes out. After a long debugging session, we found out that setting the pin control on the unused NID 0x10 is mandatory for the outputs. And, it was found out that another magic of NID 0x0f that is required for other ASUS laptops isn't needed on this machine. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=66081 Reported-and-tested-by: Andrey Lipaev <lipaev@mail.ru> Cc: <stable@vger.kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
4d6ff25085
commit
6ddf0fd1c4
@ -4494,6 +4494,7 @@ enum {
|
||||
ALC861_FIXUP_AMP_VREF_0F,
|
||||
ALC861_FIXUP_NO_JACK_DETECT,
|
||||
ALC861_FIXUP_ASUS_A6RP,
|
||||
ALC660_FIXUP_ASUS_W7J,
|
||||
};
|
||||
|
||||
/* On some laptops, VREF of pin 0x0f is abused for controlling the main amp */
|
||||
@ -4543,10 +4544,21 @@ static const struct hda_fixup alc861_fixups[] = {
|
||||
.v.func = alc861_fixup_asus_amp_vref_0f,
|
||||
.chained = true,
|
||||
.chain_id = ALC861_FIXUP_NO_JACK_DETECT,
|
||||
},
|
||||
[ALC660_FIXUP_ASUS_W7J] = {
|
||||
.type = HDA_FIXUP_VERBS,
|
||||
.v.verbs = (const struct hda_verb[]) {
|
||||
/* ASUS W7J needs a magic pin setup on unused NID 0x10
|
||||
* for enabling outputs
|
||||
*/
|
||||
{0x10, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x24},
|
||||
{ }
|
||||
},
|
||||
}
|
||||
};
|
||||
|
||||
static const struct snd_pci_quirk alc861_fixup_tbl[] = {
|
||||
SND_PCI_QUIRK(0x1043, 0x1253, "ASUS W7J", ALC660_FIXUP_ASUS_W7J),
|
||||
SND_PCI_QUIRK(0x1043, 0x1393, "ASUS A6Rp", ALC861_FIXUP_ASUS_A6RP),
|
||||
SND_PCI_QUIRK_VENDOR(0x1043, "ASUS laptop", ALC861_FIXUP_AMP_VREF_0F),
|
||||
SND_PCI_QUIRK(0x1462, 0x7254, "HP DX2200", ALC861_FIXUP_NO_JACK_DETECT),
|
||||
|
Loading…
Reference in New Issue
Block a user