aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew L. Neporada <nepal@asplinux.ru>2006-11-07 05:37:08 -0500
committerJaroslav Kysela <perex@suse.cz>2007-02-09 03:01:21 -0500
commitb373bdebf57e2ac7994d9be3a68fd5507515caef (patch)
treef308b81641de91ed4f1236c4b197d409a6e4a8e4
parent54bf5dd9ccd8c37830d7dae0737466e8fda018aa (diff)
[ALSA] hda-codec - Clevo M540JE, M550JE laptops (Nvidia MCP51 chipset, ALC883 codec)
We need to enable External Amplifier on this laptops. This patch basicly adds laptop-eapd model to ALC883 codec. Signed-off-by: Andrew L. Neporada <nepal@asplinux.ru> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
-rw-r--r--Documentation/sound/alsa/ALSA-Configuration.txt1
-rw-r--r--sound/pci/hda/patch_realtek.c30
2 files changed, 27 insertions, 4 deletions
diff --git a/Documentation/sound/alsa/ALSA-Configuration.txt b/Documentation/sound/alsa/ALSA-Configuration.txt
index e4255f69b300..8a254e2fe315 100644
--- a/Documentation/sound/alsa/ALSA-Configuration.txt
+++ b/Documentation/sound/alsa/ALSA-Configuration.txt
@@ -822,6 +822,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
822 medion Medion Laptops 822 medion Medion Laptops
823 targa-dig Targa/MSI 823 targa-dig Targa/MSI
824 targa-2ch-dig Targs/MSI with 2-channel 824 targa-2ch-dig Targs/MSI with 2-channel
825 laptop-eapd 3-jack with SPDIF I/O and EAPD (Clevo M540JE, M550JE)
825 auto auto-config reading BIOS (default) 826 auto auto-config reading BIOS (default)
826 827
827 ALC861/660 828 ALC861/660
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index 990714e2bcb3..b1e8cd8961de 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -125,6 +125,7 @@ enum {
125 ALC888_DEMO_BOARD, 125 ALC888_DEMO_BOARD,
126 ALC883_ACER, 126 ALC883_ACER,
127 ALC883_MEDION, 127 ALC883_MEDION,
128 ALC883_LAPTOP_EAPD,
128 ALC883_AUTO, 129 ALC883_AUTO,
129 ALC883_MODEL_LAST, 130 ALC883_MODEL_LAST,
130}; 131};
@@ -4540,7 +4541,7 @@ static struct hda_verb alc882_init_verbs[] = {
4540static struct hda_verb alc882_eapd_verbs[] = { 4541static struct hda_verb alc882_eapd_verbs[] = {
4541 /* change to EAPD mode */ 4542 /* change to EAPD mode */
4542 {0x20, AC_VERB_SET_COEF_INDEX, 0x07}, 4543 {0x20, AC_VERB_SET_COEF_INDEX, 0x07},
4543 {0x20, AC_VERB_SET_PROC_COEF, 0x3070}, 4544 {0x20, AC_VERB_SET_PROC_COEF, 0x3060},
4544 { } 4545 { }
4545}; 4546};
4546 4547
@@ -4998,6 +4999,13 @@ static struct hda_channel_mode alc883_sixstack_modes[2] = {
4998 { 8, alc883_sixstack_ch8_init }, 4999 { 8, alc883_sixstack_ch8_init },
4999}; 5000};
5000 5001
5002static struct hda_verb alc883_medion_eapd_verbs[] = {
5003 /* eanable EAPD on medion laptop */
5004 {0x20, AC_VERB_SET_COEF_INDEX, 0x07},
5005 {0x20, AC_VERB_SET_PROC_COEF, 0x3070},
5006 { }
5007};
5008
5001/* Pin assignment: Front=0x14, Rear=0x15, CLFE=0x16, Side=0x17 5009/* Pin assignment: Front=0x14, Rear=0x15, CLFE=0x16, Side=0x17
5002 * Mic=0x18, Front Mic=0x19, Line-In=0x1a, HP=0x1b 5010 * Mic=0x18, Front Mic=0x19, Line-In=0x1a, HP=0x1b
5003 */ 5011 */
@@ -5471,6 +5479,9 @@ static struct hda_board_config alc883_cfg_tbl[] = {
5471 .config = ALC883_ACER }, 5479 .config = ALC883_ACER },
5472 { .pci_subvendor = 0x161f, .pci_subdevice = 0x2054, 5480 { .pci_subvendor = 0x161f, .pci_subdevice = 0x2054,
5473 .modelname = "medion", .config = ALC883_MEDION }, 5481 .modelname = "medion", .config = ALC883_MEDION },
5482 { .modelname = "laptop-eapd", .config = ALC883_LAPTOP_EAPD },
5483 { .pci_subvendor = 0x1558, .pci_subdevice = 0,
5484 .config = ALC883_LAPTOP_EAPD }, /* Clevo */
5474 { .modelname = "auto", .config = ALC883_AUTO }, 5485 { .modelname = "auto", .config = ALC883_AUTO },
5475 {} 5486 {}
5476}; 5487};
@@ -5591,7 +5602,7 @@ static struct alc_config_preset alc883_presets[] = {
5591 .mixers = { alc883_fivestack_mixer, 5602 .mixers = { alc883_fivestack_mixer,
5592 alc883_chmode_mixer }, 5603 alc883_chmode_mixer },
5593 .init_verbs = { alc883_init_verbs, 5604 .init_verbs = { alc883_init_verbs,
5594 alc882_eapd_verbs }, 5605 alc883_medion_eapd_verbs },
5595 .num_dacs = ARRAY_SIZE(alc883_dac_nids), 5606 .num_dacs = ARRAY_SIZE(alc883_dac_nids),
5596 .dac_nids = alc883_dac_nids, 5607 .dac_nids = alc883_dac_nids,
5597 .num_adc_nids = ARRAY_SIZE(alc883_adc_nids), 5608 .num_adc_nids = ARRAY_SIZE(alc883_adc_nids),
@@ -5599,8 +5610,19 @@ static struct alc_config_preset alc883_presets[] = {
5599 .num_channel_mode = ARRAY_SIZE(alc883_sixstack_modes), 5610 .num_channel_mode = ARRAY_SIZE(alc883_sixstack_modes),
5600 .channel_mode = alc883_sixstack_modes, 5611 .channel_mode = alc883_sixstack_modes,
5601 .input_mux = &alc883_capture_source, 5612 .input_mux = &alc883_capture_source,
5602 } 5613 },
5603 5614 [ALC883_LAPTOP_EAPD] = {
5615 .mixers = { alc883_base_mixer,
5616 alc883_chmode_mixer },
5617 .init_verbs = { alc883_init_verbs, alc882_eapd_verbs },
5618 .num_dacs = ARRAY_SIZE(alc883_dac_nids),
5619 .dac_nids = alc883_dac_nids,
5620 .num_adc_nids = ARRAY_SIZE(alc883_adc_nids),
5621 .adc_nids = alc883_adc_nids,
5622 .num_channel_mode = ARRAY_SIZE(alc883_3ST_2ch_modes),
5623 .channel_mode = alc883_3ST_2ch_modes,
5624 .input_mux = &alc883_capture_source,
5625 },
5604}; 5626};
5605 5627
5606 5628