summaryrefslogtreecommitdiffstats
path: root/drivers/mmc/card/block.c
diff options
context:
space:
mode:
authorAndrei Warkentin2011-05-23 22:06:38 +0200
committerChris Ball2011-05-25 22:49:03 +0200
commitf0d89972b01798cf9d245dfa1cacfa0ee78a3593 (patch)
treea3e69fc95825971384798eac4281148db837f891 /drivers/mmc/card/block.c
parentmmc: sdhci: Implement MMC_CAP_CMD23 for SDHCI. (diff)
downloadkernel-qcow2-linux-f0d89972b01798cf9d245dfa1cacfa0ee78a3593.tar.gz
kernel-qcow2-linux-f0d89972b01798cf9d245dfa1cacfa0ee78a3593.tar.xz
kernel-qcow2-linux-f0d89972b01798cf9d245dfa1cacfa0ee78a3593.zip
mmc: core: Block CMD23 support for UHS104/SDXC cards.
SD cards operating at UHS104 or better support SET_BLOCK_COUNT. Signed-off-by: Andrei Warkentin <andreiw@motorola.com> Reviewed-by: Arindam Nath <arindam.nath@amd.com> Signed-off-by: Chris Ball <cjb@laptop.org>
Diffstat (limited to 'drivers/mmc/card/block.c')
-rw-r--r--drivers/mmc/card/block.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/mmc/card/block.c b/drivers/mmc/card/block.c
index a380accaba9a..71da5641e258 100644
--- a/drivers/mmc/card/block.c
+++ b/drivers/mmc/card/block.c
@@ -1057,9 +1057,12 @@ static struct mmc_blk_data *mmc_blk_alloc_req(struct mmc_card *card,
blk_queue_logical_block_size(md->queue.queue, 512);
set_capacity(md->disk, size);
- if (mmc_host_cmd23(card->host) &&
- mmc_card_mmc(card))
- md->flags |= MMC_BLK_CMD23;
+ if (mmc_host_cmd23(card->host)) {
+ if (mmc_card_mmc(card) ||
+ (mmc_card_sd(card) &&
+ card->scr.cmds & SD_SCR_CMD23_SUPPORT))
+ md->flags |= MMC_BLK_CMD23;
+ }
if (mmc_card_mmc(card) &&
md->flags & MMC_BLK_CMD23 &&