mmc: set correct block size value in bfin sdh driver
authorSonic Zhang <sonic.zhang@analog.com>
Wed, 6 Aug 2014 10:14:35 +0000 (18:14 +0800)
committerPantelis Antoniou <panto@antoniou-consulting.com>
Fri, 3 Oct 2014 14:26:49 +0000 (17:26 +0300)
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>
drivers/mmc/bfin_sdh.c

index bcd6a3e52fd0d8fd7dbfca59278724f2046ba0db..9bdfbbca01175187ac717942e8144d09ebb82b10 100644 (file)
@@ -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);