ALSA: hda - Create HP-vol control properly for VIA codecs
authorTakashi Iwai <tiwai@suse.de>
Mon, 4 Jul 2011 13:55:44 +0000 (15:55 +0200)
committerTakashi Iwai <tiwai@suse.de>
Mon, 4 Jul 2011 13:55:44 +0000 (15:55 +0200)
When the individual DAC is available for the headphone output, the driver
should create the DAC for its volume control.

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

index 0a5a02ac2b22806d080bcbad3fef6d0a60a369ca..8d46a0f937a9911d6e56d52dc5392a3b3a187993 100644 (file)
@@ -1855,6 +1855,7 @@ static int via_auto_create_hp_ctls(struct hda_codec *codec, hda_nid_t pin)
 {
        struct via_spec *spec = codec->spec;
        struct nid_path *path;
+       bool check_dac;
        int err;
 
        if (!pin)
@@ -1875,11 +1876,14 @@ static int via_auto_create_hp_ctls(struct hda_codec *codec, hda_nid_t pin)
            !spec->hp_dac_nid)
                return 0;
 
-       if (spec->hp_dac_nid && !spec->hp_indep_shared)
+       if (spec->hp_dac_nid && !spec->hp_indep_shared) {
                path = &spec->hp_path;
-       else
+               check_dac = true;
+       } else {
                path = &spec->hp_dep_path;
-       err = create_ch_ctls(codec, "Headphone", 3, false, path);
+               check_dac = false;
+       }
+       err = create_ch_ctls(codec, "Headphone", 3, check_dac, path);
        if (err < 0)
                return err;
        if (spec->hp_dac_nid) {