diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-01-09 15:36:45 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-01-09 15:37:15 -0500 |
| commit | 7c51d57e9d7fbce89f79c41dc8da383101dbe9c6 (patch) | |
| tree | 9f45a5ac5ce627b4c6138595b23ae7f02e1ee7fb /include/linux | |
| parent | a3a798c88a14b35e5d4ca30716dbc9eb9a1ddfe2 (diff) | |
| parent | 85795dac740e63e81aeec8d49aada54ab07656b5 (diff) | |
Merge git://git.infradead.org/mtd-2.6
* git://git.infradead.org/mtd-2.6: (67 commits)
[MTD] [MAPS] Fix printk format warning in nettel.c
[MTD] [NAND] add cmdline parsing (mtdparts=) support to cafe_nand
[MTD] CFI: remove major/minor version check for command set 0x0002
[MTD] [NAND] ndfc driver
[MTD] [TESTS] Fix some size_t printk format warnings
[MTD] LPDDR Makefile and KConfig
[MTD] LPDDR extended physmap driver to support LPDDR flash
[MTD] LPDDR added new pfow_base parameter
[MTD] LPDDR Command set driver
[MTD] LPDDR PFOW definition
[MTD] LPDDR QINFO records definitions
[MTD] LPDDR qinfo probing.
[MTD] [NAND] pxa3xx: convert from ns to clock ticks more accurately
[MTD] [NAND] pxa3xx: fix non-page-aligned reads
[MTD] [NAND] fix nandsim sched.h references
[MTD] [NAND] alauda: use USB API functions rather than constants
[MTD] struct device - replace bus_id with dev_name(), dev_set_name()
[MTD] fix m25p80 64-bit divisions
[MTD] fix dataflash 64-bit divisions
[MTD] [NAND] Set the fsl elbc ECCM according the settings in bootloader.
...
Fixed up trivial debug conflicts in drivers/mtd/devices/{m25p80.c,mtd_dataflash.c}
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/mtd/cfi.h | 1 | ||||
| -rw-r--r-- | include/linux/mtd/ftl.h | 38 | ||||
| -rw-r--r-- | include/linux/mtd/map.h | 1 | ||||
| -rw-r--r-- | include/linux/mtd/mtd.h | 75 | ||||
| -rw-r--r-- | include/linux/mtd/nand.h | 7 | ||||
| -rw-r--r-- | include/linux/mtd/partitions.h | 6 | ||||
| -rw-r--r-- | include/linux/mtd/pfow.h | 159 | ||||
| -rw-r--r-- | include/linux/mtd/physmap.h | 1 | ||||
| -rw-r--r-- | include/linux/mtd/qinfo.h | 91 | ||||
| -rw-r--r-- | include/linux/mtd/sharpsl.h | 20 |
10 files changed, 354 insertions, 45 deletions
diff --git a/include/linux/mtd/cfi.h b/include/linux/mtd/cfi.h index 00e2b575021f..88d3d8fbf9f2 100644 --- a/include/linux/mtd/cfi.h +++ b/include/linux/mtd/cfi.h | |||
| @@ -520,6 +520,7 @@ struct cfi_fixup { | |||
| 520 | 520 | ||
| 521 | #define CFI_MFR_AMD 0x0001 | 521 | #define CFI_MFR_AMD 0x0001 |
| 522 | #define CFI_MFR_ATMEL 0x001F | 522 | #define CFI_MFR_ATMEL 0x001F |
| 523 | #define CFI_MFR_SAMSUNG 0x00EC | ||
| 523 | #define CFI_MFR_ST 0x0020 /* STMicroelectronics */ | 524 | #define CFI_MFR_ST 0x0020 /* STMicroelectronics */ |
| 524 | 525 | ||
| 525 | void cfi_fixup(struct mtd_info *mtd, struct cfi_fixup* fixups); | 526 | void cfi_fixup(struct mtd_info *mtd, struct cfi_fixup* fixups); |
diff --git a/include/linux/mtd/ftl.h b/include/linux/mtd/ftl.h index 0be442f881dd..0555f7a0b9ed 100644 --- a/include/linux/mtd/ftl.h +++ b/include/linux/mtd/ftl.h | |||
| @@ -32,25 +32,25 @@ | |||
| 32 | #define _LINUX_FTL_H | 32 | #define _LINUX_FTL_H |
| 33 | 33 | ||
| 34 | typedef struct erase_unit_header_t { | 34 | typedef struct erase_unit_header_t { |
| 35 | u_int8_t LinkTargetTuple[5]; | 35 | uint8_t LinkTargetTuple[5]; |
| 36 | u_int8_t DataOrgTuple[10]; | 36 | uint8_t DataOrgTuple[10]; |
| 37 | u_int8_t NumTransferUnits; | 37 | uint8_t NumTransferUnits; |
| 38 | u_int32_t EraseCount; | 38 | uint32_t EraseCount; |
| 39 | u_int16_t LogicalEUN; | 39 | uint16_t LogicalEUN; |
| 40 | u_int8_t BlockSize; | 40 | uint8_t BlockSize; |
| 41 | u_int8_t EraseUnitSize; | 41 | uint8_t EraseUnitSize; |
| 42 | u_int16_t FirstPhysicalEUN; | 42 | uint16_t FirstPhysicalEUN; |
| 43 | u_int16_t NumEraseUnits; | 43 | uint16_t NumEraseUnits; |
| 44 | u_int32_t FormattedSize; | 44 | uint32_t FormattedSize; |
| 45 | u_int32_t FirstVMAddress; | 45 | uint32_t FirstVMAddress; |
| 46 | u_int16_t NumVMPages; | 46 | uint16_t NumVMPages; |
| 47 | u_int8_t Flags; | 47 | uint8_t Flags; |
| 48 | u_int8_t Code; | 48 | uint8_t Code; |
| 49 | u_int32_t SerialNumber; | 49 | uint32_t SerialNumber; |
| 50 | u_int32_t AltEUHOffset; | 50 | uint32_t AltEUHOffset; |
| 51 | u_int32_t BAMOffset; | 51 | uint32_t BAMOffset; |
| 52 | u_int8_t Reserved[12]; | 52 | uint8_t Reserved[12]; |
| 53 | u_int8_t EndTuple[2]; | 53 | uint8_t EndTuple[2]; |
| 54 | } erase_unit_header_t; | 54 | } erase_unit_header_t; |
| 55 | 55 | ||
| 56 | /* Flags in erase_unit_header_t */ | 56 | /* Flags in erase_unit_header_t */ |
diff --git a/include/linux/mtd/map.h b/include/linux/mtd/map.h index aa30244492c6..b981b8772217 100644 --- a/include/linux/mtd/map.h +++ b/include/linux/mtd/map.h | |||
| @@ -223,6 +223,7 @@ struct map_info { | |||
| 223 | must leave it enabled. */ | 223 | must leave it enabled. */ |
| 224 | void (*set_vpp)(struct map_info *, int); | 224 | void (*set_vpp)(struct map_info *, int); |
| 225 | 225 | ||
| 226 | unsigned long pfow_base; | ||
| 226 | unsigned long map_priv_1; | 227 | unsigned long map_priv_1; |
| 227 | unsigned long map_priv_2; | 228 | unsigned long map_priv_2; |
| 228 | void *fldrv_priv; | 229 | void *fldrv_priv; |
diff --git a/include/linux/mtd/mtd.h b/include/linux/mtd/mtd.h index 64433eb411d7..3aa5d77c2cdb 100644 --- a/include/linux/mtd/mtd.h +++ b/include/linux/mtd/mtd.h | |||
| @@ -15,6 +15,8 @@ | |||
| 15 | #include <linux/mtd/compatmac.h> | 15 | #include <linux/mtd/compatmac.h> |
| 16 | #include <mtd/mtd-abi.h> | 16 | #include <mtd/mtd-abi.h> |
| 17 | 17 | ||
| 18 | #include <asm/div64.h> | ||
| 19 | |||
| 18 | #define MTD_CHAR_MAJOR 90 | 20 | #define MTD_CHAR_MAJOR 90 |
| 19 | #define MTD_BLOCK_MAJOR 31 | 21 | #define MTD_BLOCK_MAJOR 31 |
| 20 | #define MAX_MTD_DEVICES 32 | 22 | #define MAX_MTD_DEVICES 32 |
| @@ -25,20 +27,20 @@ | |||
| 25 | #define MTD_ERASE_DONE 0x08 | 27 | #define MTD_ERASE_DONE 0x08 |
| 26 | #define MTD_ERASE_FAILED 0x10 | 28 | #define MTD_ERASE_FAILED 0x10 |
| 27 | 29 | ||
| 28 | #define MTD_FAIL_ADDR_UNKNOWN 0xffffffff | 30 | #define MTD_FAIL_ADDR_UNKNOWN -1LL |
| 29 | 31 | ||
| 30 | /* If the erase fails, fail_addr might indicate exactly which block failed. If | 32 | /* If the erase fails, fail_addr might indicate exactly which block failed. If |
| 31 | fail_addr = MTD_FAIL_ADDR_UNKNOWN, the failure was not at the device level or was not | 33 | fail_addr = MTD_FAIL_ADDR_UNKNOWN, the failure was not at the device level or was not |
| 32 | specific to any particular block. */ | 34 | specific to any particular block. */ |
| 33 | struct erase_info { | 35 | struct erase_info { |
| 34 | struct mtd_info *mtd; | 36 | struct mtd_info *mtd; |
| 35 | u_int32_t addr; | 37 | uint64_t addr; |
| 36 | u_int32_t len; | 38 | uint64_t len; |
| 37 | u_int32_t fail_addr; | 39 | uint64_t fail_addr; |
| 38 | u_long time; | 40 | u_long time; |
| 39 | u_long retries; | 41 | u_long retries; |
| 40 | u_int dev; | 42 | unsigned dev; |
| 41 | u_int cell; | 43 | unsigned cell; |
| 42 | void (*callback) (struct erase_info *self); | 44 | void (*callback) (struct erase_info *self); |
| 43 | u_long priv; | 45 | u_long priv; |
| 44 | u_char state; | 46 | u_char state; |
| @@ -46,9 +48,9 @@ struct erase_info { | |||
| 46 | }; | 48 | }; |
| 47 | 49 | ||
| 48 | struct mtd_erase_region_info { | 50 | struct mtd_erase_region_info { |
| 49 | u_int32_t offset; /* At which this region starts, from the beginning of the MTD */ | 51 | uint64_t offset; /* At which this region starts, from the beginning of the MTD */ |
| 50 | u_int32_t erasesize; /* For this region */ | 52 | uint32_t erasesize; /* For this region */ |
| 51 | u_int32_t numblocks; /* Number of blocks of erasesize in this region */ | 53 | uint32_t numblocks; /* Number of blocks of erasesize in this region */ |
| 52 | unsigned long *lockmap; /* If keeping bitmap of locks */ | 54 | unsigned long *lockmap; /* If keeping bitmap of locks */ |
| 53 | }; | 55 | }; |
| 54 | 56 | ||
| @@ -100,14 +102,14 @@ struct mtd_oob_ops { | |||
| 100 | 102 | ||
| 101 | struct mtd_info { | 103 | struct mtd_info { |
| 102 | u_char type; | 104 | u_char type; |
| 103 | u_int32_t flags; | 105 | uint32_t flags; |
| 104 | u_int32_t size; // Total size of the MTD | 106 | uint64_t size; // Total size of the MTD |
| 105 | 107 | ||
| 106 | /* "Major" erase size for the device. Naïve users may take this | 108 | /* "Major" erase size for the device. Naïve users may take this |
| 107 | * to be the only erase size available, or may use the more detailed | 109 | * to be the only erase size available, or may use the more detailed |
| 108 | * information below if they desire | 110 | * information below if they desire |
| 109 | */ | 111 | */ |
| 110 | u_int32_t erasesize; | 112 | uint32_t erasesize; |
| 111 | /* Minimal writable flash unit size. In case of NOR flash it is 1 (even | 113 | /* Minimal writable flash unit size. In case of NOR flash it is 1 (even |
| 112 | * though individual bits can be cleared), in case of NAND flash it is | 114 | * though individual bits can be cleared), in case of NAND flash it is |
| 113 | * one NAND page (or half, or one-fourths of it), in case of ECC-ed NOR | 115 | * one NAND page (or half, or one-fourths of it), in case of ECC-ed NOR |
| @@ -115,10 +117,20 @@ struct mtd_info { | |||
| 115 | * Any driver registering a struct mtd_info must ensure a writesize of | 117 | * Any driver registering a struct mtd_info must ensure a writesize of |
| 116 | * 1 or larger. | 118 | * 1 or larger. |
| 117 | */ | 119 | */ |
| 118 | u_int32_t writesize; | 120 | uint32_t writesize; |
| 121 | |||
| 122 | uint32_t oobsize; // Amount of OOB data per block (e.g. 16) | ||
| 123 | uint32_t oobavail; // Available OOB bytes per block | ||
| 119 | 124 | ||
| 120 | u_int32_t oobsize; // Amount of OOB data per block (e.g. 16) | 125 | /* |
| 121 | u_int32_t oobavail; // Available OOB bytes per block | 126 | * If erasesize is a power of 2 then the shift is stored in |
| 127 | * erasesize_shift otherwise erasesize_shift is zero. Ditto writesize. | ||
| 128 | */ | ||
| 129 | unsigned int erasesize_shift; | ||
| 130 | unsigned int writesize_shift; | ||
| 131 | /* Masks based on erasesize_shift and writesize_shift */ | ||
| 132 | unsigned int erasesize_mask; | ||
| < | |||
