diff options
| author | Andrei Warkentin <andreiw@motorola.com> | 2011-03-31 19:40:00 -0400 |
|---|---|---|
| committer | Chris Ball <cjb@laptop.org> | 2011-05-24 20:59:38 -0400 |
| commit | f4c5522b0a8827f39f83f928961d87e081bfe71c (patch) | |
| tree | 3c2126f0adb2a3444b2fd152cc1a880c192c9d77 /include/linux/mmc | |
| parent | 766a6bf6e987ff5f5085c614b5a62a55006b6a7e (diff) | |
mmc: Reliable write support.
Allows reliable writes to be used for MMC writes. Reliable writes are used
to service write REQ_FUA/REQ_META requests. Handles both the legacy and
the enhanced reliable write support in MMC cards.
Signed-off-by: Andrei Warkentin <andreiw@motorola.com>
Reviewed-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Chris Ball <cjb@laptop.org>
Diffstat (limited to 'include/linux/mmc')
| -rw-r--r-- | include/linux/mmc/card.h | 2 | ||||
| -rw-r--r-- | include/linux/mmc/mmc.h | 4 |
2 files changed, 6 insertions, 0 deletions
diff --git a/include/linux/mmc/card.h b/include/linux/mmc/card.h index 557b7326339..c4e96fa5fb2 100644 --- a/include/linux/mmc/card.h +++ b/include/linux/mmc/card.h | |||
| @@ -45,6 +45,8 @@ struct mmc_ext_csd { | |||
| 45 | u8 rev; | 45 | u8 rev; |
| 46 | u8 erase_group_def; | 46 | u8 erase_group_def; |
| 47 | u8 sec_feature_support; | 47 | u8 sec_feature_support; |
| 48 | u8 rel_sectors; | ||
| 49 | u8 rel_param; | ||
| 48 | u8 bootconfig; | 50 | u8 bootconfig; |
| 49 | unsigned int sa_timeout; /* Units: 100ns */ | 51 | unsigned int sa_timeout; /* Units: 100ns */ |
| 50 | unsigned int hs_max_dtr; | 52 | unsigned int hs_max_dtr; |
diff --git a/include/linux/mmc/mmc.h b/include/linux/mmc/mmc.h index b5ec88fd135..390aa6eef67 100644 --- a/include/linux/mmc/mmc.h +++ b/include/linux/mmc/mmc.h | |||
| @@ -255,6 +255,7 @@ struct _mmc_csd { | |||
| 255 | 255 | ||
| 256 | #define EXT_CSD_PARTITION_ATTRIBUTE 156 /* R/W */ | 256 | #define EXT_CSD_PARTITION_ATTRIBUTE 156 /* R/W */ |
| 257 | #define EXT_CSD_PARTITION_SUPPORT 160 /* RO */ | 257 | #define EXT_CSD_PARTITION_SUPPORT 160 /* RO */ |
| 258 | #define EXT_CSD_WR_REL_PARAM 166 /* RO */ | ||
| 258 | #define EXT_CSD_ERASE_GROUP_DEF 175 /* R/W */ | 259 | #define EXT_CSD_ERASE_GROUP_DEF 175 /* R/W */ |
| 259 | #define EXT_CSD_BOOT_CONFIG 179 /* R/W */ | 260 | #define EXT_CSD_BOOT_CONFIG 179 /* R/W */ |
| 260 | #define EXT_CSD_ERASED_MEM_CONT 181 /* RO */ | 261 | #define EXT_CSD_ERASED_MEM_CONT 181 /* RO */ |
| @@ -265,6 +266,7 @@ struct _mmc_csd { | |||
| 265 | #define EXT_CSD_CARD_TYPE 196 /* RO */ | 266 | #define EXT_CSD_CARD_TYPE 196 /* RO */ |
| 266 | #define EXT_CSD_SEC_CNT 212 /* RO, 4 bytes */ | 267 | #define EXT_CSD_SEC_CNT 212 /* RO, 4 bytes */ |
| 267 | #define EXT_CSD_S_A_TIMEOUT 217 /* RO */ | 268 | #define EXT_CSD_S_A_TIMEOUT 217 /* RO */ |
| 269 | #define EXT_CSD_REL_WR_SEC_C 222 /* RO */ | ||
| 268 | #define EXT_CSD_HC_WP_GRP_SIZE 221 /* RO */ | 270 | #define EXT_CSD_HC_WP_GRP_SIZE 221 /* RO */ |
| 269 | #define EXT_CSD_ERASE_TIMEOUT_MULT 223 /* RO */ | 271 | #define EXT_CSD_ERASE_TIMEOUT_MULT 223 /* RO */ |
| 270 | #define EXT_CSD_HC_ERASE_GRP_SIZE 224 /* RO */ | 272 | #define EXT_CSD_HC_ERASE_GRP_SIZE 224 /* RO */ |
| @@ -277,6 +279,8 @@ struct _mmc_csd { | |||
| 277 | * EXT_CSD field definitions | 279 | * EXT_CSD field definitions |
| 278 | */ | 280 | */ |
| 279 | 281 | ||
| 282 | #define EXT_CSD_WR_REL_PARAM_EN (1<<2) | ||
| 283 | |||
| 280 | #define EXT_CSD_CMD_SET_NORMAL (1<<0) | 284 | #define EXT_CSD_CMD_SET_NORMAL (1<<0) |
| 281 | #define EXT_CSD_CMD_SET_SECURE (1<<1) | 285 | #define EXT_CSD_CMD_SET_SECURE (1<<1) |
| 282 | #define EXT_CSD_CMD_SET_CPSECURE (1<<2) | 286 | #define EXT_CSD_CMD_SET_CPSECURE (1<<2) |
