diff options
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/mmc/fsl_esdhc.c | 7 | 
1 files changed, 3 insertions, 4 deletions
| diff --git a/drivers/mmc/fsl_esdhc.c b/drivers/mmc/fsl_esdhc.c index ec01795f3..973b19f33 100644 --- a/drivers/mmc/fsl_esdhc.c +++ b/drivers/mmc/fsl_esdhc.c @@ -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)) { |