aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2006-07-25 08:51:16 -0400
committerJaroslav Kysela <perex@suse.cz>2006-09-23 04:38:50 -0400
commit304dcaac91f0d26543b31fd7e63726f096c826ee (patch)
treebb0aaafbfb87824773cce8f44ed29cc8e8d1eb1c /sound/pci
parent6d177ba7839dd7ed391c2f36b121eb09d1eaee4c (diff)
[ALSA] Add support of Benq laptop with ALC262
Added the support of Benq laptop with ALC262 codec. A model string 'benq' is added, too. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
Diffstat (limited to 'sound/pci')
-rw-r--r--sound/pci/hda/patch_realtek.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index 51f76eef9353..42c4f90a92b8 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -79,6 +79,7 @@ enum {
79 ALC262_BASIC, 79 ALC262_BASIC,
80 ALC262_FUJITSU, 80 ALC262_FUJITSU,
81 ALC262_HP_BPC, 81 ALC262_HP_BPC,
82 ALC262_BENQ_ED8,
82 ALC262_AUTO, 83 ALC262_AUTO,
83 ALC262_MODEL_LAST /* last tag */ 84 ALC262_MODEL_LAST /* last tag */
84}; 85};
@@ -5504,6 +5505,13 @@ static struct snd_kcontrol_new alc262_fujitsu_mixer[] = {
5504 { } /* end */ 5505 { } /* end */
5505}; 5506};
5506 5507
5508/* additional init verbs for Benq laptops */
5509static struct hda_verb alc262_EAPD_verbs[] = {
5510 {0x20, AC_VERB_SET_COEF_INDEX, 0x07},
5511 {0x20, AC_VERB_SET_PROC_COEF, 0x3070},
5512 {}
5513};
5514
5507/* add playback controls from the parsed DAC table */ 5515/* add playback controls from the parsed DAC table */
5508static int alc262_auto_create_multi_out_ctls(struct alc_spec *spec, const struct auto_pin_cfg *cfg) 5516static int alc262_auto_create_multi_out_ctls(struct alc_spec *spec, const struct auto_pin_cfg *cfg)
5509{ 5517{
@@ -5783,6 +5791,9 @@ static struct hda_board_config alc262_cfg_tbl[] = {
5783 .config = ALC262_HP_BPC }, /* xw8400 */ 5791 .config = ALC262_HP_BPC }, /* xw8400 */
5784 { .pci_subvendor = 0x103c, .pci_subdevice = 0x12fe, 5792 { .pci_subvendor = 0x103c, .pci_subdevice = 0x12fe,
5785 .config = ALC262_HP_BPC }, /* xw9400 */ 5793 .config = ALC262_HP_BPC }, /* xw9400 */
5794 { .modelname = "benq", .config = ALC262_BENQ_ED8 },
5795 { .pci_subvendor = 0x17ff, .pci_subdevice = 0x0560,
5796 .config = ALC262_BENQ_ED8 },
5786 { .modelname = "auto", .config = ALC262_AUTO }, 5797 { .modelname = "auto", .config = ALC262_AUTO },
5787 {} 5798 {}
5788}; 5799};
@@ -5820,6 +5831,16 @@ static struct alc_config_preset alc262_presets[] = {
5820 .channel_mode = alc262_modes, 5831 .channel_mode = alc262_modes,
5821 .input_mux = &alc262_HP_capture_source, 5832 .input_mux = &alc262_HP_capture_source,
5822 }, 5833 },
5834 [ALC262_BENQ_ED8] = {
5835 .mixers = { alc262_base_mixer },
5836 .init_verbs = { alc262_init_verbs, alc262_EAPD_verbs },
5837 .num_dacs = ARRAY_SIZE(alc262_dac_nids),
5838 .dac_nids = alc262_dac_nids,
5839 .hp_nid = 0x03,
5840 .num_channel_mode = ARRAY_SIZE(alc262_modes),
5841 .channel_mode = alc262_modes,
5842 .input_mux = &alc262_capture_source,
5843 },
5823}; 5844};
5824 5845
5825static int patch_alc262(struct hda_codec *codec) 5846static int patch_alc262(struct hda_codec *codec)