mirror of
https://github.com/torvalds/linux.git
synced 2024-11-26 06:02:05 +00:00
ASoC: fsl_sai: fix 1:1 bclk:mclk ratio support
Refactoring in commita50b7926d0
("ASoC: fsl_sai: implement 1:1 bclk:mclk ratio support") led to the bypass never happening as (ratio = 1) was caught in the existing if (ratio & 1) continue; check. The correct check sequence instead is: - skip all ratios lower than one and higher than 512 - skip all odd ratios except for 1:1 - skip 1:1 ratio if and only if !support_1_1_ratio And for all others, calculate the appropriate divider. Adjust the code to facilitate this. Fixes:a50b7926d0
("ASoC: fsl_sai: implement 1:1 bclk:mclk ratio support") Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Acked-by: Shengjiu Wang <shengjiu.wang@gmail.com> Reviewed-by: Sascha Hauer <s.hauer@pengutronix.de> Link: https://lore.kernel.org/r/20220405155731.745413-1-a.fatoum@pengutronix.de Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
51a630a705
commit
d00887c106
@ -372,7 +372,7 @@ static int fsl_sai_set_bclk(struct snd_soc_dai *dai, bool tx, u32 freq)
|
||||
continue;
|
||||
if (ratio == 1 && !support_1_1_ratio)
|
||||
continue;
|
||||
else if (ratio & 1)
|
||||
if ((ratio & 1) && ratio > 1)
|
||||
continue;
|
||||
|
||||
diff = abs((long)clk_rate - ratio * freq);
|
||||
|
Loading…
Reference in New Issue
Block a user