Linux MultiMedia Card development
 help / color / mirror / Atom feed
* [PATCH 1/2] mmc: sdhci-of-dwcmshc: Disable internal clock auto gate for Rockchip SOCs
@ 2025-11-12  7:44 Shawn Lin
  2025-11-12  7:44 ` [PATCH 2/2] mmc: sdhci-of-dwcmshc: reduce CIT for better performance Shawn Lin
  0 siblings, 1 reply; 8+ messages in thread
From: Shawn Lin @ 2025-11-12  7:44 UTC (permalink / raw)
  To: Ulf Hansson; +Cc: linux-rockchip, linux-mmc, Sebastian Reichel, Shawn Lin

Enabling CMDQ support can lead to random occurrences of the error log when
there are RPMB access and data flush executed:

"mmc2: Timeout waiting for hardware interrupt."

Enabling CMDQ and then issuing a DCMD as the final command before disabling
it causes the eMMC controller to auto-gate its internal clock. Chip simulation
shows this results in a state machine mismatch after CMDQ mode exit, triggering
data-timeout errors for all subsequent read and write operations.

Therefore, the auto-clock-gate function must be disabled whenever CMDQ is
enabled.

Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
---

 drivers/mmc/host/sdhci-of-dwcmshc.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/mmc/host/sdhci-of-dwcmshc.c b/drivers/mmc/host/sdhci-of-dwcmshc.c
index c66a8df..e276a4e 100644
--- a/drivers/mmc/host/sdhci-of-dwcmshc.c
+++ b/drivers/mmc/host/sdhci-of-dwcmshc.c
@@ -713,10 +713,11 @@ static void dwcmshc_rk3568_set_clock(struct sdhci_host *host, unsigned int clock
 
 	sdhci_set_clock(host, clock);
 
-	/* Disable cmd conflict check */
+	/* Disable cmd conflict check and internal clock gate */
 	reg = dwc_priv->vendor_specific_area1 + DWCMSHC_HOST_CTRL3;
 	extra = sdhci_readl(host, reg);
 	extra &= ~BIT(0);
+	extra |= BIT(4);
 	sdhci_writel(host, extra, reg);
 
 	if (clock <= 52000000) {
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2025-11-26  0:51 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-11-12  7:44 [PATCH 1/2] mmc: sdhci-of-dwcmshc: Disable internal clock auto gate for Rockchip SOCs Shawn Lin
2025-11-12  7:44 ` [PATCH 2/2] mmc: sdhci-of-dwcmshc: reduce CIT for better performance Shawn Lin
2025-11-12 12:03   ` Ulf Hansson
2025-11-17 10:22     ` Adrian Hunter
2025-11-25 13:58   ` Shawn Lin
2025-11-25 16:02     ` Ulf Hansson
2025-11-25 16:05       ` Ulf Hansson
2025-11-25 23:35       ` Shawn Lin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox