Revision: 634
http://svn.sourceforge.net/hackndev/?rev=634&view=rev
Author: cristianop
Date: 2006-10-18 22:29:19 -0700 (Wed, 18 Oct 2006)
Log Message:
-----------
re-applying HH.org 2GB+ patch
Modified Paths:
--------------
linux4palm/linux/trunk/drivers/mmc/mmc_block.c
Modified: linux4palm/linux/trunk/drivers/mmc/mmc_block.c
===================================================================
--- linux4palm/linux/trunk/drivers/mmc/mmc_block.c 2006-10-18 17:27:52 UTC (rev 633)
+++ linux4palm/linux/trunk/drivers/mmc/mmc_block.c 2006-10-19 05:29:19 UTC (rev 634)
@@ -325,53 +325,12 @@
md->read_only = mmc_blk_readonly(card);
/*
- * Figure out a workable block size. MMC cards have:
- * - two block sizes, one for read and one for write.
- * - may support partial reads and/or writes
- * (allows block sizes smaller than specified)
+ * Both SD and MMC specifications state (although a bit
+ * unclearly in the MMC case) that a block size of 512
+ * bytes must always be supported by the card.
*/
- md->block_bits = card->csd.read_blkbits;
- if (card->csd.write_blkbits != card->csd.read_blkbits) {
- if (card->csd.write_blkbits < card->csd.read_blkbits &&
- card->csd.read_partial) {
- /*
- * write block size is smaller than read block
- * size, but we support partial reads, so choose
- * the smaller write block size.
- */
- md->block_bits = card->csd.write_blkbits;
- } else if (card->csd.write_blkbits > card->csd.read_blkbits &&
- card->csd.write_partial) {
- /*
- * read block size is smaller than write block
- * size, but we support partial writes. Use read
- * block size.
- */
- } else {
- /*
- * We don't support this configuration for writes.
- */
- printk(KERN_ERR "%s: unable to select block size for "
- "writing (rb%u wb%u rp%u wp%u)\n",
- mmc_card_id(card),
- 1 << card->csd.read_blkbits,
- 1 << card->csd.write_blkbits,
- card->csd.read_partial,
- card->csd.write_partial);
- md->read_only = 1;
- }
- }
+ md->block_bits = 9;
- /*
- * Refuse to allow block sizes smaller than 512 bytes.
- */
- if (md->block_bits < 9) {
- printk(KERN_ERR "%s: unable to support block size %u\n",
- mmc_card_id(card), 1 << md->block_bits);
- ret = -EINVAL;
- goto err_kfree;
- }
-
md->disk = alloc_disk(1 << MMC_SHIFT);
if (md->disk == NULL) {
ret = -ENOMEM;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|