mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-06 19:08:57 +09:00
ASoC: rockchip: i2s-tdm: Fix config for stage set_fmt on ALWAYS-ON
Enable the xfer in the last card init stage to fix the config failed on set_tdm_slot/set_fmt. Signed-off-by: Sugar Zhang <sugar.zhang@rock-chips.com> Change-Id: Ie456b08d11eef5356036a431f5fd6117e0df3823
This commit is contained in:
@@ -1285,6 +1285,14 @@ static int rockchip_i2s_tdm_set_fmt(struct snd_soc_dai *cpu_dai,
|
||||
}
|
||||
}
|
||||
|
||||
/* Enable the xfer in the last card init stage. */
|
||||
if (i2s_tdm->quirks & QUIRK_ALWAYS_ON) {
|
||||
if (i2s_tdm->clk_trcm)
|
||||
rockchip_i2s_tdm_xfer_trcm_start(i2s_tdm, SNDRV_PCM_STREAM_PLAYBACK);
|
||||
else
|
||||
rockchip_i2s_tdm_xfer_start(i2s_tdm, SNDRV_PCM_STREAM_PLAYBACK);
|
||||
}
|
||||
|
||||
err_pm_put:
|
||||
pm_runtime_put(cpu_dai->dev);
|
||||
|
||||
@@ -2818,11 +2826,6 @@ static int rockchip_i2s_tdm_keep_clk_always_on(struct rk_i2s_tdm_dev *i2s_tdm)
|
||||
I2S_CKR_RSD_MASK | I2S_CKR_TSD_MASK,
|
||||
I2S_CKR_RSD(div_lrck) | I2S_CKR_TSD(div_lrck));
|
||||
|
||||
if (i2s_tdm->clk_trcm)
|
||||
rockchip_i2s_tdm_xfer_trcm_start(i2s_tdm, SNDRV_PCM_STREAM_PLAYBACK);
|
||||
else
|
||||
rockchip_i2s_tdm_xfer_start(i2s_tdm, SNDRV_PCM_STREAM_PLAYBACK);
|
||||
|
||||
dev_info(i2s_tdm->dev, "CLK-ALWAYS-ON: mclk: %d, bclk: %d, fsync: %d\n",
|
||||
mclk_rate, bclk_rate, DEFAULT_FS);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user