File tree Expand file tree Collapse file tree 1 file changed +13
-0
lines changed Expand file tree Collapse file tree 1 file changed +13
-0
lines changed Original file line number Diff line number Diff line change @@ -1229,6 +1229,7 @@ static void sdhci_esdhc_imx_hwinit(struct sdhci_host *host)
12291229static void esdhc_cqe_enable (struct mmc_host * mmc )
12301230{
12311231 struct sdhci_host * host = mmc_priv (mmc );
1232+ struct cqhci_host * cq_host = mmc -> cqe_private ;
12321233 u32 reg ;
12331234 u16 mode ;
12341235 int count = 10 ;
@@ -1261,6 +1262,18 @@ static void esdhc_cqe_enable(struct mmc_host *mmc)
12611262 mode |= SDHCI_TRNS_BLK_CNT_EN ;
12621263 sdhci_writew (host , mode , SDHCI_TRANSFER_MODE );
12631264
1265+ /*
1266+ * Though Runtime resume reset the entire host controller,
1267+ * but do not impact the CQHCI side, need to clear the
1268+ * HALT bit, avoid CQHCI stuck in the first request when
1269+ * system resume back.
1270+ */
1271+ cqhci_writel (cq_host , 0 , CQHCI_CTL );
1272+ if (cqhci_readl (cq_host , CQHCI_CTL ) && CQHCI_HALT )
1273+ dev_err (mmc_dev (host -> mmc ),
1274+ "failed to exit halt state when enable CQE\n" );
1275+
1276+
12641277 sdhci_cqe_enable (mmc );
12651278}
12661279
You can’t perform that action at this time.
0 commit comments