diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-05-21 10:25:43 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-05-21 10:25:43 -0400 |
commit | 05ec7dd8dd5aa42c22a49682e4a51cadd4166b7e (patch) | |
tree | 6370b43c0d8f324aa7421bbb5a647aa04ab5d747 /drivers/mtd/nand/nandsim.c | |
parent | c316ba3b518bc35ce5aef5421135220389f4eb98 (diff) | |
parent | 8046112818b70329e930b1d4557ef0876c1ad2bb (diff) |
Merge git://git.infradead.org/mtd-2.6
* git://git.infradead.org/mtd-2.6: (154 commits)
mtd: cfi_cmdset_0002: use AMD standard command-set with Winbond flash chips
mtd: cfi_cmdset_0002: Fix MODULE_ALIAS and linkage for new 0701 commandset ID
mtd: mxc_nand: Remove duplicate NAND_CMD_RESET case value
mtd: update gfp/slab.h includes
jffs2: Stop triggering block erases from jffs2_write_super()
jffs2: Rename jffs2_erase_pending_trigger() to jffs2_dirty_trigger()
jffs2: Use jffs2_garbage_collect_trigger() to trigger pending erases
jffs2: Require jffs2_garbage_collect_trigger() to be called with lock held
jffs2: Wake GC thread when there are blocks to be erased
jffs2: Erase pending blocks in GC pass, avoid invalid -EIO return
jffs2: Add 'work_done' return value from jffs2_erase_pending_blocks()
mtd: mtdchar: Do not corrupt backing device of device node inode
mtd/maps/pcmciamtd: Fix printk format for ssize_t in debug messages
drivers/mtd: Use kmemdup
mtd: cfi_cmdset_0002: Fix argument order in bootloc warning
mtd: nand: add Toshiba TC58NVG0 device ID
pcmciamtd: add another ID
pcmciamtd: coding style cleanups
pcmciamtd: fixing obvious errors
mtd: chips: add SST39WF160x NOR-flashes
...
Trivial conflicts due to dev_node removal in drivers/mtd/maps/pcmciamtd.c
Diffstat (limited to 'drivers/mtd/nand/nandsim.c')
-rw-r--r-- | drivers/mtd/nand/nandsim.c | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/drivers/mtd/nand/nandsim.c b/drivers/mtd/nand/nandsim.c index 7281000fef2d..261337efe0ee 100644 --- a/drivers/mtd/nand/nandsim.c +++ b/drivers/mtd/nand/nandsim.c | |||
@@ -80,6 +80,9 @@ | |||
80 | #ifndef CONFIG_NANDSIM_DBG | 80 | #ifndef CONFIG_NANDSIM_DBG |
81 | #define CONFIG_NANDSIM_DBG 0 | 81 | #define CONFIG_NANDSIM_DBG 0 |
82 | #endif | 82 | #endif |
83 | #ifndef CONFIG_NANDSIM_MAX_PARTS | ||
84 | #define CONFIG_NANDSIM_MAX_PARTS 32 | ||
85 | #endif | ||
83 | 86 | ||
84 | static uint first_id_byte = CONFIG_NANDSIM_FIRST_ID_BYTE; | 87 | static uint first_id_byte = CONFIG_NANDSIM_FIRST_ID_BYTE; |
85 | static uint second_id_byte = CONFIG_NANDSIM_SECOND_ID_BYTE; | 88 | static uint second_id_byte = CONFIG_NANDSIM_SECOND_ID_BYTE; |
@@ -94,7 +97,7 @@ static uint bus_width = CONFIG_NANDSIM_BUS_WIDTH; | |||
94 | static uint do_delays = CONFIG_NANDSIM_DO_DELAYS; | 97 | static uint do_delays = CONFIG_NANDSIM_DO_DELAYS; |
95 | static uint log = CONFIG_NANDSIM_LOG; | 98 | static uint log = CONFIG_NANDSIM_LOG; |
96 | static uint dbg = CONFIG_NANDSIM_DBG; | 99 | static uint dbg = CONFIG_NANDSIM_DBG; |
97 | static unsigned long parts[MAX_MTD_DEVICES]; | 100 | static unsigned long parts[CONFIG_NANDSIM_MAX_PARTS]; |
98 | static unsigned int parts_num; | 101 | static unsigned int parts_num; |
99 | static char *badblocks = NULL; | 102 | static char *badblocks = NULL; |
100 | static char *weakblocks = NULL; | 103 | static char *weakblocks = NULL; |
@@ -135,8 +138,8 @@ MODULE_PARM_DESC(fourth_id_byte, "The fourth byte returned by NAND Flash 'read I | |||
135 | MODULE_PARM_DESC(access_delay, "Initial page access delay (microseconds)"); | 138 | MODULE_PARM_DESC(access_delay, "Initial page access delay (microseconds)"); |
136 | MODULE_PARM_DESC(programm_delay, "Page programm delay (microseconds"); | 139 | MODULE_PARM_DESC(programm_delay, "Page programm delay (microseconds"); |
137 | MODULE_PARM_DESC(erase_delay, "Sector erase delay (milliseconds)"); | 140 | MODULE_PARM_DESC(erase_delay, "Sector erase delay (milliseconds)"); |
138 | MODULE_PARM_DESC(output_cycle, "Word output (from flash) time (nanodeconds)"); | 141 | MODULE_PARM_DESC(output_cycle, "Word output (from flash) time (nanoseconds)"); |
139 | MODULE_PARM_DESC(input_cycle, "Word input (to flash) time (nanodeconds)"); | 142 | MODULE_PARM_DESC(input_cycle, "Word input (to flash) time (nanoseconds)"); |
140 | MODULE_PARM_DESC(bus_width, "Chip's bus width (8- or 16-bit)"); | 143 | MODULE_PARM_DESC(bus_width, "Chip's bus width (8- or 16-bit)"); |
141 | MODULE_PARM_DESC(do_delays, "Simulate NAND delays using busy-waits if not zero"); | 144 | MODULE_PARM_DESC(do_delays, "Simulate NAND delays using busy-waits if not zero"); |
142 | MODULE_PARM_DESC(log, "Perform logging if not zero"); | 145 | MODULE_PARM_DESC(log, "Perform logging if not zero"); |
@@ -288,7 +291,7 @@ union ns_mem { | |||
288 | * The structure which describes all the internal simulator data. | 291 | * The structure which describes all the internal simulator data. |
289 | */ | 292 | */ |
290 | struct nandsim { | 293 | struct nandsim { |
291 | struct mtd_partition partitions[MAX_MTD_DEVICES]; | 294 | struct mtd_partition partitions[CONFIG_NANDSIM_MAX_PARTS]; |
292 | unsigned int nbparts; | 295 | unsigned int nbparts; |
293 | 296 | ||
294 | uint busw; /* flash chip bus width (8 or 16) */ | 297 | uint busw; /* flash chip bus width (8 or 16) */ |
@@ -312,7 +315,7 @@ struct nandsim { | |||
312 | union ns_mem buf; | 315 | union ns_mem buf; |
313 | 316 | ||
314 | /* NAND flash "geometry" */ | 317 | /* NAND flash "geometry" */ |
315 | struct nandsin_geometry { | 318 | struct { |
316 | uint64_t totsz; /* total flash size, bytes */ | 319 | uint64_t totsz; /* total flash size, bytes */ |
317 | uint32_t secsz; /* flash sector (erase block) size, bytes */ | 320 | uint32_t secsz; /* flash sector (erase block) size, bytes */ |
318 | uint pgsz; /* NAND flash page size, bytes */ | 321 | uint pgsz; /* NAND flash page size, bytes */ |
@@ -331,7 +334,7 @@ struct nandsim { | |||
331 | } geom; | 334 | } geom; |
332 | 335 | ||
333 | /* NAND flash internal registers */ | 336 | /* NAND flash internal registers */ |
334 | struct nandsim_regs { | 337 | struct { |
335 | unsigned command; /* the command register */ | 338 | unsigned command; /* the command register */ |
336 | u_char status; /* the status register */ | 339 | u_char status; /* the status register */ |
337 | uint row; /* the page number */ | 340 | uint row; /* the page number */ |
@@ -342,7 +345,7 @@ struct nandsim { | |||
342 | } regs; | 345 | } regs; |
343 | 346 | ||
344 | /* NAND flash lines state */ | 347 | /* NAND flash lines state */ |
345 | struct ns_lines_status { | 348 | struct { |
346 | int ce; /* chip Enable */ | 349 | int ce; /* chip Enable */ |
347 | int cle; /* command Latch Enable */ | 350 | int cle; /* command Latch Enable */ |
348 | int ale; /* address Latch Enable */ | 351 | int ale; /* address Latch Enable */ |