- 10 Dec, 2012 2 commits
-
-
Dan Carpenter authored
If we set oobdelta to zero then we will either return -EINVAL or hit a divide (modulus) by zero on the next line when we check "(ooblen % oobdelta)". It's better to just return -EINVAL here instead. Signed-off-by:
Dan Carpenter <dan.carpenter@oracle.com> Acked-by:
Robert Jarzmik <robert.jarzmik@free.fr> Signed-off-by:
Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
-
Rafał Miłecki authored
Signed-off-by:
Rafał Miłecki <zajec5@gmail.com> Signed-off-by:
Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
-
- 04 Dec, 2012 1 commit
-
-
Christian Herzig authored
fix: do block-buffer initialize for the whole next page to zero. Signed-off-by:
Christian Herzig <christian.herzig@keymile.com> Signed-off-by:
Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
-
- 03 Dec, 2012 12 commits
-
-
Josh Wu authored
This patch fix pmecc's read_page() to return maximum number of bitflips, 0 if uncorrectable. In the commit: 3f91e94f ("mtd: nand: read_page() returns max_bitflips ()"), The ecc.read_page() is changed to return the maximum number of bitflips. And when meet uncorrectable bitflips it needs to return 0. See the comment in nand.h: * @read_page: function to read a page according to the ECC generator * requirements; returns maximum number of bitflips corrected in * any single ECC step, 0 if bitflips uncorrectable, -EIO hw error Signed-off-by:
Josh Wu <josh.wu@atmel.com> Reviewed-by:
Mike Dunn <mikedunn@newsguy.com> Signed-off-by:
Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
-
Harald Nordgard-Hansen authored
When working on a problem with some flash chips that lock up during write-buffer operations, I think there may be a bug in the linux handling of chips using cfi_cmdset_0002.c. The datasheets I have found for a number of these chips all specify that when aborting a write-buffer command, it is not enough to use the standard reset. Rather a "write-to-buffer-reset command" is needed. This command is quite similar for all chips, the main variance seem to be if the final 0xF0 can go to any address or must go to addr_unlock1. The bug is then in the recovery handling when timing out at the end of do_write_buffer, where using the normal reset command is not sufficient. Without this change, if the write-buffer command fails then any following operations on the flash also fail. Signed-off-by:
Harald Nordgard-Hansen <hhansen@pvv.org> Signed-off-by:
Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
-
Matthieu CASTET authored
- NAND_CMD_READID want an address that it is not scaled on x16 device (it is always 0x20) - NAND_CMD_PARAM want 8 bits data Signed-off-by:
Matthieu CASTET <matthieu.castet@parrot.com> Signed-off-by:
Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
-
Matthieu CASTET authored
The driver call nand_scan_ident in 8 bit mode, then readid or onfi detection are done (and detect bus width). The driver should update its bus width before calling nand_scan_tail. This work because readid and onfi are read work 8 byte mode. Note that nand_scan_ident send command (NAND_CMD_RESET, NAND_CMD_READID, NAND_CMD_PARAM), address and read data The ONFI specificication is not very clear for x16 device if high byte of address should be driven to 0, but according to [1] it should be ok to not drive it during autodetection. [1] 3.3.2. Target Initialization [...] The Read ID and Read Parameter Page commands only use the lower 8-bits of the data bus. The host shall not issue commands that use a word data width on x16 devices until the host determines the device supports a 16-bit data bus width in the parameter page. Signed-off-by:
Matthieu CASTET <matthieu.castet@parrot.com> Signed-off-by:
Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
-
Matthieu CASTET authored
This help to detect bad flash identification in case the size is not present on the name (ONFI). Signed-off-by:
Matthieu CASTET <matthieu.castet@parrot.com> Signed-off-by:
Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
-
Matthieu CASTET authored
nand_wait_ready timeout should not assume HZ=100. Make it independent of HZ value by using msecs_to_jiffies. Signed-off-by:
Matthieu CASTET <matthieu.castet@parrot.com> Signed-off-by:
Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
-
Rafał Miłecki authored
Signed-off-by:
Rafał Miłecki <zajec5@gmail.com> Signed-off-by:
Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
-
Rafał Miłecki authored
Signed-off-by:
Rafał Miłecki <zajec5@gmail.com> Signed-off-by:
Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
-
Huang Shijie authored
There are two reasons to remove the "chip" parameter in nand_get_device(): [1] The nand_release_device() does not have the "chip" parameter. [2] We can get the nand_chip by the mtd->priv field. This patch removes the "chip" parameter in nand_get_device(). Signed-off-by:
Huang Shijie <b32955@freescale.com> Signed-off-by:
Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
-
Huang Shijie authored
The nand_get_device() does not select the chip, but nand_release_device() does de-select the chip. It is really strange. With the current code, nand_sync() will de-select the chip, even if the chip has never been selected. To make the balance of select/de-select chip, it's better to remove the de-select chip code in nand_release_device() which makes the code more clear. Signed-off-by:
Huang Shijie <b32955@freescale.com> Signed-off-by:
Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
-
Liming Wang authored
Micron N25Q128 has two types of flash: - One is for 1.8v supply voltage, prefixed with "n25q128a11" and the jedec code is 0x20bb18. - Another is for 3v supply voltage, prefixed with "n25q128a13" and the jedec code is 0x20ba18. So modify the original type info and add another type for Micron N25Q128. Signed-off-by:
Liming Wang <walimisdev@gmail.com> Signed-off-by:
Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
-
Nathan Williams authored
Loading cs553x_nand with Hynix H27U1G8F2BTR NAND flash causes this bug: kernel BUG at drivers/mtd/nand/nand_base.c:3345! invalid opcode: 0000 [#1] Modules linked in: cs553x_nand(+) vfat fat usb_storage ehci_hcd usbcore usb_comr Pid: 436, comm: modprobe Not tainted 3.6.7 #1 EIP: 0060:[<c118d205>] EFLAGS: 00010296 CPU: 0 EIP is at nand_scan_tail+0x64c/0x69c EAX: 00000034 EBX: cea6ed98 ECX: 00000000 EDX: 00000000 ESI: cea6ec00 EDI: cea6ec00 EBP: 20000000 ESP: cdd17e48 DS: 007b ES: 007b FS: 0000 GS: 0000 SS: 0068 CR0: 8005003b CR2: 0804e119 CR3: 0d850000 CR4: 00000090 DR0: 00000000 DR1: 00000000 DR2: 00000000 DR3: 00000000 DR6: ffff0ff0 DR7: 00000400 Process modprobe (pid: 436, ti=cdd16000 task=cdd1c320 task.ti=cdd16000) Stack: c12e962c c118f7ef 00000003 cea6ed98 d014b25c 20000000 fffff007 00000001 00000000 cdd53b00 d014b000 c1001021 cdd53b00 d01493c0 cdd53b00 cdd53b00 d01493c0 c1047f83 d014b4a0 00000000 cdd17f9c ce4be454 cdd17f48 cdd1c320 Call Trace: [<c118f7ef>] ? nand_scan+0x1b/0x4d [<d014b25c>] ? init_module+0x25c/0x2de [cs553x_nand] [<d014b000>] ? 0xd014afff [<c1001021>] ? do_one_initcall+0x21/0x111 [<c1047f83>] ? sys_init_module+0xe4/0x1261 [<c1031207>] ? task_work_run+0x36/0x43 [<c1265ced>] ? syscall_call+0x7/0xb Code: fa ff ff c7 86 d8 00 00 00 01 00 00 00 e9 5f fc ff ff 68 f8 26 2e c1 e8 a7 EIP: [<c118d205>] nand_scan_tail+0x64c/0x69c SS:ESP 0068:cdd17e48 Initialising ecc.strength before the call to nand_scan() fixes this. Signed-off-by:
Nathan Williams <nathan@traverse.com.au> Cc: stable@vger.kernel.org [3.4+] Acked-by:
Brian Norris <computersforpeace@gmail.com> Acked-by:
Mike Dunn <mikedunn@newsguy.com> Signed-off-by:
Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
-
- 22 Nov, 2012 15 commits
-
-
Artem Bityutskiy authored
While checking the "__devinit" removal patches with checkpatch.pl, I noticed several warnings related to a space between the function name and '(', as well as long lines. I fixed the warnings up in this patch. Signed-off-by:
Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
-
Bill Pemberton authored
CONFIG_HOTPLUG is going away as an option so __devexit is no longer needed. Signed-off-by:
Bill Pemberton <wfp5p@virginia.edu> Signed-off-by:
Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
-
Bill Pemberton authored
CONFIG_HOTPLUG is going away as an option so __devinitconst is no longer needed. Signed-off-by:
Bill Pemberton <wfp5p@virginia.edu> Signed-off-by:
Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
-
Bill Pemberton authored
CONFIG_HOTPLUG is going away as an option so __devinitdata is no longer needed. Signed-off-by:
Bill Pemberton <wfp5p@virginia.edu> Signed-off-by:
Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
-
Bill Pemberton authored
CONFIG_HOTPLUG is going away as an option so __devinit is no longer needed. Signed-off-by:
Bill Pemberton <wfp5p@virginia.edu> Signed-off-by:
Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
-
Bill Pemberton authored
CONFIG_HOTPLUG is going away as an option so __devexit_p is no longer needed. Signed-off-by:
Bill Pemberton <wfp5p@virginia.edu> Signed-off-by:
Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
-
Alexander Shiyan authored
The kernel has never contained the symbol SA1100_FORTUNET so the driver never compiled and can be removed safely. Signed-off-by:
Alexander Shiyan <shc_work@mail.ru> Signed-off-by:
Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
-
Josh Radel authored
The mtd partition command line parser already supports a "lk" option to mask MTD_POWERUP_LOCK. This extends that same functionality to device tree partition specifications. Signed-off-by:
Josh Radel <jradel@gmail.com> Signed-off-by:
Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
-
Stephen Warren authored
Signed-off-by:
Stephen Warren <swarren@nvidia.com> Signed-off-by:
Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
-
Rafał Miłecki authored
Signed-off-by:
Rafał Miłecki <zajec5@gmail.com> Signed-off-by:
Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
-
Rafał Miłecki authored
Signed-off-by:
Rafał Miłecki <zajec5@gmail.com> Signed-off-by:
Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
-
Rafał Miłecki authored
Signed-off-by:
Rafał Miłecki <zajec5@gmail.com> Signed-off-by:
Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
-
Rafał Miłecki authored
Signed-off-by:
Rafał Miłecki <zajec5@gmail.com> Signed-off-by:
Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
-
Rafał Miłecki authored
BCMA bus can contain NAND flash memory, it's registered in system as platform device. This adds required hooks and place for controler specific drivers. Signed-off-by:
Rafał Miłecki <zajec5@gmail.com> Signed-off-by:
Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
-
Rafał Miłecki authored
This is required by NAND flash driver for initializing wait counters. Signed-off-by:
Rafał Miłecki <zajec5@gmail.com> Signed-off-by:
Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
-
- 21 Nov, 2012 8 commits
-
-
Jonas Gorski authored
Use ll to be able to remove the casts. Signed-off-by:
Jonas Gorski <jonas.gorski@gmail.com> Reviewed-by:
Florian Fainelli <florian@openwrt.org> Signed-off-by:
Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
-
Jonas Gorski authored
The line belongs above the comment, not below it. Signed-off-by:
Jonas Gorski <jonas.gorski@gmail.com> Reviewed-by:
Florian Fainelli <florian@openwrt.org> Signed-off-by:
Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
-
Jonas Gorski authored
The CFE does not use 4K sectors even if the flash supports it, so for the fixed partitions like CFE itself or NVRAM the erase block size is always 64k or bigger. Signed-off-by:
Jonas Gorski <jonas.gorski@gmail.com> Reviewed-by:
Florian Fainelli <florian@openwrt.org> Signed-off-by:
Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
-
Jonas Gorski authored
The length of the spare part is calculated the same way in both branches so move to a common place. Signed-off-by:
Jonas Gorski <jonas.gorski@gmail.com> Reviewed-by:
Florian Fainelli <florian@openwrt.org> Signed-off-by:
Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
-
Jonas Gorski authored
namelen is never used, so drop it. Signed-off-by:
Jonas Gorski <jonas.gorski@gmail.com> Reviewed-by:
Florian Fainelli <florian@openwrt.org> Signed-off-by:
Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
-
Luka Perkov authored
Signed-off-by:
Luka Perkov <luka@openwrt.org> Signed-off-by:
Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
-
Ezequiel Garcia authored
By replacing a kthread with a workqueue, the code is now a bit clearer. There's also a slight reduction of code size (numbers apply for x86): Before: text data bss dec hex filename 3248 36 0 3284 cd4 drivers/mtd/mtd_blkdevs.o After: text data bss dec hex filename 3150 36 0 3186 c72 drivers/mtd/mtd_blkdevs.o Due to lack of real hardware, tests have been performed on an emulated environment with mtdswap and mtdblock over nandsim devices. Some real testing should be done, before merging this patch. Signed-off-by:
Ezequiel Garcia <elezegarcia@gmail.com> Signed-off-by:
Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
-
Ezequiel Garcia authored
struct mtd_blktrans_ops is a type, and mtd_blktrans_ops is a variable. To improve code clarity it's better to not use the same names, so we just change the latter. Signed-off-by:
Ezequiel Garcia <elezegarcia@gmail.com> Signed-off-by:
Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
-
- 18 Nov, 2012 2 commits
-
-
Masanari Iida authored
Correct spelling typo in printk within drivers/mtd/tests. Signed-off-by:
Masanari Iida <standby24x7@gmail.com> Signed-off-by:
Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
-
Huang Shijie authored
When we scan several nand chips with nand_scan(), such as ....................... nand_scan(*, 2); ....................... In nand_scan_ident(), the maxchips will become 2, so the current code will select chip 1 to read the device ID. But the chip 0 is still selected in this case. To make the logic clear, we'd better de-select the chip when it is not used. This patch de-select the nand chip if it is not used any more. Signed-off-by:
Huang Shijie <b32955@freescale.com> Signed-off-by:
Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
-