[MMC] Set correct capacity for 1024-byte block cards
authorRussell King <rmk@dyn-67.arm.linux.org.uk>
Thu, 22 Dec 2005 23:21:38 +0000 (23:21 +0000)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Thu, 22 Dec 2005 23:21:38 +0000 (23:21 +0000)
commitd2b18394259ef621fd2a6322aa9934198fd87a6a
treecedd99314fd5408559d410c5fc51c1af2a62f6ed
parentd5ea4e26602fa7f5141872f2c17a862f1974a73f
[MMC] Set correct capacity for 1024-byte block cards

We were passing set_capacity() the capacity we calculated in terms of
the number of blocks on the card, which happened to be the right units
for 512-byte block cards.  However, with 1024-byte block cards, we
end up setting the capacity to half the number of blocks.  Fix this
by shifting by the appropriate amount.

Thanks to Todd Blumer for pointing this out.

Use get_capacity() to report the card capacity, rather than
recalculating it from the CSD information.

Finally, use our chosen IO block size for the SET_BLOCKLEN command
rather than the CSD read block size.  Currently these are equivalent,
but will not be in the future.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
drivers/mmc/mmc_block.c