summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* mtd: nand: make USB device id constantMárton Németh2010-02-251-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The id_table field of the struct usb_device_id is constant in <linux/usb.h> so it is worth to make alauda_table also constant. The semantic match that finds this kind of pattern is as follows: (http://coccinelle.lip6.fr/) // <smpl> @r@ disable decl_init,const_decl_init; identifier I1, I2, x; @@ struct I1 { ... const struct I2 *x; ... }; @s@ identifier r.I1, y; identifier r.x, E; @@ struct I1 y = { .x = E, }; @c@ identifier r.I2; identifier s.E; @@ const struct I2 E[] = ... ; @depends on !c@ identifier r.I2; identifier s.E; @@ + const struct I2 E[] = ...; // </smpl> Signed-off-by: Márton Németh <nm127@freemail.hu> Cc: Julia Lawall <julia@diku.dk> Cc: cocci@diku.dk Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com> Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
* mtd: nand: make PCI device id constantMárton Németh2010-02-251-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The id_table field of the struct pci_driver is constant in <linux/pci.h> so it is worth to make cafe_nand_tbl also constant. The semantic match that finds this kind of pattern is as follows: (http://coccinelle.lip6.fr/) // <smpl> @r@ disable decl_init,const_decl_init; identifier I1, I2, x; @@ struct I1 { ... const struct I2 *x; ... }; @s@ identifier r.I1, y; identifier r.x, E; @@ struct I1 y = { .x = E, }; @c@ identifier r.I2; identifier s.E; @@ const struct I2 E[] = ... ; @depends on !c@ identifier r.I2; identifier s.E; @@ + const struct I2 E[] = ...; // </smpl> Signed-off-by: Márton Németh <nm127@freemail.hu> Cc: Julia Lawall <julia@diku.dk> Cc: cocci@diku.dk Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com> Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
* mtd: nandsim: fix spellingAndrey Yurovsky2010-02-251-2/+2
| | | | | | | | s/nanodeconds/nanoseconds Signed-off-by: Andrey Yurovsky <yurovsky@gmail.com> Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com> Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
* mtd: orion_nand: Fix build failure caused by typoPeter Huewe2010-02-101-1/+1
| | | | | | | | | | | | | | | Commit e99030609e27abff7e1a868cb56384c678b09984 ("mtd: orion_nand.c: add error handling and use resource_size()") introduced a build error -- it assigns something to a undeclared variable 'err', whereas the rest of the code uses 'ret' for this task. This patch fixes this typo and thus removes the build failure. Signed-off-by: Peter Huewe <peterhuewe@gmx.de> Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com> Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Signed-off-by: David Woodhouse <David.Woodhouse@intel.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
* mtd: Remove now-defunct ts7250 nand driverH Hartley Sweeten2010-01-064-233/+0
| | | | | | | | | | The ts72xx platform has been updated to use the generic platform nand driver (plat_nand.c). This removes the now-defunct ts7250.c nand driver. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Cc: Matthieu Crapet <mcrapet@gmail.com> Cc: Jesse Off <joff@embeddedARM.com> Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
* mtd: Update ep93xx/ts72xx to use generic platform nand driverH Hartley Sweeten2010-01-061-57/+131
| | | | | | | | | | | | | | Update the ts72xx platform's nand driver support. This changes the ts72xx platform from using a custom nand driver (ts7250.c) to the generic platform nand driver (plat_nand.c). Tested on TS-7250 with 32MiB NAND. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Tested-by: Matthieu Crapet <mcrapet@gmail.com> Cc: Jesse Off <joff@embeddedARM.com> Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
* MTD DocBook: fix ioremap return typeH Hartley Sweeten2010-01-021-6/+6
| | | | | | | | | ioremap() returns a void __iomem * not an unsigned long. Update the Documentation file to reflect this. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com> Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
* mtd: physmap_of: Correct the size argument to kzallocJulia Lawall2010-01-021-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | mtd_list has type struct mtd_info **, not struct mtd_info *, so the elements of the array should have pointer type, not structure type. The semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // <smpl> @disable sizeof_type_expr@ type T; T **x; @@ x = <+...sizeof( - T + *x )...+> // </smpl> Signed-off-by: Julia Lawall <julia@diku.dk> Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
* mtd: nand: rename w90p910_nand.c to nuc900_nand.cDavid Woodhouse2010-01-013-74/+74
| | | | Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
* ARM: NUC900: rename mtd nand driver nameWan ZongShun2010-01-011-2/+2
| | | | | | | | Due to I have renamed the platform_device.name,so this patch changes this nand driver platform_driver name. Signed-off-by: Wan ZongShun <mcuos.com@gmail.com> Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
* mtd: drivers/mtd/nand/sh_flctl.c: use resource_size()H Hartley Sweeten2009-12-311-1/+1
| | | | | | | | Use resource_size(). Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Acked-by: Yoshihiro Shimoda <shimoda.yoshihiro@renesas.com> Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
* mtd: tmio_nand.c: use dev_get_platdata() and resource_size()H Hartley Sweeten2009-12-311-7/+7
| | | | | | | | | | Remove unnecessary casts and use dev_get_platdata() to retrieve the struct mfd_cell data from the platform. Use resource_size() for the ioremap()'s. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
* mtd: drivers/mtd/nand/s3c2410.c: use resource_size()H Hartley Sweeten2009-12-311-1/+1
| | | | | | | | Use resource_size(). Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Cc: Ben Dooks <ben-linux@fluff.org> Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
* mtd: orion_nand.c: add error handling and use resource_size()H Hartley Sweeten2009-12-311-2/+8
| | | | | | | | | Use platform_get_resource() to fetch the memory resource and add error handling for when it is missing. Use resource_size() for the ioremap(). Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
* mtd: nomadik_nand.c: use resource_size()H Hartley Sweeten2009-12-311-3/+3
| | | | | | | Use resource_size(). Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
* mtd: drivers/mtd/nand/gpio.c: use resource_size()H Hartley Sweeten2009-12-311-6/+6
| | | | | | | Use resource_size(). Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
* mtd: fls_upm.c: use resource_size()H Hartley Sweeten2009-12-311-1/+1
| | | | | | | Use resource_size(). Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
* mtd: fsl_elbc_nand.c: user resource_size()H Hartley Sweeten2009-12-311-1/+1
| | | | | | | Use resource_size(). Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
* mtd: davinci_nand.c: use resource_size()H Hartley Sweeten2009-12-311-2/+2
| | | | | | | The ioremap'ed sizes are off by 1; use resource_size() for correct value. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
* mtd: au1550nd.c: remove unnecessary castsH Hartley Sweeten2009-12-311-3/+3
| | | | | | | Remove unnecessary casts for p_nand, it is already a void __iomem *. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
* mtd: au1550nd.c: use kzalloc()H Hartley Sweeten2009-12-311-5/+1
| | | | | | | Use kzalloc() instead of kmalloc()/memset(). Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
* kmsg_dump: Dump on crash_kexec as wellKOSAKI Motohiro2009-12-315-2/+9
| | | | | | | | | | | | | | | | crash_kexec gets called before kmsg_dump(KMSG_DUMP_OOPS) if panic_on_oops is set, so the kernel log buffer is not stored for this case. This patch adds a KMSG_DUMP_KEXEC dump type which gets called when crash_kexec() is invoked. To avoid getting double dumps, the old KMSG_DUMP_PANIC is moved below crash_kexec(). The mtdoops driver is modified to handle KMSG_DUMP_KEXEC in the same way as a panic. Signed-off-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com> Acked-by: Simon Kagstrom <simon.kagstrom@netinsight.net> Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
* Merge git://git.infradead.org/mtd-2.6Linus Torvalds2009-12-1661-1736/+3606
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * git://git.infradead.org/mtd-2.6: (90 commits) jffs2: Fix long-standing bug with symlink garbage collection. mtd: OneNAND: Fix test of unsigned in onenand_otp_walk() mtd: cfi_cmdset_0002, fix lock imbalance Revert "mtd: move mxcnd_remove to .exit.text" mtd: m25p80: add support for Macronix MX25L4005A kmsg_dump: fix build for CONFIG_PRINTK=n mtd: nandsim: add support for 4KiB pages mtd: mtdoops: refactor as a kmsg_dumper mtd: mtdoops: make record size configurable mtd: mtdoops: limit the maximum mtd partition size mtd: mtdoops: keep track of used/unused pages in an array mtd: mtdoops: several minor cleanups core: Add kernel message dumper to call on oopses and panics mtd: add ARM pismo support mtd: pxa3xx_nand: Fix PIO data transfer mtd: nand: fix multi-chip suspend problem mtd: add support for switching old SST chips into QRY mode mtd: fix M29W800D dev_id and uaddr mtd: don't use PF_MEMALLOC mtd: Add bad block table overrides to Davinci NAND driver ... Fixed up conflicts (mostly trivial) in drivers/mtd/devices/m25p80.c drivers/mtd/maps/pcmciamtd.c drivers/mtd/nand/pxa3xx_nand.c kernel/printk.c
| * jffs2: Fix long-standing bug with symlink garbage collection.David Woodhouse2009-12-161-1/+2
| | | | | | | | | | | | | | | | | | | | Ever since jffs2_garbage_collect_metadata() was first half-written in February 2001, it's been broken on architectures where 'char' is signed. When garbage collecting a symlink with target length above 127, the payload length would end up negative, causing interesting and bad things to happen. Cc: stable@kernel.org Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
| * mtd: OneNAND: Fix test of unsigned in onenand_otp_walk()Roel Kluin2009-12-161-2/+2
| | | | | | | | | | | | | | mtd->writesize and len are unsigned so the test does not work. Signed-off-by: Roel Kluin <roel.kluin@gmail.com> Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
| * mtd: cfi_cmdset_0002, fix lock imbalanceJiri Slaby2009-12-101-1/+0
| | | | | | | | | | | | | | | | | | | | | | Stanse found a double unlock in get_chip. get_chip is called with chip->mutex held and caller is responsible for unlocking it too. Do not unlock the lock in get_chip on a fail path. This would mean a double unlock. Signed-off-by: Jiri Slaby <jslaby@suse.cz> Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
| * Revert "mtd: move mxcnd_remove to .exit.text"Uwe Kleine-König2009-12-071-1/+1
| | | | | | | | | | | | | | | | | | This reverts commit 82613b0da622efbd24cb7b23eb349966802310f1, because commit daa0f15 (mtd: don't use __exit_p to wrap mxcnd_remove) is a better solution. Not having a remove callback breaks rebinding because resources are not freed on remove. Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
| * mtd: m25p80: add support for Macronix MX25L4005ASimon Guinot2009-12-051-0/+1
| | | | | | | | | | Signed-off-by: Simon Guinot <sguinot@lacie.com> Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
| * kmsg_dump: fix build for CONFIG_PRINTK=nRandy Dunlap2009-12-022-1/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | kmsg_dump() fails to build when CONFIG_PRINTK=n; provide stubs for the kmsg_dump*() functions when CONFIG_PRINTK=n. kernel/printk.c: In function 'kmsg_dump': kernel/printk.c:1501: error: 'log_buf_len' undeclared (first use in this function) kernel/printk.c:1502: error: 'logged_chars' undeclared (first use in this function) kernel/printk.c:1506: error: 'log_buf' undeclared (first use in this function) Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com> Acked-by: Simon Kagstrom <simon.kagstrom@netinsight.net> Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
| * mtd: nandsim: add support for 4KiB pagesSebastian Andrzej Siewior2009-12-011-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | I was going to play with a faulty nand image from real flash and noticed that nandsim does not work with: first_id_byte=0xec second_id_byte=0xd5 third_id_byte=0x51 fourth_id_byte=0xa6 This patch seems to fix it. Signed-off-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc> Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com> Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
| * Merge branch 'mxc-nand' of git://git.pengutronix.de/git/imx/linux-2.6David Woodhouse2009-11-302-476/+300
| |\
| | * mxc_nand: use DRIVER_NAME where appropriateSascha Hauer2009-11-121-2/+2
| | | | | | | | | | | | Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| | * mxc_nand: remove TROP_US_DELAYSascha Hauer2009-11-121-10/+7
| | | | | | | | | | | | | | | | | | | | | wait_op_done is only called with the same timeout, so code the timeout into the function itself. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| | * mxc_nand: Allow flash based bbtSascha Hauer2009-11-122-1/+36
| | | | | | | | | | | | Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| | * mxc_nand: disable sp_en bit only onceSascha Hauer2009-11-121-12/+3
| | | | | | | | | | | | Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| | * mxc_nand: Add NFC V2 supportSascha Hauer2009-11-121-13/+68
| | | | | | | | | | | | | | | | | | The v2 version of this controller is used on i.MX35/25 SoCs. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| | * mxc_nand: Get rid of pagesize_2k flagSascha Hauer2009-11-121-15/+14
| | | | | | | | | | | | | | | | | | | | | Later versions of this controller also allow 4k pagesize, so use mtd->writesize instead of a flag. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| | * mxc_nand: Make main/spare areas runtime configurableSascha Hauer2009-11-121-22/+20
| | | | | | | | | | | | | | | | | | | | | The main/spare areas are on different addresses on later versions of the controller, so make them configurable. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| | * mxc_nand: remove unused definesSascha Hauer2009-11-121-7/+0
| | | | | | | | | | | | Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| | * mxc nand: modify send_page to send all pages, not only oneSascha Hauer2009-11-121-25/+20
| | | | | | | | | | | | Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| | * mxc nand: simplify command processingSascha Hauer2009-11-121-46/+35
| | | | | | | | | | | | | | | | | | | | | Instead of having two switch/case with other operations in between, use only one switch/case Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| | * mxc nand: use buffersSascha Hauer2009-11-121-233/+77
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The NAND controller has some limitations how to access the internal buffers. It only allows 32 bit accesses. The driver used to work around this by having special alignment aware copy routines. We now copy the whole page to a buffer in memory and let the access functions use this buffer. This simplifies the driver. A bonnie++ test showed that this has no negative performance impact on the driver. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| | * mxc nand: use resource_size()Sascha Hauer2009-11-121-1/+1
| | | | | | | | | | | | Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| | * mxc nand: remove dead codeSascha Hauer2009-11-121-17/+0
| | | | | | | | | | | | Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| | * mxc nand: remove debug paramSascha Hauer2009-11-121-8/+8
| | | | | | | | | | | | Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| | * mxc_nand: introduce mxc_do_addr_cycleSascha Hauer2009-11-121-40/+47
| | | | | | | | | | | | | | | | | | | | | | | | This factors the address cycle to a seperate function. This becomes useful in a later patch where we can simplify the command processing by making use of this function. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| | * mxc_nand: merge send_read_page and send_prog_pageSascha Hauer2009-11-121-41/+13
| | | | | | | | | | | | Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| | * mxc_nand: cleanup initializationSascha Hauer2009-11-121-50/+22
| | | | | | | | | | | | | | | | | | | | | | | | The oob layout was initialized several times. Instead, use a smallpage layout by default and switch to a largepage afterwards if necessary. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| | * mxc_nand: cleanup eccoob descriptionsSascha Hauer2009-11-121-15/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The original Freescale driver used to have eccoob descriptions like this: static struct nand_ecclayout nand_hw_eccoob_8 = { .eccbytes = 5, .eccpos = {6, 7, 8, 9, 10}, .oobfree = {{0, 5}, {11, 5}} }; static struct nand_ecclayout nand_hw_eccoob_16 = { .eccbytes = 5, .eccpos = {6, 7, 8, 9, 10}, .oobfree = {{0, 6}, {12, 4}} }; The former was used for 8bit flashes and the latter for 16bit flashes. They honored the fact that the bad block marker on 8bit flashes is on byte 5 while on 16bit flashes it is on byte 11. In the Kernel driver this was copied wrong and we ended up with two identical descriptions. Change it so that we have only one description which leaves byte 5 and byte 11 unspecified so that it won't be used by others. Also, rename the descriptions to nand_hw_eccoob_smallpage and nand_hw_eccoob_largepage so that it can't be confused with Nand chip bus widths (what actually happened in this driver) Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * | mtd: mtdoops: refactor as a kmsg_dumperSimon Kagstrom2009-11-301-133/+102
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The last messages which happens before a crash might contain interesting information about the crash. This patch reworks mtdoops using the kmsg_dumper support instead of a console, which simplifies the code and also includes the messages before the oops started. On oops callbacks, the MTD device write is scheduled in a work queue (to be able to use the regular mtd->write call), while panics call mtd->panic_write directly. Thus, if panic_on_oops is set, the oops will be written out during the panic. A parameter to specify which mtd device to use (number or name), as well as a flag, writable at runtime, to toggle wheter to dump oopses or only panics (since oopses can often be handled by regular syslog). The patch was massaged and amended by Artem. Signed-off-by: Simon Kagstrom <simon.kagstrom@netinsight.net> Reviewed-by: Anders Grafstrom <anders.grafstrom@netinsight.net> Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com> Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>