ASoC: twl6040: correct loop counters for HS/HF ramp code
authorPeter Ujfalusi <peter.ujfalusi@ti.com>
Thu, 29 Sep 2011 12:22:35 +0000 (15:22 +0300)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Fri, 30 Sep 2011 12:55:08 +0000 (13:55 +0100)
The Headset gain range is 0 - 0xf (4 bit resolution)
The Handsfree gain range is 0 - 0x1d (5 bit resolution,
0x1e, and 0x1f values are invalid)

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
sound/soc/codecs/twl6040.c

index 1afc5966cbdb95cb48bdb49e64925b4a59eaa88f..d706bd00d61386b69bf6bf6e83c700afca809d8a 100644 (file)
@@ -495,8 +495,8 @@ static void twl6040_pga_hs_work(struct work_struct *work)
        if (headset->ramp == TWL6040_RAMP_NONE)
                return;
 
-       /* HS PGA volumes have 4 bits of resolution to ramp */
-       for (i = 0; i <= 16; i++) {
+       /* HS PGA gain range: 0x0 - 0xf (0 - 15) */
+       for (i = 0; i < 16; i++) {
                headset_complete = twl6040_hs_ramp_step(codec,
                                                headset->left_step,
                                                headset->right_step);
@@ -530,8 +530,9 @@ static void twl6040_pga_hf_work(struct work_struct *work)
        if (handsfree->ramp == TWL6040_RAMP_NONE)
                return;
 
-       /* HF PGA volumes have 5 bits of resolution to ramp */
-       for (i = 0; i <= 32; i++) {
+       /*
+        * HF PGA gain range: 0x00 - 0x1d (0 - 29) */
+       for (i = 0; i < 30; i++) {
                handsfree_complete = twl6040_hf_ramp_step(codec,
                                                handsfree->left_step,
                                                handsfree->right_step);