diff options
-rw-r--r-- | Documentation/sound/alsa/ALSA-Configuration.txt | 1 | ||||
-rw-r--r-- | 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 e4255f6..8a254e2 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 990714e..b1e8cd8 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, + }, }; |