sdio: extend sdio_readsb() and friends to handle any length of buffer
authorDavid Vrabel <david.vrabel@csr.com>
Wed, 8 Aug 2007 13:24:21 +0000 (14:24 +0100)
committerPierre Ossman <drzeus@drzeus.cx>
Sun, 23 Sep 2007 19:21:32 +0000 (21:21 +0200)
commiteb6594689226663968ef0a9fd71ec5e1e4e04f9c
treed523962b81a2b5f4a55543d4342daaaebc5d5162
parent9a08f82b3cc522f727ace580a2aaee5402435bc8
sdio: extend sdio_readsb() and friends to handle any length of buffer

Extend sdio_readsb(), sdio_writesb(), sdio_memcpy_fromio(), and
sdio_memcpy_toio() to handle any length of buffer by splitting the transfer
into several IO_RW_EXTENDED commands. Typically, a transfer would be split
into a single block mode transfer followed by a byte mode transfer for the
remainder but we also handle lack of block mode support and the block size
being greater than 512 (the maximum byte mode transfer size).

host->max_seg_size <= host->max_req_size so there's no need to check both
when determining the maximum data size for a single command.

Signed-off-by: David Vrabel <david.vrabel@csr.com>
Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
drivers/mmc/core/sdio_io.c
drivers/mmc/core/sdio_ops.c
drivers/mmc/core/sdio_ops.h