aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci/hda/patch_realtek.c
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2013-01-10 11:10:40 -0500
committerTakashi Iwai <tiwai@suse.de>2013-01-12 02:44:40 -0500
commit39aedee7a1cc3c72d68674ff6ff142299fa0897b (patch)
treede38e65412520abf6ebd6b77a6793ceadfc8afef /sound/pci/hda/patch_realtek.c
parent978e77e78cff7a85a31ad552ffd8afee319e8721 (diff)
ALSA: hda/realtek - Add a fixup for FSC S7020 laptop
Try to recover from the regression: set the HP amp for the speaker and add the hp jack mode enum as default. Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci/hda/patch_realtek.c')
-rw-r--r--sound/pci/hda/patch_realtek.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index c8fcfa830778..42fc05c3fdf6 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -1436,6 +1436,7 @@ enum {
1436 ALC260_FIXUP_REPLACER, 1436 ALC260_FIXUP_REPLACER,
1437 ALC260_FIXUP_HP_B1900, 1437 ALC260_FIXUP_HP_B1900,
1438 ALC260_FIXUP_KN1, 1438 ALC260_FIXUP_KN1,
1439 ALC260_FIXUP_FSC_S7020,
1439}; 1440};
1440 1441
1441static void alc260_gpio1_automute(struct hda_codec *codec) 1442static void alc260_gpio1_automute(struct hda_codec *codec)
@@ -1493,6 +1494,17 @@ static void alc260_fixup_kn1(struct hda_codec *codec,
1493 } 1494 }
1494} 1495}
1495 1496
1497static void alc260_fixup_fsc_s7020(struct hda_codec *codec,
1498 const struct hda_fixup *fix, int action)
1499{
1500 struct alc_spec *spec = codec->spec;
1501
1502 if (action == HDA_FIXUP_ACT_PRE_PROBE)
1503 spec->gen.add_out_jack_modes = 1;
1504 else if (action == HDA_FIXUP_ACT_PROBE)
1505 snd_hda_set_pin_ctl_cache(codec, 0x10, PIN_HP);
1506}
1507
1496static const struct hda_fixup alc260_fixups[] = { 1508static const struct hda_fixup alc260_fixups[] = {
1497 [ALC260_FIXUP_HP_DC5750] = { 1509 [ALC260_FIXUP_HP_DC5750] = {
1498 .type = HDA_FIXUP_PINS, 1510 .type = HDA_FIXUP_PINS,
@@ -1548,6 +1560,10 @@ static const struct hda_fixup alc260_fixups[] = {
1548 .type = HDA_FIXUP_FUNC, 1560 .type = HDA_FIXUP_FUNC,
1549 .v.func = alc260_fixup_kn1, 1561 .v.func = alc260_fixup_kn1,
1550 }, 1562 },
1563 [ALC260_FIXUP_FSC_S7020] = {
1564 .type = HDA_FIXUP_FUNC,
1565 .v.func = alc260_fixup_fsc_s7020,
1566 },
1551}; 1567};
1552 1568
1553static const struct snd_pci_quirk alc260_fixup_tbl[] = { 1569static const struct snd_pci_quirk alc260_fixup_tbl[] = {
@@ -1556,6 +1572,7 @@ static const struct snd_pci_quirk alc260_fixup_tbl[] = {
1556 SND_PCI_QUIRK(0x1025, 0x008f, "Acer", ALC260_FIXUP_GPIO1), 1572 SND_PCI_QUIRK(0x1025, 0x008f, "Acer", ALC260_FIXUP_GPIO1),
1557 SND_PCI_QUIRK(0x103c, 0x280a, "HP dc5750", ALC260_FIXUP_HP_DC5750), 1573 SND_PCI_QUIRK(0x103c, 0x280a, "HP dc5750", ALC260_FIXUP_HP_DC5750),
1558 SND_PCI_QUIRK(0x103c, 0x30ba, "HP Presario B1900", ALC260_FIXUP_HP_B1900), 1574 SND_PCI_QUIRK(0x103c, 0x30ba, "HP Presario B1900", ALC260_FIXUP_HP_B1900),
1575 SND_PCI_QUIRK(0x10cf, 0x1326, "FSC LifeBook S7020", ALC260_FIXUP_FSC_S7020),
1559 SND_PCI_QUIRK(0x1509, 0x4540, "Favorit 100XS", ALC260_FIXUP_GPIO1), 1576 SND_PCI_QUIRK(0x1509, 0x4540, "Favorit 100XS", ALC260_FIXUP_GPIO1),
1560 SND_PCI_QUIRK(0x152d, 0x0729, "Quanta KN1", ALC260_FIXUP_KN1), 1577 SND_PCI_QUIRK(0x152d, 0x0729, "Quanta KN1", ALC260_FIXUP_KN1),
1561 SND_PCI_QUIRK(0x161f, 0x2057, "Replacer 672V", ALC260_FIXUP_REPLACER), 1578 SND_PCI_QUIRK(0x161f, 0x2057, "Replacer 672V", ALC260_FIXUP_REPLACER),