|
@@ -11,13 +11,11 @@ enum {
|
|
ALC662_3ST_6ch,
|
|
ALC662_3ST_6ch,
|
|
ALC662_5ST_DIG,
|
|
ALC662_5ST_DIG,
|
|
ALC662_LENOVO_101E,
|
|
ALC662_LENOVO_101E,
|
|
- ALC662_ASUS_EEEPC_P701,
|
|
|
|
ALC662_ASUS_EEEPC_EP20,
|
|
ALC662_ASUS_EEEPC_EP20,
|
|
ALC663_ASUS_M51VA,
|
|
ALC663_ASUS_M51VA,
|
|
ALC663_ASUS_G71V,
|
|
ALC663_ASUS_G71V,
|
|
ALC663_ASUS_H13,
|
|
ALC663_ASUS_H13,
|
|
ALC663_ASUS_G50V,
|
|
ALC663_ASUS_G50V,
|
|
- ALC662_ECS,
|
|
|
|
ALC663_ASUS_MODE1,
|
|
ALC663_ASUS_MODE1,
|
|
ALC662_ASUS_MODE2,
|
|
ALC662_ASUS_MODE2,
|
|
ALC663_ASUS_MODE3,
|
|
ALC663_ASUS_MODE3,
|
|
@@ -222,20 +220,6 @@ static const struct snd_kcontrol_new alc662_lenovo_101e_mixer[] = {
|
|
{ } /* end */
|
|
{ } /* end */
|
|
};
|
|
};
|
|
|
|
|
|
-static const struct snd_kcontrol_new alc662_eeepc_p701_mixer[] = {
|
|
|
|
- HDA_CODEC_VOLUME("Master Playback Volume", 0x02, 0x0, HDA_OUTPUT),
|
|
|
|
- ALC262_HIPPO_MASTER_SWITCH,
|
|
|
|
-
|
|
|
|
- HDA_CODEC_VOLUME("Mic Boost Volume", 0x18, 0, HDA_INPUT),
|
|
|
|
- HDA_CODEC_VOLUME("Mic Playback Volume", 0x0b, 0x0, HDA_INPUT),
|
|
|
|
- HDA_CODEC_MUTE("Mic Playback Switch", 0x0b, 0x0, HDA_INPUT),
|
|
|
|
-
|
|
|
|
- HDA_CODEC_VOLUME("Internal Mic Boost Volume", 0x19, 0, HDA_INPUT),
|
|
|
|
- HDA_CODEC_VOLUME("Internal Mic Playback Volume", 0x0b, 0x1, HDA_INPUT),
|
|
|
|
- HDA_CODEC_MUTE("Internal Mic Playback Switch", 0x0b, 0x1, HDA_INPUT),
|
|
|
|
- { } /* end */
|
|
|
|
-};
|
|
|
|
-
|
|
|
|
static const struct snd_kcontrol_new alc662_eeepc_ep20_mixer[] = {
|
|
static const struct snd_kcontrol_new alc662_eeepc_ep20_mixer[] = {
|
|
ALC262_HIPPO_MASTER_SWITCH,
|
|
ALC262_HIPPO_MASTER_SWITCH,
|
|
HDA_CODEC_VOLUME("Front Playback Volume", 0x02, 0x0, HDA_OUTPUT),
|
|
HDA_CODEC_VOLUME("Front Playback Volume", 0x02, 0x0, HDA_OUTPUT),
|
|
@@ -514,12 +498,6 @@ static const struct hda_verb alc662_sue_init_verbs[] = {
|
|
{}
|
|
{}
|
|
};
|
|
};
|
|
|
|
|
|
-static const struct hda_verb alc662_eeepc_sue_init_verbs[] = {
|
|
|
|
- {0x18, AC_VERB_SET_UNSOLICITED_ENABLE, AC_USRSP_EN | ALC_MIC_EVENT},
|
|
|
|
- {0x1b, AC_VERB_SET_UNSOLICITED_ENABLE, AC_USRSP_EN | ALC_HP_EVENT},
|
|
|
|
- {}
|
|
|
|
-};
|
|
|
|
-
|
|
|
|
/* Set Unsolicited Event*/
|
|
/* Set Unsolicited Event*/
|
|
static const struct hda_verb alc662_eeepc_ep20_sue_init_verbs[] = {
|
|
static const struct hda_verb alc662_eeepc_ep20_sue_init_verbs[] = {
|
|
{0x1b, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT},
|
|
{0x1b, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT},
|
|
@@ -703,16 +681,6 @@ static void alc662_lenovo_101e_setup(struct hda_codec *codec)
|
|
spec->automute_mode = ALC_AUTOMUTE_AMP;
|
|
spec->automute_mode = ALC_AUTOMUTE_AMP;
|
|
}
|
|
}
|
|
|
|
|
|
-static void alc662_eeepc_setup(struct hda_codec *codec)
|
|
|
|
-{
|
|
|
|
- struct alc_spec *spec = codec->spec;
|
|
|
|
-
|
|
|
|
- alc262_hippo1_setup(codec);
|
|
|
|
- spec->ext_mic_pin = 0x18;
|
|
|
|
- spec->int_mic_pin = 0x19;
|
|
|
|
- spec->auto_mic = 1;
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
static void alc662_eeepc_ep20_setup(struct hda_codec *codec)
|
|
static void alc662_eeepc_ep20_setup(struct hda_codec *codec)
|
|
{
|
|
{
|
|
struct alc_spec *spec = codec->spec;
|
|
struct alc_spec *spec = codec->spec;
|
|
@@ -894,9 +862,7 @@ static const char * const alc662_models[ALC662_MODEL_LAST] = {
|
|
[ALC662_3ST_6ch] = "3stack-6ch",
|
|
[ALC662_3ST_6ch] = "3stack-6ch",
|
|
[ALC662_5ST_DIG] = "5stack-dig",
|
|
[ALC662_5ST_DIG] = "5stack-dig",
|
|
[ALC662_LENOVO_101E] = "lenovo-101e",
|
|
[ALC662_LENOVO_101E] = "lenovo-101e",
|
|
- [ALC662_ASUS_EEEPC_P701] = "eeepc-p701",
|
|
|
|
[ALC662_ASUS_EEEPC_EP20] = "eeepc-ep20",
|
|
[ALC662_ASUS_EEEPC_EP20] = "eeepc-ep20",
|
|
- [ALC662_ECS] = "ecs",
|
|
|
|
[ALC663_ASUS_M51VA] = "m51va",
|
|
[ALC663_ASUS_M51VA] = "m51va",
|
|
[ALC663_ASUS_G71V] = "g71v",
|
|
[ALC663_ASUS_G71V] = "g71v",
|
|
[ALC663_ASUS_H13] = "h13",
|
|
[ALC663_ASUS_H13] = "h13",
|
|
@@ -913,7 +879,6 @@ static const char * const alc662_models[ALC662_MODEL_LAST] = {
|
|
};
|
|
};
|
|
|
|
|
|
static const struct snd_pci_quirk alc662_cfg_tbl[] = {
|
|
static const struct snd_pci_quirk alc662_cfg_tbl[] = {
|
|
- SND_PCI_QUIRK(0x1019, 0x9087, "ECS", ALC662_ECS),
|
|
|
|
SND_PCI_QUIRK(0x1043, 0x1000, "ASUS N50Vm", ALC663_ASUS_MODE1),
|
|
SND_PCI_QUIRK(0x1043, 0x1000, "ASUS N50Vm", ALC663_ASUS_MODE1),
|
|
SND_PCI_QUIRK(0x1043, 0x1092, "ASUS NB", ALC663_ASUS_MODE3),
|
|
SND_PCI_QUIRK(0x1043, 0x1092, "ASUS NB", ALC663_ASUS_MODE3),
|
|
SND_PCI_QUIRK(0x1043, 0x1173, "ASUS K73Jn", ALC663_ASUS_MODE1),
|
|
SND_PCI_QUIRK(0x1043, 0x1173, "ASUS K73Jn", ALC663_ASUS_MODE1),
|
|
@@ -971,9 +936,7 @@ static const struct snd_pci_quirk alc662_cfg_tbl[] = {
|
|
SND_PCI_QUIRK(0x1043, 0x19e3, "ASUS NB", ALC663_ASUS_MODE1),
|
|
SND_PCI_QUIRK(0x1043, 0x19e3, "ASUS NB", ALC663_ASUS_MODE1),
|
|
SND_PCI_QUIRK(0x1043, 0x19f3, "ASUS NB", ALC663_ASUS_MODE4),
|
|
SND_PCI_QUIRK(0x1043, 0x19f3, "ASUS NB", ALC663_ASUS_MODE4),
|
|
SND_PCI_QUIRK(0x1043, 0x8290, "ASUS P5GC-MX", ALC662_3ST_6ch_DIG),
|
|
SND_PCI_QUIRK(0x1043, 0x8290, "ASUS P5GC-MX", ALC662_3ST_6ch_DIG),
|
|
- SND_PCI_QUIRK(0x1043, 0x82a1, "ASUS Eeepc", ALC662_ASUS_EEEPC_P701),
|
|
|
|
SND_PCI_QUIRK(0x1043, 0x82d1, "ASUS Eeepc EP20", ALC662_ASUS_EEEPC_EP20),
|
|
SND_PCI_QUIRK(0x1043, 0x82d1, "ASUS Eeepc EP20", ALC662_ASUS_EEEPC_EP20),
|
|
- SND_PCI_QUIRK(0x105b, 0x0cd6, "Foxconn", ALC662_ECS),
|
|
|
|
SND_PCI_QUIRK(0x105b, 0x0d47, "Foxconn 45CMX/45GMX/45CMX-K",
|
|
SND_PCI_QUIRK(0x105b, 0x0d47, "Foxconn 45CMX/45GMX/45CMX-K",
|
|
ALC662_3ST_6ch_DIG),
|
|
ALC662_3ST_6ch_DIG),
|
|
SND_PCI_QUIRK(0x1179, 0xff6e, "Toshiba NB20x", ALC662_AUTO),
|
|
SND_PCI_QUIRK(0x1179, 0xff6e, "Toshiba NB20x", ALC662_AUTO),
|
|
@@ -1050,19 +1013,6 @@ static const struct alc_config_preset alc662_presets[] = {
|
|
.setup = alc662_lenovo_101e_setup,
|
|
.setup = alc662_lenovo_101e_setup,
|
|
.init_hook = alc_inithook,
|
|
.init_hook = alc_inithook,
|
|
},
|
|
},
|
|
- [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,
|
|
|
|
- .num_channel_mode = ARRAY_SIZE(alc662_3ST_2ch_modes),
|
|
|
|
- .channel_mode = alc662_3ST_2ch_modes,
|
|
|
|
- .unsol_event = alc_sku_unsol_event,
|
|
|
|
- .setup = alc662_eeepc_setup,
|
|
|
|
- .init_hook = alc_inithook,
|
|
|
|
- },
|
|
|
|
[ALC662_ASUS_EEEPC_EP20] = {
|
|
[ALC662_ASUS_EEEPC_EP20] = {
|
|
.mixers = { alc662_eeepc_ep20_mixer,
|
|
.mixers = { alc662_eeepc_ep20_mixer,
|
|
alc662_chmode_mixer },
|
|
alc662_chmode_mixer },
|
|
@@ -1078,19 +1028,6 @@ static const struct alc_config_preset alc662_presets[] = {
|
|
.setup = alc662_eeepc_ep20_setup,
|
|
.setup = alc662_eeepc_ep20_setup,
|
|
.init_hook = alc_inithook,
|
|
.init_hook = alc_inithook,
|
|
},
|
|
},
|
|
- [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,
|
|
|
|
- .num_channel_mode = ARRAY_SIZE(alc662_3ST_2ch_modes),
|
|
|
|
- .channel_mode = alc662_3ST_2ch_modes,
|
|
|
|
- .unsol_event = alc_sku_unsol_event,
|
|
|
|
- .setup = alc662_eeepc_setup,
|
|
|
|
- .init_hook = alc_inithook,
|
|
|
|
- },
|
|
|
|
[ALC663_ASUS_M51VA] = {
|
|
[ALC663_ASUS_M51VA] = {
|
|
.mixers = { alc663_m51va_mixer },
|
|
.mixers = { alc663_m51va_mixer },
|
|
.init_verbs = { alc662_init_verbs,
|
|
.init_verbs = { alc662_init_verbs,
|