|
@@ -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 &&
|