ALSA: hda - Split EAPD init to a separate array from alc662_init_verbs
authorTakashi Iwai <tiwai@suse.de>
Thu, 7 Apr 2011 08:24:23 +0000 (10:24 +0200)
committerTakashi Iwai <tiwai@suse.de>
Thu, 7 Apr 2011 08:24:23 +0000 (10:24 +0200)
So far, alc662_init_verbs[] is used for all ALC662-compatible chips,
but the EAPD controls for 0x15 in there is invalid for ALC892.
Also, since EAPDs should be set up in alc_auto_init_amp(), these static
elements aren't needed for auto-parser, too.

In this patch, the EAPD init verbs are split from alc662_init_verbs,
and applied only to static quirks.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/hda/patch_realtek.c

index d566eac..4971d77 100644 (file)
@@ -1268,6 +1268,7 @@ static void alc_auto_init_amp(struct hda_codec *codec, int type)
                case 0x10ec0665:
                case 0x10ec0862:
                case 0x10ec0889:
+               case 0x10ec0892:
                        set_eapd(codec, 0x14, 1);
                        set_eapd(codec, 0x15, 1);
                        break;
@@ -4244,6 +4245,7 @@ static void alc_power_eapd(struct hda_codec *codec)
        case 0x10ec0665:
        case 0x10ec0862:
        case 0x10ec0889:
+       case 0x10ec0892:
                set_eapd(codec, 0x14, 0);
                set_eapd(codec, 0x15, 0);
                break;
@@ -17922,10 +17924,13 @@ static struct hda_verb alc662_init_verbs[] = {
        {0x22, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)},
        {0x23, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)},
 
+       { }
+};
+
+static struct hda_verb alc662_eapd_init_verbs[] = {
        /* always trun on EAPD */
        {0x14, AC_VERB_SET_EAPD_BTLENABLE, 2},
        {0x15, AC_VERB_SET_EAPD_BTLENABLE, 2},
-
        { }
 };
 
