summaryrefslogtreecommitdiff
path: root/recipes/linux/linux-2.6.25/cm-x270/0003-mmcsd_large_cards-r0.patch
blob: f0df0862873493d4ad08bb559e079c08fc5b41f2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
From b98b85eba9b31d79217b5c6e0aae42a038b033b7 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 91ded3e..5640c5b 100644
--- a/drivers/mmc/card/block.c
+++ b/drivers/mmc/card/block.c
@@ -409,6 +409,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)
@@ -472,6 +473,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.4.rc4