diff options
Diffstat (limited to 'include/linux/mmc/card.h')
-rw-r--r-- | include/linux/mmc/card.h | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/include/linux/mmc/card.h b/include/linux/mmc/card.h index 6ad43554ac0..9178aa48209 100644 --- a/include/linux/mmc/card.h +++ b/include/linux/mmc/card.h | |||
@@ -77,6 +77,12 @@ struct mmc_ext_csd { | |||
77 | u8 raw_sec_feature_support;/* 231 */ | 77 | u8 raw_sec_feature_support;/* 231 */ |
78 | u8 raw_trim_mult; /* 232 */ | 78 | u8 raw_trim_mult; /* 232 */ |
79 | u8 raw_sectors[4]; /* 212 - 4 bytes */ | 79 | u8 raw_sectors[4]; /* 212 - 4 bytes */ |
80 | bool hpi_en; /* HPI enablebit */ | ||
81 | bool hpi; /* HPI support bit */ | ||
82 | unsigned int hpi_cmd; /* cmd used as HPI */ | ||
83 | u8 out_of_int_time; /* out of int time */ | ||
84 | bool bk_ops; /* BK ops support bit */ | ||
85 | bool bk_ops_en; /* BK ops enable bit */ | ||
80 | }; | 86 | }; |
81 | 87 | ||
82 | struct sd_scr { | 88 | struct sd_scr { |
@@ -176,6 +182,8 @@ struct mmc_card { | |||
176 | #define MMC_STATE_BLOCKADDR (1<<3) /* card uses block-addressing */ | 182 | #define MMC_STATE_BLOCKADDR (1<<3) /* card uses block-addressing */ |
177 | #define MMC_STATE_HIGHSPEED_DDR (1<<4) /* card is in high speed mode */ | 183 | #define MMC_STATE_HIGHSPEED_DDR (1<<4) /* card is in high speed mode */ |
178 | #define MMC_STATE_ULTRAHIGHSPEED (1<<5) /* card is in ultra high speed mode */ | 184 | #define MMC_STATE_ULTRAHIGHSPEED (1<<5) /* card is in ultra high speed mode */ |
185 | #define MMC_STATE_DOING_BKOPS (1<<6) /* Card doing bkops */ | ||
186 | #define MMC_STATE_NEED_BKOPS (1<<7) /* Card needs to do bkops */ | ||
179 | #define MMC_CARD_SDXC (1<<6) /* card is SDXC */ | 187 | #define MMC_CARD_SDXC (1<<6) /* card is SDXC */ |
180 | unsigned int quirks; /* card quirks */ | 188 | unsigned int quirks; /* card quirks */ |
181 | #define MMC_QUIRK_LENIENT_FN0 (1<<0) /* allow SDIO FN0 writes outside of the VS CCCR range */ | 189 | #define MMC_QUIRK_LENIENT_FN0 (1<<0) /* allow SDIO FN0 writes outside of the VS CCCR range */ |
@@ -312,9 +320,10 @@ static inline void __maybe_unused remove_quirk(struct mmc_card *card, int data) | |||
312 | #define mmc_card_highspeed(c) ((c)->state & MMC_STATE_HIGHSPEED) | 320 | #define mmc_card_highspeed(c) ((c)->state & MMC_STATE_HIGHSPEED) |
313 | #define mmc_card_blockaddr(c) ((c)->state & MMC_STATE_BLOCKADDR) | 321 | #define mmc_card_blockaddr(c) ((c)->state & MMC_STATE_BLOCKADDR) |
314 | #define mmc_card_ddr_mode(c) ((c)->state & MMC_STATE_HIGHSPEED_DDR) | 322 | #define mmc_card_ddr_mode(c) ((c)->state & MMC_STATE_HIGHSPEED_DDR) |
315 | #define mmc_sd_card_uhs(c) ((c)->state & MMC_STATE_ULTRAHIGHSPEED) | 323 | #define mmc_sd_card_uhs(c) ((c)->state & MMC_STATE_ULTRAHIGHSPEED) |
316 | #define mmc_card_ext_capacity(c) ((c)->state & MMC_CARD_SDXC) | 324 | #define mmc_card_ext_capacity(c) ((c)->state & MMC_CARD_SDXC) |
317 | 325 | #define mmc_card_doing_bkops(c) ((c)->state & MMC_STATE_DOING_BKOPS) | |
326 | #define mmc_card_need_bkops(c) ((c)->state & MMC_STATE_NEED_BKOPS) | ||
318 | #define mmc_card_set_present(c) ((c)->state |= MMC_STATE_PRESENT) | 327 | #define mmc_card_set_present(c) ((c)->state |= MMC_STATE_PRESENT) |
319 | #define mmc_card_set_readonly(c) ((c)->state |= MMC_STATE_READONLY) | 328 | #define mmc_card_set_readonly(c) ((c)->state |= MMC_STATE_READONLY) |
320 | #define mmc_card_set_highspeed(c) ((c)->state |= MMC_STATE_HIGHSPEED) | 329 | #define mmc_card_set_highspeed(c) ((c)->state |= MMC_STATE_HIGHSPEED) |
@@ -356,6 +365,11 @@ static inline void __maybe_unused remove_quirk_sd(struct mmc_card *card, | |||
356 | if (mmc_card_sd(card)) | 365 | if (mmc_card_sd(card)) |
357 | card->quirks &= ~data; | 366 | card->quirks &= ~data; |
358 | } | 367 | } |
368 | #define mmc_card_set_doing_bkops(c) ((c)->state |= MMC_STATE_DOING_BKOPS) | ||
369 | #define mmc_card_set_need_bkops(c) ((c)->state |= MMC_STATE_NEED_BKOPS) | ||
370 | |||
371 | #define mmc_card_clr_doing_bkops(c) ((c)->state &= ~MMC_STATE_DOING_BKOPS) | ||
372 | #define mmc_card_clr_need_bkops(c) ((c)->state &= ~MMC_STATE_NEED_BKOPS) | ||
359 | 373 | ||
360 | static inline int mmc_card_lenient_fn0(const struct mmc_card *c) | 374 | static inline int mmc_card_lenient_fn0(const struct mmc_card *c) |
361 | { | 375 | { |
@@ -403,4 +417,4 @@ extern void mmc_unregister_driver(struct mmc_driver *); | |||
403 | extern void mmc_fixup_device(struct mmc_card *card, | 417 | extern void mmc_fixup_device(struct mmc_card *card, |
404 | const struct mmc_fixup *table); | 418 | const struct mmc_fixup *table); |
405 | 419 | ||
406 | #endif | 420 | #endif /* LINUX_MMC_CARD_H */ |