From 5af8f45cd049cf01790a17ff68e61303bc08abc3 Mon Sep 17 00:00:00 2001 From: Andrew Gabbasov Date: Mon, 1 Dec 2014 06:59:11 -0600 Subject: [PATCH] mmc: Fix block length for DDR mode Block length for write and read commands is fixed to 512 bytes when the card is in Dual Data Rate mode. If block length read from CSD is different, make sure the driver will use correct length in all further calculations and settings. Signed-off-by: Andrew Gabbasov --- drivers/mmc/mmc.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c index 65d8b3a87a..1eb9c27339 100644 --- a/drivers/mmc/mmc.c +++ b/drivers/mmc/mmc.c @@ -1188,6 +1188,12 @@ static int mmc_startup(struct mmc *mmc) mmc_set_clock(mmc, mmc->tran_speed); + /* Fix the block length for DDR mode */ + if (mmc->ddr_mode) { + mmc->read_bl_len = MMC_MAX_BLOCK_LEN; + mmc->write_bl_len = MMC_MAX_BLOCK_LEN; + } + /* fill in device description */ mmc->block_dev.lun = 0; mmc->block_dev.type = 0; -- 2.25.1