aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mtd/chips/cfi_cmdset_0001.c
Commit message (Collapse)AuthorAgeFilesLines
* [PATCH] Fix Intel/Sharp command set erase suspend bugJoakim Tjernlund2006-11-281-1/+1
| | | | | | | | | | When we sleep and wait for a suspended operation to be resumed, go back and check until it's ready -- don't just continue after the first time we're woken. This can cause file system corruption. Signed-off-by: Joakim Tjernlund <Joakim.Tjernlund@transmode.se> Signed-off-by: David Woodhouse <dwmw2@infradead.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [MTD] Fixes of performance and stability issues in CFI driver.Alexey Korolev2006-07-151-44/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix of performance and stability issues on Intel NOR chips. It fixes: 1. Very low write performance on Sibley (perf tests demonstrated write performance less than 100Kb/sec when it should be over 400Kb/sec). 2. Low erase performance. (perf tests on Sibleuy demonstrated erase performance 246Kb/sec when it should be over 300Kb/sec). 3. Error on JFFS2 tests with CPU loading application when MTD returns "block erase error: (status timeout)" To fix the issue it does the following: 1. Removes the timeout tuning from inval_cache_and_wait_for_operation. 2. Waiting conditions in inval_cache_and_wait_for_operation now is based on timer resolution If timeout is lower than timer resolution then we do in cycle "Checking the status" udelay(1); cond_resched(); If timeout is greater than timer resolution (probably erase operation) We do the following sleep for half of operation timeout and do in cycle the following "Checking the status" sleep for timer resolution Signed-off-by: Nicolas Pitre <nico@cam.org> Signed-off-by: Alexey Korolev <akorolev@infradead.org> Signed-off-by: David Woodhouse <dwmw2@infradead.org>
* [MTD] Initialize 'writesize'Artem B. Bityutskiy2006-06-221-0/+1
| | | | Signed-off-by: Artem B. Bityutskiy <dedekind@infradead.org>
* [MTD] Introduce MTD_BIT_WRITEABLEJoern Engel2006-05-221-1/+1
| | | | | | | | | | | | | 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] Introduce writesizeJoern Engel2006-05-221-2/+2
| | | | | | | | 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>
* cfi_cmdset_0001: factorize code to wait for flash statusNicolas Pitre2006-05-171-264/+157
| | | | | | | | | | | | | This allows for much better abstraction and separation of the XIP and non-XIP cases with their own specific implementations. This fixes the case where a timeout was tripped on in the XIP case by the code that was meant for the non-XIP case only. This also makes for a nice code reduction. Signed-off-by: Nicolas Pitre <nico@cam.org> CC: "Alexey, Korolev" <alexey.korolev@intel.com> Signed-off-by: David Woodhouse <dwmw2@infradead.org>
* cfi-cmdset-0001: always update the chip statusNicolas Pitre2006-05-171-1/+3
| | | | | | | ... otherwise xip_enable() won't do the right thing. Signed-off-by: Nicolas Pitre <nico@cam.org> Signed-off-by: David Woodhouse <dwmw2@infradead.org>
* CHIPS: Fix potential starvation in cfi_cmdset_0001Josh Boyer2006-05-171-0/+5
| | | | | | | | | | | The patch below fixes a potential starvation issue that can arise when there is contention on a chip during a period when a process is currently writing to it. The starvation is avoided by conditionally rescheduling when the chip is left in a state usable by other processes. Signed-off-by: Josh Boyer <jdub@us.ibm.com> Signed-off-by: Tom Gall <tom_gall@vnet.ibm.com> Signed-off-by: David Woodhouse <dwmw2@infradead.org>
* [MTD] Fix legacy character sets throughout drivers/mtd, include/linux/mtdDavid Woodhouse2006-05-141-1/+1
| | | | Signed-off-by: David Woodhouse <dwmw2@infradead.org>
* Remove use of inter_module_crap in NOR flash chip drivers.David Woodhouse2006-05-081-29/+7
| | | | Signed-off-by: David Woodhouse <dwmw2@infradead.org>
* [PATCH] cfi: init wait queue in chip structSimon Vogl2006-02-241-0/+1
| | | | | | | | | | | Fix a kernel oops for Intel P30 flashes, where the wait queue head was not initialized for the flchip struct, which in turn caused a crash at the first read operation. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Cc: <stable@kernel.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] cfi_cmdset_0001: fix range for cache invalidationAlexey Korolev2006-02-201-7/+7
| | | | | | | | | | | | | | | I found an issue in cfi_cmdset0001.c. It is related to cache region invalidation in the buffered write procedure. The code performs cache invalidation from "cmd_addr" to "cmd_adr + len" in do_write_buffer() while we modify region from "adr" to "adr+len". This issue affects writes + reads of data by small chunks. Signed-off-by: Nicolas Pitre <nico@cam.org> Acked-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [MTD] cfi_cmdset_0001: relax locking rules for multi hardware partition supportNicolas Pitre2005-11-291-6/+4
| | | | | Signed-off-by: Nicolas Pitre <nico@cam.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* Merge master.kernel.org:/pub/scm/linux/kernel/git/tglx/mtd-2.6Linus Torvalds2005-11-071-195/+289
|\ | | | | | | Some manual fixups for clashing kfree() cleanups etc.
| * [MTD] chips: Clean up trailing white spacesThomas Gleixner2005-11-071-75/+75
| | | | | | | | Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
| * [MTD] chips/cfi_cmdset_0001: fix for P30 cfi parsingNicolas Pitre2005-11-061-3/+6
| | | | | | | | | | | | | | | | | | | | Change to the extended cfi table parsing for Intel NOR flash that uses the info in the extended table to 'walk' the table rather than using hard coding for various primary extended query table version numbers. From: Jared Hulbert <jaredeh@gmail.com> Signed-off-by: Nicolas Pitre <nico@cam.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
| * [MTD] writev support for cfi-cmdset-0001Nicolas Pitre2005-11-061-50/+75
| | | | | | | | | | | | | | | | While this might be useful for all supported flash types, it is mandatory for proper JFFS2 support with Sibley flash. Signed-off-by: Nicolas Pitre <nico@cam.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
| * {MTD] add support for Intel's "Sibley" flashNicolas Pitre2005-11-061-23/+65
| | | | | | | | | | | | | | | | | | | | | | | | | | This updates the Primary Vendor-Specific Extended Query parsing to version 1.4 in order to get the information about the Configurable Programming Mode regions implemented in the Sibley flash, as well as selecting the appropriate write command code. This flash does not behave like traditional NOR flash when writing data. While mtdblock should just work, further changes are needed for JFFS2 use. Signed-off-by: Nicolas Pitre <nico@cam.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
| * [MTD] cleanups to cfi_cmdset_0001Nicolas Pitre2005-11-061-56/+71
| | | | | | | | | | | | | | | | This includes improved error handling/reporting plus some other message cleanups. Signed-off-by: Nicolas Pitre <nico@cam.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
| * [MTD] CHIPS: Recognize Spansion CFI 1.4 chipsTodd Poynor2005-08-041-1/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Modify Amd/Fujitsu CFI NOR flash primary vendor extension table revision check to recognize version 1.4. Verified the existing driver can handle version 1.4 chips without additional info from 1.4 extended table. Move the primary vendor extension table revision check from common file to the 3 CFI chip driver files, since the data structures and revisions handled by those data structures are specific to the chip driver. Modify the error message printed when the revision is unknown to be a KERN_ERR instead of WARNING since this will cause mtd to ignore the chip. Signed-off-by: Todd Poynor <tpoynor@mvista.com> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* | [PATCH] kfree cleanup: drivers/mtdJesper Juhl2005-11-071-2/+1
|/ | | | | | | | | | | | This is the drivers/mtd part of the big kfree cleanup patch. Remove pointless checks for NULL prior to calling kfree() in drivers/mtd/. Signed-off-by: Jesper Juhl <jesper.juhl@gmail.com> Cc: David Woodhouse <dwmw2@infradead.org> Acked-by: Joern Engel <joern@wohnheim.fh-wedel.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [MTD] XIP cleanupThomas Gleixner2005-07-071-1/+1
| | | | | | Move the architecture dependend code into include/asm/mtd-xip.h Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* [MTD] CFI flash locking reorg for XIPNicolas Pitre2005-05-231-50/+40
| | | | | | | | | | | This reworks the XIP locking to make sure no lock primitive is ever called from XIP disabled paths even if in theory they should not cause any reschedule. Relying on the current spinlock implementation is rather fragile and not especially clean from an abstraction pov. The recent RT work makes it even more obvious. Signed-off-by: Nicolas Pitre <nico@cam.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* [MTD] CFI DEBUG_LOCK_BITS fixes for Intel NOR flash:Todd Poynor2005-05-231-2/+3
| | | | | | | | adjust chip-relative offsets to block address, write to block address + 2 per recent datasheets. Signed-off-by: Todd Poynor <tpoynor@mvista.com> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* [MTD] Fix OTP for top-parameter devicesNicolas Pitre2005-05-231-2/+14
| | | | | Signed-off-by: Nicolas Pitre <nico@cam.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* [MTD] Add reboot notifier to Intel NOR flash driverNicolas Pitre2005-05-231-2/+43
| | | | | | | | | to make sure the flash is in array mode whenever we're about to reboot. This is especially useful to allow "soft" reboot to work which consists of branching back into the bootloader. Signed-off-by: Nicolas Pitre <nico@cam.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* [MTD] Avoid compile warnings for Intel CFI flash without OTP support.Todd Poynor2005-05-231-1/+3
| | | | | Signed-off-by: Todd Poynor <tpoynor@mvista.com> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* [MTD] cfi_cmdset_0001: Skip delay if Instant Block Locking is setTodd Poynor2005-05-231-4/+12
| | | | | | | | Skip jiffy delay after each block lock/unlock for Intel CFI flash with the "Instant Individual Block Locking" feature bit set. Signed-off-by: Todd Poynor <tpoynor@mvista.com> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* [MTD] cfi_cmdset_0001: Fix compiler warningsThomas Gleixner2005-05-231-5/+5
| | | | Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* [MTD] cfi_cmdset_0001: Fix state after syncNicolas Pitre2005-05-231-1/+2
| | | | | | | oldstate has to be reset to FL_READY after sync completion. Signed-off-by: Nicolas Pitre <nico@cam.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* [MTD] cfi_cmdset_0001: Fix the buggy status check. Thomas Gleixner2005-05-231-13/+3
| | | | | | | The change makes the code endianess aware and replaces the bogus nested loop to or the status flags together. Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* [MTD] Make OTP actually work.Nicolas Pitre2005-05-231-3/+5
| | | | | | | The OTP code is rather broken without this. Signed-off-by: Nicolas Pitre <nico@cam.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* [MTD] Support for protection register support on Intel FLASH chipsNicolas Pitre2005-05-231-115/+286
| | | | | | | | | | This enables support for reading, writing and locking so called "Protection Registers" present on some flash chips. A subset of them are pre-programmed at the factory with a unique set of values. The rest is user-programmable. Signed-off-by: Nicolas Pitre <nico@cam.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* [MTD] Add OTP basiscNicolas Pitre2005-05-231-3/+5
| | | | | | | add structure definition for OTP region info Signed-off-by: Nicolas Pitre <nico@cam.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* Linux-2.6.12-rc2Linus Torvalds2005-04-161-0/+2160
Initial git repository build. I'm not bothering with the full history, even though we have it. We can create a separate "historical" git archive of that later if we want to, and in the meantime it's about 3.2GB when imported into git - space that would just make the early git days unnecessarily complicated, when we don't have a lot of good infrastructure for it. Let it rip!