aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci/hda/patch_realtek.c
diff options
context:
space:
mode:
authorTony Vroon <tony@linx.net>2009-06-20 19:40:10 -0400
committerTakashi Iwai <tiwai@suse.de>2009-06-21 04:52:14 -0400
commitd2fd4b09c07ae0c5ac288c0da6100c26ba9db15b (patch)
tree583b85f598b4ed657f085b6b973723c32683173b /sound/pci/hda/patch_realtek.c
parentdef319f9e937f7a6a29718d3e2826c6c32f33245 (diff)
ALSA: hda - Acer Inspire 6530G model for Realtek ALC888
The selected 4930G model seemed to keep the subwoofer 'tuba' function from operating correctly. Removing the existing PCI ID match made this work again, but it was mapped to 'Side' instead of to LFE as one would expect. This attempts to enable all functionality and keep the amount of available mixer sliders low. Any slider that had no audible effect on the output audio has been removed, and as such EAPD is not currently enabled. Signed-off-by: Tony Vroon <tony@linx.net> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci/hda/patch_realtek.c')
-rw-r--r--sound/pci/hda/patch_realtek.c72
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
1478static 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
1567static 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
1547static struct hda_input_mux alc889_capture_sources[3] = { 1586static 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
8195static 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
8156static struct snd_kcontrol_new alc888_lenovo_sky_mixer[] = { 8208static 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 },