ASoC: samsung: i2s: Fix rclk_srcrate handling
As the RCLK clock may be updated through the common clk API before each snd_soc_dai_ops::trigger call, it is not enough to update i2s->rclk_srcrate only once after it has been initially set to 0. To avoid wrong PSR values we always get RCLK frequency from the CLK_I2S_RCLK_SRC clock, when that clock is available. Fixes: e1417fdf3011 "ASoC: samsung: i2s: Ensure the RCLK rate is properly determined" Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com> Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
Родитель
3600cd78d7
Коммит
995e73e55f
|
@ -887,7 +887,7 @@ static int config_setup(struct i2s_dai *i2s)
|
|||
if (!(i2s->quirks & QUIRK_NO_MUXPSR)) {
|
||||
struct clk *rclksrc = i2s->clk_table[CLK_I2S_RCLK_SRC];
|
||||
|
||||
if (i2s->rclk_srcrate == 0 && rclksrc && !IS_ERR(rclksrc))
|
||||
if (rclksrc && !IS_ERR(rclksrc))
|
||||
i2s->rclk_srcrate = clk_get_rate(rclksrc);
|
||||
|
||||
psr = i2s->rclk_srcrate / i2s->frmclk / rfs;
|
||||
|
|
Загрузка…
Ссылка в новой задаче