diff options
Diffstat (limited to 'drivers/mmc/core/mmc_ops.c')
-rw-r--r-- | drivers/mmc/core/mmc_ops.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/drivers/mmc/core/mmc_ops.c b/drivers/mmc/core/mmc_ops.c index f3b22bf89cc..a2bae625332 100644 --- a/drivers/mmc/core/mmc_ops.c +++ b/drivers/mmc/core/mmc_ops.c | |||
@@ -387,7 +387,19 @@ int mmc_spi_set_crc(struct mmc_host *host, int use_crc) | |||
387 | return err; | 387 | return err; |
388 | } | 388 | } |
389 | 389 | ||
390 | int mmc_switch(struct mmc_card *card, u8 set, u8 index, u8 value) | 390 | /** |
391 | * mmc_switch - modify EXT_CSD register | ||
392 | * @card: the MMC card associated with the data transfer | ||
393 | * @set: cmd set values | ||
394 | * @index: EXT_CSD register index | ||
395 | * @value: value to program into EXT_CSD register | ||
396 | * @timeout_ms: timeout (ms) for operation performed by register write, | ||
397 | * timeout of zero implies maximum possible timeout | ||
398 | * | ||
399 | * Modifies the EXT_CSD register for selected card. | ||
400 | */ | ||
401 | int mmc_switch(struct mmc_card *card, u8 set, u8 index, u8 value, | ||
402 | unsigned int timeout_ms) | ||
391 | { | 403 | { |
392 | int err; | 404 | int err; |
393 | struct mmc_command cmd; | 405 | struct mmc_command cmd; |
@@ -404,6 +416,7 @@ int mmc_switch(struct mmc_card *card, u8 set, u8 index, u8 value) | |||
404 | (value << 8) | | 416 | (value << 8) | |
405 | set; | 417 | set; |
406 | cmd.flags = MMC_RSP_SPI_R1B | MMC_RSP_R1B | MMC_CMD_AC; | 418 | cmd.flags = MMC_RSP_SPI_R1B | MMC_RSP_R1B | MMC_CMD_AC; |
419 | cmd.cmd_timeout_ms = timeout_ms; | ||
407 | 420 | ||
408 | err = mmc_wait_for_cmd(card->host, &cmd, MMC_CMD_RETRIES); | 421 | err = mmc_wait_for_cmd(card->host, &cmd, MMC_CMD_RETRIES); |
409 | if (err) | 422 | if (err) |
@@ -433,6 +446,7 @@ int mmc_switch(struct mmc_card *card, u8 set, u8 index, u8 value) | |||
433 | 446 | ||
434 | return 0; | 447 | return 0; |
435 | } | 448 | } |
449 | EXPORT_SYMBOL_GPL(mmc_switch); | ||
436 | 450 | ||
437 | int mmc_send_status(struct mmc_card *card, u32 *status) | 451 | int mmc_send_status(struct mmc_card *card, u32 *status) |
438 | { | 452 | { |