mmc: Add support for SDHC cards
authorPhilip Langdale <philipl@overt.org>
Thu, 4 Jan 2007 14:57:32 +0000 (06:57 -0800)
committerPierre Ossman <drzeus@drzeus.cx>
Sun, 4 Feb 2007 19:54:07 +0000 (20:54 +0100)
commitfba68bd2dab1ac99af3c5a963ec9581cfa9f1725
tree72c43ca8611ebef145e17862189609eb28ecb2d3
parent9e9dc5f29f2eb65153a15c4fdb12b4382e3a75b2
mmc: Add support for SDHC cards

Thanks to the generous donation of an SDHC card by John Gilmore, and
the surprisingly enlightened decision by the SD Card Association to
publish useful specs, I've been able to bash out support for SDHC. The
changes are not too profound:

i) Add a card flag indicating the card uses block level addressing and
check it in the block driver. As we never took advantage of byte-level
addressing, this simply involves skipping the block -> byte
translation when sending commands.

ii) The layout of the CSD is changed - a set of fields are discarded
to make space for a larger C_SIZE. We did not reference any of the
discarded fields except those related to the C_SIZE.

iii) Read and write timeouts are fixed values and not calculated from
CSD values.

iv) Before invoking SEND_APP_OP_COND, we must invoke the new
SEND_IF_COND to inform the card we support SDHC.

Signed-off-by: Philipl Langdale <philipl@overt.org>
Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
drivers/mmc/mmc.c
drivers/mmc/mmc_block.c
include/linux/mmc/card.h
include/linux/mmc/mmc.h
include/linux/mmc/protocol.h