ASoC: Bail out of wm_hubs DC servo if calibration fails
authorMark Brown <broonie@opensource.wolfsonmicro.com>
Thu, 18 Mar 2010 12:25:35 +0000 (12:25 +0000)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Fri, 19 Mar 2010 11:17:36 +0000 (11:17 +0000)
We're keeping track of the number of times we've iterated but never
actually using this to bail out if the chip looks stuck.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
sound/soc/codecs/wm_hubs.c

index 0ad9f5d536c67bf89afe1172ef863cff2fdfd6d0..486bdd21a98ab9115f6ee6e37133491079d0ca4d 100644 (file)
@@ -74,7 +74,7 @@ static void wait_for_dc_servo(struct snd_soc_codec *codec)
                msleep(1);
                reg = snd_soc_read(codec, WM8993_DC_SERVO_READBACK_0);
                dev_dbg(codec->dev, "DC servo: %x\n", reg);
-       } while (reg & WM8993_DCS_DATAPATH_BUSY);
+       } while (reg & WM8993_DCS_DATAPATH_BUSY && count < 400);
 
        if (reg & WM8993_DCS_DATAPATH_BUSY)
                dev_err(codec->dev, "Timed out waiting for DC Servo\n");