|
@@ -310,6 +310,9 @@ esdhc_send_cmd(struct mmc *mmc, struct mmc_cmd *cmd, struct mmc_data *data)
|
|
|
/* Figure out the transfer arguments */
|
|
|
xfertyp = esdhc_xfertyp(cmd, data);
|
|
|
|
|
|
+ /* Mask all irqs */
|
|
|
+ esdhc_write32(®s->irqsigen, 0);
|
|
|
+
|
|
|
/* Send the command */
|
|
|
esdhc_write32(®s->cmdarg, cmd->cmdarg);
|
|
|
#if defined(CONFIG_FSL_USDHC)
|
|
@@ -320,15 +323,11 @@ esdhc_send_cmd(struct mmc *mmc, struct mmc_cmd *cmd, struct mmc_data *data)
|
|
|
esdhc_write32(®s->xfertyp, xfertyp);
|
|
|
#endif
|
|
|
|
|
|
- /* Mask all irqs */
|
|
|
- esdhc_write32(®s->irqsigen, 0);
|
|
|
-
|
|
|
/* Wait for the command to complete */
|
|
|
while (!(esdhc_read32(®s->irqstat) & (IRQSTAT_CC | IRQSTAT_CTOE)))
|
|
|
;
|
|
|
|
|
|
irqstat = esdhc_read32(®s->irqstat);
|
|
|
- esdhc_write32(®s->irqstat, irqstat);
|
|
|
|
|
|
/* Reset CMD and DATA portions on error */
|
|
|
if (irqstat & (CMD_ERR | IRQSTAT_CTOE)) {
|