diff options
author | Andrei Warkentin <andreiw@motorola.com> | 2011-04-06 16:33:44 -0500 |
---|---|---|
committer | Ken Sumrall <ksumrall@android.com> | 2011-04-07 17:53:31 -0700 |
commit | 6557be14ed402fef6d90dfdb66152be0610b8ccc (patch) | |
tree | 03c48c6763bd5676c5a28de69897ba536f41a972 | |
parent | fef5a9d0a2b9ac3396f3dc0fccf8800ae39540d8 (diff) |
MMC: Expose mmc_switch to higher drivers.
Needed for Sandisk workaround (manipulate EXT_CSD).
Change-Id: I7bfe50a1503ac73ae072db718b60c27526521e41
Signed-off-by: Andrei Warkentin <andreiw@motorola.com>
-rw-r--r-- | drivers/mmc/core/mmc_ops.c | 11 | ||||
-rw-r--r-- | drivers/mmc/core/mmc_ops.h | 1 | ||||
-rw-r--r-- | include/linux/mmc/core.h | 1 |
3 files changed, 12 insertions, 1 deletions
diff --git a/drivers/mmc/core/mmc_ops.c b/drivers/mmc/core/mmc_ops.c index 326447c9ede8..b6d75eec4b36 100644 --- a/drivers/mmc/core/mmc_ops.c +++ b/drivers/mmc/core/mmc_ops.c @@ -387,6 +387,15 @@ int mmc_spi_set_crc(struct mmc_host *host, int use_crc) return err; } +/** + * mmc_switch - modify EXT_CSD register + * @card: the MMC card associated with the data transfer + * @set: cmd set values + * @index: EXT_CSD register index + * @value: value to program into EXT_CSD register + * + * Modifies the EXT_CSD register for selected card. + */ int mmc_switch(struct mmc_card *card, u8 set, u8 index, u8 value) { int err; @@ -434,6 +443,8 @@ int mmc_switch(struct mmc_card *card, u8 set, u8 index, u8 value) return 0; } +EXPORT_SYMBOL(mmc_switch); + int mmc_send_status(struct mmc_card *card, u32 *status) { int err; diff --git a/drivers/mmc/core/mmc_ops.h b/drivers/mmc/core/mmc_ops.h index 653eb8e84178..b1a806fbd396 100644 --- a/drivers/mmc/core/mmc_ops.h +++ b/drivers/mmc/core/mmc_ops.h @@ -20,7 +20,6 @@ int mmc_all_send_cid(struct mmc_host *host, u32 *cid); int mmc_set_relative_addr(struct mmc_card *card); int mmc_send_csd(struct mmc_card *card, u32 *csd); int mmc_send_ext_csd(struct mmc_card *card, u8 *ext_csd); -int mmc_switch(struct mmc_card *card, u8 set, u8 index, u8 value); int mmc_send_status(struct mmc_card *card, u32 *status); int mmc_send_cid(struct mmc_host *host, u32 *cid); int mmc_spi_read_ocr(struct mmc_host *host, int highcap, u32 *ocrp); diff --git a/include/linux/mmc/core.h b/include/linux/mmc/core.h index 7429033acb66..a6cd7c35958a 100644 --- a/include/linux/mmc/core.h +++ b/include/linux/mmc/core.h @@ -135,6 +135,7 @@ extern void mmc_wait_for_req(struct mmc_host *, struct mmc_request *); extern int mmc_wait_for_cmd(struct mmc_host *, struct mmc_command *, int); extern int mmc_wait_for_app_cmd(struct mmc_host *, struct mmc_card *, struct mmc_command *, int); +extern int mmc_switch(struct mmc_card *, u8, u8, u8); #define MMC_ERASE_ARG 0x00000000 #define MMC_SECURE_ERASE_ARG 0x80000000 |