[U-Boot] [v2, 1/5] mmc: fsl_esdhc: don't set XFERTYP_RSPTYP_48_BUSY for CMD with busy response
Yangbo Lu
yangbo.lu at nxp.com
Tue Aug 2 11:20:49 CEST 2016
For CMD with busy response, the eSDHC driver would poll DAT0 until
CMD completion rather than polling IRQSTAT. So, don't set
XFERTYP_RSPTYP_48_BUSY to avoid interrupts (DTOE or TC) in IRQSTAT.
Signed-off-by: Yangbo Lu <yangbo.lu at nxp.com>
---
Changes for v2:
- None
---
drivers/mmc/fsl_esdhc.c | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/drivers/mmc/fsl_esdhc.c b/drivers/mmc/fsl_esdhc.c
index a865c7b..b23845d 100644
--- a/drivers/mmc/fsl_esdhc.c
+++ b/drivers/mmc/fsl_esdhc.c
@@ -136,8 +136,16 @@ static uint esdhc_xfertyp(struct mmc_cmd *cmd, struct mmc_data *data)
xfertyp |= XFERTYP_CICEN;
if (cmd->resp_type & MMC_RSP_136)
xfertyp |= XFERTYP_RSPTYP_136;
- else if (cmd->resp_type & MMC_RSP_BUSY)
- xfertyp |= XFERTYP_RSPTYP_48_BUSY;
+ /*
+ * For CMD with busy response, the eSDHC driver would poll DAT0
+ * until CMD completion rather than polling IRQSTAT. So, don't
+ * set XFERTYP_RSPTYP_48_BUSY to avoid interrupts (DTOE or TC)
+ * in IRQSTAT.
+ *
+ * Remove:
+ * else if (cmd->resp_type & MMC_RSP_BUSY)
+ * xfertyp |= XFERTYP_RSPTYP_48_BUSY;
+ */
else if (cmd->resp_type & MMC_RSP_PRESENT)
xfertyp |= XFERTYP_RSPTYP_48;
--
2.1.0.27.g96db324
More information about the U-Boot
mailing list