Commit a581780a authored by Takashi Iwai's avatar Takashi Iwai

Merge branch 'topic/fix/hda' into topic/hda

parents af9f341a c5d08bb5
...@@ -1739,6 +1739,10 @@ static struct snd_pci_quirk stac92hd71bxx_cfg_tbl[] = { ...@@ -1739,6 +1739,10 @@ static struct snd_pci_quirk stac92hd71bxx_cfg_tbl[] = {
/* SigmaTel reference board */ /* SigmaTel reference board */
SND_PCI_QUIRK(PCI_VENDOR_ID_INTEL, 0x2668, SND_PCI_QUIRK(PCI_VENDOR_ID_INTEL, 0x2668,
"DFI LanParty", STAC_92HD71BXX_REF), "DFI LanParty", STAC_92HD71BXX_REF),
SND_PCI_QUIRK(PCI_VENDOR_ID_HP, 0x30f2,
"HP dv5", STAC_HP_M4),
SND_PCI_QUIRK(PCI_VENDOR_ID_HP, 0x30f4,
"HP dv7", STAC_HP_M4),
SND_PCI_QUIRK(PCI_VENDOR_ID_HP, 0x361a, SND_PCI_QUIRK(PCI_VENDOR_ID_HP, 0x361a,
"unknown HP", STAC_HP_M4), "unknown HP", STAC_HP_M4),
SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0233, SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0233,
...@@ -4661,6 +4665,13 @@ static int patch_stac92hd71bxx(struct hda_codec *codec) ...@@ -4661,6 +4665,13 @@ static int patch_stac92hd71bxx(struct hda_codec *codec)
return err; return err;
} }
if (spec->board_config > STAC_92HD71BXX_REF) {
/* GPIO0 = EAPD */
spec->gpio_mask = 0x01;
spec->gpio_dir = 0x01;
spec->gpio_data = 0x01;
}
switch (codec->vendor_id) { switch (codec->vendor_id) {
case 0x111d76b6: /* 4 Port without Analog Mixer */ case 0x111d76b6: /* 4 Port without Analog Mixer */
case 0x111d76b7: case 0x111d76b7:
...@@ -4671,10 +4682,10 @@ static int patch_stac92hd71bxx(struct hda_codec *codec) ...@@ -4671,10 +4682,10 @@ static int patch_stac92hd71bxx(struct hda_codec *codec)
codec->slave_dig_outs = stac92hd71bxx_slave_dig_outs; codec->slave_dig_outs = stac92hd71bxx_slave_dig_outs;
break; break;
case 0x111d7608: /* 5 Port with Analog Mixer */ case 0x111d7608: /* 5 Port with Analog Mixer */
switch (codec->subsystem_id) { switch (spec->board_config) {
case 0x103c361a: case STAC_HP_M4:
/* Enable VREF power saving on GPIO1 detect */ /* Enable VREF power saving on GPIO1 detect */
snd_hda_codec_write(codec, codec->afg, 0, snd_hda_codec_write_cache(codec, codec->afg, 0,
AC_VERB_SET_GPIO_UNSOLICITED_RSP_MASK, 0x02); AC_VERB_SET_GPIO_UNSOLICITED_RSP_MASK, 0x02);
snd_hda_codec_write_cache(codec, codec->afg, 0, snd_hda_codec_write_cache(codec, codec->afg, 0,
AC_VERB_SET_UNSOLICITED_ENABLE, AC_VERB_SET_UNSOLICITED_ENABLE,
...@@ -4723,13 +4734,6 @@ static int patch_stac92hd71bxx(struct hda_codec *codec) ...@@ -4723,13 +4734,6 @@ static int patch_stac92hd71bxx(struct hda_codec *codec)
spec->aloopback_mask = 0x50; spec->aloopback_mask = 0x50;
spec->aloopback_shift = 0; spec->aloopback_shift = 0;
if (spec->board_config > STAC_92HD71BXX_REF) {
/* GPIO0 = EAPD */
spec->gpio_mask = 0x01;
spec->gpio_dir = 0x01;
spec->gpio_data = 0x01;
}
spec->powerdown_adcs = 1; spec->powerdown_adcs = 1;
spec->digbeep_nid = 0x26; spec->digbeep_nid = 0x26;
spec->mux_nids = stac92hd71bxx_mux_nids; spec->mux_nids = stac92hd71bxx_mux_nids;
...@@ -5073,7 +5077,7 @@ static int patch_stac9205(struct hda_codec *codec) ...@@ -5073,7 +5077,7 @@ static int patch_stac9205(struct hda_codec *codec)
stac_change_pin_config(codec, 0x20, 0x1c410030); stac_change_pin_config(codec, 0x20, 0x1c410030);
/* Enable unsol response for GPIO4/Dock HP connection */ /* Enable unsol response for GPIO4/Dock HP connection */
snd_hda_codec_write(codec, codec->afg, 0, snd_hda_codec_write_cache(codec, codec->afg, 0,
AC_VERB_SET_GPIO_UNSOLICITED_RSP_MASK, 0x10); AC_VERB_SET_GPIO_UNSOLICITED_RSP_MASK, 0x10);
snd_hda_codec_write_cache(codec, codec->afg, 0, snd_hda_codec_write_cache(codec, codec->afg, 0,
AC_VERB_SET_UNSOLICITED_ENABLE, AC_VERB_SET_UNSOLICITED_ENABLE,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment