[alsa-devel] [PATCH] hda: incorrect DAC mixer on 92hd71bxxx

Matthew Ranostay mranostay at embeddedalley.com
Thu Feb 28 23:03:36 CET 2008


If there was two line_outs[] it would overrun into the dmic nid struct below
and create a phantom "Surround" mixer.

Signed-off-by: Matthew Ranostay <mranostay at embeddedalley.com>
---
diff -r 54a51b975975 pci/hda/patch_sigmatel.c
--- a/pci/hda/patch_sigmatel.c	Thu Feb 28 12:46:32 2008 +0100
+++ b/pci/hda/patch_sigmatel.c	Thu Feb 28 16:52:43 2008 -0500
@@ -246,8 +246,8 @@ static hda_nid_t stac92hd71bxx_dmux_nids
 	0x1c,
 };
 
-static hda_nid_t stac92hd71bxx_dac_nids[1] = {
-	0x10, /*0x11, */
+static hda_nid_t stac92hd71bxx_dac_nids[2] = {
+	0x10, 0x11
 };
 
 #define STAC92HD71BXX_NUM_DMICS	2
@@ -2345,10 +2345,10 @@ static int stac92xx_auto_create_multi_ou
 
 
 	for (i = 0; i < cfg->line_outs; i++) {
-		if (!spec->multiout.dac_nids[i])
+		
+		nid = spec->multiout.dac_nids[i];
+		if (!nid || nid == spec->multiout.hp_nid)
 			continue;
-
-		nid = spec->multiout.dac_nids[i];
 
 		if (i == 2) {
 			/* Center/LFE */
@@ -3550,7 +3550,7 @@ again:
 	spec->num_pwrs = ARRAY_SIZE(stac92hd71bxx_pwr_nids);
 	spec->pwr_nids = stac92hd71bxx_pwr_nids;
 
-	spec->multiout.num_dacs = 1;
+	spec->multiout.num_dacs = ARRAY_SIZE(stac92hd71bxx_dac_nids);
 	spec->multiout.hp_nid = 0x11;
 	spec->multiout.dac_nids = stac92hd71bxx_dac_nids;
 


More information about the Alsa-devel mailing list