summaryrefslogtreecommitdiffstats
path: root/sound/soc
diff options
context:
space:
mode:
authorMark Brown <broonie@opensource.wolfsonmicro.com>2012-07-04 19:07:09 +0100
committerMark Brown <broonie@opensource.wolfsonmicro.com>2012-07-04 19:15:46 +0100
commit5001765f992423fdfb82f42f548d3a51b9590186 (patch)
tree9c375d3bd457cc3b8fc2d461aae8d7f4c02187c5 /sound/soc
parent5b2eec3f98e08a8442ada41c4a63658b95a355f2 (diff)
downloadlinux-5001765f992423fdfb82f42f548d3a51b9590186.tar.bz2
ASoC: arizona: Be more forgiving in BCLK selection
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>
Diffstat (limited to 'sound/soc')
-rw-r--r--sound/soc/codecs/arizona.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sound/soc/codecs/arizona.c b/sound/soc/codecs/arizona.c
index 8e5246ca5550..8e066ebf1227 100644
--- a/sound/soc/codecs/arizona.c
+++ b/sound/soc/codecs/arizona.c
@@ -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;
}