37 lines
1.1 KiB
Diff
37 lines
1.1 KiB
Diff
From 26638b93f7479dc597a58e2e2b2832c6ff4c8f7b Mon Sep 17 00:00:00 2001
|
|
From: Cliff Brake <cbrake@happy.dev.bec-systems.com>
|
|
Date: Fri, 20 Jul 2007 19:02:55 -0400
|
|
Subject: [PATCH] mmcsd_large_cards-r0
|
|
|
|
---
|
|
drivers/mmc/card/block.c | 6 ++++++
|
|
1 files changed, 6 insertions(+), 0 deletions(-)
|
|
|
|
diff --git a/drivers/mmc/card/block.c b/drivers/mmc/card/block.c
|
|
index 540ff4b..1f8d67d 100644
|
|
--- a/drivers/mmc/card/block.c
|
|
+++ b/drivers/mmc/card/block.c
|
|
@@ -403,6 +403,7 @@ static struct mmc_blk_data *mmc_blk_alloc(struct mmc_card *card)
|
|
{
|
|
struct mmc_blk_data *md;
|
|
int devidx, ret;
|
|
+ unsigned long cap;
|
|
|
|
devidx = find_first_zero_bit(dev_use, MMC_NUM_MINORS);
|
|
if (devidx >= MMC_NUM_MINORS)
|
|
@@ -467,6 +468,11 @@ static struct mmc_blk_data *mmc_blk_alloc(struct mmc_card *card)
|
|
|
|
sprintf(md->disk->disk_name, "mmcblk%d", devidx);
|
|
|
|
+ if (card->csd.read_blkbits > 9)
|
|
+ md->block_bits = 9;
|
|
+ else
|
|
+ md->block_bits = card->csd.read_blkbits;
|
|
+
|
|
blk_queue_hardsect_size(md->queue.queue, 1 << md->block_bits);
|
|
|
|
if (!mmc_card_sd(card) && mmc_card_blockaddr(card)) {
|
|
--
|
|
1.5.1.6
|
|
|