diff options
| -rw-r--r-- | drivers/mmc/core/block.c | 6 | ||||
| -rw-r--r-- | drivers/mmc/core/queue.c | 9 |
2 files changed, 8 insertions, 7 deletions
diff --git a/drivers/mmc/core/block.c b/drivers/mmc/core/block.c index 14f3fdb8c6bb..9ce8eb51a60f 100644 --- a/drivers/mmc/core/block.c +++ b/drivers/mmc/core/block.c | |||
| @@ -2380,12 +2380,6 @@ static struct mmc_blk_data *mmc_blk_alloc_req(struct mmc_card *card, | |||
| 2380 | snprintf(md->disk->disk_name, sizeof(md->disk->disk_name), | 2380 | snprintf(md->disk->disk_name, sizeof(md->disk->disk_name), |
| 2381 | "mmcblk%u%s", card->host->index, subname ? subname : ""); | 2381 | "mmcblk%u%s", card->host->index, subname ? subname : ""); |
| 2382 | 2382 | ||
| 2383 | if (mmc_card_mmc(card)) | ||
| 2384 | blk_queue_logical_block_size(md->queue.queue, | ||
| 2385 | card->ext_csd.data_sector_size); | ||
| 2386 | else | ||
| 2387 | blk_queue_logical_block_size(md->queue.queue, 512); | ||
| 2388 | |||
| 2389 | set_capacity(md->disk, size); | 2383 | set_capacity(md->disk, size); |
| 2390 | 2384 | ||
| 2391 | if (mmc_host_cmd23(card->host)) { | 2385 | if (mmc_host_cmd23(card->host)) { |
diff --git a/drivers/mmc/core/queue.c b/drivers/mmc/core/queue.c index 35cc138b096d..15a45ec6518d 100644 --- a/drivers/mmc/core/queue.c +++ b/drivers/mmc/core/queue.c | |||
| @@ -355,6 +355,7 @@ static void mmc_setup_queue(struct mmc_queue *mq, struct mmc_card *card) | |||
| 355 | { | 355 | { |
| 356 | struct mmc_host *host = card->host; | 356 | struct mmc_host *host = card->host; |
| 357 | u64 limit = BLK_BOUNCE_HIGH; | 357 | u64 limit = BLK_BOUNCE_HIGH; |
| 358 | unsigned block_size = 512; | ||
| 358 | 359 | ||
| 359 | if (mmc_dev(host)->dma_mask && *mmc_dev(host)->dma_mask) | 360 | if (mmc_dev(host)->dma_mask && *mmc_dev(host)->dma_mask) |
| 360 | limit = (u64)dma_max_pfn(mmc_dev(host)) << PAGE_SHIFT; | 361 | limit = (u64)dma_max_pfn(mmc_dev(host)) << PAGE_SHIFT; |
| @@ -368,7 +369,13 @@ static void mmc_setup_queue(struct mmc_queue *mq, struct mmc_card *card) | |||
| 368 | blk_queue_max_hw_sectors(mq->queue, | 369 | blk_queue_max_hw_sectors(mq->queue, |
| 369 | min(host->max_blk_count, host->max_req_size / 512)); | 370 | min(host->max_blk_count, host->max_req_size / 512)); |
| 370 | blk_queue_max_segments(mq->queue, host->max_segs); | 371 | blk_queue_max_segments(mq->queue, host->max_segs); |
| 371 | blk_queue_max_segment_size(mq->queue, host->max_seg_size); | 372 | |
| 373 | if (mmc_card_mmc(card)) | ||
| 374 | block_size = card->ext_csd.data_sector_size; | ||
| 375 | |||
| 376 | blk_queue_logical_block_size(mq->queue, block_size); | ||
| 377 | blk_queue_max_segment_size(mq->queue, | ||
| 378 | round_down(host->max_seg_size, block_size)); | ||
| 372 | 379 | ||
| 373 | INIT_WORK(&mq->recovery_work, mmc_mq_recovery_handler); | 380 | INIT_WORK(&mq->recovery_work, mmc_mq_recovery_handler); |
| 374 | INIT_WORK(&mq->complete_work, mmc_blk_mq_complete_work); | 381 | INIT_WORK(&mq->complete_work, mmc_blk_mq_complete_work); |
