diff options
Diffstat (limited to 'drivers/mmc')
| -rw-r--r-- | drivers/mmc/tegra2_mmc.c | 4 | 
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/mmc/tegra2_mmc.c b/drivers/mmc/tegra2_mmc.c index 3191557c5..33cc8fb80 100644 --- a/drivers/mmc/tegra2_mmc.c +++ b/drivers/mmc/tegra2_mmc.c @@ -227,16 +227,19 @@ static int mmc_send_cmd(struct mmc *mmc, struct mmc_cmd *cmd,  	if (i == retry) {  		printf("%s: waiting for status update\n", __func__); +		writel(mask, &host->reg->norintsts);  		return TIMEOUT;  	}  	if (mask & TEGRA_MMC_NORINTSTS_CMD_TIMEOUT) {  		/* Timeout Error */  		debug("timeout: %08x cmd %d\n", mask, cmd->cmdidx); +		writel(mask, &host->reg->norintsts);  		return TIMEOUT;  	} else if (mask & TEGRA_MMC_NORINTSTS_ERR_INTERRUPT) {  		/* Error Interrupt */  		debug("error: %08x cmd %d\n", mask, cmd->cmdidx); +		writel(mask, &host->reg->norintsts);  		return -1;  	} @@ -265,6 +268,7 @@ static int mmc_send_cmd(struct mmc *mmc, struct mmc_cmd *cmd,  			if (i == retry) {  				printf("%s: card is still busy\n", __func__); +				writel(mask, &host->reg->norintsts);  				return TIMEOUT;  			}  |