ALSA: hda/realtek - Remove all ALC262-quirk codes
authorTakashi Iwai <tiwai@suse.de>
Mon, 7 Nov 2011 16:18:44 +0000 (17:18 +0100)
committerTakashi Iwai <tiwai@suse.de>
Tue, 8 Nov 2011 07:59:36 +0000 (08:59 +0100)
Now that model=ultra is supported well by the auto-parser, we can get rid
of the whole alc262_quirks.c and its related codes.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Documentation/sound/alsa/HD-Audio-Models.txt
sound/pci/hda/alc262_quirks.c [deleted file]
sound/pci/hda/patch_realtek.c

index 4f3443230d896b92c6a5aa7b37dfd5b63e272d9b..c8d499fc126b725a19cfdb6e109b3c2eda5a8ebd 100644 (file)
@@ -42,19 +42,7 @@ ALC260
 
 ALC262
 ======
-  fujitsu      Fujitsu Laptop
-  benq         Benq ED8
-  benq-t31     Benq T31
-  hippo                Hippo (ATI) with jack detection, Sony UX-90s
-  hippo_1      Hippo (Benq) with jack detection
-  toshiba-s06  Toshiba S06
-  toshiba-rx1  Toshiba RX1
-  tyan         Tyan Thunder n6650W (S2915-E)
-  ultra                Samsung Q1 Ultra Vista model
-  lenovo-3000  Lenovo 3000 y410
-  nec          NEC Versa S9100
-  basic                fixed pin assignment w/o SPDIF
-  auto         auto-config reading BIOS (default)
+  N/A
 
 ALC267/268
 ==========
