changeset 11955:3370151db88f

6932506 The fix in 6862287 does not fix the mute issue
author Zhao Edgar Liu - Sun Microsystems <Edgar.Liu@Sun.COM>
date Fri, 19 Mar 2010 10:22:54 +0800
parents d6630fa76b91
children 872ffb603131
files usr/src/uts/common/io/audio/drv/audiohd/audiohd.c
diffstat 1 files changed, 13 insertions(+), 18 deletions(-) [+]
line wrap: on
line diff
--- a/usr/src/uts/common/io/audio/drv/audiohd/audiohd.c	Thu Mar 18 18:06:26 2010 -0600
+++ b/usr/src/uts/common/io/audio/drv/audiohd/audiohd.c	Fri Mar 19 10:22:54 2010 +0800
@@ -1208,25 +1208,20 @@
 		maxgain = w->outamp_cap &
 		    AUDIOHDC_AMP_CAP_STEP_NUMS;
 		maxgain >>= AUDIOHD_GAIN_OFF;
-		if (w->outamp_cap) {
-			verb = AUDIOHDC_AMP_SET_OUTPUT |
-			    (gain * maxgain / 100);
-			if (gain == 0) {
-				/* set mute bit in amplifier */
-				verb |= AUDIOHDC_AMP_SET_MUTE;
-			}
-
-			(void) audioha_codec_4bit_verb_get(statep,
-			    path->codec->index,
-			    wid,
-			    AUDIOHDC_VERB_SET_AMP_MUTE,
-			    AUDIOHDC_AMP_SET_LEFT | verb);
-			(void) audioha_codec_4bit_verb_get(statep,
-			    path->codec->index,
-			    wid,
-			    AUDIOHDC_VERB_SET_AMP_MUTE,
-			    AUDIOHDC_AMP_SET_RIGHT | verb);
+
+		verb = AUDIOHDC_AMP_SET_OUTPUT | AUDIOHDC_AMP_SET_INPUT
+		    | (gain * maxgain / 100);
+		if (gain == 0) {
+			/* set mute bit in amplifier */
+			verb |= AUDIOHDC_AMP_SET_MUTE;
 		}
+
+		(void) audioha_codec_4bit_verb_get(statep,
+		    path->codec->index, wid, AUDIOHDC_VERB_SET_AMP_MUTE,
+		    AUDIOHDC_AMP_SET_LEFT | verb);
+		(void) audioha_codec_4bit_verb_get(statep,
+		    path->codec->index, wid, AUDIOHDC_VERB_SET_AMP_MUTE,
+		    AUDIOHDC_AMP_SET_RIGHT | verb);
 	}
 }