diff options
| author | Mark Brown <broonie@linaro.org> | 2013-11-24 09:35:18 -0500 |
|---|---|---|
| committer | Mark Brown <broonie@linaro.org> | 2013-11-24 09:35:18 -0500 |
| commit | 30c27abd28fa168d7ebd2e5286f1fe473c74bfa9 (patch) | |
| tree | 9936b38c0c81cd430d5e75906c1207d127fe588c /include/linux/mtd | |
| parent | 16ec790938d4f356c82fab27b9a9adf4d6fe19a6 (diff) | |
| parent | 6ce4eac1f600b34f2f7f58f9cd8f0503d79e42ae (diff) | |
Merge tag 'v3.13-rc1' into asoc-arizona
Linux 3.13-rc1
Diffstat (limited to 'include/linux/mtd')
| -rw-r--r-- | include/linux/mtd/bbm.h | 2 | ||||
| -rw-r--r-- | include/linux/mtd/map.h | 4 | ||||
| -rw-r--r-- | include/linux/mtd/mtd.h | 8 | ||||
| -rw-r--r-- | include/linux/mtd/nand.h | 16 |
4 files changed, 19 insertions, 11 deletions
diff --git a/include/linux/mtd/bbm.h b/include/linux/mtd/bbm.h index 95fc482cef36..36bb6a503f19 100644 --- a/include/linux/mtd/bbm.h +++ b/include/linux/mtd/bbm.h | |||
| @@ -91,8 +91,6 @@ struct nand_bbt_descr { | |||
| 91 | * with NAND_BBT_CREATE. | 91 | * with NAND_BBT_CREATE. |
| 92 | */ | 92 | */ |
| 93 | #define NAND_BBT_CREATE_EMPTY 0x00000400 | 93 | #define NAND_BBT_CREATE_EMPTY 0x00000400 |
| 94 | /* Search good / bad pattern through all pages of a block */ | ||
| 95 | #define NAND_BBT_SCANALLPAGES 0x00000800 | ||
| 96 | /* Write bbt if neccecary */ | 94 | /* Write bbt if neccecary */ |
| 97 | #define NAND_BBT_WRITE 0x00002000 | 95 | #define NAND_BBT_WRITE 0x00002000 |
| 98 | /* Read and write back block contents when writing bbt */ | 96 | /* Read and write back block contents when writing bbt */ |
diff --git a/include/linux/mtd/map.h b/include/linux/mtd/map.h index 4b02512e421c..5f487d776411 100644 --- a/include/linux/mtd/map.h +++ b/include/linux/mtd/map.h | |||
| @@ -365,7 +365,7 @@ static inline map_word map_word_load_partial(struct map_info *map, map_word orig | |||
| 365 | bitpos = (map_bankwidth(map)-1-i)*8; | 365 | bitpos = (map_bankwidth(map)-1-i)*8; |
| 366 | #endif | 366 | #endif |
| 367 | orig.x[0] &= ~(0xff << bitpos); | 367 | orig.x[0] &= ~(0xff << bitpos); |
| 368 | orig.x[0] |= buf[i-start] << bitpos; | 368 | orig.x[0] |= (unsigned long)buf[i-start] << bitpos; |
| 369 | } | 369 | } |
| 370 | } | 370 | } |
| 371 | return orig; | 371 | return orig; |
| @@ -384,7 +384,7 @@ static inline map_word map_word_ff(struct map_info *map) | |||
| 384 | 384 | ||
| 385 | if (map_bankwidth(map) < MAP_FF_LIMIT) { | 385 | if (map_bankwidth(map) < MAP_FF_LIMIT) { |
| 386 | int bw = 8 * map_bankwidth(map); | 386 | int bw = 8 * map_bankwidth(map); |
| 387 | r.x[0] = (1 << bw) - 1; | 387 | r.x[0] = (1UL << bw) - 1; |
| 388 | } else { | 388 | } else { |
| 389 | for (i=0; i<map_words(map); i++) | 389 | for (i=0; i<map_words(map); i++) |
| 390 | r.x[i] = ~0UL; | 390 | r.x[i] = ~0UL; |
diff --git a/include/linux/mtd/mtd.h b/include/linux/mtd/mtd.h index f9bfe526d310..8cc0e2fb6894 100644 --- a/include/linux/mtd/mtd.h +++ b/include/linux/mtd/mtd.h | |||
| @@ -29,9 +29,6 @@ | |||
| 29 | 29 | ||
| 30 | #include <asm/div64.h> | 30 | #include <asm/div64.h> |
| 31 | 31 | ||
| 32 | #define MTD_CHAR_MAJOR 90 | ||
| 33 | #define MTD_BLOCK_MAJOR 31 | ||
| 34 | |||
| 35 | #define MTD_ERASE_PENDING 0x01 | 32 | #define MTD_ERASE_PENDING 0x01 |
| 36 | #define MTD_ERASING 0x02 | 33 | #define MTD_ERASING 0x02 |
| 37 | #define MTD_ERASE_SUSPEND 0x04 | 34 | #define MTD_ERASE_SUSPEND 0x04 |
| @@ -354,6 +351,11 @@ static inline int mtd_has_oob(const struct mtd_info *mtd) | |||
| 354 | return mtd->_read_oob && mtd->_write_oob; | 351 | return mtd->_read_oob && mtd->_write_oob; |
| 355 | } | 352 | } |
| 356 | 353 | ||
| 354 | static inline int mtd_type_is_nand(const struct mtd_info *mtd) | ||
| 355 | { | ||
| 356 | return mtd->type == MTD_NANDFLASH || mtd->type == MTD_MLCNANDFLASH; | ||
| 357 | } | ||
| 358 | |||
| 357 | static inline int mtd_can_have_bb(const struct mtd_info *mtd) | 359 | static inline int mtd_can_have_bb(const struct mtd_info *mtd) |
| 358 | { | 360 | { |
| 359 | return !!mtd->_block_isbad; | 361 | return !!mtd->_block_isbad; |
diff --git a/include/linux/mtd/nand.h b/include/linux/mtd/nand.h index ac8e89d5a792..9e6c8f9f306e 100644 --- a/include/linux/mtd/nand.h +++ b/include/linux/mtd/nand.h | |||
| @@ -198,6 +198,7 @@ typedef enum { | |||
| 198 | /* Cell info constants */ | 198 | /* Cell info constants */ |
| 199 | #define NAND_CI_CHIPNR_MSK 0x03 | 199 | #define NAND_CI_CHIPNR_MSK 0x03 |
| 200 | #define NAND_CI_CELLTYPE_MSK 0x0C | 200 | #define NAND_CI_CELLTYPE_MSK 0x0C |
| 201 | #define NAND_CI_CELLTYPE_SHIFT 2 | ||
| 201 | 202 | ||
| 202 | /* Keep gcc happy */ | 203 | /* Keep gcc happy */ |
| 203 | struct nand_chip; | 204 | struct nand_chip; |
| @@ -477,7 +478,7 @@ struct nand_buffers { | |||
| 477 | * @badblockbits: [INTERN] minimum number of set bits in a good block's | 478 | * @badblockbits: [INTERN] minimum number of set bits in a good block's |
| 478 | * bad block marker position; i.e., BBM == 11110111b is | 479 | * bad block marker position; i.e., BBM == 11110111b is |
| 479 | * not bad when badblockbits == 7 | 480 | * not bad when badblockbits == 7 |
| 480 | * @cellinfo: [INTERN] MLC/multichip data from chip ident | 481 | * @bits_per_cell: [INTERN] number of bits per cell. i.e., 1 means SLC. |
| 481 | * @ecc_strength_ds: [INTERN] ECC correctability from the datasheet. | 482 | * @ecc_strength_ds: [INTERN] ECC correctability from the datasheet. |
| 482 | * Minimum amount of bit errors per @ecc_step_ds guaranteed | 483 | * Minimum amount of bit errors per @ecc_step_ds guaranteed |
| 483 | * to be correctable. If unknown, set to zero. | 484 | * to be correctable. If unknown, set to zero. |
| @@ -498,7 +499,6 @@ struct nand_buffers { | |||
| 498 | * supported, 0 otherwise. | 499 | * supported, 0 otherwise. |
| 499 | * @onfi_set_features: [REPLACEABLE] set the features for ONFI nand | 500 | * @onfi_set_features: [REPLACEABLE] set the features for ONFI nand |
| 500 | * @onfi_get_features: [REPLACEABLE] get the features for ONFI nand | 501 | * @onfi_get_features: [REPLACEABLE] get the features for ONFI nand |
| 501 | * @ecclayout: [REPLACEABLE] the default ECC placement scheme | ||
| 502 | * @bbt: [INTERN] bad block table pointer | 502 | * @bbt: [INTERN] bad block table pointer |
| 503 | * @bbt_td: [REPLACEABLE] bad block table descriptor for flash | 503 | * @bbt_td: [REPLACEABLE] bad block table descriptor for flash |
| 504 | * lookup. | 504 | * lookup. |
| @@ -559,7 +559,7 @@ struct nand_chip { | |||
| 559 | int pagebuf; | 559 | int pagebuf; |
| 560 | unsigned int pagebuf_bitflips; | 560 | unsigned int pagebuf_bitflips; |
| 561 | int subpagesize; | 561 | int subpagesize; |
| 562 | uint8_t cellinfo; | 562 | uint8_t bits_per_cell; |
| 563 | uint16_t ecc_strength_ds; | 563 | uint16_t ecc_strength_ds; |
| 564 | uint16_t ecc_step_ds; | 564 | uint16_t ecc_step_ds; |
| 565 | int badblockpos; | 565 | int badblockpos; |
| @@ -572,7 +572,6 @@ struct nand_chip { | |||
| 572 | 572 | ||
| 573 | uint8_t *oob_poi; | 573 | uint8_t *oob_poi; |
| 574 | struct nand_hw_control *controller; | 574 | struct nand_hw_control *controller; |
| 575 | struct nand_ecclayout *ecclayout; | ||
| 576 | 575 | ||
| 577 | struct nand_ecc_ctrl ecc; | 576 | struct nand_ecc_ctrl ecc; |
| 578 | struct nand_buffers *buffers; | 577 | struct nand_buffers *buffers; |
| @@ -797,4 +796,13 @@ static inline int onfi_get_sync_timing_mode(struct nand_chip *chip) | |||
| 797 | return le16_to_cpu(chip->onfi_params.src_sync_timing_mode); | 796 | return le16_to_cpu(chip->onfi_params.src_sync_timing_mode); |
| 798 | } | 797 | } |
| 799 | 798 | ||
| 799 | /* | ||
| 800 | * Check if it is a SLC nand. | ||
| 801 | * The !nand_is_slc() can be used to check the MLC/TLC nand chips. | ||
| 802 | * We do not distinguish the MLC and TLC now. | ||
| 803 | */ | ||
| 804 | static inline bool nand_is_slc(struct nand_chip *chip) | ||
| 805 | { | ||
| 806 | return chip->bits_per_cell == 1; | ||
| 807 | } | ||
| 800 | #endif /* __LINUX_MTD_NAND_H */ | 808 | #endif /* __LINUX_MTD_NAND_H */ |
