ALSA: hda - Improve auto-cfg mixer name for ALC662
authorTakashi Iwai <tiwai@suse.de>
Tue, 25 Aug 2009 14:14:35 +0000 (16:14 +0200)
committerTakashi Iwai <tiwai@suse.de>
Tue, 25 Aug 2009 14:14:35 +0000 (16:14 +0200)
The last patch in this series is for ALC662; pretty similar as the
previous patch for ALC861-VD.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/hda/patch_realtek.c

index 206fcb9..ce098b2 100644 (file)
@@ -17018,13 +17018,25 @@ static int alc662_auto_create_multi_out_ctls(struct alc_spec *spec,
                        if (err < 0)
                                return err;
                } else {
-                       sprintf(name, "%s Playback Volume", chname[i]);
+                       const char *pfx;
+                       if (cfg->line_outs == 1 &&
+                           cfg->line_out_type == AUTO_PIN_SPEAKER_OUT) {
+                               if (!cfg->hp_pins)
+                                       pfx = "Speaker";
+                               else
+                                       pfx = "PCM";
+                       } else
+                               pfx = chname[i];
+                       sprintf(name, "%s Playback Volume", pfx);
                        err = add_control(spec, ALC_CTL_WIDGET_VOL, name,
                                          HDA_COMPOSE_AMP_VAL(nid, 3, 0,
                                                              HDA_OUTPUT));
                        if (err < 0)
                                return err;
-                       sprintf(name, "%s Playback Switch", chname[i]);
+                       if (cfg->line_outs == 1 &&
+                           cfg->line_out_type == AUTO_PIN_SPEAKER_OUT)
+                               pfx = "Speaker";
+                       sprintf(name, "%s Playback Switch", pfx);
                        err = add_control(spec, ALC_CTL_WIDGET_MUTE, name,
                                HDA_COMPOSE_AMP_VAL(alc880_idx_to_mixer(i),
                                                    3, 0, HDA_INPUT));