diff options
Diffstat (limited to 'sound')
-rw-r--r-- | sound/pci/hda/patch_realtek.c | 72 |
1 files changed, 71 insertions, 1 deletions
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 8cebe2653223..63cfebb8d959 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c | |||
@@ -224,6 +224,7 @@ enum { | |||
224 | ALC883_ACER, | 224 | ALC883_ACER, |
225 | ALC883_ACER_ASPIRE, | 225 | ALC883_ACER_ASPIRE, |
226 | ALC888_ACER_ASPIRE_4930G, | 226 | ALC888_ACER_ASPIRE_4930G, |
227 | ALC888_ACER_ASPIRE_6530G, | ||
227 | ALC888_ACER_ASPIRE_8930G, | 228 | ALC888_ACER_ASPIRE_8930G, |
228 | ALC883_MEDION, | 229 | ALC883_MEDION, |
229 | ALC883_MEDION_MD2, | 230 | ALC883_MEDION_MD2, |
@@ -1471,6 +1472,25 @@ static struct hda_verb alc888_acer_aspire_4930g_verbs[] = { | |||
1471 | }; | 1472 | }; |
1472 | 1473 | ||
1473 | /* | 1474 | /* |
1475 | * ALC888 Acer Aspire 6530G model | ||
1476 | */ | ||
1477 | |||
1478 | static struct hda_verb alc888_acer_aspire_6530g_verbs[] = { | ||
1479 | /* Bias voltage on for external mic port */ | ||
1480 | {0x18, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN | PIN_VREF80}, | ||
1481 | /* Enable unsolicited event for HP jack */ | ||
1482 | {0x15, AC_VERB_SET_UNSOLICITED_ENABLE, ALC880_HP_EVENT | AC_USRSP_EN}, | ||
1483 | /* Enable speaker output */ | ||
1484 | {0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT}, | ||
1485 | {0x14, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, | ||
1486 | /* Enable headphone output */ | ||
1487 | {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT | PIN_HP}, | ||
1488 | {0x15, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, | ||
1489 | {0x15, AC_VERB_SET_CONNECT_SEL, 0x00}, | ||
1490 | { } | ||
1491 | }; | ||
1492 | |||
1493 | /* | ||
1474 | * ALC889 Acer Aspire 8930G model | 1494 | * ALC889 Acer Aspire 8930G model |
1475 | */ | 1495 | */ |
1476 | 1496 | ||
@@ -1544,6 +1564,25 @@ static struct hda_input_mux alc888_2_capture_sources[2] = { | |||
1544 | } | 1564 | } |
1545 | }; | 1565 | }; |
1546 | 1566 | ||
1567 | static struct hda_input_mux alc888_acer_aspire_6530_sources[2] = { | ||
1568 | /* Interal mic only available on one ADC */ | ||
1569 | { | ||
1570 | .num_items = 3, | ||
1571 | .items = { | ||
1572 | { "Ext Mic", 0x0 }, | ||
1573 | { "CD", 0x4 }, | ||
1574 | { "Int Mic", 0xb }, | ||
1575 | }, | ||
1576 | }, | ||
1577 | { | ||
1578 | .num_items = 2, | ||
1579 | .items = { | ||
1580 | { "Ext Mic", 0x0 }, | ||
1581 | { "CD", 0x4 }, | ||
1582 | }, | ||
1583 | } | ||
1584 | }; | ||
1585 | |||
1547 | static struct hda_input_mux alc889_capture_sources[3] = { | 1586 | static struct hda_input_mux alc889_capture_sources[3] = { |
1548 | /* Digital mic only available on first "ADC" */ | 1587 | /* Digital mic only available on first "ADC" */ |
1549 | { | 1588 | { |
@@ -8153,6 +8192,19 @@ static struct snd_kcontrol_new alc883_acer_aspire_mixer[] = { | |||
8153 | { } /* end */ | 8192 | { } /* end */ |
8154 | }; | 8193 | }; |
8155 | 8194 | ||
8195 | static struct snd_kcontrol_new alc888_acer_aspire_6530_mixer[] = { | ||
8196 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), | ||
8197 | HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT), | ||
8198 | HDA_CODEC_VOLUME("LFE Playback Volume", 0x0f, 0x0, HDA_OUTPUT), | ||
8199 | HDA_BIND_MUTE("LFE Playback Switch", 0x0f, 2, HDA_INPUT), | ||
8200 | HDA_CODEC_VOLUME("CD Playback Volume", 0x0b, 0x04, HDA_INPUT), | ||
8201 | HDA_CODEC_MUTE("CD Playback Switch", 0x0b, 0x04, HDA_INPUT), | ||
8202 | HDA_CODEC_VOLUME("Mic Playback Volume", 0x0b, 0x0, HDA_INPUT), | ||
8203 | HDA_CODEC_VOLUME("Mic Boost", 0x18, 0, HDA_INPUT), | ||
8204 | HDA_CODEC_MUTE("Mic Playback Switch", 0x0b, 0x0, HDA_INPUT), | ||
8205 | { } /* end */ | ||
8206 | }; | ||
8207 | |||
8156 | static struct snd_kcontrol_new alc888_lenovo_sky_mixer[] = { | 8208 | static struct snd_kcontrol_new alc888_lenovo_sky_mixer[] = { |
8157 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), | 8209 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), |
8158 | HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT), | 8210 | HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT), |
@@ -9021,7 +9073,7 @@ static struct snd_pci_quirk alc883_cfg_tbl[] = { | |||
9021 | SND_PCI_QUIRK(0x1025, 0x015e, "Acer Aspire 6930G", | 9073 | SND_PCI_QUIRK(0x1025, 0x015e, "Acer Aspire 6930G", |
9022 | ALC888_ACER_ASPIRE_4930G), | 9074 | ALC888_ACER_ASPIRE_4930G), |
9023 | SND_PCI_QUIRK(0x1025, 0x0166, "Acer Aspire 6530G", | 9075 | SND_PCI_QUIRK(0x1025, 0x0166, "Acer Aspire 6530G", |
9024 | ALC888_ACER_ASPIRE_4930G), | 9076 | ALC888_ACER_ASPIRE_6530G), |
9025 | /* default Acer -- disabled as it causes more problems. | 9077 | /* default Acer -- disabled as it causes more problems. |
9026 | * model=auto should work fine now | 9078 | * model=auto should work fine now |
9027 | */ | 9079 | */ |
@@ -9256,6 +9308,24 @@ static struct alc_config_preset alc883_presets[] = { | |||
9256 | .unsol_event = alc_automute_amp_unsol_event, | 9308 | .unsol_event = alc_automute_amp_unsol_event, |
9257 | .init_hook = alc888_acer_aspire_4930g_init_hook, | 9309 | .init_hook = alc888_acer_aspire_4930g_init_hook, |
9258 | }, | 9310 | }, |
9311 | [ALC888_ACER_ASPIRE_6530G] = { | ||
9312 | .mixers = { alc888_acer_aspire_6530_mixer }, | ||
9313 | .init_verbs = { alc883_init_verbs, alc880_gpio1_init_verbs, | ||
9314 | alc888_acer_aspire_6530g_verbs }, | ||
9315 | .num_dacs = ARRAY_SIZE(alc883_dac_nids), | ||
9316 | .dac_nids = alc883_dac_nids, | ||
9317 | .num_adc_nids = ARRAY_SIZE(alc883_adc_nids_rev), | ||
9318 | .adc_nids = alc883_adc_nids_rev, | ||
9319 | .capsrc_nids = alc883_capsrc_nids_rev, | ||
9320 | .dig_out_nid = ALC883_DIGOUT_NID, | ||
9321 | .num_channel_mode = ARRAY_SIZE(alc883_3ST_2ch_modes), | ||
9322 | .channel_mode = alc883_3ST_2ch_modes, | ||
9323 | .num_mux_defs = | ||
9324 | ARRAY_SIZE(alc888_2_capture_sources), | ||
9325 | .input_mux = alc888_acer_aspire_6530_sources, | ||
9326 | .unsol_event = alc_automute_amp_unsol_event, | ||
9327 | .init_hook = alc888_acer_aspire_4930g_init_hook, | ||
9328 | }, | ||
9259 | [ALC888_ACER_ASPIRE_8930G] = { | 9329 | [ALC888_ACER_ASPIRE_8930G] = { |
9260 | .mixers = { alc888_base_mixer, | 9330 | .mixers = { alc888_base_mixer, |
9261 | alc883_chmode_mixer }, | 9331 | alc883_chmode_mixer }, |