From: Sylwester Nawrocki Date: Fri, 9 Mar 2018 17:48:55 +0000 (+0100) Subject: ASoC: samsung: i2s: Fix rclk_srcrate handling X-Git-Tag: v4.17-rc1~119^2~1^2~42^2~7 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=995e73e55f46;p=thirdparty%2Fkernel%2Flinux.git 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 Signed-off-by: Mark Brown --- diff --git a/sound/soc/samsung/i2s.c b/sound/soc/samsung/i2s.c index b6407fbabdd11..f914ed45db7d6 100644 --- a/sound/soc/samsung/i2s.c +++ b/sound/soc/samsung/i2s.c @@ -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;