diff options
| author | Eric Nelson <eric.nelson@boundarydevices.com> | 2013-04-03 12:31:56 +0000 | 
|---|---|---|
| committer | Stefano Babic <sbabic@denx.de> | 2013-04-14 11:20:53 +0200 | 
| commit | 54899fc8fe7b33cbe1a7179e39d24e75ababcdc6 (patch) | |
| tree | a1de0ed88b4a381f5ea6247455254eec0c7eb330 | |
| parent | 0f1411bc8dade4472ca802f46f75714e67301bb0 (diff) | |
| download | olio-uboot-2014.01-54899fc8fe7b33cbe1a7179e39d24e75ababcdc6.tar.xz olio-uboot-2014.01-54899fc8fe7b33cbe1a7179e39d24e75ababcdc6.zip | |
fsl_esdhc: flush cache after IO completion
The cache should invalidate the read buffer for
the SD card interface after the transfer complete,
not command-complete.
Tested-by: Andrew Gabbasov <Andrew_Gabbasov@mentor.com>
Signed-off-by: Eric Nelson <eric.nelson@boundarydevices.com>
| -rw-r--r-- | drivers/mmc/fsl_esdhc.c | 5 | 
1 files changed, 2 insertions, 3 deletions
| diff --git a/drivers/mmc/fsl_esdhc.c b/drivers/mmc/fsl_esdhc.c index 35f879ea6..737b812b5 100644 --- a/drivers/mmc/fsl_esdhc.c +++ b/drivers/mmc/fsl_esdhc.c @@ -327,9 +327,6 @@ esdhc_send_cmd(struct mmc *mmc, struct mmc_cmd *cmd, struct mmc_data *data)  	while (!(esdhc_read32(®s->irqstat) & (IRQSTAT_CC | IRQSTAT_CTOE)))  		; -	if (data && (data->flags & MMC_DATA_READ)) -		check_and_invalidate_dcache_range(cmd, data); -  	irqstat = esdhc_read32(®s->irqstat);  	esdhc_write32(®s->irqstat, irqstat); @@ -403,6 +400,8 @@ esdhc_send_cmd(struct mmc *mmc, struct mmc_cmd *cmd, struct mmc_data *data)  		} while (!(irqstat & IRQSTAT_TC) &&  				(esdhc_read32(®s->prsstat) & PRSSTAT_DLA));  #endif +		if (data->flags & MMC_DATA_READ) +			check_and_invalidate_dcache_range(cmd, data);  	}  	esdhc_write32(®s->irqstat, -1); |