3 Sep
2017
3 Sep
'17
5:29 p.m.
On Sun, Sep 3, 2017 at 11:40 AM, Ćukasz Majewski lukma@denx.de wrote:
This is the part of fsl_ssi_set_bclk() function which is called after fsl_ssi_set_dai_sysclk() (which sets ssi_private->bitclk_freq = freq;).
Before the aforementioned check we do have:
if (ssi_private->bitclk_freq) freq = ssi_private->bitclk_freq; else freq = params_channels(hw_params) * 32 *
params_rate(hw_params);
Which assigns freq = bitclk_freq (66 MHz)
And then we break on this particular check:
66MHz * 5 > 66 MHz.
The culprit IMHO is the ssi_private->bitclk_freq = freq; in the fsl_ssi_set_dai_sysclk(), since we _should_ set SSI's IP block clock (ssi_private->clk), not the bit clock (BCLK).
This patch just quits early if it detects change, which don't need to be done.
Thanks for the clarification.
Reviewed-by: Fabio Estevam fabio.estevam@nxp.com