diff options
Diffstat (limited to 'sound/pci/hda/patch_realtek.c')
-rw-r--r-- | sound/pci/hda/patch_realtek.c | 96 |
1 files changed, 87 insertions, 9 deletions
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 2f7b065f9ac4..fe96428aa403 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c | |||
@@ -111,6 +111,7 @@ struct alc_spec { | |||
111 | void (*power_hook)(struct hda_codec *codec); | 111 | void (*power_hook)(struct hda_codec *codec); |
112 | #endif | 112 | #endif |
113 | void (*shutup)(struct hda_codec *codec); | 113 | void (*shutup)(struct hda_codec *codec); |
114 | void (*reboot_notify)(struct hda_codec *codec); | ||
114 | 115 | ||
115 | int init_amp; | 116 | int init_amp; |
116 | int codec_variant; /* flag for other variants */ | 117 | int codec_variant; /* flag for other variants */ |
@@ -773,6 +774,25 @@ static inline void alc_shutup(struct hda_codec *codec) | |||
773 | snd_hda_shutup_pins(codec); | 774 | snd_hda_shutup_pins(codec); |
774 | } | 775 | } |
775 | 776 | ||
777 | static void alc_reboot_notify(struct hda_codec *codec) | ||
778 | { | ||
779 | struct alc_spec *spec = codec->spec; | ||
780 | |||
781 | if (spec && spec->reboot_notify) | ||
782 | spec->reboot_notify(codec); | ||
783 | else | ||
784 | alc_shutup(codec); | ||
785 | } | ||
786 | |||
787 | /* power down codec to D3 at reboot/shutdown; set as reboot_notify ops */ | ||
788 | static void alc_d3_at_reboot(struct hda_codec *codec) | ||
789 | { | ||
790 | snd_hda_codec_set_power_to_all(codec, codec->core.afg, AC_PWRST_D3); | ||
791 | snd_hda_codec_write(codec, codec->core.afg, 0, | ||
792 | AC_VERB_SET_POWER_STATE, AC_PWRST_D3); | ||
793 | msleep(10); | ||
794 | } | ||
795 | |||
776 | #define alc_free snd_hda_gen_free | 796 | #define alc_free snd_hda_gen_free |
777 | 797 | ||
778 | #ifdef CONFIG_PM | 798 | #ifdef CONFIG_PM |
@@ -818,7 +838,7 @@ static const struct hda_codec_ops alc_patch_ops = { | |||
818 | .suspend = alc_suspend, | 838 | .suspend = alc_suspend, |
819 | .check_power_status = snd_hda_gen_check_power_status, | 839 | .check_power_status = snd_hda_gen_check_power_status, |
820 | #endif | 840 | #endif |
821 | .reboot_notify = alc_shutup, | 841 | .reboot_notify = alc_reboot_notify, |
822 | }; | 842 | }; |
823 | 843 | ||
824 | 844 | ||
@@ -1755,10 +1775,12 @@ enum { | |||
1755 | ALC889_FIXUP_MBA11_VREF, | 1775 | ALC889_FIXUP_MBA11_VREF, |
1756 | ALC889_FIXUP_MBA21_VREF, | 1776 | ALC889_FIXUP_MBA21_VREF, |
1757 | ALC889_FIXUP_MP11_VREF, | 1777 | ALC889_FIXUP_MP11_VREF, |
1778 | ALC889_FIXUP_MP41_VREF, | ||
1758 | ALC882_FIXUP_INV_DMIC, | 1779 | ALC882_FIXUP_INV_DMIC, |
1759 | ALC882_FIXUP_NO_PRIMARY_HP, | 1780 | ALC882_FIXUP_NO_PRIMARY_HP, |
1760 | ALC887_FIXUP_ASUS_BASS, | 1781 | ALC887_FIXUP_ASUS_BASS, |
1761 | ALC887_FIXUP_BASS_CHMAP, | 1782 | ALC887_FIXUP_BASS_CHMAP, |
1783 | ALC882_FIXUP_DISABLE_AAMIX, | ||
1762 | }; | 1784 | }; |
1763 | 1785 | ||
1764 | static void alc889_fixup_coef(struct hda_codec *codec, | 1786 | static void alc889_fixup_coef(struct hda_codec *codec, |
@@ -1842,7 +1864,7 @@ static void alc889_fixup_mbp_vref(struct hda_codec *codec, | |||
1842 | const struct hda_fixup *fix, int action) | 1864 | const struct hda_fixup *fix, int action) |
1843 | { | 1865 | { |
1844 | struct alc_spec *spec = codec->spec; | 1866 | struct alc_spec *spec = codec->spec; |
1845 | static hda_nid_t nids[2] = { 0x14, 0x15 }; | 1867 | static hda_nid_t nids[3] = { 0x14, 0x15, 0x19 }; |
1846 | int i; | 1868 | int i; |
1847 | 1869 | ||
1848 | if (action != HDA_FIXUP_ACT_INIT) | 1870 | if (action != HDA_FIXUP_ACT_INIT) |
@@ -1920,6 +1942,8 @@ static void alc882_fixup_no_primary_hp(struct hda_codec *codec, | |||
1920 | 1942 | ||
1921 | static void alc_fixup_bass_chmap(struct hda_codec *codec, | 1943 | static void alc_fixup_bass_chmap(struct hda_codec *codec, |
1922 | const struct hda_fixup *fix, int action); | 1944 | const struct hda_fixup *fix, int action); |
1945 | static void alc_fixup_disable_aamix(struct hda_codec *codec, | ||
1946 | const struct hda_fixup *fix, int action); | ||
1923 | 1947 | ||
1924 | static const struct hda_fixup alc882_fixups[] = { | 1948 | static const struct hda_fixup alc882_fixups[] = { |
1925 | [ALC882_FIXUP_ABIT_AW9D_MAX] = { | 1949 | [ALC882_FIXUP_ABIT_AW9D_MAX] = { |
@@ -2130,6 +2154,12 @@ static const struct hda_fixup alc882_fixups[] = { | |||
2130 | .chained = true, | 2154 | .chained = true, |
2131 | .chain_id = ALC885_FIXUP_MACPRO_GPIO, | 2155 | .chain_id = ALC885_FIXUP_MACPRO_GPIO, |
2132 | }, | 2156 | }, |
2157 | [ALC889_FIXUP_MP41_VREF] = { | ||
2158 | .type = HDA_FIXUP_FUNC, | ||
2159 | .v.func = alc889_fixup_mbp_vref, | ||
2160 | .chained = true, | ||
2161 | .chain_id = ALC885_FIXUP_MACPRO_GPIO, | ||
2162 | }, | ||
2133 | [ALC882_FIXUP_INV_DMIC] = { | 2163 | [ALC882_FIXUP_INV_DMIC] = { |
2134 | .type = HDA_FIXUP_FUNC, | 2164 | .type = HDA_FIXUP_FUNC, |
2135 | .v.func = alc_fixup_inv_dmic, | 2165 | .v.func = alc_fixup_inv_dmic, |
@@ -2151,6 +2181,10 @@ static const struct hda_fixup alc882_fixups[] = { | |||
2151 | .type = HDA_FIXUP_FUNC, | 2181 | .type = HDA_FIXUP_FUNC, |
2152 | .v.func = alc_fixup_bass_chmap, | 2182 | .v.func = alc_fixup_bass_chmap, |
2153 | }, | 2183 | }, |
2184 | [ALC882_FIXUP_DISABLE_AAMIX] = { | ||
2185 | .type = HDA_FIXUP_FUNC, | ||
2186 | .v.func = alc_fixup_disable_aamix, | ||
2187 | }, | ||
2154 | }; | 2188 | }; |
2155 | 2189 | ||
2156 | static const struct snd_pci_quirk alc882_fixup_tbl[] = { | 2190 | static const struct snd_pci_quirk alc882_fixup_tbl[] = { |
@@ -2208,7 +2242,7 @@ static const struct snd_pci_quirk alc882_fixup_tbl[] = { | |||
2208 | SND_PCI_QUIRK(0x106b, 0x3f00, "Macbook 5,1", ALC889_FIXUP_IMAC91_VREF), | 2242 | SND_PCI_QUIRK(0x106b, 0x3f00, "Macbook 5,1", ALC889_FIXUP_IMAC91_VREF), |
2209 | SND_PCI_QUIRK(0x106b, 0x4000, "MacbookPro 5,1", ALC889_FIXUP_IMAC91_VREF), | 2243 | SND_PCI_QUIRK(0x106b, 0x4000, "MacbookPro 5,1", ALC889_FIXUP_IMAC91_VREF), |
2210 | SND_PCI_QUIRK(0x106b, 0x4100, "Macmini 3,1", ALC889_FIXUP_IMAC91_VREF), | 2244 | SND_PCI_QUIRK(0x106b, 0x4100, "Macmini 3,1", ALC889_FIXUP_IMAC91_VREF), |
2211 | SND_PCI_QUIRK(0x106b, 0x4200, "Mac Pro 5,1", ALC885_FIXUP_MACPRO_GPIO), | 2245 | SND_PCI_QUIRK(0x106b, 0x4200, "Mac Pro 4,1/5,1", ALC889_FIXUP_MP41_VREF), |
2212 | SND_PCI_QUIRK(0x106b, 0x4300, "iMac 9,1", ALC889_FIXUP_IMAC91_VREF), | 2246 | SND_PCI_QUIRK(0x106b, 0x4300, "iMac 9,1", ALC889_FIXUP_IMAC91_VREF), |
2213 | SND_PCI_QUIRK(0x106b, 0x4600, "MacbookPro 5,2", ALC889_FIXUP_IMAC91_VREF), | 2247 | SND_PCI_QUIRK(0x106b, 0x4600, "MacbookPro 5,2", ALC889_FIXUP_IMAC91_VREF), |
2214 | SND_PCI_QUIRK(0x106b, 0x4900, "iMac 9,1 Aluminum", ALC889_FIXUP_IMAC91_VREF), | 2248 | SND_PCI_QUIRK(0x106b, 0x4900, "iMac 9,1 Aluminum", ALC889_FIXUP_IMAC91_VREF), |
@@ -2218,6 +2252,7 @@ static const struct snd_pci_quirk alc882_fixup_tbl[] = { | |||
2218 | SND_PCI_QUIRK(0x1462, 0x7350, "MSI-7350", ALC889_FIXUP_CD), | 2252 | SND_PCI_QUIRK(0x1462, 0x7350, "MSI-7350", ALC889_FIXUP_CD), |
2219 | SND_PCI_QUIRK_VENDOR(0x1462, "MSI", ALC882_FIXUP_GPIO3), | 2253 | SND_PCI_QUIRK_VENDOR(0x1462, "MSI", ALC882_FIXUP_GPIO3), |
2220 | SND_PCI_QUIRK(0x1458, 0xa002, "Gigabyte EP45-DS3/Z87X-UD3H", ALC889_FIXUP_FRONT_HP_NO_PRESENCE), | 2254 | SND_PCI_QUIRK(0x1458, 0xa002, "Gigabyte EP45-DS3/Z87X-UD3H", ALC889_FIXUP_FRONT_HP_NO_PRESENCE), |
2255 | SND_PCI_QUIRK(0x1458, 0xa182, "Gigabyte Z170X-UD3", ALC882_FIXUP_DISABLE_AAMIX), | ||
2221 | SND_PCI_QUIRK(0x147b, 0x107a, "Abit AW9D-MAX", ALC882_FIXUP_ABIT_AW9D_MAX), | 2256 | SND_PCI_QUIRK(0x147b, 0x107a, "Abit AW9D-MAX", ALC882_FIXUP_ABIT_AW9D_MAX), |
2222 | SND_PCI_QUIRK_VENDOR(0x1558, "Clevo laptop", ALC882_FIXUP_EAPD), | 2257 | SND_PCI_QUIRK_VENDOR(0x1558, "Clevo laptop", ALC882_FIXUP_EAPD), |
2223 | SND_PCI_QUIRK(0x161f, 0x2054, "Medion laptop", ALC883_FIXUP_EAPD), | 2258 | SND_PCI_QUIRK(0x161f, 0x2054, "Medion laptop", ALC883_FIXUP_EAPD), |
@@ -4190,6 +4225,8 @@ static void alc_fixup_tpt440_dock(struct hda_codec *codec, | |||
4190 | struct alc_spec *spec = codec->spec; | 4225 | struct alc_spec *spec = codec->spec; |
4191 | 4226 | ||
4192 | if (action == HDA_FIXUP_ACT_PRE_PROBE) { | 4227 | if (action == HDA_FIXUP_ACT_PRE_PROBE) { |
4228 | spec->shutup = alc_no_shutup; /* reduce click noise */ | ||
4229 | spec->reboot_notify = alc_d3_at_reboot; /* reduce noise */ | ||
4193 | spec->parse_flags = HDA_PINCFG_NO_HP_FIXUP; | 4230 | spec->parse_flags = HDA_PINCFG_NO_HP_FIXUP; |
4194 | codec->power_save_node = 0; /* avoid click noises */ | 4231 | codec->power_save_node = 0; /* avoid click noises */ |
4195 | snd_hda_apply_pincfgs(codec, pincfgs); | 4232 | snd_hda_apply_pincfgs(codec, pincfgs); |
@@ -4570,6 +4607,7 @@ enum { | |||
4570 | ALC255_FIXUP_HEADSET_MODE_NO_HP_MIC, | 4607 | ALC255_FIXUP_HEADSET_MODE_NO_HP_MIC, |
4571 | ALC293_FIXUP_DELL1_MIC_NO_PRESENCE, | 4608 | ALC293_FIXUP_DELL1_MIC_NO_PRESENCE, |
4572 | ALC292_FIXUP_TPT440_DOCK, | 4609 | ALC292_FIXUP_TPT440_DOCK, |
4610 | ALC292_FIXUP_TPT440, | ||
4573 | ALC283_FIXUP_BXBT2807_MIC, | 4611 | ALC283_FIXUP_BXBT2807_MIC, |
4574 | ALC255_FIXUP_DELL_WMI_MIC_MUTE_LED, | 4612 | ALC255_FIXUP_DELL_WMI_MIC_MUTE_LED, |
4575 | ALC282_FIXUP_ASPIRE_V5_PINS, | 4613 | ALC282_FIXUP_ASPIRE_V5_PINS, |
@@ -4585,8 +4623,11 @@ enum { | |||
4585 | ALC288_FIXUP_DISABLE_AAMIX, | 4623 | ALC288_FIXUP_DISABLE_AAMIX, |
4586 | ALC292_FIXUP_DELL_E7X, | 4624 | ALC292_FIXUP_DELL_E7X, |
4587 | ALC292_FIXUP_DISABLE_AAMIX, | 4625 | ALC292_FIXUP_DISABLE_AAMIX, |
4626 | ALC293_FIXUP_DISABLE_AAMIX_MULTIJACK, | ||
4588 | ALC298_FIXUP_DELL1_MIC_NO_PRESENCE, | 4627 | ALC298_FIXUP_DELL1_MIC_NO_PRESENCE, |
4589 | ALC275_FIXUP_DELL_XPS, | 4628 | ALC275_FIXUP_DELL_XPS, |
4629 | ALC256_FIXUP_DELL_XPS_13_HEADPHONE_NOISE, | ||
4630 | ALC293_FIXUP_LENOVO_SPK_NOISE, | ||
4590 | }; | 4631 | }; |
4591 | 4632 | ||
4592 | static const struct hda_fixup alc269_fixups[] = { | 4633 | static const struct hda_fixup alc269_fixups[] = { |
@@ -5041,6 +5082,12 @@ static const struct hda_fixup alc269_fixups[] = { | |||
5041 | .chained = true, | 5082 | .chained = true, |
5042 | .chain_id = ALC269_FIXUP_LIMIT_INT_MIC_BOOST | 5083 | .chain_id = ALC269_FIXUP_LIMIT_INT_MIC_BOOST |
5043 | }, | 5084 | }, |
5085 | [ALC292_FIXUP_TPT440] = { | ||
5086 | .type = HDA_FIXUP_FUNC, | ||
5087 | .v.func = alc_fixup_disable_aamix, | ||
5088 | .chained = true, | ||
5089 | .chain_id = ALC292_FIXUP_TPT440_DOCK, | ||
5090 | }, | ||
5044 | [ALC283_FIXUP_BXBT2807_MIC] = { | 5091 | [ALC283_FIXUP_BXBT2807_MIC] = { |
5045 | .type = HDA_FIXUP_PINS, | 5092 | .type = HDA_FIXUP_PINS, |
5046 | .v.pins = (const struct hda_pintbl[]) { | 5093 | .v.pins = (const struct hda_pintbl[]) { |
@@ -5140,6 +5187,12 @@ static const struct hda_fixup alc269_fixups[] = { | |||
5140 | .chained = true, | 5187 | .chained = true, |
5141 | .chain_id = ALC269_FIXUP_DELL2_MIC_NO_PRESENCE | 5188 | .chain_id = ALC269_FIXUP_DELL2_MIC_NO_PRESENCE |
5142 | }, | 5189 | }, |
5190 | [ALC293_FIXUP_DISABLE_AAMIX_MULTIJACK] = { | ||
5191 | .type = HDA_FIXUP_FUNC, | ||
5192 | .v.func = alc_fixup_disable_aamix, | ||
5193 | .chained = true, | ||
5194 | .chain_id = ALC293_FIXUP_DELL1_MIC_NO_PRESENCE | ||
5195 | }, | ||
5143 | [ALC292_FIXUP_DELL_E7X] = { | 5196 | [ALC292_FIXUP_DELL_E7X] = { |
5144 | .type = HDA_FIXUP_FUNC, | 5197 | .type = HDA_FIXUP_FUNC, |
5145 | .v.func = alc_fixup_dell_xps13, | 5198 | .v.func = alc_fixup_dell_xps13, |
@@ -5167,6 +5220,23 @@ static const struct hda_fixup alc269_fixups[] = { | |||
5167 | {} | 5220 | {} |
5168 | } | 5221 | } |
5169 | }, | 5222 | }, |
5223 | [ALC256_FIXUP_DELL_XPS_13_HEADPHONE_NOISE] = { | ||
5224 | .type = HDA_FIXUP_VERBS, | ||
5225 | .v.verbs = (const struct hda_verb[]) { | ||
5226 | /* Disable pass-through path for FRONT 14h */ | ||
5227 | {0x20, AC_VERB_SET_COEF_INDEX, 0x36}, | ||
5228 | {0x20, AC_VERB_SET_PROC_COEF, 0x1737}, | ||
5229 | {} | ||
5230 | }, | ||
5231 | .chained = true, | ||
5232 | .chain_id = ALC255_FIXUP_DELL1_MIC_NO_PRESENCE | ||
5233 | }, | ||
5234 | [ALC293_FIXUP_LENOVO_SPK_NOISE] = { | ||
5235 | .type = HDA_FIXUP_FUNC, | ||
5236 | .v.func = alc_fixup_disable_aamix, | ||
5237 | .chained = true, | ||
5238 | .chain_id = ALC269_FIXUP_THINKPAD_ACPI | ||
5239 | }, | ||
5170 | }; | 5240 | }; |
5171 | 5241 | ||
5172 | static const struct snd_pci_quirk alc269_fixup_tbl[] = { | 5242 | static const struct snd_pci_quirk alc269_fixup_tbl[] = { |
@@ -5180,8 +5250,10 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { | |||
5180 | SND_PCI_QUIRK(0x1025, 0x0742, "Acer AO756", ALC271_FIXUP_HP_GATE_MIC_JACK), | 5250 | SND_PCI_QUIRK(0x1025, 0x0742, "Acer AO756", ALC271_FIXUP_HP_GATE_MIC_JACK), |
5181 | SND_PCI_QUIRK(0x1025, 0x0775, "Acer Aspire E1-572", ALC271_FIXUP_HP_GATE_MIC_JACK_E1_572), | 5251 | SND_PCI_QUIRK(0x1025, 0x0775, "Acer Aspire E1-572", ALC271_FIXUP_HP_GATE_MIC_JACK_E1_572), |
5182 | SND_PCI_QUIRK(0x1025, 0x079b, "Acer Aspire V5-573G", ALC282_FIXUP_ASPIRE_V5_PINS), | 5252 | SND_PCI_QUIRK(0x1025, 0x079b, "Acer Aspire V5-573G", ALC282_FIXUP_ASPIRE_V5_PINS), |
5253 | SND_PCI_QUIRK(0x1025, 0x106d, "Acer Cloudbook 14", ALC283_FIXUP_CHROME_BOOK), | ||
5183 | SND_PCI_QUIRK(0x1028, 0x0470, "Dell M101z", ALC269_FIXUP_DELL_M101Z), | 5254 | SND_PCI_QUIRK(0x1028, 0x0470, "Dell M101z", ALC269_FIXUP_DELL_M101Z), |
5184 | SND_PCI_QUIRK(0x1028, 0x054b, "Dell XPS one 2710", ALC275_FIXUP_DELL_XPS), | 5255 | SND_PCI_QUIRK(0x1028, 0x054b, "Dell XPS one 2710", ALC275_FIXUP_DELL_XPS), |
5256 | SND_PCI_QUIRK(0x1028, 0x05bd, "Dell Latitude E6440", ALC292_FIXUP_DELL_E7X), | ||
5185 | SND_PCI_QUIRK(0x1028, 0x05ca, "Dell Latitude E7240", ALC292_FIXUP_DELL_E7X), | 5257 | SND_PCI_QUIRK(0x1028, 0x05ca, "Dell Latitude E7240", ALC292_FIXUP_DELL_E7X), |
5186 | SND_PCI_QUIRK(0x1028, 0x05cb, "Dell Latitude E7440", ALC292_FIXUP_DELL_E7X), | 5258 | SND_PCI_QUIRK(0x1028, 0x05cb, "Dell Latitude E7440", ALC292_FIXUP_DELL_E7X), |
5187 | SND_PCI_QUIRK(0x1028, 0x05da, "Dell Vostro 5460", ALC290_FIXUP_SUBWOOFER), | 5259 | SND_PCI_QUIRK(0x1028, 0x05da, "Dell Vostro 5460", ALC290_FIXUP_SUBWOOFER), |
@@ -5199,11 +5271,12 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { | |||
5199 | SND_PCI_QUIRK(0x1028, 0x06c7, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE), | 5271 | SND_PCI_QUIRK(0x1028, 0x06c7, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE), |
5200 | SND_PCI_QUIRK(0x1028, 0x06d9, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE), | 5272 | SND_PCI_QUIRK(0x1028, 0x06d9, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE), |
5201 | SND_PCI_QUIRK(0x1028, 0x06da, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE), | 5273 | SND_PCI_QUIRK(0x1028, 0x06da, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE), |
5202 | SND_PCI_QUIRK(0x1028, 0x06db, "Dell", ALC292_FIXUP_DISABLE_AAMIX), | 5274 | SND_PCI_QUIRK(0x1028, 0x06db, "Dell", ALC293_FIXUP_DISABLE_AAMIX_MULTIJACK), |
5203 | SND_PCI_QUIRK(0x1028, 0x06dd, "Dell", ALC292_FIXUP_DISABLE_AAMIX), | 5275 | SND_PCI_QUIRK(0x1028, 0x06dd, "Dell", ALC293_FIXUP_DISABLE_AAMIX_MULTIJACK), |
5204 | SND_PCI_QUIRK(0x1028, 0x06de, "Dell", ALC292_FIXUP_DISABLE_AAMIX), | 5276 | SND_PCI_QUIRK(0x1028, 0x06de, "Dell", ALC293_FIXUP_DISABLE_AAMIX_MULTIJACK), |
5205 | SND_PCI_QUIRK(0x1028, 0x06df, "Dell", ALC292_FIXUP_DISABLE_AAMIX), | 5277 | SND_PCI_QUIRK(0x1028, 0x06df, "Dell", ALC293_FIXUP_DISABLE_AAMIX_MULTIJACK), |
5206 | SND_PCI_QUIRK(0x1028, 0x06e0, "Dell", ALC292_FIXUP_DISABLE_AAMIX), | 5278 | SND_PCI_QUIRK(0x1028, 0x06e0, "Dell", ALC293_FIXUP_DISABLE_AAMIX_MULTIJACK), |
5279 | SND_PCI_QUIRK(0x1028, 0x0704, "Dell XPS 13", ALC256_FIXUP_DELL_XPS_13_HEADPHONE_NOISE), | ||
5207 | SND_PCI_QUIRK(0x1028, 0x164a, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE), | 5280 | SND_PCI_QUIRK(0x1028, 0x164a, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE), |
5208 | SND_PCI_QUIRK(0x1028, 0x164b, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE), | 5281 | SND_PCI_QUIRK(0x1028, 0x164b, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE), |
5209 | SND_PCI_QUIRK(0x103c, 0x1586, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC2), | 5282 | SND_PCI_QUIRK(0x103c, 0x1586, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC2), |
@@ -5302,15 +5375,17 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { | |||
5302 | SND_PCI_QUIRK(0x17aa, 0x21fb, "Thinkpad T430s", ALC269_FIXUP_LENOVO_DOCK), | 5375 | SND_PCI_QUIRK(0x17aa, 0x21fb, "Thinkpad T430s", ALC269_FIXUP_LENOVO_DOCK), |
5303 | SND_PCI_QUIRK(0x17aa, 0x2203, "Thinkpad X230 Tablet", ALC269_FIXUP_LENOVO_DOCK), | 5376 | SND_PCI_QUIRK(0x17aa, 0x2203, "Thinkpad X230 Tablet", ALC269_FIXUP_LENOVO_DOCK), |
5304 | SND_PCI_QUIRK(0x17aa, 0x2208, "Thinkpad T431s", ALC269_FIXUP_LENOVO_DOCK), | 5377 | SND_PCI_QUIRK(0x17aa, 0x2208, "Thinkpad T431s", ALC269_FIXUP_LENOVO_DOCK), |
5305 | SND_PCI_QUIRK(0x17aa, 0x220c, "Thinkpad T440s", ALC292_FIXUP_TPT440_DOCK), | 5378 | SND_PCI_QUIRK(0x17aa, 0x220c, "Thinkpad T440s", ALC292_FIXUP_TPT440), |
5306 | SND_PCI_QUIRK(0x17aa, 0x220e, "Thinkpad T440p", ALC292_FIXUP_TPT440_DOCK), | 5379 | SND_PCI_QUIRK(0x17aa, 0x220e, "Thinkpad T440p", ALC292_FIXUP_TPT440_DOCK), |
5307 | SND_PCI_QUIRK(0x17aa, 0x2210, "Thinkpad T540p", ALC292_FIXUP_TPT440_DOCK), | 5380 | SND_PCI_QUIRK(0x17aa, 0x2210, "Thinkpad T540p", ALC292_FIXUP_TPT440_DOCK), |
5308 | SND_PCI_QUIRK(0x17aa, 0x2211, "Thinkpad W541", ALC292_FIXUP_TPT440_DOCK), | 5381 | SND_PCI_QUIRK(0x17aa, 0x2211, "Thinkpad W541", ALC292_FIXUP_TPT440_DOCK), |
5309 | SND_PCI_QUIRK(0x17aa, 0x2212, "Thinkpad T440", ALC292_FIXUP_TPT440_DOCK), | 5382 | SND_PCI_QUIRK(0x17aa, 0x2212, "Thinkpad T440", ALC292_FIXUP_TPT440_DOCK), |
5310 | SND_PCI_QUIRK(0x17aa, 0x2214, "Thinkpad X240", ALC292_FIXUP_TPT440_DOCK), | 5383 | SND_PCI_QUIRK(0x17aa, 0x2214, "Thinkpad X240", ALC292_FIXUP_TPT440_DOCK), |
5311 | SND_PCI_QUIRK(0x17aa, 0x2215, "Thinkpad", ALC269_FIXUP_LIMIT_INT_MIC_BOOST), | 5384 | SND_PCI_QUIRK(0x17aa, 0x2215, "Thinkpad", ALC269_FIXUP_LIMIT_INT_MIC_BOOST), |
5385 | SND_PCI_QUIRK(0x17aa, 0x2218, "Thinkpad X1 Carbon 2nd", ALC292_FIXUP_TPT440_DOCK), | ||
5312 | SND_PCI_QUIRK(0x17aa, 0x2223, "ThinkPad T550", ALC292_FIXUP_TPT440_DOCK), | 5386 | SND_PCI_QUIRK(0x17aa, 0x2223, "ThinkPad T550", ALC292_FIXUP_TPT440_DOCK), |
5313 | SND_PCI_QUIRK(0x17aa, 0x2226, "ThinkPad X250", ALC292_FIXUP_TPT440_DOCK), | 5387 | SND_PCI_QUIRK(0x17aa, 0x2226, "ThinkPad X250", ALC292_FIXUP_TPT440_DOCK), |
5388 | SND_PCI_QUIRK(0x17aa, 0x2233, "Thinkpad", ALC293_FIXUP_LENOVO_SPK_NOISE), | ||
5314 | SND_PCI_QUIRK(0x17aa, 0x3977, "IdeaPad S210", ALC283_FIXUP_INT_MIC), | 5389 | SND_PCI_QUIRK(0x17aa, 0x3977, "IdeaPad S210", ALC283_FIXUP_INT_MIC), |
5315 | SND_PCI_QUIRK(0x17aa, 0x3978, "IdeaPad Y410P", ALC269_FIXUP_NO_SHUTUP), | 5390 | SND_PCI_QUIRK(0x17aa, 0x3978, "IdeaPad Y410P", ALC269_FIXUP_NO_SHUTUP), |
5316 | SND_PCI_QUIRK(0x17aa, 0x5013, "Thinkpad", ALC269_FIXUP_LIMIT_INT_MIC_BOOST), | 5391 | SND_PCI_QUIRK(0x17aa, 0x5013, "Thinkpad", ALC269_FIXUP_LIMIT_INT_MIC_BOOST), |
@@ -5320,6 +5395,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { | |||
5320 | SND_PCI_QUIRK(0x17aa, 0x5034, "Thinkpad T450", ALC292_FIXUP_TPT440_DOCK), | 5395 | SND_PCI_QUIRK(0x17aa, 0x5034, "Thinkpad T450", ALC292_FIXUP_TPT440_DOCK), |
5321 | SND_PCI_QUIRK(0x17aa, 0x5036, "Thinkpad T450s", ALC292_FIXUP_TPT440_DOCK), | 5396 | SND_PCI_QUIRK(0x17aa, 0x5036, "Thinkpad T450s", ALC292_FIXUP_TPT440_DOCK), |
5322 | SND_PCI_QUIRK(0x17aa, 0x503c, "Thinkpad L450", ALC292_FIXUP_TPT440_DOCK), | 5397 | SND_PCI_QUIRK(0x17aa, 0x503c, "Thinkpad L450", ALC292_FIXUP_TPT440_DOCK), |
5398 | SND_PCI_QUIRK(0x17aa, 0x504b, "Thinkpad", ALC293_FIXUP_LENOVO_SPK_NOISE), | ||
5323 | SND_PCI_QUIRK(0x17aa, 0x5109, "Thinkpad", ALC269_FIXUP_LIMIT_INT_MIC_BOOST), | 5399 | SND_PCI_QUIRK(0x17aa, 0x5109, "Thinkpad", ALC269_FIXUP_LIMIT_INT_MIC_BOOST), |
5324 | SND_PCI_QUIRK(0x17aa, 0x3bf8, "Quanta FL1", ALC269_FIXUP_PCM_44K), | 5400 | SND_PCI_QUIRK(0x17aa, 0x3bf8, "Quanta FL1", ALC269_FIXUP_PCM_44K), |
5325 | SND_PCI_QUIRK(0x17aa, 0x9e54, "LENOVO NB", ALC269_FIXUP_LENOVO_EAPD), | 5401 | SND_PCI_QUIRK(0x17aa, 0x9e54, "LENOVO NB", ALC269_FIXUP_LENOVO_EAPD), |
@@ -5400,6 +5476,7 @@ static const struct hda_model_fixup alc269_fixup_models[] = { | |||
5400 | {.id = ALC283_FIXUP_CHROME_BOOK, .name = "alc283-dac-wcaps"}, | 5476 | {.id = ALC283_FIXUP_CHROME_BOOK, .name = "alc283-dac-wcaps"}, |
5401 | {.id = ALC283_FIXUP_SENSE_COMBO_JACK, .name = "alc283-sense-combo"}, | 5477 | {.id = ALC283_FIXUP_SENSE_COMBO_JACK, .name = "alc283-sense-combo"}, |
5402 | {.id = ALC292_FIXUP_TPT440_DOCK, .name = "tpt440-dock"}, | 5478 | {.id = ALC292_FIXUP_TPT440_DOCK, .name = "tpt440-dock"}, |
5479 | {.id = ALC292_FIXUP_TPT440, .name = "tpt440"}, | ||
5403 | {} | 5480 | {} |
5404 | }; | 5481 | }; |
5405 | 5482 | ||
@@ -6386,6 +6463,7 @@ static const struct hda_fixup alc662_fixups[] = { | |||
6386 | static const struct snd_pci_quirk alc662_fixup_tbl[] = { | 6463 | static const struct snd_pci_quirk alc662_fixup_tbl[] = { |
6387 | SND_PCI_QUIRK(0x1019, 0x9087, "ECS", ALC662_FIXUP_ASUS_MODE2), | 6464 | SND_PCI_QUIRK(0x1019, 0x9087, "ECS", ALC662_FIXUP_ASUS_MODE2), |
6388 | SND_PCI_QUIRK(0x1025, 0x022f, "Acer Aspire One", ALC662_FIXUP_INV_DMIC), | 6465 | SND_PCI_QUIRK(0x1025, 0x022f, "Acer Aspire One", ALC662_FIXUP_INV_DMIC), |
6466 | SND_PCI_QUIRK(0x1025, 0x0241, "Packard Bell DOTS", ALC662_FIXUP_INV_DMIC), | ||
6389 | SND_PCI_QUIRK(0x1025, 0x0308, "Acer Aspire 8942G", ALC662_FIXUP_ASPIRE), | 6467 | SND_PCI_QUIRK(0x1025, 0x0308, "Acer Aspire 8942G", ALC662_FIXUP_ASPIRE), |
6390 | SND_PCI_QUIRK(0x1025, 0x031c, "Gateway NV79", ALC662_FIXUP_SKU_IGNORE), | 6468 | SND_PCI_QUIRK(0x1025, 0x031c, "Gateway NV79", ALC662_FIXUP_SKU_IGNORE), |
6391 | SND_PCI_QUIRK(0x1025, 0x0349, "eMachines eM250", ALC662_FIXUP_INV_DMIC), | 6469 | SND_PCI_QUIRK(0x1025, 0x0349, "eMachines eM250", ALC662_FIXUP_INV_DMIC), |