[ALSA] Add support of Benq laptop with ALC262
authorTakashi Iwai <tiwai@suse.de>
Tue, 25 Jul 2006 12:51:16 +0000 (14:51 +0200)
committerJaroslav Kysela <perex@suse.cz>
Sat, 23 Sep 2006 08:38:50 +0000 (10:38 +0200)
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>
Documentation/sound/alsa/ALSA-Configuration.txt
sound/pci/hda/patch_realtek.c

index c595acb3bf80aa350e13270e88ae01364af70cca..885d2ed88fd0d03921e6262b5b3eb6678e9ab75e 100644 (file)
@@ -799,6 +799,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
        ALC262
          fujitsu       Fujitsu Laptop
          hp-bpc        HP xw4400/6400/8400/9400 laptops
+         benq          Benq ED8
          basic         fixed pin assignment w/o SPDIF
          auto          auto-config reading BIOS (default)
 
index 51f76eef9353d67ff538ca723a59255c0320ad6a..42c4f90a92b83d176cedd8ff7ec5bd2300408383 100644 (file)
@@ -79,6 +79,7 @@ enum {
        ALC262_BASIC,
        ALC262_FUJITSU,
        ALC262_HP_BPC,
+       ALC262_BENQ_ED8,
        ALC262_AUTO,
        ALC262_MODEL_LAST /* last tag */
 };
@@ -5504,6 +5505,13 @@ static struct snd_kcontrol_new alc262_fujitsu_mixer[] = {
        { } /* end */
 };
 
+/* additional init verbs for Benq laptops */
+static struct hda_verb alc262_EAPD_verbs[] = {
+       {0x20, AC_VERB_SET_COEF_INDEX, 0x07},
+       {0x20, AC_VERB_SET_PROC_COEF,  0x3070},
+       {}
+};
+
 /* add playback controls from the parsed DAC table */
 static int alc262_auto_create_multi_out_ctls(struct alc_spec *spec, const struct auto_pin_cfg *cfg)
 {
@@ -5783,6 +5791,9 @@ static struct hda_board_config alc262_cfg_tbl[] = {
          .config = ALC262_HP_BPC }, /* xw8400 */
        { .pci_subvendor = 0x103c, .pci_subdevice = 0x12fe,
          .config = ALC262_HP_BPC }, /* xw9400 */
+       { .modelname = "benq", .config = ALC262_BENQ_ED8 },
+       { .pci_subvendor = 0x17ff, .pci_subdevice = 0x0560,
+         .config = ALC262_BENQ_ED8 },
        { .modelname = "auto", .config = ALC262_AUTO },
        {}
 };
@@ -5820,6 +5831,16 @@ static struct alc_config_preset alc262_presets[] = {
                .channel_mode = alc262_modes,
                .input_mux = &alc262_HP_capture_source,
        },      
+       [ALC262_BENQ_ED8] = {
+               .mixers = { alc262_base_mixer },
+               .init_verbs = { alc262_init_verbs, alc262_EAPD_verbs },
+               .num_dacs = ARRAY_SIZE(alc262_dac_nids),
+               .dac_nids = alc262_dac_nids,
+               .hp_nid = 0x03,
+               .num_channel_mode = ARRAY_SIZE(alc262_modes),
+               .channel_mode = alc262_modes,
+               .input_mux = &alc262_capture_source,
+       },              
 };
 
 static int patch_alc262(struct hda_codec *codec)