diff options
Diffstat (limited to 'sound/pci/hda/patch_sigmatel.c')
-rw-r--r-- | sound/pci/hda/patch_sigmatel.c | 30 |
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 | ||
5856 | static struct snd_pci_quirk stac9872_cfg_tbl[] = { | 5872 | static 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; |