aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci/hda/patch_sigmatel.c
diff options
context:
space:
mode:
Diffstat (limited to 'sound/pci/hda/patch_sigmatel.c')
-rw-r--r--sound/pci/hda/patch_sigmatel.c30
1 files changed, 24 insertions, 6 deletions
diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c
index 14f3c3e0f62d..6990cfcb6a38 100644
--- a/sound/pci/hda/patch_sigmatel.c
+++ b/sound/pci/hda/patch_sigmatel.c
@@ -76,6 +76,7 @@ enum {
76 STAC_92HD73XX_AUTO, 76 STAC_92HD73XX_AUTO,
77 STAC_92HD73XX_NO_JD, /* no jack-detection */ 77 STAC_92HD73XX_NO_JD, /* no jack-detection */
78 STAC_92HD73XX_REF, 78 STAC_92HD73XX_REF,
79 STAC_92HD73XX_INTEL,
79 STAC_DELL_M6_AMIC, 80 STAC_DELL_M6_AMIC,
80 STAC_DELL_M6_DMIC, 81 STAC_DELL_M6_DMIC,
81 STAC_DELL_M6_BOTH, 82 STAC_DELL_M6_BOTH,
@@ -1590,8 +1591,6 @@ static struct snd_pci_quirk stac9200_cfg_tbl[] = {
1590 /* SigmaTel reference board */ 1591 /* SigmaTel reference board */
1591 SND_PCI_QUIRK(PCI_VENDOR_ID_INTEL, 0x2668, 1592 SND_PCI_QUIRK(PCI_VENDOR_ID_INTEL, 0x2668,
1592 "DFI LanParty", STAC_REF), 1593 "DFI LanParty", STAC_REF),
1593 SND_PCI_QUIRK(PCI_VENDOR_ID_INTEL, 0xfb30,
1594 "SigmaTel",STAC_9205_REF),
1595 SND_PCI_QUIRK(PCI_VENDOR_ID_DFI, 0x3101, 1594 SND_PCI_QUIRK(PCI_VENDOR_ID_DFI, 0x3101,
1596 "DFI LanParty", STAC_REF), 1595 "DFI LanParty", STAC_REF),
1597 /* Dell laptops have BIOS problem */ 1596 /* Dell laptops have BIOS problem */
@@ -1779,6 +1778,7 @@ static const char *stac92hd73xx_models[STAC_92HD73XX_MODELS] = {
1779 [STAC_92HD73XX_AUTO] = "auto", 1778 [STAC_92HD73XX_AUTO] = "auto",
1780 [STAC_92HD73XX_NO_JD] = "no-jd", 1779 [STAC_92HD73XX_NO_JD] = "no-jd",
1781 [STAC_92HD73XX_REF] = "ref", 1780 [STAC_92HD73XX_REF] = "ref",
1781 [STAC_92HD73XX_INTEL] = "intel",
1782 [STAC_DELL_M6_AMIC] = "dell-m6-amic", 1782 [STAC_DELL_M6_AMIC] = "dell-m6-amic",
1783 [STAC_DELL_M6_DMIC] = "dell-m6-dmic", 1783 [STAC_DELL_M6_DMIC] = "dell-m6-dmic",
1784 [STAC_DELL_M6_BOTH] = "dell-m6", 1784 [STAC_DELL_M6_BOTH] = "dell-m6",
@@ -1791,6 +1791,10 @@ static struct snd_pci_quirk stac92hd73xx_cfg_tbl[] = {
1791 "DFI LanParty", STAC_92HD73XX_REF), 1791 "DFI LanParty", STAC_92HD73XX_REF),
1792 SND_PCI_QUIRK(PCI_VENDOR_ID_DFI, 0x3101, 1792 SND_PCI_QUIRK(PCI_VENDOR_ID_DFI, 0x3101,
1793 "DFI LanParty", STAC_92HD73XX_REF), 1793 "DFI LanParty", STAC_92HD73XX_REF),
1794 SND_PCI_QUIRK(PCI_VENDOR_ID_INTEL, 0x5002,
1795 "Intel DG45ID", STAC_92HD73XX_INTEL),
1796 SND_PCI_QUIRK(PCI_VENDOR_ID_INTEL, 0x5003,
1797 "Intel DG45FC", STAC_92HD73XX_INTEL),
1794 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0254, 1798 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0254,
1795 "Dell Studio 1535", STAC_DELL_M6_DMIC), 1799 "Dell Studio 1535", STAC_DELL_M6_DMIC),
1796 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0255, 1800 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0255,
@@ -1811,6 +1815,8 @@ static struct snd_pci_quirk stac92hd73xx_cfg_tbl[] = {
1811 "Dell Studio 1537", STAC_DELL_M6_DMIC), 1815 "Dell Studio 1537", STAC_DELL_M6_DMIC),
1812 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x02a0, 1816 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x02a0,
1813 "Dell Studio 17", STAC_DELL_M6_DMIC), 1817 "Dell Studio 17", STAC_DELL_M6_DMIC),
1818 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x02be,
1819 "Dell Studio 1555", STAC_DELL_M6_DMIC),
1814 {} /* terminator */ 1820 {} /* terminator */
1815}; 1821};
1816 1822
@@ -2266,7 +2272,7 @@ static struct snd_pci_quirk stac927x_cfg_tbl[] = {
2266 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01f3, "Dell Inspiron 1420", STAC_DELL_BIOS), 2272 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01f3, "Dell Inspiron 1420", STAC_DELL_BIOS),
2267 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0227, "Dell Vostro 1400 ", STAC_DELL_BIOS), 2273 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0227, "Dell Vostro 1400 ", STAC_DELL_BIOS),
2268 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x022e, "Dell ", STAC_DELL_BIOS), 2274 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x022e, "Dell ", STAC_DELL_BIOS),
2269 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x022f, "Dell Inspiron 1525", STAC_DELL_3ST), 2275 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x022f, "Dell Inspiron 1525", STAC_DELL_BIOS),
2270 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0242, "Dell ", STAC_DELL_BIOS), 2276 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0242, "Dell ", STAC_DELL_BIOS),
2271 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0243, "Dell ", STAC_DELL_BIOS), 2277 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0243, "Dell ", STAC_DELL_BIOS),
2272 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x02ff, "Dell ", STAC_DELL_BIOS), 2278 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x02ff, "Dell ", STAC_DELL_BIOS),
@@ -2344,6 +2350,8 @@ static struct snd_pci_quirk stac9205_cfg_tbl[] = {
2344 /* SigmaTel reference board */ 2350 /* SigmaTel reference board */
2345 SND_PCI_QUIRK(PCI_VENDOR_ID_INTEL, 0x2668, 2351 SND_PCI_QUIRK(PCI_VENDOR_ID_INTEL, 0x2668,
2346 "DFI LanParty", STAC_9205_REF), 2352 "DFI LanParty", STAC_9205_REF),
2353 SND_PCI_QUIRK(PCI_VENDOR_ID_INTEL, 0xfb30,
2354 "SigmaTel", STAC_9205_REF),
2347 SND_PCI_QUIRK(PCI_VENDOR_ID_DFI, 0x3101, 2355 SND_PCI_QUIRK(PCI_VENDOR_ID_DFI, 0x3101,
2348 "DFI LanParty", STAC_9205_REF), 2356 "DFI LanParty", STAC_9205_REF),
2349 /* Dell */ 2357 /* Dell */
@@ -2378,6 +2386,7 @@ static struct snd_pci_quirk stac9205_cfg_tbl[] = {
2378 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0228, 2386 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0228,
2379 "Dell Vostro 1500", STAC_9205_DELL_M42), 2387 "Dell Vostro 1500", STAC_9205_DELL_M42),
2380 /* Gateway */ 2388 /* Gateway */
2389 SND_PCI_QUIRK(0x107b, 0x0560, "Gateway T6834c", STAC_9205_EAPD),
2381 SND_PCI_QUIRK(0x107b, 0x0565, "Gateway T1616", STAC_9205_EAPD), 2390 SND_PCI_QUIRK(0x107b, 0x0565, "Gateway T1616", STAC_9205_EAPD),
2382 {} /* terminator */ 2391 {} /* terminator */
2383}; 2392};
@@ -4065,7 +4074,7 @@ static int stac92xx_add_jack(struct hda_codec *codec,
4065 jack->nid = nid; 4074 jack->nid = nid;
4066 jack->type = type; 4075 jack->type = type;
4067 4076
4068 sprintf(name, "%s at %s %s Jack", 4077 snprintf(name, sizeof(name), "%s at %s %s Jack",
4069 snd_hda_get_jack_type(def_conf), 4078 snd_hda_get_jack_type(def_conf),
4070 snd_hda_get_jack_connectivity(def_conf), 4079 snd_hda_get_jack_connectivity(def_conf),
4071 snd_hda_get_jack_location(def_conf)); 4080 snd_hda_get_jack_location(def_conf));
@@ -5642,6 +5651,13 @@ static int patch_stac927x(struct hda_codec *codec)
5642 /* GPIO2 High = Enable EAPD */ 5651 /* GPIO2 High = Enable EAPD */
5643 spec->eapd_mask = spec->gpio_mask = spec->gpio_dir = 0x04; 5652 spec->eapd_mask = spec->gpio_mask = spec->gpio_dir = 0x04;
5644 spec->gpio_data = 0x04; 5653 spec->gpio_data = 0x04;
5654 switch (codec->subsystem_id) {
5655 case 0x1028022f:
5656 /* correct EAPD to be GPIO0 */
5657 spec->eapd_mask = spec->gpio_mask = 0x01;
5658 spec->gpio_dir = spec->gpio_data = 0x01;
5659 break;
5660 };
5645 spec->dmic_nids = stac927x_dmic_nids; 5661 spec->dmic_nids = stac927x_dmic_nids;
5646 spec->num_dmics = STAC927X_NUM_DMICS; 5662 spec->num_dmics = STAC927X_NUM_DMICS;
5647 5663
@@ -5854,6 +5870,8 @@ static unsigned int *stac9872_brd_tbl[STAC_9872_MODELS] = {
5854}; 5870};
5855 5871
5856static struct snd_pci_quirk stac9872_cfg_tbl[] = { 5872static struct snd_pci_quirk stac9872_cfg_tbl[] = {
5873 SND_PCI_QUIRK_MASK(0x104d, 0xfff0, 0x81e0,
5874 "Sony VAIO F/S", STAC_9872_VAIO),
5857 {} /* terminator */ 5875 {} /* terminator */
5858}; 5876};
5859 5877
@@ -5866,6 +5884,8 @@ static int patch_stac9872(struct hda_codec *codec)
5866 if (spec == NULL) 5884 if (spec == NULL)
5867 return -ENOMEM; 5885 return -ENOMEM;
5868 codec->spec = spec; 5886 codec->spec = spec;
5887 spec->num_pins = ARRAY_SIZE(stac9872_pin_nids);
5888 spec->pin_nids = stac9872_pin_nids;
5869 5889
5870 spec->board_config = snd_hda_check_board_config(codec, STAC_9872_MODELS, 5890 spec->board_config = snd_hda_check_board_config(codec, STAC_9872_MODELS,
5871 stac9872_models, 5891 stac9872_models,
@@ -5877,8 +5897,6 @@ static int patch_stac9872(struct hda_codec *codec)
5877 stac92xx_set_config_regs(codec, 5897 stac92xx_set_config_regs(codec,
5878 stac9872_brd_tbl[spec->board_config]); 5898 stac9872_brd_tbl[spec->board_config]);
5879 5899
5880 spec->num_pins = ARRAY_SIZE(stac9872_pin_nids);
5881 spec->pin_nids = stac9872_pin_nids;
5882 spec->multiout.dac_nids = spec->dac_nids; 5900 spec->multiout.dac_nids = spec->dac_nids;
5883 spec->num_adcs = ARRAY_SIZE(stac9872_adc_nids); 5901 spec->num_adcs = ARRAY_SIZE(stac9872_adc_nids);
5884 spec->adc_nids = stac9872_adc_nids; 5902 spec->adc_nids = stac9872_adc_nids;