mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-12 16:19:53 +00:00
ALSA: hda - Add support for Acer ZGA ALC271 (1025:047c)
Signed-off-by: Kailang Yang <kailang@realtek.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
74bf40f079
commit
fe3eb0a73c
@ -137,6 +137,7 @@ enum {
|
||||
ALC269VB_DMIC,
|
||||
ALC269_FUJITSU,
|
||||
ALC269_LIFEBOOK,
|
||||
ALC271_ACER,
|
||||
ALC269_AUTO,
|
||||
ALC269_MODEL_LAST /* last tag */
|
||||
};
|
||||
@ -13866,6 +13867,12 @@ static struct snd_kcontrol_new alc269vb_laptop_mixer[] = {
|
||||
{ } /* end */
|
||||
};
|
||||
|
||||
static struct snd_kcontrol_new alc269_asus_mixer[] = {
|
||||
HDA_CODEC_VOLUME("Master Playback Volume", 0x02, 0x0, HDA_OUTPUT),
|
||||
HDA_CODEC_MUTE("Master Playback Switch", 0x0c, 0x0, HDA_INPUT),
|
||||
{ } /* end */
|
||||
};
|
||||
|
||||
/* capture mixer elements */
|
||||
static struct snd_kcontrol_new alc269_laptop_analog_capture_mixer[] = {
|
||||
HDA_CODEC_VOLUME("Capture Volume", 0x08, 0x0, HDA_INPUT),
|
||||
@ -14086,6 +14093,20 @@ static struct hda_verb alc269vb_laptop_amic_init_verbs[] = {
|
||||
{}
|
||||
};
|
||||
|
||||
static struct hda_verb alc271_acer_dmic_verbs[] = {
|
||||
{0x20, AC_VERB_SET_COEF_INDEX, 0x0d},
|
||||
{0x20, AC_VERB_SET_PROC_COEF, 0x4000},
|
||||
{0x12, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN},
|
||||
{0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT},
|
||||
{0x21, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP},
|
||||
{0x21, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE},
|
||||
{0x21, AC_VERB_SET_CONNECT_SEL, 0x00},
|
||||
{0x21, AC_VERB_SET_UNSOLICITED_ENABLE, AC_USRSP_EN | ALC880_HP_EVENT},
|
||||
{0x18, AC_VERB_SET_UNSOLICITED_ENABLE, AC_USRSP_EN | ALC880_MIC_EVENT},
|
||||
{0x22, AC_VERB_SET_CONNECT_SEL, 6},
|
||||
{ }
|
||||
};
|
||||
|
||||
/* toggle speaker-output according to the hp-jack state */
|
||||
static void alc269_speaker_automute(struct hda_codec *codec)
|
||||
{
|
||||
@ -14465,6 +14486,7 @@ static const char *alc269_models[ALC269_MODEL_LAST] = {
|
||||
|
||||
static struct snd_pci_quirk alc269_cfg_tbl[] = {
|
||||
SND_PCI_QUIRK(0x17aa, 0x3bf8, "Quanta FL1", ALC269_QUANTA_FL1),
|
||||
SND_PCI_QUIRK(0x1025, 0x047c, "ACER ZGA", ALC271_ACER),
|
||||
SND_PCI_QUIRK(0x1043, 0x8330, "ASUS Eeepc P703 P900A",
|
||||
ALC269_AMIC),
|
||||
SND_PCI_QUIRK(0x1043, 0x1013, "ASUS N61Da", ALC269VB_AMIC),
|
||||
@ -14626,6 +14648,23 @@ static struct alc_config_preset alc269_presets[] = {
|
||||
.unsol_event = alc269_lifebook_unsol_event,
|
||||
.init_hook = alc269_lifebook_init_hook,
|
||||
},
|
||||
[ALC271_ACER] = {
|
||||
.mixers = { alc269_asus_mixer },
|
||||
.cap_mixer = alc269vb_laptop_digital_capture_mixer,
|
||||
.init_verbs = { alc269_init_verbs, alc271_acer_dmic_verbs },
|
||||
.num_dacs = ARRAY_SIZE(alc269_dac_nids),
|
||||
.dac_nids = alc269_dac_nids,
|
||||
.adc_nids = alc262_dmic_adc_nids,
|
||||
.num_adc_nids = ARRAY_SIZE(alc262_dmic_adc_nids),
|
||||
.capsrc_nids = alc262_dmic_capsrc_nids,
|
||||
.num_channel_mode = ARRAY_SIZE(alc269_modes),
|
||||
.channel_mode = alc269_modes,
|
||||
.input_mux = &alc269_capture_source,
|
||||
.dig_out_nid = ALC880_DIGOUT_NID,
|
||||
.unsol_event = alc_sku_unsol_event,
|
||||
.setup = alc269vb_laptop_dmic_setup,
|
||||
.init_hook = alc_inithook,
|
||||
},
|
||||
};
|
||||
|
||||
static int patch_alc269(struct hda_codec *codec)
|
||||
|
Loading…
x
Reference in New Issue
Block a user