aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAge
* [MTD] Remove readv/readv_eccThomas Gleixner2006-05-23
| | | | | | | These functions were never implemented and added only bloat to partition and concat code. Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* [MTD] Remove nand writev supportThomas Gleixner2006-05-23
| | | | | | NAND writev(_ecc) support is not longer necessary. Remove it. Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* [MTD] ECC rework broke diskonchipThomas Gleixner2006-05-23
| | | | | | Fix the diskonchip ecc setup. Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* [MTD] NAND ECC hwctl function has no return valueThomas Gleixner2006-05-23
| | | | | | Fix the broken prototype Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* Merge branch 'master' of /home/tglx/work/kernel/git/mtd-2.6/Thomas Gleixner2006-05-23
|\ | | | | | | Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
| * [JFFS2] Remove flash offset argument from various functions.David Woodhouse2006-05-22
| | | | | | | | | | | | | | | | We don't need the upper layers to deal with the physical offset. It's _always_ c->nextblock->offset + c->sector_size - c->nextblock->free_size so we might as well just let the actual write functions deal with that. Signed-off-by: David Woodhouse <dwmw2@infradead.org>
| * [MTD] Introduce MTD_BIT_WRITEABLEJoern Engel2006-05-22
| | | | | | | | | | | | | | | | | | | | | | | | | | o Add a flag MTD_BIT_WRITEABLE for devices that allow single bits to be cleared. o Replace MTD_PROGRAM_REGIONS with a cleared MTD_BIT_WRITEABLE flag for STMicro and Intel Sibley flashes with internal ECC. Those flashes disallow clearing of single bits, unlike regular NOR flashes, so the new flag models their behaviour better. o Remove MTD_ECC. After the STMicro/Sibley merge, this flag is only set and never checked. Signed-off-by: Joern Engel <joern@wh.fh-wedel.de>
| * [MTD] Merge STMicro NOR_ECC code with Intel Sibley codeJoern Engel2006-05-22
| | | | | | | | | | | | | | | | | | In 2002, STMicro started producing NOR flashes with internal ECC protection for small blocks (8 or 16 bytes). Support for those flashes was added by me. In 2005, Intel Sibley flashes copied this strategy and Nico added support for those. Merge the code for both. Signed-off-by: Joern Engel <joern@wh.fh-wedel.de>
| * [MTD] Introduce writesizeJoern Engel2006-05-22
| | | | | | | | | | | | | | | | At least two flashes exists that have the concept of a minimum write unit, similar to NAND pages, but no other NAND characteristics. Therefore, rename the minimum write unit to "writesize" for all flashes, including NAND. Signed-off-by: Joern Engel <joern@wh.fh-wedel.de>
| * [MTD] Use single flag to mark writeable devices.Joern Engel2006-05-22
| | | | | | | | | | | | | | | | | | Two flags exist to decide whether a device is writeable or not. None of those two flags is checked for independently, so they are clearly redundant, if not an invitation to bugs. This patch removed both of them, replacing them with a single new flag. Signed-off-by: Joern Engel <joern@wh.fh-wedel.de>
| * [JFFS2] Put list of nodes in common part of ic/x_ref/x_datum structureDavid Woodhouse2006-05-22
| | | | | | | | | | | | | | | | | | | | We'll be using a proper list of nodes in the jffs2_xattr_datum and jffs2_xattr_ref structures, because the existing code to overwrite them is just broken. Put it in the common part at the front of the structure which is shared with the jffs2_inode_cache, so that the jffs2_link_node_ref() function can do the right thing. Signed-off-by: David Woodhouse <dwmw2@infradead.org>
| * [JFFS2] Add some preemptive BUG checks for XATTR codeDavid Woodhouse2006-05-22
| | | | | | | | | | | | | | | | In a couple of places, we assume that what's at the end of the ->next_in_ino list is a struct jffs2_inode_cache. Let's check for that, since we expect it to change soon. Signed-off-by: David Woodhouse <dwmw2@infradead.org>
| * [JFFS2] Extend jffs2_link_node_ref() to link into per-inode list too.David Woodhouse2006-05-22
| | | | | | | | | | | | | | | | | | | | | | Let's avoid the potential for forgetting to set ref->next_in_ino, by doing it within jffs2_link_node_ref() instead. This highlights the ugliness of what we're currently doing with xattr_datum and xattr_ref structures -- we should find a nicer way of dealing with that. Signed-off-by: David Woodhouse <dwmw2@infradead.org>
* | [MTD] NAND modularize ECCThomas Gleixner2006-05-23
| | | | | | | | | | | | | | | | First step of modularizing ECC support. - Move ECC related functionality into a seperate embedded data structure - Get rid of the hardware dependend constants to simplify new ECC models Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* | [MTD] NAND cleanup nand_scanThomas Gleixner2006-05-23
| | | | | | | | | | | | | | | | Seperate functionality out of nand_scan so the code is more readable. No functional change. First step of simplifying the nand driver. Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* | [MTD] NAND consolidate data typesThomas Gleixner2006-05-23
| | | | | | | | | | | | | | The NAND driver used a mix of unsigned char, u_char amd uint8_t data types. Consolidate to uint8_t usage Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* | [MTD] NAND whitespace and formatting cleanupThomas Gleixner2006-05-23
| | | | | | | | Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* | [JFFS2] Simplify writebuffer handlingThomas Gleixner2006-05-23
| | | | | | | | | | | | | | | | | | | | The writev based write buffer implementation was far to complex as in most use cases the write buffer had to be handled anyway. Simplify the write buffer handling and use mtd->write instead. From extensive testing no performance impact has been noted. Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* | [MTD] Add support for NDFC NAND controllerThomas Gleixner2006-05-23
| | | | | | | | | | | | | | NDFC NAND Flash controller is embedded in PPC EP44x SoCs. Add platform driver based support. Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* | [MTD] Add platform support for NANDThomas Gleixner2006-05-23
| | | | | | | | | | | | | | Add the data structures necessary to provide platform device support for NAND Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* | [MTD] Simplify NAND lockingThomas Gleixner2006-05-23
| | | | | | | | | | | | | | | | Replace the chip lock by a the controller lock. For simple drivers a dummy controller structure is created by the scan code. This simplifies the locking algorithm in nand_get/release_chip(). Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* | [MTD] Improve software ECC calculationThomas Gleixner2006-05-23
|/ | | | | | | | | Unrolling the loops produces denser and much faster code. Add a config switch which allows to select the byte order of the resulting ecc code. The current Linux implementation has a byte swap versus the SmartMedia specification Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* [JFFS2] Initialise ref->next_in_ino when marking dirty space in wbuf flushDavid Woodhouse2006-05-22
| | | | Signed-off-by: David Woodhouse <dwmw2@infradead.org>
* [JFFS2] Fix accounting error in jffs2_link_node_ref()David Woodhouse2006-05-22
| | | | | | | | When filing REF_OBSOLETE nodes, we'd add their size to the global 'dirty_size' count, but then to the eraseblock's 'used_size' count. That's not clever. Signed-off-by: David Woodhouse <dwmw2@infradead.org>
* [JFFS2] Fix dummy jffs2_sum_scan_sumnode() macro for !SUMMARY case.David Woodhouse2006-05-22
| | | | | | I added an argument to the real function... Signed-off-by: David Woodhouse <dwmw2@infradead.org>
* Merge git://git.infradead.org/jffs2-devel-2.6David Woodhouse2006-05-21
|\
| * [JFFS2] Finally eliminate __totlen field from struct jffs2_raw_node_refDavid Woodhouse2006-05-21
| | | | | | | | | | | | | | | | | | | | | | Well, almost. We'll actually keep a 'TEST_TOTLEN' macro set for now, and keep doing some paranoia checks to make sure it's all working correctly. But if TEST_TOTLEN is unset, the size of struct jffs2_raw_node_ref drops from 16 bytes to 12 on 32-bit machines. That's a saving of about half a megabyte of memory on the OLPC prototype board, with 125K or so nodes in its 512MiB of flash. Signed-off-by: David Woodhouse <dwmw2@infradead.org>
| * [JFFS2] Locking issues in summary write code.David Woodhouse2006-05-21
| | | | | | | | | | | | | | | | | | We can't use jffs2_scan_dirty_space() because it doesn't do any locking; it's only for use at scan time -- hence the 'scan' in the name. Also, don't allocate refs while we have c->erase_completion_lock held. Signed-off-by: David Woodhouse <dwmw2@infradead.org>
| * [JFFS2] Remove stray kfree of summary info in XATTR code.David Woodhouse2006-05-21
| | | | | | | | | | | | | | We don't allocate this locally any more -- it's given to us and owner by our caller. Also improve the debug messages a little. Signed-off-by: David Woodhouse <dwmw2@infradead.org>
| * [JFFS2] File node reference for wasted space when flushing wbufDavid Woodhouse2006-05-21
| | | | | | | | | | | | | | Next step in ongoing campaign to file a struct jffs2_raw_node_ref for every piece of dirty space in the system, so that __totlen can be killed off.... Signed-off-by: David Woodhouse <dwmw2@infradead.org>
| * [JFFS2] Add length argument to jffs2_add_physical_node_ref()David Woodhouse2006-05-20
| | | | | | | | | | | | | | | | If __totlen is going away, we need to pass the length in separately. Also stop callers from needlessly setting ref->next_phys to NULL, since that's done for them... and since that'll also be going away soon. Signed-off-by: David Woodhouse <dwmw2@infradead.org>
| * [JFFS2] Mark gaps in summary list as dirty spaceDavid Woodhouse2006-05-20
| | | | | | | | | | | | | | Make sure we allocate a ref for any dirty space which exists between nodes which we find in an eraseblock summary. Signed-off-by: David Woodhouse <dwmw2@infradead.org>
| * [JFFS2] Discard remaining free space when filing a dirty block in scan.David Woodhouse2006-05-20
| | | | | | | | | | | | | | | | The incoming ref_totlen() calculation is going to rely on the existence of nodes which cover all dirty space. We can't just tweak the accounting data any more; we have to call jffs2_scan_dirty_space() to do it. Signed-off-by: David Woodhouse <dwmw2@infradead.org>
| * [JFFS2] Introduce jffs2_scan_dirty_space() function.David Woodhouse2006-05-20
| | | | | | | | | | | | | | | | To eliminate the __totlen field from struct jffs2_raw_node_ref, we need to allocate nodes for dirty space instead of just tweaking the accounting data. Introduce jffs2_scan_dirty_space() in preparation for that. Signed-off-by: David Woodhouse <dwmw2@infradead.org>
| * [JFFS2] Fix summary handling of unknown but compatible nodes.David Woodhouse2006-05-20
| | | | | | | | | | | | | | For RWCOMPAT and ROCOMPAT nodes, we should still allow the mount to succeed. Just abandon the summary and fall through to the full scan. Signed-off-by: David Woodhouse <dwmw2@infradead.org>
| * [JFFS2] Fix memory leak in scan code; improve comments.David Woodhouse2006-05-20
| | | | | | | | | | | | | | | | | | | | | | | | If we had to allocate extra space for the summary node, we weren't correctly freeing it when jffs2_sum_scan_sumnode() returned nonzero -- which is both the success and the failure case. Only when it returned zero, which means fall through to the full scan, were we correctly freeing the buffer. Document the meaning of those return codes while we're at it. Signed-off-by: David Woodhouse <dwmw2@infradead.org>
| * [JFFS2] Correct handling of JFFS2_FEATURE_RWCOMPAT_COPY nodes.David Woodhouse2006-05-20
| | | | | | | | | | | | | | | | | | We should preserve these when we come to garbage collect them, not let them get erased. Use jffs2_garbage_collect_pristine() for this, and make sure the summary code copes -- just refrain from writing a summary for any block which contains a node we don't understand. Signed-off-by: David Woodhouse <dwmw2@infradead.org>
| * [JFFS2] Correct accounting of erroneous cleanmarkers and failed summaries.David Woodhouse2006-05-20
| | | | | | | | | | | | | | It should all be counted as dirty space, not wasted and _definitely_ not unchecked. Signed-off-by: David Woodhouse <dwmw2@infradead.org>
| * [JFFS2] Introduce jffs2_link_node_ref() function to reduce code duplicationDavid Woodhouse2006-05-20
| | | | | | | | | | | | | | | | The same sequence of code was repeated in many places, to add a new struct jffs2_raw_node_ref to an eraseblock and adjust the space accounting accordingly. Move it out-of-line. Signed-off-by: David Woodhouse <dwmw2@infradead.org>
| * Merge git://git.infradead.org/jffs2-xattr-2.6David Woodhouse2006-05-20
| |\ | | | | | | | | | Signed-off-by: David Woodhouse <dwmw2@infradead.org>
| | * Merge git://git.infradead.org/mtd-2.6KaiGai Kohei2006-05-18
| | |\
| | * | [JFFS2][XATTR] Fix obvious typoKaiGai Kohei2006-05-13
| | | | | | | | | | | | | | | | | | | | | | | | [2/2] jffs2-xattr-v5.2-02-fix_obvious_typo.patch Signed-off-by: KaiGai Kohei <kaigai@ak.jp.nec.com>
| | * | [JFFS2][XATTR] Handling the duplicate JFFS2_NODETYPE_XATTR node cases.KaiGai Kohei2006-05-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When jffs2_sum_process_sum_data() found a JFFS2_NODETYPE_XATTR which has duplicate xid and older version, an error was returned without appropriate process. In the result, mounting filesystem is failed. This patch fix this problem. If jffs2_setup_xattr_datum() returned -EEXIST, the caller marks this node as DIRTY_SPACE(). [1/2] jffs2-xattr-v5.2-01-fix-duplicate-xdatum.patch Signed-off-by: KaiGai Kohei <kaigai@ak.jp.nec.com>
| | * | [JFFS2][XATTR] remove redundant pointer cast in acl.cKaiGai Kohei2006-05-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | remove redundant pointer cast in acl.c. [10/10] jffs2-xattr-v5.1-10-remove_pointer_cast.patch Signed-off-by: KaiGai Kohei <kaigai@ak.jp.nec.com>
| | * | [JFFS2][XATTR] remove '__KERNEL__' from acl.hKaiGai Kohei2006-05-13
| | | | | | | | | | | | | | | | | | | | | | | | [9/10] jffs2-xattr-v5.1-09-remove__KERNEL__.patch Signed-off-by: KaiGai Kohei <kaigai@ak.jp.nec.com>
| | * | [JFFS2][XATTR] remove senseless commentKaiGai Kohei2006-05-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | remove senseless comment. [8/10] jffs2-xattr-v5.1-08-remove_senseless_comment.patch Signed-off-by: KaiGai Kohei <kaigai@ak.jp.nec.com>
| | * | [JFFS2][XATTR] Unify each file header part with any jffs2 file.KaiGai Kohei2006-05-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Unify each file header part with any jffs2 file. [7/10] jffs2-xattr-v5.1-07-unify_file_header.patch Signed-off-by: KaiGai Kohei <kaigai@ak.jp.nec.com>
| | * | [JFFS2][XATTR] '#include <linux/list.h>' was added into xattr.h.KaiGai Kohei2006-05-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | '#include <linux/list.h>' was added into xattr.h. because 'struct list_head' is used in this header file. [6/10] jffs2-xattr-v5.1-06-add_list.h.patch Signed-off-by: KaiGai Kohei <kaigai@ak.jp.nec.com>
| | * | [JFFS2][XATTR] Remove jffs2_garbage_collect_xattr(c, ic)KaiGai Kohei2006-05-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove jffs2_garbage_collect_xattr(c, ic). jffs2_garbage_collect_xattr_datum/ref() are called from gc.c directly. In original implementation, jffs2_garbage_collect_xattr(c, ic) returns with holding a spinlock if 'ic' is inode_cache. But it returns after releasing a spinlock if 'ic' is xattr_datum/ref. It looks so confusable behavior. Thus, this patch makes caller manage locking/unlocking. [5/10] jffs2-xattr-v5.1-05-update_xattr_gc.patch Signed-off-by: KaiGai Kohei <kaigai@ak.jp.nec.com>
| | * | [JFFS2][XATTR] Remove 'struct list_head ilist' from jffs2_inode_cache.KaiGai Kohei2006-05-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch can reduce 4-byte of memory usage per inode_cache. [4/10] jffs2-xattr-v5.1-04-remove_ilist_from_ic.patch Signed-off-by: KaiGai Kohei <kaigai@ak.jp.nec.com>