aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci/hda/patch_via.c
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2011-07-04 15:55:44 +0200
committerTakashi Iwai <tiwai@suse.de>2011-07-04 15:55:44 +0200
commit18bd2c44b9c7f0ee775e756dd59e12e0939f7ab9 (patch)
tree24f78db2bebcd2812fcbde5cb02aa69b2be71ed4 /sound/pci/hda/patch_via.c
parentde6c74f3e323b132caec898d224e0e3253d92eaf (diff)
ALSA: hda - Create HP-vol control properly for VIA codecs
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>
Diffstat (limited to 'sound/pci/hda/patch_via.c')
-rw-r--r--sound/pci/hda/patch_via.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/sound/pci/hda/patch_via.c b/sound/pci/hda/patch_via.c
index 0a5a02ac2b2..8d46a0f937a 100644
--- a/sound/pci/hda/patch_via.c
+++ b/sound/pci/hda/patch_via.c
@@ -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) {