summaryrefslogtreecommitdiffstats
path: root/drivers/mtd/nand
Commit message (Collapse)AuthorAgeFilesLines
* [PATCH] silence 'make xmldocs' warning by adding missing description of ↵Jesper Juhl2006-10-271-0/+1
| | | | | | | | | | | | 'raw' in nand_base.c:1485 Add description of 'raw' in comments for drivers/mtd/nand/nand_base.c::nand_write_page_syndrome() so 'make xmldocs' will not spew a warning at us. Signed-off-by: Jesper Juhl <jesper.juhl@gmail.com> Acked-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] mtd: remove several bogus casts to void * in iounmap() argumentAl Viro2006-10-101-1/+1
| | | | | Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* Fix several typos in drivers/Matt LaPlante2006-10-031-1/+1
| | | | Signed-off-by: Adrian Bunk <bunk@stusta.de>
* [MTD] Cleanup of 'ioremap balanced with iounmap for drivers/mtd subsystem'Amol Lad2006-10-021-1/+1
| | | | | | | | | | Updated version of patch, in response to comments from Francois Romieu <romieu@fr.zoreil.com> Remove gratuitous casts from iounmap and initialisation of variables. Signed-off-by: Amol Lad <amol@verismonetworks.com> Signed-off-by: David Woodhouse <dwmw2@infradead.org>
* [MTD NAND] Allow override of page read and write functions.David Woodhouse2006-09-251-23/+21
| | | | | | | | - allow high-level nand_write_page() function to be overridden - likewise low-level write_page_raw() and read_page_raw() functions - Clean up the abuse of chip->ecc.{write,read}_page() with MTD_OOB_RAW Signed-off-by: David Woodhouse <dwmw2@infradead.org>
* [MTD NAND] Allocate chip->buffers separately to allow it to be overriddenDavid Woodhouse2006-09-252-15/+22
| | | | | | In particular, the board driver might need it to be DMAable. Signed-off-by: David Woodhouse <dwmw2@infradead.org>
* [MTD NAND] Split nand_scan() into two parts; allow board driver to interveneDavid Woodhouse2006-09-251-25/+65
| | | | Signed-off-by: David Woodhouse <dwmw2@infradead.org>
* [MTD NAND] Export nand_wait_ready() for use by board driversDavid Woodhouse2006-09-251-1/+2
| | | | Signed-off-by: David Woodhouse <dwmw2@infradead.org>
* [MTD NAND] Fix in typo ndfc.c causing wrong ECC layoutFrank Haverkamp2006-09-221-1/+1
| | | | | | | Due to this typo, a wrong ECC layout table is chosen. Signed-off-by: Frank Haverkamp <haver@vnet.ibm.com> Signed-off-by: David Woodhouse <dwmw2@infradead.org>
* ioremap balanced with iounmap for drivers/mtd subsystemAmol Lad2006-09-222-0/+10
| | | | | | | | | | | | | ioremap must be balanced by an iounmap and failing to do so can result in a memory leak. Tested (compilation only) with: - allmodconfig - Modifying drivers/mtd/maps/Kconfig and drivers/mtd/nand/Kconfig to make sure that the changed file is compiling without warning Signed-off-by: Amol Lad <amol@verismonetworks.com> Signed-off-by: David Woodhouse <dwmw2@infradead.org>
* [MTD NAND] Remove old code in au1550nd.cMichal Piotrowski2006-09-221-11/+0
| | | | | | Signed-off-by: Michal Piotrowski <michal.k.k.piotrowski@gmail.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: David Woodhouse <dwmw2@infradead.org>
* Merge branch 'master' of ↵David Woodhouse2006-08-302-6/+10
|\ | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
| * [PATCH] MTD NAND: Fix ams-delta after core conversionJonathan McDowell2006-08-271-4/+6
| | | | | | | | | | | | | | | | | | | | | | The recent hwctrl core conversion for MTD NAND devices broke the Amstrad Delta driver. This fixes it up and uses the existing control line defines rather than unclear magic numbers. Signed-off-by: Jonathan McDowell <noodles@earth.li> Acked-by: David Woodhouse <dwmw2@infradead.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
| * [PATCH] mtd corruption fixRichard Purdie2006-08-271-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | Read the return value before we release the nand device otherwise the value can become corrupted by another user of chip->ops, ultimately resulting in filesystem corruption. Signed-off-by: Richard Purdie <rpurdie@rpsys.net> Cc: David Woodhouse <dwmw2@infradead.org> Acked-by: Josh Boyer <jwboyer@gmail.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* | [MTD NAND] Fix lookup error in nand_get_flash_type()David Woodhouse2006-07-151-1/+1
| | | | | | | | | | Spotted by liyu <liyu@ccoss.com.cn> Signed-off-by: David Woodhouse <dwmw2@infradead.org>
* | MTD: [NAND] Fix the sharpsl driver after breakage from a core conversionRichard Purdie2006-07-151-2/+5
| | | | | | | | | | | | | | | | The CNE bits are inverted on the device and writeb function is missing a NOT operation. Signed-off-by: Richard Purdie <rpurdie@rpsys.net> Signed-off-by: David Woodhouse <dwmw2@infradead.org>
* | [MTD] NAND: OOB buffer offset fixupsVitaly Wool2006-07-111-2/+2
| | | | | | | | | | | | | | | | | | | | | | In the case of data-pad-ecc-pad-data... layout the oob start position has to be sizeof(data) in nand_write_oob_syndrom(). In nand_fill_oob() we need to copy to buf + buffer offset instead of buf + write offset. From: Vitaly Wool <vwool@ru.mvista.com> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* | [PATCH] [MTD] NAND: fix dead URL in KconfigArtem B. Bityutskiy2006-07-051-1/+1
|/ | | | Signed-off-by: Artem B. Bityutskiy <dedekind@infradead.org>
* Merge git://git.infradead.org/mtd-2.6Linus Torvalds2006-07-033-17/+9
|\ | | | | | | | | | | | | | | | | | | | | * git://git.infradead.org/mtd-2.6: [JFFS2][XATTR] Fix memory leak in POSIX-ACL support fs/jffs2/: make 2 functions static [MTD] NAND: Fix broken sharpsl driver [JFFS2][XATTR] Fix xd->refcnt race condition MTD: kernel-doc fixes + additions MTD: fix all kernel-doc warnings [MTD] DOC: Fixup read functions and do a little cleanup
| * [MTD] NAND: Fix broken sharpsl driverThomas Gleixner2006-06-291-7/+0
| | | | | | | | | | | | | | Remove the not longer supported NO_VIRTBLOCKS flag and remove an unused variable while at it. Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
| * MTD: fix all kernel-doc warningsRandy Dunlap2006-06-292-10/+9
| | | | | | | | | | | | | | | | | | | | | | Fix all kernel-doc warnings in MTD headers and source files: - add some missing struct fields; - correct some function parameter names; - use kernel-doc format for function doc. headers; - nand_ecc.c contains only exported interfaces, no internal ones; Signed-off-by: Randy Dunlap <rdunlap@xenotime.net> Signed-off-by: David Woodhouse <dwmw2@infradead.org>
* | Remove obsolete #include <linux/config.h>Jörn Engel2006-06-301-1/+0
|/ | | | | Signed-off-by: Jörn Engel <joern@wohnheim.fh-wedel.de> Signed-off-by: Adrian Bunk <bunk@stusta.de>
* [MTD] NAND: Select chip before checking write protect statusThomas Gleixner2006-06-271-3/+3
| | | | | | | | The other way round works not really well with boards which have a static NAND chipselect. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: David Woodhouse <dwmw2@infradead.org>
* [MTD] NAND: Fix typo in mtd/nand/ts7250.cPetr Stetiar2006-06-271-1/+1
| | | | | | | | | | I was unable to compile ts7250.c after your refactor commit, it's a typo probably. -- ynezz From: Petr Stetiar <ynezz@true.cz> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* [MTD NAND] s3c2412 support in s3c2410.cBen Dooks2006-06-271-43/+111
| | | | | | | | | | Add support for both the S3C2412 and S3C2412 Samsung SoCs to the increasingly mis-named s3c2410.c driver. This currently only supports SLC ECCs, and a chip on nFCE0. Signed-off-by: Ben Dooks <ben-linux@fluff.org> Signed-off-by: David Woodhouse <dwmw2@infradead.org>
* [MTD] NAND: ndfc fix address offset thinkoThomas Gleixner2006-06-221-3/+3
| | | | | | | | The rework of the command handling in the nand driver led to wrong address setting in the command control function. Use the correct address again. Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* [MTD] NAND: S3C2410 convert prinks to dev_*()sBen Dooks2006-06-211-6/+4
| | | | | | | | | Convert the use of printk() to the correct dev_info/dev_err functions Signed-off-by: Ben Dooks <ben-linux@fluff.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* [MTD] NAND: Missing fixupsSavin Zlobec2006-06-211-5/+5
| | | | | | | | The oob fixups broke a return value and missed one patch from the Mailing List. Signed-off-by: Savin Zlobec <savin@epico.si> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* [MTD] NAND: Fix breakage all over the placeThomas Gleixner2006-06-202-83/+216
| | | | | | | | | | | | | | | | | | Following problems are addressed: - wrong status caused early break out of nand_wait() - removed the bogus status check in nand_wait() which is a relict of the abandoned support for interrupted erase. - status check moved to the correct place in read_oob - oob support for syndrom based ecc with strange layouts - use given offset in the AUTOOOB based oob operations Partially based on a patch from Vitaly Vool <vwool@ru.mvista.com> Thanks to Savin Zlobec <savin@epico.si> for tracking down the status problem. Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* [PATCH] NAND: fix remaining OOB length calculationVitaly Wool2006-06-201-2/+2
| | | | | | | | | In nand_read_page_syndrome/nand_write_page_syndrome the calculation of the remaining oob length which is not used by the prepad/ecc/postpad areas is wrong. Signed-off-by: Vitaly Wool <vwool@ru.mvista.com> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* [MTD] NAND Fixup NDFC merge brokenessThomas Gleixner2006-06-201-9/+4
| | | | | | Remove the remains of a broken merge. Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* [MTD NAND] S3C2410 driver cleanupBen Dooks2006-06-191-8/+3
| | | | | | | | Fix unused variables and commenting since tglx's new NAND updates Signed-off-by: Ben Dooks <ben-linux@fluff.org> Signed-off-by: David Woodhouse <dwmw2@infradead.org>
* [MTD NAND] s3c24x0 board: Fix clock handling, ensure proper initialisation.Ben Dooks2006-06-192-5/+81
| | | | | Signed-off-by: Ben Dooks <ben-linux@fluff.org> Signed-off-by: David Woodhouse <dwmw2@infradead.org>
* [MTD NAND] Fix s3c2410 NAND driver so it at least _looks_ like it compilesDavid Woodhouse2006-06-101-5/+5
| | | | | | | Fix the control bit handling so it even looks like it might work, too. Bad tglx. No biscuit. Signed-off-by: David Woodhouse <dwmw2@infradead.org>
* [MTD] Fix build warnings (and debug build error) in nand_base.cAndrew Morton2006-05-301-4/+4
| | | | | | | | | | | | | | | drivers/mtd/nand/nand_base.c: In function 'nand_transfer_oob': drivers/mtd/nand/nand_base.c:909: warning: comparison of distinct pointer types lacks a cast drivers/mtd/nand/nand_base.c: In function 'nand_do_read_oob': drivers/mtd/nand/nand_base.c:1097: error: 'len' undeclared (first use in this function) drivers/mtd/nand/nand_base.c:1097: error: (Each undeclared identifier is reported only once drivers/mtd/nand/nand_base.c:1097: error: for each function it appears in.) drivers/mtd/nand/nand_base.c: In function 'nand_fill_oob': drivers/mtd/nand/nand_base.c:1411: warning: comparison of distinct pointer types lacks a cast Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: David Woodhouse <dwmw2@infradead.org>
* [MTD] NAND Expose the new raw mode function and status info to userspaceThomas Gleixner2006-05-302-10/+19
| | | | | | | | | | | The raw read/write access to NAND (without ECC) has been changed in the NAND rework. Expose the new way - setting the file mode via ioctl - to userspace. Also allow to read out the ecc statistics information so userspace tools can see that bitflips happened and whether errors where correctable or not. Also expose the number of bad blocks for the partition, so nandwrite can check if the data fits into the parition before writing to it. Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* [MTD] NAND Signal that a bitflip was corrected by ECCThomas Gleixner2006-05-291-1/+4
| | | | | | | | Return -EUCLEAN on read when a bitflip was detected and corrected, so the clients can react and eventually copy the affected block to a spare one. Make all in kernel users aware of the change. Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* [MTD] Rework the out of band handling completelyThomas Gleixner2006-05-292-271/+459
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Hopefully the last iteration on this! The handling of out of band data on NAND was accompanied by tons of fruitless discussions and halfarsed patches to make it work for a particular problem. Sufficiently annoyed by I all those "I know it better" mails and the resonable amount of discarded "it solves my problem" patches, I finally decided to go for the big rework. After removing the _ecc variants of mtd read/write functions the solution to satisfy the various requirements was to refactor the read/write _oob functions in mtd. The major change is that read/write_oob now takes a pointer to an operation descriptor structure "struct mtd_oob_ops".instead of having a function with at least seven arguments. read/write_oob which should probably renamed to a more descriptive name, can do the following tasks: - read/write out of band data - read/write data content and out of band data - read/write raw data content and out of band data (ecc disabled) struct mtd_oob_ops has a mode field, which determines the oob handling mode. Aside of the MTD_OOB_RAW mode, which is intended to be especially for diagnostic purposes and some internal functions e.g. bad block table creation, the other two modes are for mtd clients: MTD_OOB_PLACE puts/gets the given oob data exactly to/from the place which is described by the ooboffs and ooblen fields of the mtd_oob_ops strcuture. It's up to the caller to make sure that the byte positions are not used by the ECC placement algorithms. MTD_OOB_AUTO puts/gets the given oob data automaticaly to/from the places in the out of band area which are described by the oobfree tuples in the ecclayout data structre which is associated to the devicee. The decision whether data plus oob or oob only handling is done depends on the setting of the datbuf member of the data structure. When datbuf == NULL then the internal read/write_oob functions are selected, otherwise the read/write data routines are invoked. Tested on a few platforms with all variants. Please be aware of possible regressions for your particular device / application scenario Disclaimer: Any whining will be ignored from those who just contributed "hot air blurb" and never sat down to tackle the underlying problem of the mess in the NAND driver grown over time and the big chunk of work to fix up the existing users. The problem was not the holiness of the existing MTD interfaces. The problems was the lack of time to go for the big overhaul. It's easy to add more mess to the existing one, but it takes alot of effort to go for a real solution. Improvements and bugfixes are welcome! Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* [MTD] NAND Replace oobinfo by ecclayoutThomas Gleixner2006-05-296-32/+42
| | | | | | | | | The nand_oobinfo structure is not fitting the newer error correction demands anymore. Replace it by struct nand_ecclayout and fixup the users all over the place. Keep the nand_oobinfo based ioctl for user space compability reasons. Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* [MTD] NAND Consolidate oobinfo handlingThomas Gleixner2006-05-291-9/+1
| | | | | | | | | The info structure for out of band data was copied into the mtd structure. Make it a pointer and remove the ability to set it from userspace. The position of ecc bytes is defined by the hardware and should not be changed by software. Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* [MTD] NAND Fix platform structure and NDFC driverThomas Gleixner2006-05-291-4/+2
| | | | | | | The platform structure was lacking an oobinfo field. The NDFC driver had some remains from another tree. Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* [MTD] AMD Geode NAND support can depend on X86_32; we won't see it on x86_64David Woodhouse2006-05-291-1/+1
| | | | Signed-off-by: David Woodhouse <dwmw2@infradead.org>
* [MTD] NAND Consolidate references and add back default name settingThomas Gleixner2006-05-271-7/+10
| | | | | | | | | | We have a type pointer. Make use of it instead of the error prone nand_ids[i] reference. The NAND driver used to set default name settings from the chip ID string for the device. The feature got lost during the rework. Add it back. Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* [MTD] NAND simplify nand_chip_selectThomas Gleixner2006-05-271-2/+0
| | | | | | | | nCE setting can be done when the first command is issued to the device. We keep the deselect functionality as it makes sense to deassert nCE when the device becomes idle. Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* [MTD] Fix thinko in nand_write_page_hwecc()David Woodhouse2006-05-261-1/+1
| | | | | Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: David Woodhouse <dwmw2@infradead.org>
* [MTD] NAND modularize write functionThomas Gleixner2006-05-266-522/+263
| | | | | | | | Modularize the write function and reorganaize the internal buffer management. Remove obsolete chip options and fixup all affected users. Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* [MTD] Remove PCI dependency for Geode CS553[56] NAND controller.David Woodhouse2006-05-262-4/+31
| | | | | | | PCI is faked on these devices by SMM traps. Don't depend on that -- check for the chipset directly instead. Signed-off-by: David Woodhouse <dwmw2@infradead.org>
* [MTD] Fix NAND_VERIFY_WRITE case to build with tglx's recent changesDavid Woodhouse2006-05-251-4/+4
| | | | | | Bad tglx. No biscuit. Signed-off-by: David Woodhouse <dwmw2@infradead.org>
* [MTD] NAND Modularize read functionThomas Gleixner2006-05-253-247/+267
| | | | | | | | Split the core of the read function out and implement seperate handling functions for software and hardware ECC. Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* [MTD] NAND Cleanup oob functionsThomas Gleixner2006-05-251-75/+81
| | | | | | | Cleanup the code in the oob related functions and make use of the new NO_READRDY flag. Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
OpenPOWER on IntegriCloud