@@ -18797,7 +18802,7 @@ static struct snd_pci_quirk alc662_cfg_tbl[] = {
 static struct alc_config_preset alc662_presets[] = {
        [ALC662_3ST_2ch_DIG] = {
                .mixers = { alc662_3ST_2ch_mixer },
-               .init_verbs = { alc662_init_verbs },
+               .init_verbs = { alc662_init_verbs, alc662_eapd_init_verbs },
                .num_dacs = ARRAY_SIZE(alc662_dac_nids),
                .dac_nids = alc662_dac_nids,
                .dig_out_nid = ALC662_DIGOUT_NID,
@@ -18808,7 +18813,7 @@ static struct alc_config_preset alc662_presets[] = {
        },
        [ALC662_3ST_6ch_DIG] = {
                .mixers = { alc662_3ST_6ch_mixer, alc662_chmode_mixer },
-               .init_verbs = { alc662_init_verbs },
+               .init_verbs = { alc662_init_verbs, alc662_eapd_init_verbs },
                .num_dacs = ARRAY_SIZE(alc662_dac_nids),
                .dac_nids = alc662_dac_nids,
                .dig_out_nid = ALC662_DIGOUT_NID,
@@ -18820,7 +18825,7 @@ static struct alc_config_preset alc662_presets[] = {
        },
        [ALC662_3ST_6ch] = {
                .mixers = { alc662_3ST_6ch_mixer, alc662_chmode_mixer },
-               .init_verbs = { alc662_init_verbs },
+               .init_verbs = { alc662_init_verbs, alc662_eapd_init_verbs },
                .num_dacs = ARRAY_SIZE(alc662_dac_nids),
                .dac_nids = alc662_dac_nids,
                .num_channel_mode = ARRAY_SIZE(alc662_3ST_6ch_modes),
@@ -18830,7 +18835,7 @@ static struct alc_config_preset alc662_presets[] = {
        },
        [ALC662_5ST_DIG] = {
                .mixers = { alc662_base_mixer, alc662_chmode_mixer },
-               .init_verbs = { alc662_init_verbs },
+               .init_verbs = { alc662_init_verbs, alc662_eapd_init_verbs },
                .num_dacs = ARRAY_SIZE(alc662_dac_nids),
                .dac_nids = alc662_dac_nids,
                .dig_out_nid = ALC662_DIGOUT_NID,
@@ -18841,7 +18846,9 @@ static struct alc_config_preset alc662_presets[] = {
        },
        [ALC662_LENOVO_101E] = {
                .mixers = { alc662_lenovo_101e_mixer },
-               .init_verbs = { alc662_init_verbs, alc662_sue_init_verbs },
+               .init_verbs = { alc662_init_verbs,
+                               alc662_eapd_init_verbs,
+                               alc662_sue_init_verbs },
                .num_dacs = ARRAY_SIZE(alc662_dac_nids),
                .dac_nids = alc662_dac_nids,
                .num_channel_mode = ARRAY_SIZE(alc662_3ST_2ch_modes),
@@ -18853,6 +18860,7 @@ static struct alc_config_preset alc662_presets[] = {
        [ALC662_ASUS_EEEPC_P701] = {
                .mixers = { alc662_eeepc_p701_mixer },
                .init_verbs = { alc662_init_verbs,
+                               alc662_eapd_init_verbs,
                                alc662_eeepc_sue_init_verbs },
                .num_dacs = ARRAY_SIZE(alc662_dac_nids),
                .dac_nids = alc662_dac_nids,
@@ -18866,6 +18874,7 @@ static struct alc_config_preset alc662_presets[] = {
                .mixers = { alc662_eeepc_ep20_mixer,
                            alc662_chmode_mixer },
                .init_verbs = { alc662_init_verbs,
+                               alc662_eapd_init_verbs,
                                alc662_eeepc_ep20_sue_init_verbs },
                .num_dacs = ARRAY_SIZE(alc662_dac_nids),
                .dac_nids = alc662_dac_nids,
@@ -18879,6 +18888,7 @@ static struct alc_config_preset alc662_presets[] = {
        [ALC662_ECS] = {
                .mixers = { alc662_ecs_mixer },
                .init_verbs = { alc662_init_verbs,
+                               alc662_eapd_init_verbs,
                                alc662_ecs_init_verbs },
                .num_dacs = ARRAY_SIZE(alc662_dac_nids),
                .dac_nids = alc662_dac_nids,
@@ -18890,7 +18900,9 @@ static struct alc_config_preset alc662_presets[] = {
        },
        [ALC663_ASUS_M51VA] = {
                .mixers = { alc663_m51va_mixer },
-               .init_verbs = { alc662_init_verbs, alc663_m51va_init_verbs },
+               .init_verbs = { alc662_init_verbs,
+                               alc662_eapd_init_verbs,
+                               alc663_m51va_init_verbs },
                .num_dacs = ARRAY_SIZE(alc662_dac_nids),
                .dac_nids = alc662_dac_nids,
                .dig_out_nid = ALC662_DIGOUT_NID,
@@ -18902,7 +18914,9 @@ static struct alc_config_preset alc662_presets[] = {
        },
        [ALC663_ASUS_G71V] = {
                .mixers = { alc663_g71v_mixer },
-               .init_verbs = { alc662_init_verbs, alc663_g71v_init_verbs },
+               .init_verbs = { alc662_init_verbs,
+                               alc662_eapd_init_verbs,
+                               alc663_g71v_init_verbs },
                .num_dacs = ARRAY_SIZE(alc662_dac_nids),
                .dac_nids = alc662_dac_nids,
                .dig_out_nid = ALC662_DIGOUT_NID,
@@ -18914,7 +18928,9 @@ static struct alc_config_preset alc662_presets[] = {
        },
        [ALC663_ASUS_H13] = {
                .mixers = { alc663_m51va_mixer },
-               .init_verbs = { alc662_init_verbs, alc663_m51va_init_verbs },
+               .init_verbs = { alc662_init_verbs,
+                               alc662_eapd_init_verbs,
+                               alc663_m51va_init_verbs },
                .num_dacs = ARRAY_SIZE(alc662_dac_nids),
                .dac_nids = alc662_dac_nids,
                .num_channel_mode = ARRAY_SIZE(alc662_3ST_2ch_modes),
@@ -18924,7 +18940,9 @@ static struct alc_config_preset alc662_presets[] = {
        },
        [ALC663_ASUS_G50V] = {
                .mixers = { alc663_g50v_mixer },
-               .init_verbs = { alc662_init_verbs, alc663_g50v_init_verbs },
+               .init_verbs = { alc662_init_verbs,
+                               alc662_eapd_init_verbs,
+                               alc663_g50v_init_verbs },
                .num_dacs = ARRAY_SIZE(alc662_dac_nids),
                .dac_nids = alc662_dac_nids,
                .dig_out_nid = ALC662_DIGOUT_NID,
@@ -18939,6 +18957,7 @@ static struct alc_config_preset alc662_presets[] = {
                .mixers = { alc663_m51va_mixer },
                .cap_mixer = alc662_auto_capture_mixer,
                .init_verbs = { alc662_init_verbs,
+                               alc662_eapd_init_verbs,
                                alc663_21jd_amic_init_verbs },
                .num_dacs = ARRAY_SIZE(alc662_dac_nids),
                .hp_nid = 0x03,
@@ -18954,6 +18973,7 @@ static struct alc_config_preset alc662_presets[] = {
                .mixers = { alc662_1bjd_mixer },
                .cap_mixer = alc662_auto_capture_mixer,
                .init_verbs = { alc662_init_verbs,
+                               alc662_eapd_init_verbs,
                                alc662_1bjd_amic_init_verbs },
                .num_dacs = ARRAY_SIZE(alc662_dac_nids),
                .dac_nids = alc662_dac_nids,
@@ -18968,6 +18988,7 @@ static struct alc_config_preset alc662_presets[] = {
                .mixers = { alc663_two_hp_m1_mixer },
                .cap_mixer = alc662_auto_capture_mixer,
                .init_verbs = { alc662_init_verbs,
+                               alc662_eapd_init_verbs,
                                alc663_two_hp_amic_m1_init_verbs },
                .num_dacs = ARRAY_SIZE(alc662_dac_nids),
                .hp_nid = 0x03,
@@ -18983,6 +19004,7 @@ static struct alc_config_preset alc662_presets[] = {
                .mixers = { alc663_asus_21jd_clfe_mixer },
                .cap_mixer = alc662_auto_capture_mixer,
                .init_verbs = { alc662_init_verbs,
+                               alc662_eapd_init_verbs,
                                alc663_21jd_amic_init_verbs},
                .num_dacs = ARRAY_SIZE(alc662_dac_nids),
                .hp_nid = 0x03,
@@ -18998,6 +19020,7 @@ static struct alc_config_preset alc662_presets[] = {
                .mixers = { alc663_asus_15jd_clfe_mixer },
                .cap_mixer = alc662_auto_capture_mixer,
                .init_verbs = { alc662_init_verbs,
+                               alc662_eapd_init_verbs,
                                alc663_15jd_amic_init_verbs },
                .num_dacs = ARRAY_SIZE(alc662_dac_nids),
                .hp_nid = 0x03,
@@ -19013,6 +19036,7 @@ static struct alc_config_preset alc662_presets[] = {
                .mixers = { alc663_two_hp_m2_mixer },
                .cap_mixer = alc662_auto_capture_mixer,
                .init_verbs = { alc662_init_verbs,
+                               alc662_eapd_init_verbs,
                                alc663_two_hp_amic_m2_init_verbs },
                .num_dacs = ARRAY_SIZE(alc662_dac_nids),
                .hp_nid = 0x03,
@@ -19028,6 +19052,7 @@ static struct alc_config_preset alc662_presets[] = {
                .mixers = { alc663_mode7_mixer },
                .cap_mixer = alc662_auto_capture_mixer,
                .init_verbs = { alc662_init_verbs,
+                               alc662_eapd_init_verbs,
                                alc663_mode7_init_verbs },
                .num_dacs = ARRAY_SIZE(alc662_dac_nids),
                .hp_nid = 0x03,
@@ -19043,6 +19068,7 @@ static struct alc_config_preset alc662_presets[] = {
                .mixers = { alc663_mode8_mixer },
                .cap_mixer = alc662_auto_capture_mixer,
                .init_verbs = { alc662_init_verbs,
+                               alc662_eapd_init_verbs,
                                alc663_mode8_init_verbs },
                .num_dacs = ARRAY_SIZE(alc662_dac_nids),
                .hp_nid = 0x03,
@@ -19057,7 +19083,9 @@ static struct alc_config_preset alc662_presets[] = {
        [ALC272_DELL] = {
                .mixers = { alc663_m51va_mixer },
                .cap_mixer = alc272_auto_capture_mixer,
-               .init_verbs = { alc662_init_verbs, alc272_dell_init_verbs },
+               .init_verbs = { alc662_init_verbs,
+                               alc662_eapd_init_verbs,
+                               alc272_dell_init_verbs },
                .num_dacs = ARRAY_SIZE(alc272_dac_nids),
                .dac_nids = alc272_dac_nids,
                .num_channel_mode = ARRAY_SIZE(alc662_3ST_2ch_modes),
@@ -19072,7 +19100,9 @@ static struct alc_config_preset alc662_presets[] = {
        [ALC272_DELL_ZM1] = {
                .mixers = { alc663_m51va_mixer },
                .cap_mixer = alc662_auto_capture_mixer,
-               .init_verbs = { alc662_init_verbs, alc272_dell_zm1_init_verbs },
+               .init_verbs = { alc662_init_verbs,
+                               alc662_eapd_init_verbs,
+                               alc272_dell_zm1_init_verbs },
                .num_dacs = ARRAY_SIZE(alc272_dac_nids),
                .dac_nids = alc272_dac_nids,
                .num_channel_mode = ARRAY_SIZE(alc662_3ST_2ch_modes),
@@ -19087,6 +19117,7 @@ static struct alc_config_preset alc662_presets[] = {
        [ALC272_SAMSUNG_NC10] = {
                .mixers = { alc272_nc10_mixer },
                .init_verbs = { alc662_init_verbs,
+                               alc662_eapd_init_verbs,
                                alc663_21jd_amic_init_verbs },
                .num_dacs = ARRAY_SIZE(alc272_dac_nids),
                .dac_nids = alc272_dac_nids,