ASoC: wm8996: ensure lower bounds of 1 for timeout
authorNicholas Mc Guire <hofrat@osadl.org>
Sun, 8 Mar 2015 10:02:38 +0000 (06:02 -0400)
committerMark Brown <broonie@kernel.org>
Mon, 9 Mar 2015 18:15:56 +0000 (18:15 +0000)
wait_for_completion_timeout can be called with timeout == 0 due to
msecs_to_jiffies(2) == 1 for HZ < 1000 and usecs_to_jiffies(300) == 1
for all reasonable values of HZ, thus the following timeout /= 2; sets
timeout to 0. This patch simply adds a lower-bounds of 1.

Signed-off-by: Nicholas Mc Guire <hofrat@osadl.org>
Acked-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/wm8996.c

index 7a2b96959589cd321d4f70292206c1de3ba6f044..308748a022c55214949b9003f81f67dccad2995e 100644 (file)
@@ -2110,7 +2110,8 @@ static int wm8996_set_fll(struct snd_soc_codec *codec, int fll_id, int source,
        if (i2c->irq)
                timeout *= 10;
        else
-               timeout /= 2;
+               /* ensure timeout of atleast 1 jiffies */
+               timeout = timeout/2 ? : 1;
 
        for (retry = 0; retry < 10; retry++) {
                time_left = wait_for_completion_timeout(&wm8996->fll_lock,