diff options
-rw-r--r-- | sound/pci/hda/alc882_quirks.c | 188 |
1 files changed, 0 insertions, 188 deletions
diff --git a/sound/pci/hda/alc882_quirks.c b/sound/pci/hda/alc882_quirks.c index 88f93fcd4e04..a71077d94451 100644 --- a/sound/pci/hda/alc882_quirks.c +++ b/sound/pci/hda/alc882_quirks.c | |||
@@ -34,10 +34,6 @@ enum { | |||
34 | ALC883_MEDION, | 34 | ALC883_MEDION, |
35 | ALC883_MEDION_WIM2160, | 35 | ALC883_MEDION_WIM2160, |
36 | ALC883_LAPTOP_EAPD, | 36 | ALC883_LAPTOP_EAPD, |
37 | ALC883_LENOVO_101E_2ch, | ||
38 | ALC883_LENOVO_NB0763, | ||
39 | ALC888_LENOVO_MS7195_DIG, | ||
40 | ALC883_HAIER_W66, | ||
41 | ALC888_3ST_HP, | 37 | ALC888_3ST_HP, |
42 | ALC888_6ST_DELL, | 38 | ALC888_6ST_DELL, |
43 | ALC883_MITAC, | 39 | ALC883_MITAC, |
@@ -584,24 +580,6 @@ static const struct hda_input_mux alc883_3stack_6ch_intel = { | |||
584 | }, | 580 | }, |
585 | }; | 581 | }; |
586 | 582 | ||
587 | static const struct hda_input_mux alc883_lenovo_101e_capture_source = { | ||
588 | .num_items = 2, | ||
589 | .items = { | ||
590 | { "Mic", 0x1 }, | ||
591 | { "Line", 0x2 }, | ||
592 | }, | ||
593 | }; | ||
594 | |||
595 | static const struct hda_input_mux alc883_lenovo_nb0763_capture_source = { | ||
596 | .num_items = 4, | ||
597 | .items = { | ||
598 | { "Mic", 0x0 }, | ||
599 | { "Internal Mic", 0x1 }, | ||
600 | { "Line", 0x2 }, | ||
601 | { "CD", 0x4 }, | ||
602 | }, | ||
603 | }; | ||
604 | |||
605 | static const struct hda_input_mux alc889A_mb31_capture_source = { | 583 | static const struct hda_input_mux alc889A_mb31_capture_source = { |
606 | .num_items = 2, | 584 | .num_items = 2, |
607 | .items = { | 585 | .items = { |
@@ -2000,31 +1978,6 @@ static const struct snd_kcontrol_new alc883_targa_8ch_mixer[] = { | |||
2000 | { } /* end */ | 1978 | { } /* end */ |
2001 | }; | 1979 | }; |
2002 | 1980 | ||
2003 | static const struct snd_kcontrol_new alc883_lenovo_101e_2ch_mixer[] = { | ||
2004 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), | ||
2005 | HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT), | ||
2006 | HDA_CODEC_VOLUME("Speaker Playback Volume", 0x0d, 0x0, HDA_OUTPUT), | ||
2007 | HDA_BIND_MUTE("Speaker Playback Switch", 0x0d, 2, HDA_INPUT), | ||
2008 | HDA_CODEC_MUTE("Headphone Playback Switch", 0x1b, 0x0, HDA_OUTPUT), | ||
2009 | HDA_CODEC_VOLUME("Mic Playback Volume", 0x0b, 0x1, HDA_INPUT), | ||
2010 | HDA_CODEC_VOLUME("Mic Boost Volume", 0x18, 0, HDA_INPUT), | ||
2011 | HDA_CODEC_MUTE("Mic Playback Switch", 0x0b, 0x1, HDA_INPUT), | ||
2012 | { } /* end */ | ||
2013 | }; | ||
2014 | |||
2015 | static const struct snd_kcontrol_new alc883_lenovo_nb0763_mixer[] = { | ||
2016 | HDA_CODEC_VOLUME("Speaker Playback Volume", 0x0c, 0x0, HDA_OUTPUT), | ||
2017 | HDA_BIND_MUTE("Speaker Playback Switch", 0x0c, 2, HDA_INPUT), | ||
2018 | HDA_CODEC_MUTE("Headphone Playback Switch", 0x14, 0x0, HDA_OUTPUT), | ||
2019 | HDA_CODEC_VOLUME("CD Playback Volume", 0x0b, 0x04, HDA_INPUT), | ||
2020 | HDA_CODEC_MUTE("CD Playback Switch", 0x0b, 0x04, HDA_INPUT), | ||
2021 | HDA_CODEC_VOLUME("Mic Playback Volume", 0x0b, 0x0, HDA_INPUT), | ||
2022 | HDA_CODEC_MUTE("Mic Playback Switch", 0x0b, 0x0, HDA_INPUT), | ||
2023 | HDA_CODEC_VOLUME("Internal Mic Playback Volume", 0x0b, 0x1, HDA_INPUT), | ||
2024 | HDA_CODEC_MUTE("Internal Mic Playback Switch", 0x0b, 0x1, HDA_INPUT), | ||
2025 | { } /* end */ | ||
2026 | }; | ||
2027 | |||
2028 | static const struct snd_kcontrol_new alc883_medion_wim2160_mixer[] = { | 1981 | static const struct snd_kcontrol_new alc883_medion_wim2160_mixer[] = { |
2029 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), | 1982 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), |
2030 | HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT), | 1983 | HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT), |
@@ -2228,43 +2181,6 @@ static const struct hda_verb alc883_targa_verbs[] = { | |||
2228 | { } /* end */ | 2181 | { } /* end */ |
2229 | }; | 2182 | }; |
2230 | 2183 | ||
2231 | static const struct hda_verb alc883_lenovo_101e_verbs[] = { | ||
2232 | {0x15, AC_VERB_SET_CONNECT_SEL, 0x00}, | ||
2233 | {0x14, AC_VERB_SET_UNSOLICITED_ENABLE, ALC_FRONT_EVENT|AC_USRSP_EN}, | ||
2234 | {0x1b, AC_VERB_SET_UNSOLICITED_ENABLE, ALC_HP_EVENT|AC_USRSP_EN}, | ||
2235 | { } /* end */ | ||
2236 | }; | ||
2237 | |||
2238 | static const struct hda_verb alc883_lenovo_nb0763_verbs[] = { | ||
2239 | {0x15, AC_VERB_SET_CONNECT_SEL, 0x00}, | ||
2240 | {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, | ||
2241 | {0x14, AC_VERB_SET_UNSOLICITED_ENABLE, ALC_HP_EVENT | AC_USRSP_EN}, | ||
2242 | {0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, | ||
2243 | { } /* end */ | ||
2244 | }; | ||
2245 | |||
2246 | static const struct hda_verb alc888_lenovo_ms7195_verbs[] = { | ||
2247 | {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, | ||
2248 | {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, | ||
2249 | {0x15, AC_VERB_SET_CONNECT_SEL, 0x00}, | ||
2250 | {0x14, AC_VERB_SET_UNSOLICITED_ENABLE, ALC_FRONT_EVENT | AC_USRSP_EN}, | ||
2251 | {0x1b, AC_VERB_SET_UNSOLICITED_ENABLE, ALC_HP_EVENT | AC_USRSP_EN}, | ||
2252 | { } /* end */ | ||
2253 | }; | ||
2254 | |||
2255 | static const struct hda_verb alc883_haier_w66_verbs[] = { | ||
2256 | {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, | ||
2257 | {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, | ||
2258 | |||
2259 | {0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT}, | ||
2260 | |||
2261 | {0x1b, AC_VERB_SET_CONNECT_SEL, 0x00}, | ||
2262 | {0x1b, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, | ||
2263 | {0x1b, AC_VERB_SET_UNSOLICITED_ENABLE, ALC_HP_EVENT | AC_USRSP_EN}, | ||
2264 | {0x1b, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, | ||
2265 | { } /* end */ | ||
2266 | }; | ||
2267 | |||
2268 | static const struct hda_verb alc888_6st_dell_verbs[] = { | 2184 | static const struct hda_verb alc888_6st_dell_verbs[] = { |
2269 | {0x1b, AC_VERB_SET_UNSOLICITED_ENABLE, ALC_HP_EVENT | AC_USRSP_EN}, | 2185 | {0x1b, AC_VERB_SET_UNSOLICITED_ENABLE, ALC_HP_EVENT | AC_USRSP_EN}, |
2270 | { } | 2186 | { } |
@@ -2331,26 +2247,6 @@ static const struct hda_channel_mode alc888_3st_hp_modes[3] = { | |||
2331 | { 6, alc888_3st_hp_6ch_init }, | 2247 | { 6, alc888_3st_hp_6ch_init }, |
2332 | }; | 2248 | }; |
2333 | 2249 | ||
2334 | static void alc888_lenovo_ms7195_setup(struct hda_codec *codec) | ||
2335 | { | ||
2336 | struct alc_spec *spec = codec->spec; | ||
2337 | |||
2338 | spec->autocfg.hp_pins[0] = 0x1b; | ||
2339 | spec->autocfg.line_out_pins[0] = 0x14; | ||
2340 | spec->autocfg.speaker_pins[0] = 0x15; | ||
2341 | alc_simple_setup_automute(spec, ALC_AUTOMUTE_AMP); | ||
2342 | } | ||
2343 | |||
2344 | /* toggle speaker-output according to the hp-jack state */ | ||
2345 | static void alc883_lenovo_nb0763_setup(struct hda_codec *codec) | ||
2346 | { | ||
2347 | struct alc_spec *spec = codec->spec; | ||
2348 | |||
2349 | spec->autocfg.hp_pins[0] = 0x14; | ||
2350 | spec->autocfg.speaker_pins[0] = 0x15; | ||
2351 | alc_simple_setup_automute(spec, ALC_AUTOMUTE_AMP); | ||
2352 | } | ||
2353 | |||
2354 | /* toggle speaker-output according to the hp-jack state */ | 2250 | /* toggle speaker-output according to the hp-jack state */ |
2355 | #define alc883_targa_init_hook alc882_targa_init_hook | 2251 | #define alc883_targa_init_hook alc882_targa_init_hook |
2356 | #define alc883_targa_unsol_event alc882_targa_unsol_event | 2252 | #define alc883_targa_unsol_event alc882_targa_unsol_event |
@@ -2383,25 +2279,6 @@ static void alc883_clevo_m720_unsol_event(struct hda_codec *codec, | |||
2383 | } | 2279 | } |
2384 | } | 2280 | } |
2385 | 2281 | ||
2386 | static void alc883_haier_w66_setup(struct hda_codec *codec) | ||
2387 | { | ||
2388 | struct alc_spec *spec = codec->spec; | ||
2389 | |||
2390 | spec->autocfg.hp_pins[0] = 0x1b; | ||
2391 | spec->autocfg.speaker_pins[0] = 0x14; | ||
2392 | alc_simple_setup_automute(spec, ALC_AUTOMUTE_AMP); | ||
2393 | } | ||
2394 | |||
2395 | static void alc883_lenovo_101e_setup(struct hda_codec *codec) | ||
2396 | { | ||
2397 | struct alc_spec *spec = codec->spec; | ||
2398 | |||
2399 | spec->autocfg.hp_pins[0] = 0x1b; | ||
2400 | spec->autocfg.line_out_pins[0] = 0x14; | ||
2401 | spec->autocfg.speaker_pins[0] = 0x15; | ||
2402 | alc_simple_setup_automute(spec, ALC_AUTOMUTE_AMP); | ||
2403 | } | ||
2404 | |||
2405 | /* toggle speaker-output according to the hp-jack state */ | 2282 | /* toggle speaker-output according to the hp-jack state */ |
2406 | static void alc883_acer_aspire_setup(struct hda_codec *codec) | 2283 | static void alc883_acer_aspire_setup(struct hda_codec *codec) |
2407 | { | 2284 | { |
@@ -2518,10 +2395,6 @@ static const char * const alc882_models[ALC882_MODEL_LAST] = { | |||
2518 | [ALC883_MEDION] = "medion", | 2395 | [ALC883_MEDION] = "medion", |
2519 | [ALC883_MEDION_WIM2160] = "medion-wim2160", | 2396 | [ALC883_MEDION_WIM2160] = "medion-wim2160", |
2520 | [ALC883_LAPTOP_EAPD] = "laptop-eapd", | 2397 | [ALC883_LAPTOP_EAPD] = "laptop-eapd", |
2521 | [ALC883_LENOVO_101E_2ch] = "lenovo-101e", | ||
2522 | [ALC883_LENOVO_NB0763] = "lenovo-nb0763", | ||
2523 | [ALC888_LENOVO_MS7195_DIG] = "lenovo-ms7195-dig", | ||
2524 | [ALC883_HAIER_W66] = "haier-w66", | ||
2525 | [ALC888_3ST_HP] = "3stack-hp", | 2398 | [ALC888_3ST_HP] = "3stack-hp", |
2526 | [ALC888_6ST_DELL] = "6stack-dell", | 2399 | [ALC888_6ST_DELL] = "6stack-dell", |
2527 | [ALC883_MITAC] = "mitac", | 2400 | [ALC883_MITAC] = "mitac", |
@@ -2632,13 +2505,7 @@ static const struct snd_pci_quirk alc882_cfg_tbl[] = { | |||
2632 | SND_PCI_QUIRK(0x161f, 0x2054, "Medion laptop", ALC883_MEDION), | 2505 | SND_PCI_QUIRK(0x161f, 0x2054, "Medion laptop", ALC883_MEDION), |
2633 | SND_PCI_QUIRK_MASK(0x1734, 0xfff0, 0x1130, "Fujitsu AMILO Xa35xx", | 2506 | SND_PCI_QUIRK_MASK(0x1734, 0xfff0, 0x1130, "Fujitsu AMILO Xa35xx", |
2634 | ALC888_FUJITSU_XA3530), | 2507 | ALC888_FUJITSU_XA3530), |
2635 | SND_PCI_QUIRK(0x17aa, 0x101e, "Lenovo 101e", ALC883_LENOVO_101E_2ch), | ||
2636 | SND_PCI_QUIRK(0x17aa, 0x2085, "Lenovo NB0763", ALC883_LENOVO_NB0763), | ||
2637 | SND_PCI_QUIRK(0x17aa, 0x3bfc, "Lenovo NB0763", ALC883_LENOVO_NB0763), | ||
2638 | SND_PCI_QUIRK(0x17aa, 0x3bfd, "Lenovo NB0763", ALC883_LENOVO_NB0763), | ||
2639 | SND_PCI_QUIRK(0x17c0, 0x4085, "MEDION MD96630", ALC888_LENOVO_MS7195_DIG), | ||
2640 | SND_PCI_QUIRK(0x17f2, 0x5000, "Albatron KI690-AM2", ALC883_6ST_DIG), | 2508 | SND_PCI_QUIRK(0x17f2, 0x5000, "Albatron KI690-AM2", ALC883_6ST_DIG), |
2641 | SND_PCI_QUIRK(0x1991, 0x5625, "Haier W66", ALC883_HAIER_W66), | ||
2642 | 2509 | ||
2643 | SND_PCI_QUIRK(0x8086, 0x0001, "DG33BUC", ALC883_3ST_6ch_INTEL), | 2510 | SND_PCI_QUIRK(0x8086, 0x0001, "DG33BUC", ALC883_3ST_6ch_INTEL), |
2644 | SND_PCI_QUIRK(0x8086, 0x0002, "DG33FBC", ALC883_3ST_6ch_INTEL), | 2511 | SND_PCI_QUIRK(0x8086, 0x0002, "DG33FBC", ALC883_3ST_6ch_INTEL), |
@@ -3172,61 +3039,6 @@ static const struct alc_config_preset alc882_presets[] = { | |||
3172 | .setup = alc883_clevo_m720_setup, | 3039 | .setup = alc883_clevo_m720_setup, |
3173 | .init_hook = alc883_clevo_m720_init_hook, | 3040 | .init_hook = alc883_clevo_m720_init_hook, |
3174 | }, | 3041 | }, |
3175 | [ALC883_LENOVO_101E_2ch] = { | ||
3176 | .mixers = { alc883_lenovo_101e_2ch_mixer}, | ||
3177 | .init_verbs = { alc883_init_verbs, alc883_lenovo_101e_verbs}, | ||
3178 | .num_dacs = ARRAY_SIZE(alc883_dac_nids), | ||
3179 | .dac_nids = alc883_dac_nids, | ||
3180 | .adc_nids = alc883_adc_nids_alt, | ||
3181 | .num_adc_nids = ARRAY_SIZE(alc883_adc_nids_alt), | ||
3182 | .capsrc_nids = alc883_capsrc_nids, | ||
3183 | .num_channel_mode = ARRAY_SIZE(alc883_3ST_2ch_modes), | ||
3184 | .channel_mode = alc883_3ST_2ch_modes, | ||
3185 | .input_mux = &alc883_lenovo_101e_capture_source, | ||
3186 | .setup = alc883_lenovo_101e_setup, | ||
3187 | .unsol_event = alc_sku_unsol_event, | ||
3188 | .init_hook = alc_inithook, | ||
3189 | }, | ||
3190 | [ALC883_LENOVO_NB0763] = { | ||
3191 | .mixers = { alc883_lenovo_nb0763_mixer }, | ||
3192 | .init_verbs = { alc883_init_verbs, alc883_lenovo_nb0763_verbs}, | ||
3193 | .num_dacs = ARRAY_SIZE(alc883_dac_nids), | ||
3194 | .dac_nids = alc883_dac_nids, | ||
3195 | .num_channel_mode = ARRAY_SIZE(alc883_3ST_2ch_modes), | ||
3196 | .channel_mode = alc883_3ST_2ch_modes, | ||
3197 | .need_dac_fix = 1, | ||
3198 | .input_mux = &alc883_lenovo_nb0763_capture_source, | ||
3199 | .unsol_event = alc_sku_unsol_event, | ||
3200 | .setup = alc883_lenovo_nb0763_setup, | ||
3201 | .init_hook = alc_hp_automute, | ||
3202 | }, | ||
3203 | [ALC888_LENOVO_MS7195_DIG] = { | ||
3204 | .mixers = { alc883_3ST_6ch_mixer, alc883_chmode_mixer }, | ||
3205 | .init_verbs = { alc883_init_verbs, alc888_lenovo_ms7195_verbs}, | ||
3206 | .num_dacs = ARRAY_SIZE(alc883_dac_nids), | ||
3207 | .dac_nids = alc883_dac_nids, | ||
3208 | .dig_out_nid = ALC883_DIGOUT_NID, | ||
3209 | .num_channel_mode = ARRAY_SIZE(alc883_3ST_6ch_modes), | ||
3210 | .channel_mode = alc883_3ST_6ch_modes, | ||
3211 | .need_dac_fix = 1, | ||
3212 | .input_mux = &alc883_capture_source, | ||
3213 | .unsol_event = alc_sku_unsol_event, | ||
3214 | .setup = alc888_lenovo_ms7195_setup, | ||
3215 | .init_hook = alc_inithook, | ||
3216 | }, | ||
3217 | [ALC883_HAIER_W66] = { | ||
3218 | .mixers = { alc883_targa_2ch_mixer}, | ||
3219 | .init_verbs = { alc883_init_verbs, alc883_haier_w66_verbs}, | ||
3220 | .num_dacs = ARRAY_SIZE(alc883_dac_nids), | ||
3221 | .dac_nids = alc883_dac_nids, | ||
3222 | .dig_out_nid = ALC883_DIGOUT_NID, | ||
3223 | .num_channel_mode = ARRAY_SIZE(alc883_3ST_2ch_modes), | ||
3224 | .channel_mode = alc883_3ST_2ch_modes, | ||
3225 | .input_mux = &alc883_capture_source, | ||
3226 | .unsol_event = alc_sku_unsol_event, | ||
3227 | .setup = alc883_haier_w66_setup, | ||
3228 | .init_hook = alc_hp_automute, | ||
3229 | }, | ||
3230 | [ALC888_3ST_HP] = { | 3042 | [ALC888_3ST_HP] = { |
3231 | .mixers = { alc883_3ST_6ch_mixer, alc883_chmode_mixer }, | 3043 | .mixers = { alc883_3ST_6ch_mixer, alc883_chmode_mixer }, |
3232 | .init_verbs = { alc883_init_verbs, alc888_3st_hp_verbs }, | 3044 | .init_verbs = { alc883_init_verbs, alc888_3st_hp_verbs }, |