diff options
Diffstat (limited to 'include/linux/mmc')
| -rw-r--r-- | include/linux/mmc/card.h | 7 | ||||
| -rw-r--r-- | include/linux/mmc/core.h | 4 | ||||
| -rw-r--r-- | include/linux/mmc/dw_mmc.h | 4 | ||||
| -rw-r--r-- | include/linux/mmc/host.h | 5 |
4 files changed, 12 insertions, 8 deletions
diff --git a/include/linux/mmc/card.h b/include/linux/mmc/card.h index 842de3e21e70..176fdf824b14 100644 --- a/include/linux/mmc/card.h +++ b/include/linux/mmc/card.h | |||
| @@ -240,6 +240,7 @@ struct mmc_part { | |||
| 240 | struct mmc_card { | 240 | struct mmc_card { |
| 241 | struct mmc_host *host; /* the host this device belongs to */ | 241 | struct mmc_host *host; /* the host this device belongs to */ |
| 242 | struct device dev; /* the device */ | 242 | struct device dev; /* the device */ |
| 243 | u32 ocr; /* the current OCR setting */ | ||
| 243 | unsigned int rca; /* relative card address of device */ | 244 | unsigned int rca; /* relative card address of device */ |
| 244 | unsigned int type; /* card type */ | 245 | unsigned int type; /* card type */ |
| 245 | #define MMC_TYPE_MMC 0 /* MMC card */ | 246 | #define MMC_TYPE_MMC 0 /* MMC card */ |
| @@ -257,6 +258,7 @@ struct mmc_card { | |||
| 257 | #define MMC_CARD_REMOVED (1<<7) /* card has been removed */ | 258 | #define MMC_CARD_REMOVED (1<<7) /* card has been removed */ |
| 258 | #define MMC_STATE_HIGHSPEED_200 (1<<8) /* card is in HS200 mode */ | 259 | #define MMC_STATE_HIGHSPEED_200 (1<<8) /* card is in HS200 mode */ |
| 259 | #define MMC_STATE_DOING_BKOPS (1<<10) /* card is doing BKOPS */ | 260 | #define MMC_STATE_DOING_BKOPS (1<<10) /* card is doing BKOPS */ |
| 261 | #define MMC_STATE_SUSPENDED (1<<11) /* card is suspended */ | ||
| 260 | unsigned int quirks; /* card quirks */ | 262 | unsigned int quirks; /* card quirks */ |
| 261 | #define MMC_QUIRK_LENIENT_FN0 (1<<0) /* allow SDIO FN0 writes outside of the VS CCCR range */ | 263 | #define MMC_QUIRK_LENIENT_FN0 (1<<0) /* allow SDIO FN0 writes outside of the VS CCCR range */ |
| 262 | #define MMC_QUIRK_BLKSZ_FOR_BYTE_MODE (1<<1) /* use func->cur_blksize */ | 264 | #define MMC_QUIRK_BLKSZ_FOR_BYTE_MODE (1<<1) /* use func->cur_blksize */ |
| @@ -420,10 +422,10 @@ static inline void __maybe_unused remove_quirk(struct mmc_card *card, int data) | |||
| 420 | #define mmc_card_blockaddr(c) ((c)->state & MMC_STATE_BLOCKADDR) | 422 | #define mmc_card_blockaddr(c) ((c)->state & MMC_STATE_BLOCKADDR) |
| 421 | #define mmc_card_ddr_mode(c) ((c)->state & MMC_STATE_HIGHSPEED_DDR) | 423 | #define mmc_card_ddr_mode(c) ((c)->state & MMC_STATE_HIGHSPEED_DDR) |
| 422 | #define mmc_card_uhs(c) ((c)->state & MMC_STATE_ULTRAHIGHSPEED) | 424 | #define mmc_card_uhs(c) ((c)->state & MMC_STATE_ULTRAHIGHSPEED) |
| 423 | #define mmc_sd_card_uhs(c) ((c)->state & MMC_STATE_ULTRAHIGHSPEED) | ||
| 424 | #define mmc_card_ext_capacity(c) ((c)->state & MMC_CARD_SDXC) | 425 | #define mmc_card_ext_capacity(c) ((c)->state & MMC_CARD_SDXC) |
| 425 | #define mmc_card_removed(c) ((c) && ((c)->state & MMC_CARD_REMOVED)) | 426 | #define mmc_card_removed(c) ((c) && ((c)->state & MMC_CARD_REMOVED)) |
| 426 | #define mmc_card_doing_bkops(c) ((c)->state & MMC_STATE_DOING_BKOPS) | 427 | #define mmc_card_doing_bkops(c) ((c)->state & MMC_STATE_DOING_BKOPS) |
| 428 | #define mmc_card_suspended(c) ((c)->state & MMC_STATE_SUSPENDED) | ||
| 427 | 429 | ||
| 428 | #define mmc_card_set_present(c) ((c)->state |= MMC_STATE_PRESENT) | 430 | #define mmc_card_set_present(c) ((c)->state |= MMC_STATE_PRESENT) |
| 429 | #define mmc_card_set_readonly(c) ((c)->state |= MMC_STATE_READONLY) | 431 | #define mmc_card_set_readonly(c) ((c)->state |= MMC_STATE_READONLY) |
| @@ -432,11 +434,12 @@ static inline void __maybe_unused remove_quirk(struct mmc_card *card, int data) | |||
| 432 | #define mmc_card_set_blockaddr(c) ((c)->state |= MMC_STATE_BLOCKADDR) | 434 | #define mmc_card_set_blockaddr(c) ((c)->state |= MMC_STATE_BLOCKADDR) |
| 433 | #define mmc_card_set_ddr_mode(c) ((c)->state |= MMC_STATE_HIGHSPEED_DDR) | 435 | #define mmc_card_set_ddr_mode(c) ((c)->state |= MMC_STATE_HIGHSPEED_DDR) |
| 434 | #define mmc_card_set_uhs(c) ((c)->state |= MMC_STATE_ULTRAHIGHSPEED) | 436 | #define mmc_card_set_uhs(c) ((c)->state |= MMC_STATE_ULTRAHIGHSPEED) |
| 435 | #define mmc_sd_card_set_uhs(c) ((c)->state |= MMC_STATE_ULTRAHIGHSPEED) | ||
| 436 | #define mmc_card_set_ext_capacity(c) ((c)->state |= MMC_CARD_SDXC) | 437 | #define mmc_card_set_ext_capacity(c) ((c)->state |= MMC_CARD_SDXC) |
| 437 | #define mmc_card_set_removed(c) ((c)->state |= MMC_CARD_REMOVED) | 438 | #define mmc_card_set_removed(c) ((c)->state |= MMC_CARD_REMOVED) |
| 438 | #define mmc_card_set_doing_bkops(c) ((c)->state |= MMC_STATE_DOING_BKOPS) | 439 | #define mmc_card_set_doing_bkops(c) ((c)->state |= MMC_STATE_DOING_BKOPS) |
| 439 | #define mmc_card_clr_doing_bkops(c) ((c)->state &= ~MMC_STATE_DOING_BKOPS) | 440 | #define mmc_card_clr_doing_bkops(c) ((c)->state &= ~MMC_STATE_DOING_BKOPS) |
| 441 | #define mmc_card_set_suspended(c) ((c)->state |= MMC_STATE_SUSPENDED) | ||
| 442 | #define mmc_card_clr_suspended(c) ((c)->state &= ~MMC_STATE_SUSPENDED) | ||
| 440 | 443 | ||
| 441 | /* | 444 | /* |
| 442 | * Quirk add/remove for MMC products. | 445 | * Quirk add/remove for MMC products. |
diff --git a/include/linux/mmc/core.h b/include/linux/mmc/core.h index da51bec578c3..87079fc38011 100644 --- a/include/linux/mmc/core.h +++ b/include/linux/mmc/core.h | |||
| @@ -151,7 +151,8 @@ extern int mmc_app_cmd(struct mmc_host *, struct mmc_card *); | |||
| 151 | extern int mmc_wait_for_app_cmd(struct mmc_host *, struct mmc_card *, | 151 | extern int mmc_wait_for_app_cmd(struct mmc_host *, struct mmc_card *, |
| 152 | struct mmc_command *, int); | 152 | struct mmc_command *, int); |
| 153 | extern void mmc_start_bkops(struct mmc_card *card, bool from_exception); | 153 | extern void mmc_start_bkops(struct mmc_card *card, bool from_exception); |
| 154 | extern int __mmc_switch(struct mmc_card *, u8, u8, u8, unsigned int, bool); | 154 | extern int __mmc_switch(struct mmc_card *, u8, u8, u8, unsigned int, bool, |
| 155 | bool); | ||
| 155 | extern int mmc_switch(struct mmc_card *, u8, u8, u8, unsigned int); | 156 | extern int mmc_switch(struct mmc_card *, u8, u8, u8, unsigned int); |
| 156 | extern int mmc_send_ext_csd(struct mmc_card *card, u8 *ext_csd); | 157 | extern int mmc_send_ext_csd(struct mmc_card *card, u8 *ext_csd); |
| 157 | 158 | ||
| @@ -188,7 +189,6 @@ extern unsigned int mmc_align_data_size(struct mmc_card *, unsigned int); | |||
| 188 | 189 | ||
| 189 | extern int __mmc_claim_host(struct mmc_host *host, atomic_t *abort); | 190 | extern int __mmc_claim_host(struct mmc_host *host, atomic_t *abort); |
| 190 | extern void mmc_release_host(struct mmc_host *host); | 191 | extern void mmc_release_host(struct mmc_host *host); |
| 191 | extern int mmc_try_claim_host(struct mmc_host *host); | ||
| 192 | 192 | ||
| 193 | extern void mmc_get_card(struct mmc_card *card); | 193 | extern void mmc_get_card(struct mmc_card *card); |
| 194 | extern void mmc_put_card(struct mmc_card *card); | 194 | extern void mmc_put_card(struct mmc_card *card); |
diff --git a/include/linux/mmc/dw_mmc.h b/include/linux/mmc/dw_mmc.h index 198f0fa44e9f..6ce7d2cd3c7a 100644 --- a/include/linux/mmc/dw_mmc.h +++ b/include/linux/mmc/dw_mmc.h | |||
| @@ -15,6 +15,7 @@ | |||
| 15 | #define LINUX_MMC_DW_MMC_H | 15 | #define LINUX_MMC_DW_MMC_H |
| 16 | 16 | ||
| 17 | #include <linux/scatterlist.h> | 17 | #include <linux/scatterlist.h> |
| 18 | #include <linux/mmc/core.h> | ||
| 18 | 19 | ||
| 19 | #define MAX_MCI_SLOTS 2 | 20 | #define MAX_MCI_SLOTS 2 |
| 20 | 21 | ||
| @@ -129,6 +130,9 @@ struct dw_mci { | |||
| 129 | struct mmc_request *mrq; | 130 | struct mmc_request *mrq; |
| 130 | struct mmc_command *cmd; | 131 | struct mmc_command *cmd; |
| 131 | struct mmc_data *data; | 132 | struct mmc_data *data; |
| 133 | struct mmc_command stop_abort; | ||
| 134 | unsigned int prev_blksz; | ||
| 135 | unsigned char timing; | ||
| 132 | struct workqueue_struct *card_workqueue; | 136 | struct workqueue_struct *card_workqueue; |
| 133 | 137 | ||
| 134 | /* DMA interface members*/ | 138 | /* DMA interface members*/ |
diff --git a/include/linux/mmc/host.h b/include/linux/mmc/host.h index 3b0c33ae13e1..99f5709ac343 100644 --- a/include/linux/mmc/host.h +++ b/include/linux/mmc/host.h | |||
| @@ -254,6 +254,7 @@ struct mmc_host { | |||
| 254 | #define MMC_CAP_UHS_SDR50 (1 << 17) /* Host supports UHS SDR50 mode */ | 254 | #define MMC_CAP_UHS_SDR50 (1 << 17) /* Host supports UHS SDR50 mode */ |
| 255 | #define MMC_CAP_UHS_SDR104 (1 << 18) /* Host supports UHS SDR104 mode */ | 255 | #define MMC_CAP_UHS_SDR104 (1 << 18) /* Host supports UHS SDR104 mode */ |
| 256 | #define MMC_CAP_UHS_DDR50 (1 << 19) /* Host supports UHS DDR50 mode */ | 256 | #define MMC_CAP_UHS_DDR50 (1 << 19) /* Host supports UHS DDR50 mode */ |
| 257 | #define MMC_CAP_RUNTIME_RESUME (1 << 20) /* Resume at runtime_resume. */ | ||
| 257 | #define MMC_CAP_DRIVER_TYPE_A (1 << 23) /* Host supports Driver Type A */ | 258 | #define MMC_CAP_DRIVER_TYPE_A (1 << 23) /* Host supports Driver Type A */ |
| 258 | #define MMC_CAP_DRIVER_TYPE_C (1 << 24) /* Host supports Driver Type C */ | 259 | #define MMC_CAP_DRIVER_TYPE_C (1 << 24) /* Host supports Driver Type C */ |
| 259 | #define MMC_CAP_DRIVER_TYPE_D (1 << 25) /* Host supports Driver Type D */ | 260 | #define MMC_CAP_DRIVER_TYPE_D (1 << 25) /* Host supports Driver Type D */ |
| @@ -309,7 +310,6 @@ struct mmc_host { | |||
| 309 | spinlock_t lock; /* lock for claim and bus ops */ | 310 | spinlock_t lock; /* lock for claim and bus ops */ |
| 310 | 311 | ||
| 311 | struct mmc_ios ios; /* current io bus settings */ | 312 | struct mmc_ios ios; /* current io bus settings */ |
| 312 | u32 ocr; /* the current OCR setting */ | ||
| 313 | 313 | ||
| 314 | /* group bitfields together to minimize padding */ | 314 | /* group bitfields together to minimize padding */ |
| 315 | unsigned int use_spi_crc:1; | 315 | unsigned int use_spi_crc:1; |
| @@ -382,9 +382,6 @@ static inline void *mmc_priv(struct mmc_host *host) | |||
| 382 | #define mmc_classdev(x) (&(x)->class_dev) | 382 | #define mmc_classdev(x) (&(x)->class_dev) |
| 383 | #define mmc_hostname(x) (dev_name(&(x)->class_dev)) | 383 | #define mmc_hostname(x) (dev_name(&(x)->class_dev)) |
| 384 | 384 | ||
| 385 | int mmc_suspend_host(struct mmc_host *); | ||
| 386 | int mmc_resume_host(struct mmc_host *); | ||
| 387 | |||
| 388 | int mmc_power_save_host(struct mmc_host *host); | 385 | int mmc_power_save_host(struct mmc_host *host); |
| 389 | int mmc_power_restore_host(struct mmc_host *host); | 386 | int mmc_power_restore_host(struct mmc_host *host); |
| 390 | 387 | ||
