diff options
author | Sonic Zhang <sonic.zhang@analog.com> | 2014-08-06 18:14:35 +0800 |
---|---|---|
committer | Pantelis Antoniou <panto@antoniou-consulting.com> | 2014-10-03 17:26:49 +0300 |
commit | 282a82e8a10ce6ef132d7a809101fdaed951001c (patch) | |
tree | 80a7b4cbe919dc8ad13ccb79b85d8bc1b7f77252 /drivers/mmc/bfin_sdh.c | |
parent | be9f643ae6aa9044c60fe80e3a2c10be8371c692 (diff) | |
download | u-boot-282a82e8a10ce6ef132d7a809101fdaed951001c.tar.gz u-boot-282a82e8a10ce6ef132d7a809101fdaed951001c.tar.xz u-boot-282a82e8a10ce6ef132d7a809101fdaed951001c.zip |
mmc: set correct block size value in bfin sdh driver
Wait data transfer till the data end bit other than the data block end
bit is set.
Acked-by: Pantelis Antoniou <panto@antoniou-consulting.com>
Signed-off-by: Sonic Zhang <sonic.zhang@analog.com>
Diffstat (limited to 'drivers/mmc/bfin_sdh.c')
-rw-r--r-- | drivers/mmc/bfin_sdh.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/mmc/bfin_sdh.c b/drivers/mmc/bfin_sdh.c index bcd6a3e52f..9bdfbbca01 100644 --- a/drivers/mmc/bfin_sdh.c +++ b/drivers/mmc/bfin_sdh.c @@ -138,9 +138,9 @@ static int sdh_setup_data(struct mmc *mmc, struct mmc_data *data) if (data->flags & MMC_DATA_WRITE) return UNUSABLE_ERR; #ifndef RSI_BLKSZ - data_ctl |= ((ffs(data_size) - 1) << 4); + data_ctl |= ((ffs(data->blocksize) - 1) << 4); #else - bfin_write_SDH_BLK_SIZE(data_size); + bfin_write_SDH_BLK_SIZE(data->blocksize); #endif data_ctl |= DTX_DIR; bfin_write_SDH_DATA_CTL(data_ctl); @@ -189,7 +189,8 @@ static int bfin_sdh_request(struct mmc *mmc, struct mmc_cmd *cmd, do { udelay(1); status = bfin_read_SDH_STATUS(); - } while (!(status & (DAT_BLK_END | DAT_END | DAT_TIME_OUT | DAT_CRC_FAIL | RX_OVERRUN))); + } while (!(status & (DAT_END | DAT_TIME_OUT | DAT_CRC_FAIL | + RX_OVERRUN))); if (status & DAT_TIME_OUT) { bfin_write_SDH_STATUS_CLR(DAT_TIMEOUT_STAT); |