diff options
author | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2012-01-09 02:38:23 -0500 |
---|---|---|
committer | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2012-01-09 02:38:23 -0500 |
commit | da733563be5a9da26fe81d9f007262d00b846e22 (patch) | |
tree | db28291df94a2043af2123911984c5c173da4e6f /drivers/mmc/core/sdio_ops.c | |
parent | 6ccbcf2cb41131f8d56ef0723bf3f7c1f8486076 (diff) | |
parent | dab78d7924598ea4031663dd10db814e2e324928 (diff) |
Merge branch 'next' into for-linus
Diffstat (limited to 'drivers/mmc/core/sdio_ops.c')
-rw-r--r-- | drivers/mmc/core/sdio_ops.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/mmc/core/sdio_ops.c b/drivers/mmc/core/sdio_ops.c index f087d876c573..b0517cc06200 100644 --- a/drivers/mmc/core/sdio_ops.c +++ b/drivers/mmc/core/sdio_ops.c | |||
@@ -121,7 +121,7 @@ int mmc_io_rw_direct(struct mmc_card *card, int write, unsigned fn, | |||
121 | int mmc_io_rw_extended(struct mmc_card *card, int write, unsigned fn, | 121 | int mmc_io_rw_extended(struct mmc_card *card, int write, unsigned fn, |
122 | unsigned addr, int incr_addr, u8 *buf, unsigned blocks, unsigned blksz) | 122 | unsigned addr, int incr_addr, u8 *buf, unsigned blocks, unsigned blksz) |
123 | { | 123 | { |
124 | struct mmc_request mrq = {0}; | 124 | struct mmc_request mrq = {NULL}; |
125 | struct mmc_command cmd = {0}; | 125 | struct mmc_command cmd = {0}; |
126 | struct mmc_data data = {0}; | 126 | struct mmc_data data = {0}; |
127 | struct scatterlist sg; | 127 | struct scatterlist sg; |
@@ -144,8 +144,11 @@ int mmc_io_rw_extended(struct mmc_card *card, int write, unsigned fn, | |||
144 | cmd.arg |= fn << 28; | 144 | cmd.arg |= fn << 28; |
145 | cmd.arg |= incr_addr ? 0x04000000 : 0x00000000; | 145 | cmd.arg |= incr_addr ? 0x04000000 : 0x00000000; |
146 | cmd.arg |= addr << 9; | 146 | cmd.arg |= addr << 9; |
147 | if (blocks == 1 && blksz <= 512) | 147 | if (blocks == 1 && blksz < 512) |
148 | cmd.arg |= (blksz == 512) ? 0 : blksz; /* byte mode */ | 148 | cmd.arg |= blksz; /* byte mode */ |
149 | else if (blocks == 1 && blksz == 512 && | ||
150 | !(mmc_card_broken_byte_mode_512(card))) | ||
151 | cmd.arg |= 0; /* byte mode, 0==512 */ | ||
149 | else | 152 | else |
150 | cmd.arg |= 0x08000000 | blocks; /* block mode */ | 153 | cmd.arg |= 0x08000000 | blocks; /* block mode */ |
151 | cmd.flags = MMC_RSP_SPI_R5 | MMC_RSP_R5 | MMC_CMD_ADTC; | 154 | cmd.flags = MMC_RSP_SPI_R5 | MMC_RSP_R5 | MMC_CMD_ADTC; |