Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

clk: jz4725b: fix mmc0 clock gating

The mmc0 clock gate bit was mistakenly assigned to "i2s" clock.
You can find that the same bit is assigned to "mmc0" too.
It leads to mmc0 hang for a long time after any sound activity
also it prevented PM_SLEEP to work properly.
I guess it was introduced by copy-paste from jz4740 driver
where it is really controls I2S clock gate.

Fixes: 226dfa4726eb ("clk: Add Ingenic jz4725b CGU driver")
Signed-off-by: Siarhei Volkau <lis8215@gmail.com>
Tested-by: Siarhei Volkau <lis8215@gmail.com>
Reviewed-by: Paul Cercueil <paul@crapouillou.net>
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20220205171849.687805-2-lis8215@gmail.com
Signed-off-by: Stephen Boyd <sboyd@kernel.org>

authored by

Siarhei Volkau and committed by
Stephen Boyd
2f0754f2 3494894a

+1 -2
+1 -2
drivers/clk/ingenic/jz4725b-cgu.c
··· 139 139 }, 140 140 141 141 [JZ4725B_CLK_I2S] = { 142 - "i2s", CGU_CLK_MUX | CGU_CLK_DIV | CGU_CLK_GATE, 142 + "i2s", CGU_CLK_MUX | CGU_CLK_DIV, 143 143 .parents = { JZ4725B_CLK_EXT, JZ4725B_CLK_PLL_HALF, -1, -1 }, 144 144 .mux = { CGU_REG_CPCCR, 31, 1 }, 145 145 .div = { CGU_REG_I2SCDR, 0, 1, 9, -1, -1, -1 }, 146 - .gate = { CGU_REG_CLKGR, 6 }, 147 146 }, 148 147 149 148 [JZ4725B_CLK_SPI] = {