From b373bdebf57e2ac7994d9be3a68fd5507515caef Mon Sep 17 00:00:00 2001 From: "Andrew L. Neporada" Date: Tue, 7 Nov 2006 11:37:08 +0100 Subject: [PATCH] [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 Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela --- .../sound/alsa/ALSA-Configuration.txt | 1 + sound/pci/hda/patch_realtek.c | 30 ++++++++++++++++--- 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. medion Medion Laptops targa-dig Targa/MSI targa-2ch-dig Targs/MSI with 2-channel + laptop-eapd 3-jack with SPDIF I/O and EAPD (Clevo M540JE, M550JE) auto auto-config reading BIOS (default) 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 { ALC888_DEMO_BOARD, ALC883_ACER, ALC883_MEDION, + ALC883_LAPTOP_EAPD, ALC883_AUTO, ALC883_MODEL_LAST, }; @@ -4540,7 +4541,7 @@ static struct hda_verb alc882_init_verbs[] = { static struct hda_verb alc882_eapd_verbs[] = { /* change to EAPD mode */ {0x20, AC_VERB_SET_COEF_INDEX, 0x07}, - {0x20, AC_VERB_SET_PROC_COEF, 0x3070}, + {0x20, AC_VERB_SET_PROC_COEF, 0x3060}, { } }; @@ -4998,6 +4999,13 @@ static struct hda_channel_mode alc883_sixstack_modes[2] = { { 8, alc883_sixstack_ch8_init }, }; +static struct hda_verb alc883_medion_eapd_verbs[] = { + /* eanable EAPD on medion laptop */ + {0x20, AC_VERB_SET_COEF_INDEX, 0x07}, + {0x20, AC_VERB_SET_PROC_COEF, 0x3070}, + { } +}; + /* Pin assignment: Front=0x14, Rear=0x15, CLFE=0x16, Side=0x17 * Mic=0x18, Front Mic=0x19, Line-In=0x1a, HP=0x1b */ @@ -5471,6 +5479,9 @@ static struct hda_board_config alc883_cfg_tbl[] = { .config = ALC883_ACER }, { .pci_subvendor = 0x161f, .pci_subdevice = 0x2054, .modelname = "medion", .config = ALC883_MEDION }, + { .modelname = "laptop-eapd", .config = ALC883_LAPTOP_EAPD }, + { .pci_subvendor = 0x1558, .pci_subdevice = 0, + .config = ALC883_LAPTOP_EAPD }, /* Clevo */ { .modelname = "auto", .config = ALC883_AUTO }, {} }; @@ -5591,7 +5602,7 @@ static struct alc_config_preset alc883_presets[] = { .mixers = { alc883_fivestack_mixer, alc883_chmode_mixer }, .init_verbs = { alc883_init_verbs, - alc882_eapd_verbs }, + alc883_medion_eapd_verbs }, .num_dacs = ARRAY_SIZE(alc883_dac_nids), .dac_nids = alc883_dac_nids, .num_adc_nids = ARRAY_SIZE(alc883_adc_nids), @@ -5599,8 +5610,19 @@ static struct alc_config_preset alc883_presets[] = { .num_channel_mode = ARRAY_SIZE(alc883_sixstack_modes), .channel_mode = alc883_sixstack_modes, .input_mux = &alc883_capture_source, - } - + }, + [ALC883_LAPTOP_EAPD] = { + .mixers = { alc883_base_mixer, + alc883_chmode_mixer }, + .init_verbs = { alc883_init_verbs, alc882_eapd_verbs }, + .num_dacs = ARRAY_SIZE(alc883_dac_nids), + .dac_nids = alc883_dac_nids, + .num_adc_nids = ARRAY_SIZE(alc883_adc_nids), + .adc_nids = alc883_adc_nids, + .num_channel_mode = ARRAY_SIZE(alc883_3ST_2ch_modes), + .channel_mode = alc883_3ST_2ch_modes, + .input_mux = &alc883_capture_source, + }, };