diff options
author | David Vrabel <david.vrabel@csr.com> | 2007-08-08 14:24:21 +0100 |
---|---|---|
committer | Pierre Ossman <drzeus@drzeus.cx> | 2007-09-23 21:21:32 +0200 |
commit | eb6594689226663968ef0a9fd71ec5e1e4e04f9c (patch) | |
tree | d523962b81a2b5f4a55543d4342daaaebc5d5162 /drivers/mmc/core/sdio_ops.h | |
parent | 9a08f82b3cc522f727ace580a2aaee5402435bc8 (diff) | |
download | linux-stable-eb6594689226663968ef0a9fd71ec5e1e4e04f9c.tar.gz linux-stable-eb6594689226663968ef0a9fd71ec5e1e4e04f9c.tar.bz2 linux-stable-eb6594689226663968ef0a9fd71ec5e1e4e04f9c.zip |
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>
Diffstat (limited to 'drivers/mmc/core/sdio_ops.h')
-rw-r--r-- | drivers/mmc/core/sdio_ops.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/mmc/core/sdio_ops.h b/drivers/mmc/core/sdio_ops.h index 1d42e4f366aa..e2e74b0d17d8 100644 --- a/drivers/mmc/core/sdio_ops.h +++ b/drivers/mmc/core/sdio_ops.h @@ -16,7 +16,7 @@ int mmc_send_io_op_cond(struct mmc_host *host, u32 ocr, u32 *rocr); int mmc_io_rw_direct(struct mmc_card *card, int write, unsigned fn, unsigned addr, u8 in, u8* out); int mmc_io_rw_extended(struct mmc_card *card, int write, unsigned fn, - unsigned addr, int bang, u8 *data, unsigned size); + unsigned addr, int incr_addr, u8 *buf, unsigned blocks, unsigned blksz); #endif |