diff options
author | Richard Zhu <r65037@freescale.com> | 2011-03-08 17:20:47 +0800 |
---|---|---|
committer | Richard Zhu <r65037@freescale.com> | 2011-03-10 17:35:04 +0800 |
commit | 0a776d3bf3ca161203e81545ffb1fcf1aa839b62 (patch) | |
tree | a79c24d4c2f27a28d9e3943d2c6c5c1b7eb19896 /drivers | |
parent | e7101b7c3777d716fe91c20cad38f56133ab338d (diff) |
ENGR00140401 SET_BLOCKLEN shouldn't be sent when eanble DDR
Customer provided this patch, the SET_BLOCKLEN shouldn't be sent when
enable the DDR mode required by customer's iNand.
Tested by customer on it's own board.
BTW, this patch is not needed on 2.6.38 kernel, should be discarded
after upgrade the kernel version.
Signed-off-by: Richard Zhu <r65037@freescale.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/mmc/card/block.c | 4 | ||||
-rw-r--r-- | drivers/mmc/core/mmc.c | 2 |
2 files changed, 6 insertions, 0 deletions
diff --git a/drivers/mmc/card/block.c b/drivers/mmc/card/block.c index cb9fbc83b090..28f38d8487fe 100644 --- a/drivers/mmc/card/block.c +++ b/drivers/mmc/card/block.c @@ -573,6 +573,10 @@ mmc_blk_set_blksize(struct mmc_blk_data *md, struct mmc_card *card) if (mmc_card_blockaddr(card)) return 0; + /* DDR Mode cards ignore MMC_SET_BLOCKLEN. */ + if (mmc_card_ddrmode(card)) + return 0; + mmc_claim_host(card->host); cmd.opcode = MMC_SET_BLOCKLEN; cmd.arg = 512; diff --git a/drivers/mmc/core/mmc.c b/drivers/mmc/core/mmc.c index 95e13c2bbd59..db54b2d0d09b 100644 --- a/drivers/mmc/core/mmc.c +++ b/drivers/mmc/core/mmc.c @@ -853,11 +853,13 @@ static int mmc_init_card(struct mmc_host *host, u32 ocr, (card->ext_csd.card_type & MMC_DDR_MODE_MASK)) { ext_csd_bit = EXT_CSD_BUS_WIDTH_8_DDR; bus_width = MMC_BUS_WIDTH_8 | MMC_BUS_WIDTH_DDR; + mmc_card_set_ddrmode(card); } else if ((host->caps & MMC_CAP_4_BIT_DATA) && (host->caps & MMC_CAP_DATA_DDR) && (card->ext_csd.card_type & MMC_DDR_MODE_MASK)) { ext_csd_bit = EXT_CSD_BUS_WIDTH_4_DDR; bus_width = MMC_BUS_WIDTH_4 | MMC_BUS_WIDTH_DDR; + mmc_card_set_ddrmode(card); } else if (host->caps & MMC_CAP_8_BIT_DATA) { ext_csd_bit = EXT_CSD_BUS_WIDTH_8; bus_width = MMC_BUS_WIDTH_8; |