diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-10-30 11:31:35 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-10-30 11:31:35 -0400 |
commit | 79346507ad48895f41b438fa562b1965721f36b9 (patch) | |
tree | 5c115ce87f1fbc0b530f30db56cecf824e9f6e05 /drivers/mtd/nand/nandsim.c | |
parent | 706d4b12f8d7edd28d7e879a77235472da393edb (diff) | |
parent | 40847437f15221b5822ba70550e8b9fcccfb9bb3 (diff) |
Merge git://git.infradead.org/mtd-2.6
* git://git.infradead.org/mtd-2.6: (82 commits)
mtd: fix build error in m25p80.c
mtd: Remove redundant mutex from mtd_blkdevs.c
MTD: Fix wrong check register_blkdev return value
Revert "mtd: cleanup Kconfig dependencies"
mtd: cfi_cmdset_0002: make sector erase command variable
mtd: cfi_cmdset_0002: add CFI detection for SST 38VF640x chips
mtd: cfi_util: add support for switching SST 39VF640xB chips into QRY mode
mtd: cfi_cmdset_0001: use defined value of P_ID_INTEL_PERFORMANCE instead of hardcoded one
block2mtd: dubious assignment
P4080/mtd: Fix the freescale lbc issue with 36bit mode
P4080/eLBC: Make Freescale elbc interrupt common to elbc devices
mtd: phram: use KBUILD_MODNAME
mtd: OneNAND: S5PC110: Fix double call suspend & resume function
mtd: nand: fix MTD_MODE_RAW writes
jffs2: use kmemdup
mtd: sm_ftl: cosmetic, use bool when possible
mtd: r852: remove useless pci powerup/down from suspend/resume routines
mtd: blktrans: fix a race vs kthread_stop
mtd: blktrans: kill BKL
mtd: allow to unload the mtdtrans module if its block devices aren't open
...
Fix up trivial whitespace-introduced conflict in drivers/mtd/mtdchar.c
Diffstat (limited to 'drivers/mtd/nand/nandsim.c')
-rw-r--r-- | drivers/mtd/nand/nandsim.c | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/drivers/mtd/nand/nandsim.c b/drivers/mtd/nand/nandsim.c index c25648bb5793..a6a73aab1253 100644 --- a/drivers/mtd/nand/nandsim.c +++ b/drivers/mtd/nand/nandsim.c | |||
@@ -107,6 +107,7 @@ static char *gravepages = NULL; | |||
107 | static unsigned int rptwear = 0; | 107 | static unsigned int rptwear = 0; |
108 | static unsigned int overridesize = 0; | 108 | static unsigned int overridesize = 0; |
109 | static char *cache_file = NULL; | 109 | static char *cache_file = NULL; |
110 | static unsigned int bbt; | ||
110 | 111 | ||
111 | module_param(first_id_byte, uint, 0400); | 112 | module_param(first_id_byte, uint, 0400); |
112 | module_param(second_id_byte, uint, 0400); | 113 | module_param(second_id_byte, uint, 0400); |
@@ -130,6 +131,7 @@ module_param(gravepages, charp, 0400); | |||
130 | module_param(rptwear, uint, 0400); | 131 | module_param(rptwear, uint, 0400); |
131 | module_param(overridesize, uint, 0400); | 132 | module_param(overridesize, uint, 0400); |
132 | module_param(cache_file, charp, 0400); | 133 | module_param(cache_file, charp, 0400); |
134 | module_param(bbt, uint, 0400); | ||
133 | 135 | ||
134 | MODULE_PARM_DESC(first_id_byte, "The first byte returned by NAND Flash 'read ID' command (manufacturer ID)"); | 136 | MODULE_PARM_DESC(first_id_byte, "The first byte returned by NAND Flash 'read ID' command (manufacturer ID)"); |
135 | MODULE_PARM_DESC(second_id_byte, "The second byte returned by NAND Flash 'read ID' command (chip ID)"); | 137 | MODULE_PARM_DESC(second_id_byte, "The second byte returned by NAND Flash 'read ID' command (chip ID)"); |
@@ -162,6 +164,7 @@ MODULE_PARM_DESC(overridesize, "Specifies the NAND Flash size overriding the I | |||
162 | "The size is specified in erase blocks and as the exponent of a power of two" | 164 | "The size is specified in erase blocks and as the exponent of a power of two" |
163 | " e.g. 5 means a size of 32 erase blocks"); | 165 | " e.g. 5 means a size of 32 erase blocks"); |
164 | MODULE_PARM_DESC(cache_file, "File to use to cache nand pages instead of memory"); | 166 | MODULE_PARM_DESC(cache_file, "File to use to cache nand pages instead of memory"); |
167 | MODULE_PARM_DESC(bbt, "0 OOB, 1 BBT with marker in OOB, 2 BBT with marker in data area"); | ||
165 | 168 | ||
166 | /* The largest possible page size */ | 169 | /* The largest possible page size */ |
167 | #define NS_LARGEST_PAGE_SIZE 4096 | 170 | #define NS_LARGEST_PAGE_SIZE 4096 |
@@ -2264,6 +2267,18 @@ static int __init ns_init_module(void) | |||
2264 | /* and 'badblocks' parameters to work */ | 2267 | /* and 'badblocks' parameters to work */ |
2265 | chip->options |= NAND_SKIP_BBTSCAN; | 2268 | chip->options |= NAND_SKIP_BBTSCAN; |
2266 | 2269 | ||
2270 | switch (bbt) { | ||
2271 | case 2: | ||
2272 | chip->options |= NAND_USE_FLASH_BBT_NO_OOB; | ||
2273 | case 1: | ||
2274 | chip->options |= NAND_USE_FLASH_BBT; | ||
2275 | case 0: | ||
2276 | break; | ||
2277 | default: | ||
2278 | NS_ERR("bbt has to be 0..2\n"); | ||
2279 | retval = -EINVAL; | ||
2280 | goto error; | ||
2281 | } | ||
2267 | /* | 2282 | /* |
2268 | * Perform minimum nandsim structure initialization to handle | 2283 | * Perform minimum nandsim structure initialization to handle |
2269 | * the initial ID read command correctly | 2284 | * the initial ID read command correctly |
@@ -2321,10 +2336,10 @@ static int __init ns_init_module(void) | |||
2321 | if ((retval = init_nandsim(nsmtd)) != 0) | 2336 | if ((retval = init_nandsim(nsmtd)) != 0) |
2322 | goto err_exit; | 2337 | goto err_exit; |
2323 | 2338 | ||
2324 | if ((retval = parse_badblocks(nand, nsmtd)) != 0) | 2339 | if ((retval = nand_default_bbt(nsmtd)) != 0) |
2325 | goto err_exit; | 2340 | goto err_exit; |
2326 | 2341 | ||
2327 | if ((retval = nand_default_bbt(nsmtd)) != 0) | 2342 | if ((retval = parse_badblocks(nand, nsmtd)) != 0) |
2328 | goto err_exit; | 2343 | goto err_exit; |
2329 | 2344 | ||
2330 | /* Register NAND partitions */ | 2345 | /* Register NAND partitions */ |