On Tue, Apr 5, 2022 at 11:58 PM Ahmad Fatoum <a.fatoum@xxxxxxxxxxxxxx> wrote: > Refactoring in commit a50b7926d015 ("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: a50b7926d015 ("ASoC: fsl_sai: implement 1:1 bclk:mclk ratio > support") > Signed-off-by: Ahmad Fatoum <a.fatoum@xxxxxxxxxxxxxx> > Acked-by: Shengjiu Wang <shengjiu.wang@xxxxxxxxx> Best regards Wang shengjiu > --- > sound/soc/fsl/fsl_sai.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/sound/soc/fsl/fsl_sai.c b/sound/soc/fsl/fsl_sai.c > index a992d51568cc..50c377f16097 100644 > --- a/sound/soc/fsl/fsl_sai.c > +++ b/sound/soc/fsl/fsl_sai.c > @@ -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); > -- > 2.30.2 > >