From a6904ddc5f959bcc8ae1d2dd8dbe6ab5dbdc47d9 Mon Sep 17 00:00:00 2001 From: Sugar Zhang Date: Mon, 31 May 2021 15:41:03 +0800 Subject: [PATCH] ASoC: rockchip: i2s-tdm: Remove sync reset for latest soc Do sync reset only for PX30/RK1808/RK3308, because the BUG 'fsync is out of sync' had been fixed on the latest version controller. Change-Id: Ia4cd711a213cc03221726f7b6e89de3c317dc965 Signed-off-by: Sugar Zhang --- sound/soc/rockchip/rockchip_i2s_tdm.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/sound/soc/rockchip/rockchip_i2s_tdm.c b/sound/soc/rockchip/rockchip_i2s_tdm.c index 46ec9416b44b..a8c42c245086 100644 --- a/sound/soc/rockchip/rockchip_i2s_tdm.c +++ b/sound/soc/rockchip/rockchip_i2s_tdm.c @@ -1625,6 +1625,7 @@ static int rockchip_i2s_tdm_probe(struct platform_device *pdev) struct snd_soc_dai_driver *soc_dai; struct resource *res; void __iomem *regs; + bool sync; int ret; int val; @@ -1672,7 +1673,11 @@ static int rockchip_i2s_tdm_probe(struct platform_device *pdev) if (IS_ERR(i2s_tdm->grf)) return PTR_ERR(i2s_tdm->grf); - if (i2s_tdm->clk_trcm) { + sync = of_device_is_compatible(node, "rockchip,px30-i2s-tdm") || + of_device_is_compatible(node, "rockchip,rk1808-i2s-tdm") || + of_device_is_compatible(node, "rockchip,rk3308-i2s-tdm"); + + if (i2s_tdm->clk_trcm && sync) { cru_node = of_parse_phandle(node, "rockchip,cru", 0); i2s_tdm->cru_base = of_iomap(cru_node, 0); if (!i2s_tdm->cru_base)