diff options
| author | Takashi Iwai <tiwai@suse.de> | 2026-02-19 16:50:38 +0100 |
|---|---|---|
| committer | Takashi Iwai <tiwai@suse.de> | 2026-02-19 16:50:38 +0100 |
| commit | 89339d889d63a4f981f185d048796762e86aa6c0 (patch) | |
| tree | 952cd7c6d6c817cb8b290938a0d46f65fbdfe9a6 /sound | |
| parent | d08008f196107a80c4e88b866d594b88a56ceaa9 (diff) | |
| parent | 0783052534f547f8f201dd4554b1df9f1f8615b5 (diff) | |
Merge tag 'asoc-fix-v7.0-rockchip-i2s-tdm' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus
ASoC: Additional Rockchip fix for v7.0
One more ASoC fix, for a regression with the Rockchip I2S TDM support on
a number of platforms.
Diffstat (limited to 'sound')
| -rw-r--r-- | sound/soc/rockchip/rockchip_i2s_tdm.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/sound/soc/rockchip/rockchip_i2s_tdm.c b/sound/soc/rockchip/rockchip_i2s_tdm.c index 770b9bfbb384..fc52149ed6ae 100644 --- a/sound/soc/rockchip/rockchip_i2s_tdm.c +++ b/sound/soc/rockchip/rockchip_i2s_tdm.c @@ -22,6 +22,7 @@ #define DRV_NAME "rockchip-i2s-tdm" +#define DEFAULT_MCLK_FS 256 #define CH_GRP_MAX 4 /* The max channel 8 / 2 */ #define MULTIPLEX_CH_MAX 10 @@ -665,6 +666,15 @@ static int rockchip_i2s_tdm_hw_params(struct snd_pcm_substream *substream, mclk_rate = i2s_tdm->mclk_rx_freq; } + /* + * When the dai/component driver doesn't need to set mclk-fs for a specific + * clock, it can skip the call to set_sysclk() for that clock. + * In that case, simply use the clock rate from the params and multiply it by + * the default mclk-fs value. + */ + if (!mclk_rate) + mclk_rate = DEFAULT_MCLK_FS * params_rate(params); + err = clk_set_rate(mclk, mclk_rate); if (err) return err; |
