ASoC: arizona: Be more forgiving in BCLK selection
authorMark Brown <broonie@opensource.wolfsonmicro.com>
Wed, 4 Jul 2012 18:07:09 +0000 (19:07 +0100)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Wed, 4 Jul 2012 18:15:46 +0000 (19:15 +0100)
Allow any BCLK which can be divided down to generate LRCLK, not just the
lowest possible BCLK to clock out the samples.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
sound/soc/codecs/arizona.c

index 8e5246ca555027ae51046c3022d3b63e5194dae3..8e066ebf1227c68730a79f054b67d2fea38998ae 100644 (file)
@@ -518,7 +518,8 @@ static int arizona_hw_params(struct snd_pcm_substream *substream,
                rates = &arizona_48k_bclk_rates[0];
 
        for (i = 0; i < ARRAY_SIZE(arizona_44k1_bclk_rates); i++) {
-               if (rates[i] == snd_soc_params_to_bclk(params)) {
+               if (rates[i] >= snd_soc_params_to_bclk(params) &&
+                   rates[i] % params_rate(params) == 0) {
                        bclk = i;
                        break;
                }