ALSA: hda - Fix ALC662 DAC mixer mutes also for auto config model
Herton Ronaldo Krzesinski [Thu, 18 Sep 2008 19:41:49 +0000 (16:41 -0300)]
In previous change "[ALSA] hda-codec - Fix ALC662 DAC mixer mutes", I
missed to fix the mixer mute switches also for the auto config model of
ALC662. Now mute for mixer items "Front", "Surround", "Center" and "LFE"
when available will work too with "auto" model.

Signed-off-by: Herton Ronaldo Krzesinski <herton@mandriva.com.br>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>

sound/pci/hda/patch_realtek.c

index 6ada0e3..c2ff85d 100644 (file)
@@ -15973,15 +15973,15 @@ static int alc662_auto_create_multi_out_ctls(struct alc_spec *spec,
                                                              HDA_OUTPUT));
                        if (err < 0)
                                return err;
-                       err = add_control(spec, ALC_CTL_BIND_MUTE,
+                       err = add_control(spec, ALC_CTL_WIDGET_MUTE,
                                          "Center Playback Switch",
-                                         HDA_COMPOSE_AMP_VAL(nid, 1, 2,
+                                         HDA_COMPOSE_AMP_VAL(0x0e, 1, 0,
                                                              HDA_INPUT));
                        if (err < 0)
                                return err;
-                       err = add_control(spec, ALC_CTL_BIND_MUTE,
+                       err = add_control(spec, ALC_CTL_WIDGET_MUTE,
                                          "LFE Playback Switch",
-                                         HDA_COMPOSE_AMP_VAL(nid, 2, 2,
+                                         HDA_COMPOSE_AMP_VAL(0x0e, 2, 0,
                                                              HDA_INPUT));
                        if (err < 0)
                                return err;
@@ -15993,9 +15993,9 @@ static int alc662_auto_create_multi_out_ctls(struct alc_spec *spec,
                        if (err < 0)
                                return err;
                        sprintf(name, "%s Playback Switch", chname[i]);
-                       err = add_control(spec, ALC_CTL_BIND_MUTE, name,
-                                         HDA_COMPOSE_AMP_VAL(nid, 3, 2,
-                                                             HDA_INPUT));
+                       err = add_control(spec, ALC_CTL_WIDGET_MUTE, name,
+                               HDA_COMPOSE_AMP_VAL(alc880_idx_to_mixer(i),
+                                                   3, 0, HDA_INPUT));
                        if (err < 0)
                                return err;
                }