dslinux/linux-2.6.x/drivers/mmc mmc_block.c
amadeus
dslinux_amadeus at user.in-berlin.de
Thu Jul 13 23:12:33 CEST 2006
Update of /cvsroot/dslinux/dslinux/linux-2.6.x/drivers/mmc
In directory antilope:/tmp/cvs-serv24824/linux-2.6.x/drivers/mmc
Modified Files:
mmc_block.c
Log Message:
Fix blocksize for 2 GByte SD cards
Index: mmc_block.c
===================================================================
RCS file: /cvsroot/dslinux/dslinux/linux-2.6.x/drivers/mmc/mmc_block.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- mmc_block.c 3 Jul 2006 20:12:48 -0000 1.3
+++ mmc_block.c 13 Jul 2006 21:12:30 -0000 1.4
@@ -351,13 +351,19 @@
sprintf(md->disk->disk_name, "mmcblk%d", devidx);
sprintf(md->disk->devfs_name, "mmc/blk%d", devidx);
- md->block_bits = card->csd.read_blkbits;
+ /* Set the blocksize. If card->csd.read_blkbits > 9, use 9
+ because SD cards are not able to transfer more than 512 Bytes
+ in one sector. */
+ 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);
/*
* The CSD capacity field is in units of read_blkbits.
- * set_capacity takes units of 512 bytes.
+ * set_capacity takes units of max. 512 bytes.
*/
set_capacity(md->disk, card->csd.capacity << (card->csd.read_blkbits - 9));
}
More information about the dslinux-commit
mailing list