summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorDavid Vrabel <david.vrabel@csr.com>2007-08-10 13:25:03 +0100
committerPierre Ossman <drzeus@drzeus.cx>2007-08-23 06:27:50 +0200
commit03f8590d90844f04d20488a80e75eaf4c4e0b35c (patch)
tree8ab7bc1dbbc56aee21e252ab98a57b420a537233 /drivers
parent2b061973404802fb87db93175b856ee0dfbe38e4 (diff)
downloadkernel-crypto-03f8590d90844f04d20488a80e75eaf4c4e0b35c.tar.gz
kernel-crypto-03f8590d90844f04d20488a80e75eaf4c4e0b35c.tar.xz
kernel-crypto-03f8590d90844f04d20488a80e75eaf4c4e0b35c.zip
mmc: ignore bad max block size in sdhci
Some SDHC cards report an invalid maximum block size, in these cases assume they support block sizes up to 512 bytes instead of returning an error. Signed-off-by: David Vrabel <david.vrabel@csr.com> Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/mmc/host/sdhci.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
index 7181e867863..2b327b40fa8 100644
--- a/drivers/mmc/host/sdhci.c
+++ b/drivers/mmc/host/sdhci.c
@@ -1347,12 +1347,11 @@ static int __devinit sdhci_probe_slot(struct pci_dev *pdev, int slot)
*/
mmc->max_blk_size = (caps & SDHCI_MAX_BLOCK_MASK) >> SDHCI_MAX_BLOCK_SHIFT;
if (mmc->max_blk_size >= 3) {
- printk(KERN_ERR "%s: Invalid maximum block size.\n",
+ printk(KERN_WARNING "%s: Invalid maximum block size, assuming 512\n",
host->slot_descr);
- ret = -ENODEV;
- goto unmap;
- }
- mmc->max_blk_size = 512 << mmc->max_blk_size;
+ mmc->max_blk_size = 512;
+ } else
+ mmc->max_blk_size = 512 << mmc->max_blk_size;
/*
* Maximum block count.