diff --git a/sound/pci/hda/alc262_quirks.c b/sound/pci/hda/alc262_quirks.c
deleted file mode 100644 (file)
index 813855a..0000000
+++ /dev/null
@@ -1,177 +0,0 @@
-/*
- * ALC262 quirk models
- * included by patch_realtek.c
- */
-
-/* ALC262 models */
-enum {
-       ALC262_AUTO,
-       ALC262_ULTRA,
-       ALC262_MODEL_LAST /* last tag */
-};
-
-#define ALC262_DIGOUT_NID      ALC880_DIGOUT_NID
-#define ALC262_DIGIN_NID       ALC880_DIGIN_NID
-
-#define alc262_dac_nids                alc260_dac_nids
-#define alc262_adc_nids                alc882_adc_nids
-#define alc262_adc_nids_alt    alc882_adc_nids_alt
-#define alc262_capsrc_nids     alc882_capsrc_nids
-#define alc262_capsrc_nids_alt alc882_capsrc_nids_alt
-
-#define alc262_modes           alc260_modes
-#define alc262_capture_source  alc882_capture_source
-
-#define alc262_capture_mixer           alc882_capture_mixer
-#define alc262_capture_alt_mixer       alc882_capture_alt_mixer
-
-/* Samsung Q1 Ultra Vista model setup */
-static const struct snd_kcontrol_new alc262_ultra_mixer[] = {
-       HDA_CODEC_VOLUME("Master Playback Volume", 0x0c, 0x0, HDA_OUTPUT),
-       HDA_BIND_MUTE("Master Playback Switch", 0x0c, 2, HDA_INPUT),
-       HDA_CODEC_VOLUME("Mic Playback Volume", 0x0b, 0x01, HDA_INPUT),
-       HDA_CODEC_MUTE("Mic Playback Switch", 0x0b, 0x01, HDA_INPUT),
-       HDA_CODEC_VOLUME("Mic Boost Volume", 0x19, 0, HDA_INPUT),
-       HDA_CODEC_VOLUME("Headphone Mic Boost Volume", 0x15, 0, HDA_INPUT),
-       { } /* end */
-};
-
-static const struct hda_verb alc262_ultra_verbs[] = {
-       /* output mixer */
-       {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)},
-       {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(1)},
-       {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_ZERO},
-       /* speaker */
-       {0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT},
-       {0x14, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE},
-       {0x14, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)},
-       {0x14, AC_VERB_SET_CONNECT_SEL, 0x00},
-       /* HP */
-       {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP},
-       {0x15, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE},
-       {0x15, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)},
-       {0x15, AC_VERB_SET_CONNECT_SEL, 0x00},
-       {0x15, AC_VERB_SET_UNSOLICITED_ENABLE, AC_USRSP_EN | ALC_HP_EVENT},
-       /* internal mic */
-       {0x19, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80},
-       {0x0b, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(1)},
-       /* ADC, choose mic */
-       {0x07, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)},
-       {0x24, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)},
-       {0x24, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)},
-       {0x24, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(2)},
-       {0x24, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(3)},
-       {0x24, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(4)},
-       {0x24, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(5)},
-       {0x24, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(6)},
-       {0x24, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(7)},
-       {0x24, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(8)},
-       {}
-};
-
-/* mute/unmute internal speaker according to the hp jack and mute state */
-static void alc262_ultra_automute(struct hda_codec *codec)
-{
-       struct alc_spec *spec = codec->spec;
-       unsigned int mute;
-
-       mute = 0;
-       /* auto-mute only when HP is used as HP */
-       if (!spec->cur_mux[0]) {
-               spec->hp_jack_present = snd_hda_jack_detect(codec, 0x15);
-               if (spec->hp_jack_present)
-                       mute = HDA_AMP_MUTE;
-       }
-       /* mute/unmute internal speaker */
-       snd_hda_codec_amp_stereo(codec, 0x14, HDA_OUTPUT, 0,
-                                HDA_AMP_MUTE, mute);
-       /* mute/unmute HP */
-       snd_hda_codec_amp_stereo(codec, 0x15, HDA_OUTPUT, 0,
-                                HDA_AMP_MUTE, mute ? 0 : HDA_AMP_MUTE);
-}
-
-/* unsolicited event for HP jack sensing */
-static void alc262_ultra_unsol_event(struct hda_codec *codec,
-                                      unsigned int res)
-{
-       if ((res >> 26) != ALC_HP_EVENT)
-               return;
-       alc262_ultra_automute(codec);
-}
-
-static const struct hda_input_mux alc262_ultra_capture_source = {
-       .num_items = 2,
-       .items = {
-               { "Mic", 0x1 },
-               { "Headphone", 0x7 },
-       },
-};
-
-static int alc262_ultra_mux_enum_put(struct snd_kcontrol *kcontrol,
-                                    struct snd_ctl_elem_value *ucontrol)
-{
-       struct hda_codec *codec = snd_kcontrol_chip(kcontrol);
-       struct alc_spec *spec = codec->spec;
-       int ret;
-
-       ret = alc_mux_enum_put(kcontrol, ucontrol);
-       if (!ret)
-               return 0;
-       /* reprogram the HP pin as mic or HP according to the input source */
-       snd_hda_codec_write_cache(codec, 0x15, 0,
-                                 AC_VERB_SET_PIN_WIDGET_CONTROL,
-                                 spec->cur_mux[0] ? PIN_VREF80 : PIN_HP);
-       alc262_ultra_automute(codec); /* mute/unmute HP */
-       return ret;
-}
-
-static const struct snd_kcontrol_new alc262_ultra_capture_mixer[] = {
-       HDA_CODEC_VOLUME("Capture Volume", 0x07, 0x0, HDA_INPUT),
-       HDA_CODEC_MUTE("Capture Switch", 0x07, 0x0, HDA_INPUT),
-       {
-               .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
-               .name = "Capture Source",
-               .info = alc_mux_enum_info,
-               .get = alc_mux_enum_get,
-               .put = alc262_ultra_mux_enum_put,
-       },
-       {
-               .iface = NID_MAPPING,
-               .name = "Capture Source",
-               .private_value = 0x15,
-       },
-       { } /* end */
-};
-
-/*
- * configuration and preset
- */
-static const char * const alc262_models[ALC262_MODEL_LAST] = {
-       [ALC262_ULTRA]          = "ultra",
-       [ALC262_AUTO]           = "auto",
-};
-
-static const struct snd_pci_quirk alc262_cfg_tbl[] = {
-       SND_PCI_QUIRK_MASK(0x144d, 0xff00, 0xc032, "Samsung Q1",
-                          ALC262_ULTRA),
-       {}
-};
-
-static const struct alc_config_preset alc262_presets[] = {
-       [ALC262_ULTRA] = {
-               .mixers = { alc262_ultra_mixer },
-               .cap_mixer = alc262_ultra_capture_mixer,
-               .init_verbs = { alc262_ultra_verbs },
-               .num_dacs = ARRAY_SIZE(alc262_dac_nids),
-               .dac_nids = alc262_dac_nids,
-               .num_channel_mode = ARRAY_SIZE(alc262_modes),
-               .channel_mode = alc262_modes,
-               .input_mux = &alc262_ultra_capture_source,
-               .adc_nids = alc262_adc_nids, /* ADC0 */
-               .capsrc_nids = alc262_capsrc_nids,
-               .num_adc_nids = 1, /* single ADC */
-               .unsol_event = alc262_ultra_unsol_event,
-               .init_hook = alc262_ultra_automute,
-       },
-};
-
index ef040ec6580ddef2c0853225d7af239f437a2c98..afdecd86e9a996d77ca6c6046e9566701aac7b3a 100644 (file)
@@ -4493,14 +4493,9 @@ static const struct snd_pci_quirk alc262_fixup_tbl[] = {
 
 /*
  */
-#ifdef CONFIG_SND_HDA_ENABLE_REALTEK_QUIRKS
-#include "alc262_quirks.c"
-#endif
-
 static int patch_alc262(struct hda_codec *codec)
 {
        struct alc_spec *spec;
-       int board_config;
        int err;
 
        spec = kzalloc(sizeof(*spec), GFP_KERNEL);
@@ -4527,29 +4522,13 @@ static int patch_alc262(struct hda_codec *codec)
 
        alc_fix_pll_init(codec, 0x20, 0x0a, 10);
 
-       board_config = alc_board_config(codec, ALC262_MODEL_LAST,
-                                       alc262_models, alc262_cfg_tbl);
-
-       if (board_config < 0) {
-               printk(KERN_INFO "hda_codec: %s: BIOS auto-probing.\n",
-                      codec->chip_name);
-               board_config = ALC_MODEL_AUTO;
-       }
-
-       if (board_config == ALC_MODEL_AUTO) {
-               alc_pick_fixup(codec, NULL, alc262_fixup_tbl, alc262_fixups);
-               alc_apply_fixup(codec, ALC_FIXUP_ACT_PRE_PROBE);
-       }
-
-       if (board_config == ALC_MODEL_AUTO) {
-               /* automatic parse from the BIOS config */
-               err = alc262_parse_auto_config(codec);
-               if (err < 0)
-                       goto error;
-       }
+       alc_pick_fixup(codec, NULL, alc262_fixup_tbl, alc262_fixups);
+       alc_apply_fixup(codec, ALC_FIXUP_ACT_PRE_PROBE);
 
-       if (board_config != ALC_MODEL_AUTO)
-               setup_preset(codec, &alc262_presets[board_config]);
+       /* automatic parse from the BIOS config */
+       err = alc262_parse_auto_config(codec);
+       if (err < 0)
+               goto error;
 
        if (!spec->no_analog && !spec->adc_nids) {
                alc_auto_fill_adc_caps(codec);
@@ -4572,8 +4551,7 @@ static int patch_alc262(struct hda_codec *codec)
        spec->vmaster_nid = 0x0c;
 
        codec->patch_ops = alc_patch_ops;
-       if (board_config == ALC_MODEL_AUTO)
-               spec->init_hook = alc_auto_init_std;
+       spec->init_hook = alc_auto_init_std;
        spec->shutup = alc_eapd_shutup;
 
        alc_init_jacks(codec);