Index: ak4535.c
===================================================================
RCS file: /cvs/linux/kernel/drivers/sound/ak4535.c,v
retrieving revision 1.21
diff -u -r1.21 ak4535.c
--- ak4535.c	26 Feb 2005 10:10:35 -0000	1.21
+++ ak4535.c	28 Feb 2005 18:39:01 -0000
@@ -309,9 +309,9 @@
 
 	case I2C_SET_MIC_GAIN:
 		newregnum = REG_PGA;
-		if (val > 127) {
-			printk("mic_gain=%d must be in range [0,127]", val);
-			val = 127;
+		if (val > 71) {
+			printk("mic_gain=%d must be in range [0,71]", val);
+			val = 71;
 		}
 		akm->regs[REG_PGA] = (unsigned char)val;
 		break;
@@ -460,18 +460,18 @@
 		case SOUND_MIXER_LINE:
 			akm->line = val;
 			akm->mod_cnt++;
-			/* input value [0,100], ak4535 uses [0,255] */
+			/* input value [0,100], ak4535 uses [255,0] */
 			val = gain.left;
-			val = 255 * val / 100;
+			val = 0xff & ~(255 * val / 100);
 			ak4535_update(clnt, I2C_SET_LINE_GAIN, &val);
 			break;
 
 		case SOUND_MIXER_MIC:
 			akm->mic = val;
 			akm->mod_cnt++;
-			/* input value [0,100], ak4535 uses [0,127] */
+			/* input value [0,100], ak4535 uses [0,71] */
 			val = gain.left;
-			val = 127 * val / 100;
+			val = 71 * val / 100;
 
 			ak4535_update(clnt, I2C_SET_MIC_GAIN, &val);
 			break;

