aboutsummaryrefslogtreecommitdiffstats
path: root/sound
diff options
context:
space:
mode:
Diffstat (limited to 'sound')
-rw-r--r--sound/pci/hda/alc882_quirks.c150
1 files changed, 0 insertions, 150 deletions
diff --git a/sound/pci/hda/alc882_quirks.c b/sound/pci/hda/alc882_quirks.c
index 0f7f5e7346b8..80321a116ca0 100644
--- a/sound/pci/hda/alc882_quirks.c
+++ b/sound/pci/hda/alc882_quirks.c
@@ -30,9 +30,6 @@ enum {
30 ALC888_ACER_ASPIRE_6530G, 30 ALC888_ACER_ASPIRE_6530G,
31 ALC888_ACER_ASPIRE_8930G, 31 ALC888_ACER_ASPIRE_8930G,
32 ALC888_ACER_ASPIRE_7730G, 32 ALC888_ACER_ASPIRE_7730G,
33 ALC888_3ST_HP,
34 ALC888_6ST_DELL,
35 ALC883_CLEVO_M540R,
36 ALC883_CLEVO_M720, 33 ALC883_CLEVO_M720,
37 ALC883_3ST_6ch_INTEL, 34 ALC883_3ST_6ch_INTEL,
38 ALC889A_INTEL, 35 ALC889A_INTEL,
@@ -1980,22 +1977,6 @@ static const struct snd_kcontrol_new alc883_chmode_mixer[] = {
1980 { } /* end */ 1977 { } /* end */
1981}; 1978};
1982 1979
1983static const struct hda_verb alc883_clevo_m540r_verbs[] = {
1984 /* HP */
1985 {0x15, AC_VERB_SET_CONNECT_SEL, 0x00},
1986 {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP},
1987 /* Int speaker */
1988 /*{0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP},*/
1989
1990 /* enable unsolicited event */
1991 /*
1992 {0x15, AC_VERB_SET_UNSOLICITED_ENABLE, ALC_HP_EVENT | AC_USRSP_EN},
1993 {0x18, AC_VERB_SET_UNSOLICITED_ENABLE, ALC_MIC_EVENT | AC_USRSP_EN},
1994 */
1995
1996 { } /* end */
1997};
1998
1999static const struct hda_verb alc883_clevo_m720_verbs[] = { 1980static const struct hda_verb alc883_clevo_m720_verbs[] = {
2000 /* HP */ 1981 /* HP */
2001 {0x15, AC_VERB_SET_CONNECT_SEL, 0x00}, 1982 {0x15, AC_VERB_SET_CONNECT_SEL, 0x00},
@@ -2040,72 +2021,6 @@ static const struct hda_verb alc883_targa_verbs[] = {
2040 { } /* end */ 2021 { } /* end */
2041}; 2022};
2042 2023
2043static const struct hda_verb alc888_6st_dell_verbs[] = {
2044 {0x1b, AC_VERB_SET_UNSOLICITED_ENABLE, ALC_HP_EVENT | AC_USRSP_EN},
2045 { }
2046};
2047
2048static void alc888_3st_hp_setup(struct hda_codec *codec)
2049{
2050 struct alc_spec *spec = codec->spec;
2051
2052 spec->autocfg.hp_pins[0] = 0x1b;
2053 spec->autocfg.speaker_pins[0] = 0x14;
2054 spec->autocfg.speaker_pins[1] = 0x16;
2055 spec->autocfg.speaker_pins[2] = 0x18;
2056 alc_simple_setup_automute(spec, ALC_AUTOMUTE_AMP);
2057}
2058
2059static const struct hda_verb alc888_3st_hp_verbs[] = {
2060 {0x14, AC_VERB_SET_CONNECT_SEL, 0x00}, /* Front: output 0 (0x0c) */
2061 {0x16, AC_VERB_SET_CONNECT_SEL, 0x01}, /* Rear : output 1 (0x0d) */
2062 {0x18, AC_VERB_SET_CONNECT_SEL, 0x02}, /* CLFE : output 2 (0x0e) */
2063 {0x1b, AC_VERB_SET_UNSOLICITED_ENABLE, ALC_HP_EVENT | AC_USRSP_EN},
2064 { } /* end */
2065};
2066
2067/*
2068 * 2ch mode
2069 */
2070static const struct hda_verb alc888_3st_hp_2ch_init[] = {
2071 { 0x18, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80 },
2072 { 0x18, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE },
2073 { 0x16, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN },
2074 { 0x16, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE },
2075 { } /* end */
2076};
2077
2078/*
2079 * 4ch mode
2080 */
2081static const struct hda_verb alc888_3st_hp_4ch_init[] = {
2082 { 0x18, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80 },
2083 { 0x18, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE },
2084 { 0x16, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT },
2085 { 0x16, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE },
2086 { 0x16, AC_VERB_SET_CONNECT_SEL, 0x01 },
2087 { } /* end */
2088};
2089
2090/*
2091 * 6ch mode
2092 */
2093static const struct hda_verb alc888_3st_hp_6ch_init[] = {
2094 { 0x18, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT },
2095 { 0x18, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE },
2096 { 0x18, AC_VERB_SET_CONNECT_SEL, 0x02 },
2097 { 0x16, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT },
2098 { 0x16, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE },
2099 { 0x16, AC_VERB_SET_CONNECT_SEL, 0x01 },
2100 { } /* end */
2101};
2102
2103static const struct hda_channel_mode alc888_3st_hp_modes[3] = {
2104 { 2, alc888_3st_hp_2ch_init },
2105 { 4, alc888_3st_hp_4ch_init },
2106 { 6, alc888_3st_hp_6ch_init },
2107};
2108
2109/* toggle speaker-output according to the hp-jack state */ 2024/* toggle speaker-output according to the hp-jack state */
2110#define alc883_targa_init_hook alc882_targa_init_hook 2025#define alc883_targa_init_hook alc882_targa_init_hook
2111#define alc883_targa_unsol_event alc882_targa_unsol_event 2026#define alc883_targa_unsol_event alc882_targa_unsol_event
@@ -2167,18 +2082,6 @@ static const struct hda_verb alc883_acer_eapd_verbs[] = {
2167 { } 2082 { }
2168}; 2083};
2169 2084
2170static void alc888_6st_dell_setup(struct hda_codec *codec)
2171{
2172 struct alc_spec *spec = codec->spec;
2173
2174 spec->autocfg.hp_pins[0] = 0x1b;
2175 spec->autocfg.speaker_pins[0] = 0x14;
2176 spec->autocfg.speaker_pins[1] = 0x15;
2177 spec->autocfg.speaker_pins[2] = 0x16;
2178 spec->autocfg.speaker_pins[3] = 0x17;
2179 alc_simple_setup_automute(spec, ALC_AUTOMUTE_AMP);
2180}
2181
2182static const struct hda_verb alc889A_mb31_verbs[] = { 2085static const struct hda_verb alc889A_mb31_verbs[] = {
2183 /* Init rear pin (used as headphone output) */ 2086 /* Init rear pin (used as headphone output) */
2184 {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, 0xc4}, /* Apple Headphones */ 2087 {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, 0xc4}, /* Apple Headphones */
@@ -2250,9 +2153,6 @@ static const char * const alc882_models[ALC882_MODEL_LAST] = {
2250 [ALC888_ACER_ASPIRE_6530G] = "acer-aspire-6530g", 2153 [ALC888_ACER_ASPIRE_6530G] = "acer-aspire-6530g",
2251 [ALC888_ACER_ASPIRE_8930G] = "acer-aspire-8930g", 2154 [ALC888_ACER_ASPIRE_8930G] = "acer-aspire-8930g",
2252 [ALC888_ACER_ASPIRE_7730G] = "acer-aspire-7730g", 2155 [ALC888_ACER_ASPIRE_7730G] = "acer-aspire-7730g",
2253 [ALC888_3ST_HP] = "3stack-hp",
2254 [ALC888_6ST_DELL] = "6stack-dell",
2255 [ALC883_CLEVO_M540R] = "clevo-m540r",
2256 [ALC883_CLEVO_M720] = "clevo-m720", 2156 [ALC883_CLEVO_M720] = "clevo-m720",
2257 [ALC883_3ST_6ch_INTEL] = "3stack-6ch-intel", 2157 [ALC883_3ST_6ch_INTEL] = "3stack-6ch-intel",
2258 [ALC889A_INTEL] = "intel-alc889a", 2158 [ALC889A_INTEL] = "intel-alc889a",
@@ -2291,14 +2191,8 @@ static const struct snd_pci_quirk alc882_cfg_tbl[] = {
2291 */ 2191 */
2292 /* SND_PCI_QUIRK_VENDOR(0x1025, "Acer laptop", ALC883_ACER), */ 2192 /* SND_PCI_QUIRK_VENDOR(0x1025, "Acer laptop", ALC883_ACER), */
2293 2193
2294 SND_PCI_QUIRK(0x1028, 0x020d, "Dell Inspiron 530", ALC888_6ST_DELL),
2295
2296 SND_PCI_QUIRK(0x103c, 0x2a3d, "HP Pavilion", ALC883_6ST_DIG), 2194 SND_PCI_QUIRK(0x103c, 0x2a3d, "HP Pavilion", ALC883_6ST_DIG),
2297 SND_PCI_QUIRK(0x103c, 0x2a4f, "HP Samba", ALC888_3ST_HP),
2298 SND_PCI_QUIRK(0x103c, 0x2a60, "HP Lucknow", ALC888_3ST_HP),
2299 SND_PCI_QUIRK(0x103c, 0x2a61, "HP Nettle", ALC883_6ST_DIG), 2195 SND_PCI_QUIRK(0x103c, 0x2a61, "HP Nettle", ALC883_6ST_DIG),
2300 SND_PCI_QUIRK(0x103c, 0x2a66, "HP Acacia", ALC888_3ST_HP),
2301 SND_PCI_QUIRK(0x103c, 0x2a72, "HP Educ.ar", ALC888_3ST_HP),
2302 2196
2303 SND_PCI_QUIRK(0x1043, 0x1971, "Asus W2JC", ALC882_W2JC), 2197 SND_PCI_QUIRK(0x1043, 0x1971, "Asus W2JC", ALC882_W2JC),
2304 SND_PCI_QUIRK(0x1043, 0x817f, "Asus P5LD2", ALC882_6ST_DIG), 2198 SND_PCI_QUIRK(0x1043, 0x817f, "Asus P5LD2", ALC882_6ST_DIG),
@@ -2308,7 +2202,6 @@ static const struct snd_pci_quirk alc882_cfg_tbl[] = {
2308 2202
2309 SND_PCI_QUIRK(0x105b, 0x0ce8, "Foxconn P35AX-S", ALC883_6ST_DIG), 2203 SND_PCI_QUIRK(0x105b, 0x0ce8, "Foxconn P35AX-S", ALC883_6ST_DIG),
2310 SND_PCI_QUIRK(0x105b, 0x6668, "Foxconn", ALC882_6ST_DIG), 2204 SND_PCI_QUIRK(0x105b, 0x6668, "Foxconn", ALC882_6ST_DIG),
2311 SND_PCI_QUIRK(0x10f1, 0x2350, "TYAN-S2350", ALC888_6ST_DELL),
2312 SND_PCI_QUIRK(0x108e, 0x534d, NULL, ALC883_3ST_6ch), 2205 SND_PCI_QUIRK(0x108e, 0x534d, NULL, ALC883_3ST_6ch),
2313 SND_PCI_QUIRK(0x1458, 0xa002, "Gigabyte P35 DS3R", ALC882_6ST_DIG), 2206 SND_PCI_QUIRK(0x1458, 0xa002, "Gigabyte P35 DS3R", ALC882_6ST_DIG),
2314 2207
@@ -2348,7 +2241,6 @@ static const struct snd_pci_quirk alc882_cfg_tbl[] = {
2348 SND_PCI_QUIRK(0x1558, 0x0571, "Clevo laptop M570U", ALC883_3ST_6ch_DIG), 2241 SND_PCI_QUIRK(0x1558, 0x0571, "Clevo laptop M570U", ALC883_3ST_6ch_DIG),
2349 SND_PCI_QUIRK(0x1558, 0x0721, "Clevo laptop M720R", ALC883_CLEVO_M720), 2242 SND_PCI_QUIRK(0x1558, 0x0721, "Clevo laptop M720R", ALC883_CLEVO_M720),
2350 SND_PCI_QUIRK(0x1558, 0x0722, "Clevo laptop M720SR", ALC883_CLEVO_M720), 2243 SND_PCI_QUIRK(0x1558, 0x0722, "Clevo laptop M720SR", ALC883_CLEVO_M720),
2351 SND_PCI_QUIRK(0x1558, 0x5409, "Clevo laptop M540R", ALC883_CLEVO_M540R),
2352 SND_PCI_QUIRK(0x15d9, 0x8780, "Supermicro PDSBA", ALC883_3ST_6ch), 2244 SND_PCI_QUIRK(0x15d9, 0x8780, "Supermicro PDSBA", ALC883_3ST_6ch),
2353 SND_PCI_QUIRK(0x17f2, 0x5000, "Albatron KI690-AM2", ALC883_6ST_DIG), 2245 SND_PCI_QUIRK(0x17f2, 0x5000, "Albatron KI690-AM2", ALC883_6ST_DIG),
2354 2246
@@ -2807,21 +2699,6 @@ static const struct alc_config_preset alc882_presets[] = {
2807 .setup = alc888_acer_aspire_7730g_setup, 2699 .setup = alc888_acer_aspire_7730g_setup,
2808 .init_hook = alc_hp_automute, 2700 .init_hook = alc_hp_automute,
2809 }, 2701 },
2810 [ALC883_CLEVO_M540R] = {
2811 .mixers = { alc883_3ST_6ch_mixer, alc883_chmode_mixer },
2812 .init_verbs = { alc883_init_verbs, alc883_clevo_m540r_verbs },
2813 .num_dacs = ARRAY_SIZE(alc883_dac_nids),
2814 .dac_nids = alc883_dac_nids,
2815 .dig_out_nid = ALC883_DIGOUT_NID,
2816 .dig_in_nid = ALC883_DIGIN_NID,
2817 .num_channel_mode = ARRAY_SIZE(alc883_3ST_6ch_clevo_modes),
2818 .channel_mode = alc883_3ST_6ch_clevo_modes,
2819 .need_dac_fix = 1,
2820 .input_mux = &alc883_capture_source,
2821 /* This machine has the hardware HP auto-muting, thus
2822 * we need no software mute via unsol event
2823 */
2824 },
2825 [ALC883_CLEVO_M720] = { 2702 [ALC883_CLEVO_M720] = {
2826 .mixers = { alc883_clevo_m720_mixer }, 2703 .mixers = { alc883_clevo_m720_mixer },
2827 .init_verbs = { alc883_init_verbs, alc883_clevo_m720_verbs }, 2704 .init_verbs = { alc883_init_verbs, alc883_clevo_m720_verbs },
@@ -2835,33 +2712,6 @@ static const struct alc_config_preset alc882_presets[] = {
2835 .setup = alc883_clevo_m720_setup, 2712 .setup = alc883_clevo_m720_setup,
2836 .init_hook = alc883_clevo_m720_init_hook, 2713 .init_hook = alc883_clevo_m720_init_hook,
2837 }, 2714 },
2838 [ALC888_3ST_HP] = {
2839 .mixers = { alc883_3ST_6ch_mixer, alc883_chmode_mixer },
2840 .init_verbs = { alc883_init_verbs, alc888_3st_hp_verbs },
2841 .num_dacs = ARRAY_SIZE(alc883_dac_nids),
2842 .dac_nids = alc883_dac_nids,
2843 .num_channel_mode = ARRAY_SIZE(alc888_3st_hp_modes),
2844 .channel_mode = alc888_3st_hp_modes,
2845 .need_dac_fix = 1,
2846 .input_mux = &alc883_capture_source,
2847 .unsol_event = alc_sku_unsol_event,
2848 .setup = alc888_3st_hp_setup,
2849 .init_hook = alc_hp_automute,
2850 },
2851 [ALC888_6ST_DELL] = {
2852 .mixers = { alc883_base_mixer, alc883_chmode_mixer },
2853 .init_verbs = { alc883_init_verbs, alc888_6st_dell_verbs },
2854 .num_dacs = ARRAY_SIZE(alc883_dac_nids),
2855 .dac_nids = alc883_dac_nids,
2856 .dig_out_nid = ALC883_DIGOUT_NID,
2857 .dig_in_nid = ALC883_DIGIN_NID,
2858 .num_channel_mode = ARRAY_SIZE(alc883_sixstack_modes),
2859 .channel_mode = alc883_sixstack_modes,
2860 .input_mux = &alc883_capture_source,
2861 .unsol_event = alc_sku_unsol_event,
2862 .setup = alc888_6st_dell_setup,
2863 .init_hook = alc_hp_automute,
2864 },
2865 [ALC889A_MB31] = { 2715 [ALC889A_MB31] = {
2866 .mixers = { alc889A_mb31_mixer, alc883_chmode_mixer}, 2716 .mixers = { alc889A_mb31_mixer, alc883_chmode_mixer},
2867 .init_verbs = { alc883_init_verbs, alc889A_mb31_verbs, 2717 .init_verbs = { alc883_init_verbs, alc889A_mb31_verbs,