]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
ASoC: fsl_esai: Fix incorrect condition within ratio range check for FP
authorNicolin Chen <Guangyu.Chen@freescale.com>
Tue, 6 May 2014 08:55:59 +0000 (16:55 +0800)
committerNitin Garg <nitin.garg@freescale.com>
Fri, 16 Jan 2015 03:16:50 +0000 (21:16 -0600)
The range here from 1 to 16 is confined to FP divider only while the
sck_div indicates if the calculation contains PSR and PM dividers. So
for the case using PSR and PM since the sck_div is true, the range of
ratio would simply become bigger than 16.

So this patch fixes the condition here and adds one line comments to
make the purpose here clear.

Signed-off-by: Nicolin Chen <Guangyu.Chen@freescale.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
(cherry picked from commit 89e47f62cf3eea7ad5e3d7d72ea846be37d6e352)

sound/soc/fsl/fsl_esai.c

index 9a6e2707f18ed0b700b173fc47780db25ebdd074..273dd3289aec1df66840a18cacc9f81129417d66 100644 (file)
@@ -307,7 +307,8 @@ static int fsl_esai_set_bclk(struct snd_soc_dai *dai, bool tx, u32 freq)
                return -EINVAL;
        }
 
-       if (esai_priv->sck_div[tx] && (ratio > 16 || ratio == 0)) {
+       /* The ratio should be contented by FP alone if bypassing PM and PSR */
+       if (!esai_priv->sck_div[tx] && (ratio > 16 || ratio == 0)) {
                dev_err(dai->dev, "the ratio is out of range (1 ~ 16)\n");
                return -EINVAL;
        }