]> git.karo-electronics.de Git - karo-tx-linux.git/log
karo-tx-linux.git
12 years agoMerge remote-tracking branch 'slab/for-next'
Stephen Rothwell [Fri, 9 Dec 2011 02:40:15 +0000 (13:40 +1100)]
Merge remote-tracking branch 'slab/for-next'

12 years agoMerge remote-tracking branch 'kgdb/kgdb-next'
Stephen Rothwell [Fri, 9 Dec 2011 02:40:05 +0000 (13:40 +1100)]
Merge remote-tracking branch 'kgdb/kgdb-next'

12 years agoMerge remote-tracking branch 'mmc/mmc-next'
Stephen Rothwell [Fri, 9 Dec 2011 02:38:39 +0000 (13:38 +1100)]
Merge remote-tracking branch 'mmc/mmc-next'

12 years agoMerge remote-tracking branch 'battery/master'
Stephen Rothwell [Fri, 9 Dec 2011 02:37:06 +0000 (13:37 +1100)]
Merge remote-tracking branch 'battery/master'

12 years agoMerge remote-tracking branch 'block/for-next'
Stephen Rothwell [Fri, 9 Dec 2011 02:34:36 +0000 (13:34 +1100)]
Merge remote-tracking branch 'block/for-next'

12 years agoMerge remote-tracking branch 'input/next'
Stephen Rothwell [Fri, 9 Dec 2011 02:33:00 +0000 (13:33 +1100)]
Merge remote-tracking branch 'input/next'

Conflicts:
drivers/input/keyboard/samsung-keypad.c

12 years agoMerge branch 'quilt/rr'
Stephen Rothwell [Fri, 9 Dec 2011 02:31:32 +0000 (13:31 +1100)]
Merge branch 'quilt/rr'

12 years agoMerge remote-tracking branch 'cpufreq/next'
Stephen Rothwell [Fri, 9 Dec 2011 02:30:07 +0000 (13:30 +1100)]
Merge remote-tracking branch 'cpufreq/next'

12 years agoMerge remote-tracking branch 'sound-asoc/for-next'
Stephen Rothwell [Fri, 9 Dec 2011 02:28:40 +0000 (13:28 +1100)]
Merge remote-tracking branch 'sound-asoc/for-next'

12 years agoMerge remote-tracking branch 'sound/for-next'
Stephen Rothwell [Fri, 9 Dec 2011 02:26:58 +0000 (13:26 +1100)]
Merge remote-tracking branch 'sound/for-next'

Conflicts:
arch/arm/mach-s3c64xx/mach-crag6410.c

12 years agoMerge remote-tracking branch 'crypto/master'
Stephen Rothwell [Fri, 9 Dec 2011 02:25:26 +0000 (13:25 +1100)]
Merge remote-tracking branch 'crypto/master'

12 years agoMerge remote-tracking branch 'l2-mtd/master'
Stephen Rothwell [Fri, 9 Dec 2011 02:23:58 +0000 (13:23 +1100)]
Merge remote-tracking branch 'l2-mtd/master'

Conflicts:
drivers/mtd/bcm63xxpart.c

12 years agoMerge remote-tracking branch 'mtd/master'
Stephen Rothwell [Fri, 9 Dec 2011 02:22:32 +0000 (13:22 +1100)]
Merge remote-tracking branch 'mtd/master'

12 years agoMerge remote-tracking branch 'wireless-next/master'
Stephen Rothwell [Fri, 9 Dec 2011 02:20:45 +0000 (13:20 +1100)]
Merge remote-tracking branch 'wireless-next/master'

12 years agoMerge remote-tracking branch 'net-next/master'
Stephen Rothwell [Fri, 9 Dec 2011 02:14:42 +0000 (13:14 +1100)]
Merge remote-tracking branch 'net-next/master'

Conflicts:
drivers/net/ethernet/freescale/fsl_pq_mdio.c

12 years agoMerge remote-tracking branch 'slave-dma/next'
Stephen Rothwell [Fri, 9 Dec 2011 02:11:02 +0000 (13:11 +1100)]
Merge remote-tracking branch 'slave-dma/next'

Conflicts:
drivers/dma/pl330.c

12 years agoMerge remote-tracking branch 'target-merge/for-next-merge'
Stephen Rothwell [Fri, 9 Dec 2011 02:09:29 +0000 (13:09 +1100)]
Merge remote-tracking branch 'target-merge/for-next-merge'

12 years agoMerge remote-tracking branch 'dlm/next'
Stephen Rothwell [Fri, 9 Dec 2011 02:07:55 +0000 (13:07 +1100)]
Merge remote-tracking branch 'dlm/next'

12 years agoMerge remote-tracking branch 'ubi/linux-next'
Stephen Rothwell [Fri, 9 Dec 2011 02:06:30 +0000 (13:06 +1100)]
Merge remote-tracking branch 'ubi/linux-next'

12 years agoMerge remote-tracking branch 'libata/NEXT'
Stephen Rothwell [Fri, 9 Dec 2011 02:04:28 +0000 (13:04 +1100)]
Merge remote-tracking branch 'libata/NEXT'

12 years agoMerge remote-tracking branch 'kconfig/for-next'
Stephen Rothwell [Fri, 9 Dec 2011 02:04:23 +0000 (13:04 +1100)]
Merge remote-tracking branch 'kconfig/for-next'

12 years agoMerge remote-tracking branch 'kbuild/for-next'
Stephen Rothwell [Fri, 9 Dec 2011 02:02:53 +0000 (13:02 +1100)]
Merge remote-tracking branch 'kbuild/for-next'

12 years agoMerge remote-tracking branch 'v4l-dvb/master'
Stephen Rothwell [Fri, 9 Dec 2011 01:59:29 +0000 (12:59 +1100)]
Merge remote-tracking branch 'v4l-dvb/master'

Conflicts:
drivers/staging/media/as102/as102_drv.h

12 years agoMerge remote-tracking branch 'hwmon-staging/hwmon-next'
Stephen Rothwell [Fri, 9 Dec 2011 01:58:05 +0000 (12:58 +1100)]
Merge remote-tracking branch 'hwmon-staging/hwmon-next'

12 years agoMerge branch 'quilt/jdelvare-hwmon'
Stephen Rothwell [Fri, 9 Dec 2011 01:56:41 +0000 (12:56 +1100)]
Merge branch 'quilt/jdelvare-hwmon'

12 years agoMerge remote-tracking branch 'bjdooks-i2c/next-i2c'
Stephen Rothwell [Fri, 9 Dec 2011 01:55:18 +0000 (12:55 +1100)]
Merge remote-tracking branch 'bjdooks-i2c/next-i2c'

Conflicts:
drivers/i2c/busses/i2c-designware-platdrv.c

12 years agoMerge branch 'quilt/i2c'
Stephen Rothwell [Fri, 9 Dec 2011 01:53:48 +0000 (12:53 +1100)]
Merge branch 'quilt/i2c'

12 years agoMerge remote-tracking branch 'hid/for-next'
Stephen Rothwell [Fri, 9 Dec 2011 01:52:20 +0000 (12:52 +1100)]
Merge remote-tracking branch 'hid/for-next'

12 years agoMerge remote-tracking branch 'pci/linux-next'
Stephen Rothwell [Fri, 9 Dec 2011 01:46:19 +0000 (12:46 +1100)]
Merge remote-tracking branch 'pci/linux-next'

12 years agoMerge remote-tracking branch 'ubifs/linux-next'
Stephen Rothwell [Fri, 9 Dec 2011 01:44:51 +0000 (12:44 +1100)]
Merge remote-tracking branch 'ubifs/linux-next'

12 years agoMerge remote-tracking branch 'nfsd/nfsd-next'
Stephen Rothwell [Fri, 9 Dec 2011 01:43:21 +0000 (12:43 +1100)]
Merge remote-tracking branch 'nfsd/nfsd-next'

12 years agoMerge remote-tracking branch 'nfs/linux-next'
Stephen Rothwell [Fri, 9 Dec 2011 01:41:58 +0000 (12:41 +1100)]
Merge remote-tracking branch 'nfs/linux-next'

12 years agoMerge remote-tracking branch 'logfs/master'
Stephen Rothwell [Fri, 9 Dec 2011 01:40:35 +0000 (12:40 +1100)]
Merge remote-tracking branch 'logfs/master'

Conflicts:
fs/logfs/file.c

12 years agoMerge remote-tracking branch 'gfs2/master'
Stephen Rothwell [Fri, 9 Dec 2011 01:38:58 +0000 (12:38 +1100)]
Merge remote-tracking branch 'gfs2/master'

12 years agoMerge remote-tracking branch 'fuse/for-next'
Stephen Rothwell [Fri, 9 Dec 2011 01:37:32 +0000 (12:37 +1100)]
Merge remote-tracking branch 'fuse/for-next'

12 years agoMerge remote-tracking branch 'ecryptfs/next'
Stephen Rothwell [Fri, 9 Dec 2011 01:37:28 +0000 (12:37 +1100)]
Merge remote-tracking branch 'ecryptfs/next'

12 years agoMerge remote-tracking branch 'cifs/master'
Stephen Rothwell [Fri, 9 Dec 2011 01:36:06 +0000 (12:36 +1100)]
Merge remote-tracking branch 'cifs/master'

12 years agoMerge remote-tracking branch 'xtensa/master'
Stephen Rothwell [Fri, 9 Dec 2011 01:34:37 +0000 (12:34 +1100)]
Merge remote-tracking branch 'xtensa/master'

12 years agoMerge remote-tracking branch 'tile/master'
Stephen Rothwell [Fri, 9 Dec 2011 01:29:06 +0000 (12:29 +1100)]
Merge remote-tracking branch 'tile/master'

12 years agoMerge remote-tracking branch 's390/features'
Stephen Rothwell [Fri, 9 Dec 2011 01:27:41 +0000 (12:27 +1100)]
Merge remote-tracking branch 's390/features'

12 years agoMerge remote-tracking branch '52xx-and-virtex/powerpc/next'
Stephen Rothwell [Fri, 9 Dec 2011 01:27:24 +0000 (12:27 +1100)]
Merge remote-tracking branch '52xx-and-virtex/powerpc/next'

12 years agoMerge remote-tracking branch '4xx/next'
Stephen Rothwell [Fri, 9 Dec 2011 01:26:03 +0000 (12:26 +1100)]
Merge remote-tracking branch '4xx/next'

Conflicts:
arch/powerpc/platforms/40x/ppc40x_simple.c

12 years agoMerge remote-tracking branch 'powerpc/next'
Stephen Rothwell [Fri, 9 Dec 2011 01:04:38 +0000 (12:04 +1100)]
Merge remote-tracking branch 'powerpc/next'

12 years agoMerge remote-tracking branch 'parisc/for-next'
Stephen Rothwell [Fri, 9 Dec 2011 01:03:13 +0000 (12:03 +1100)]
Merge remote-tracking branch 'parisc/for-next'

12 years agoMerge remote-tracking branch 'mips/mips-for-linux-next'
Stephen Rothwell [Fri, 9 Dec 2011 01:01:23 +0000 (12:01 +1100)]
Merge remote-tracking branch 'mips/mips-for-linux-next'

Conflicts:
arch/mips/kernel/perf_event_mipsxx.c

12 years agoMerge remote-tracking branch 'm68knommu/for-next'
Stephen Rothwell [Fri, 9 Dec 2011 00:59:59 +0000 (11:59 +1100)]
Merge remote-tracking branch 'm68knommu/for-next'

Conflicts:
arch/m68k/Kconfig.debug

12 years agoMerge remote-tracking branch 'm68k/for-next'
Stephen Rothwell [Fri, 9 Dec 2011 00:58:35 +0000 (11:58 +1100)]
Merge remote-tracking branch 'm68k/for-next'

12 years agoMerge remote-tracking branch 'ia64/next'
Stephen Rothwell [Fri, 9 Dec 2011 00:57:11 +0000 (11:57 +1100)]
Merge remote-tracking branch 'ia64/next'

12 years agoMerge branch 'quilt/hexagon'
Stephen Rothwell [Fri, 9 Dec 2011 00:55:48 +0000 (11:55 +1100)]
Merge branch 'quilt/hexagon'

12 years agoMerge remote-tracking branch 'cris/for-next'
Stephen Rothwell [Fri, 9 Dec 2011 00:54:10 +0000 (11:54 +1100)]
Merge remote-tracking branch 'cris/for-next'

12 years agoMerge remote-tracking branch 'c6x/for-linux-next'
Stephen Rothwell [Fri, 9 Dec 2011 00:48:49 +0000 (11:48 +1100)]
Merge remote-tracking branch 'c6x/for-linux-next'

12 years agoMerge remote-tracking branch 'tegra/for-next'
Stephen Rothwell [Fri, 9 Dec 2011 00:47:30 +0000 (11:47 +1100)]
Merge remote-tracking branch 'tegra/for-next'

Conflicts:
arch/arm/mach-tegra/board-dt.c
arch/arm/mach-tegra/include/mach/entry-macro.S

12 years agoMerge remote-tracking branch 's5p/for-next'
Stephen Rothwell [Fri, 9 Dec 2011 00:03:26 +0000 (11:03 +1100)]
Merge remote-tracking branch 's5p/for-next'

Conflicts:
arch/arm/mach-exynos/cpu.c
arch/arm/mach-exynos/include/mach/entry-macro.S
arch/arm/mach-s3c64xx/mach-crag6410.c

12 years agoMerge remote-tracking branch 'i.MX/for-next'
Stephen Rothwell [Fri, 9 Dec 2011 00:01:59 +0000 (11:01 +1100)]
Merge remote-tracking branch 'i.MX/for-next'

Conflicts:
arch/arm/mach-imx/clock-mx51-mx53.c
arch/arm/mach-imx/devices-imx53.h
arch/arm/mach-imx/mm-imx5.c
arch/arm/mach-mx5/Kconfig
arch/arm/mach-mx5/Makefile
arch/arm/mach-mx5/pm-imx5.c
arch/arm/plat-mxc/include/mach/hardware.h

12 years agoMerge remote-tracking branch 'arm-perf/for-next/perf'
Stephen Rothwell [Fri, 9 Dec 2011 00:01:24 +0000 (11:01 +1100)]
Merge remote-tracking branch 'arm-perf/for-next/perf'

12 years agoMerge remote-tracking branch 'arm-soc/for-next'
Stephen Rothwell [Fri, 9 Dec 2011 00:00:06 +0000 (11:00 +1100)]
Merge remote-tracking branch 'arm-soc/for-next'

Conflicts:
arch/arm/mach-at91/at91cap9.c
arch/arm/mach-at91/at91sam9260.c
arch/arm/mach-at91/at91sam9261.c
arch/arm/mach-at91/at91sam9263.c
arch/arm/mach-at91/at91sam9g45.c
arch/arm/mach-at91/at91sam9rl.c
arch/arm/mach-at91/setup.c
arch/arm/mach-mxs/include/mach/common.h

12 years agoMerge remote-tracking branch 'arm-lpae/for-next'
Stephen Rothwell [Fri, 9 Dec 2011 00:00:04 +0000 (11:00 +1100)]
Merge remote-tracking branch 'arm-lpae/for-next'

Conflicts:
arch/arm/mm/idmap.c
arch/arm/mm/ioremap.c

12 years agoMerge remote-tracking branch 'arm/for-next'
Stephen Rothwell [Thu, 8 Dec 2011 23:51:18 +0000 (10:51 +1100)]
Merge remote-tracking branch 'arm/for-next'

Conflicts:
arch/arm/mach-mxs/mach-m28evk.c
arch/arm/mach-mxs/mach-stmp378x_devb.c

12 years agoMerge remote-tracking branch 'md-current/for-linus'
Stephen Rothwell [Thu, 8 Dec 2011 23:49:44 +0000 (10:49 +1100)]
Merge remote-tracking branch 'md-current/for-linus'

12 years agoMerge remote-tracking branch 'wireless/master'
Stephen Rothwell [Thu, 8 Dec 2011 23:49:39 +0000 (10:49 +1100)]
Merge remote-tracking branch 'wireless/master'

12 years agoMerge remote-tracking branch 'pci-current/for-linus'
Stephen Rothwell [Thu, 8 Dec 2011 23:49:38 +0000 (10:49 +1100)]
Merge remote-tracking branch 'pci-current/for-linus'

12 years agoMerge remote-tracking branch 'sound-current/for-linus'
Stephen Rothwell [Thu, 8 Dec 2011 23:49:37 +0000 (10:49 +1100)]
Merge remote-tracking branch 'sound-current/for-linus'

12 years agoMerge remote-tracking branch 'net/master'
Stephen Rothwell [Thu, 8 Dec 2011 23:49:36 +0000 (10:49 +1100)]
Merge remote-tracking branch 'net/master'

12 years agoMerge remote-tracking branch 'sparc/master'
Stephen Rothwell [Thu, 8 Dec 2011 23:49:35 +0000 (10:49 +1100)]
Merge remote-tracking branch 'sparc/master'

12 years agoMerge remote-tracking branch 'arm-current/fixes'
Stephen Rothwell [Thu, 8 Dec 2011 23:49:33 +0000 (10:49 +1100)]
Merge remote-tracking branch 'arm-current/fixes'

12 years agomtdoops: fix the oops_page_used array size
Roman Tereshonkov [Tue, 29 Nov 2011 10:49:18 +0000 (12:49 +0200)]
mtdoops: fix the oops_page_used array size

The array of unsigned long pointed by oops_page_used is allocated
by vmalloc which requires the size to be in bytes.

BITS_PER_LONG is equal to 32.
If we want to allocate memory for 32 pages with one bit per page then
32 / BITS_PER_LONG  is equal to 1 byte that is 8 bits.
To fix it we need to multiply the result by sizeof(unsigned long) equal to 4.

Cc: stable@kernel.org
Signed-off-by: Roman Tereshonkov <roman.tereshonkov@nokia.com>
Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@linux.intel.com>
12 years agojffs2: fix up error handling for insert_inode_locked
Eric Sandeen [Tue, 6 Dec 2011 23:06:06 +0000 (17:06 -0600)]
jffs2: fix up error handling for insert_inode_locked

after 250df6ed274d767da844a5d9f05720b804240197
(fs: protect inode->i_state with inode->i_lock), insert_inode_locked()
no longer returns the inode with I_NEW set on failure.  However,
the error handler still calls unlock_new_inode() on failure,
which does a WARN_ON if I_NEW is not set, so any failure spews
a lot of warnings.

We can just drop the unlock_new_inode() if insert_inode_locked()
fails here.

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@linux.intel.com>
12 years agomtd: maps: remove the now unused bcm963xx-flash
Jonas Gorski [Mon, 5 Dec 2011 15:08:11 +0000 (16:08 +0100)]
mtd: maps: remove the now unused bcm963xx-flash

bcm963xx-flash does nothing meaningful anymore.

Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
Acked-by: Florian Fainelli <florian@openwrt.org>
Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@linux.intel.com>
12 years agoMIPS: BCM63XX: use the new bcm63xxpart parser
Jonas Gorski [Mon, 5 Dec 2011 15:08:10 +0000 (16:08 +0100)]
MIPS: BCM63XX: use the new bcm63xxpart parser

Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
Acked-by: Florian Fainelli <florian@openwrt.org>
Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@linux.intel.com>
12 years agomtd: maps: physmap: allow partition parsers for physmap_flash_data
Jonas Gorski [Mon, 5 Dec 2011 15:08:09 +0000 (16:08 +0100)]
mtd: maps: physmap: allow partition parsers for physmap_flash_data

Arch setup code might want to use their own partition parsers, but still
use the generic physmap flash driver.

Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
Acked-by: Florian Fainelli <florian@openwrt.org>
Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@linux.intel.com>
12 years agomtd: maps: bcm963xx-flash: make CFE partition parsing an mtd parser
Jonas Gorski [Mon, 5 Dec 2011 15:08:08 +0000 (16:08 +0100)]
mtd: maps: bcm963xx-flash: make CFE partition parsing an mtd parser

Recent BCM63XX devices support a variety of flash types (parallel, SPI,
NAND) and share the partition layout. To prevent code duplication make
the CFE partition parsing code a stand alone mtd parser to allow SPI or
NAND flash drivers to use it.

Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
Acked-by: Florian Fainelli <florian@openwrt.org>
Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@linux.intel.com>
12 years agomtd: maps: bcm963xx-flash: clean up printk usage
Jonas Gorski [Mon, 5 Dec 2011 15:08:07 +0000 (16:08 +0100)]
mtd: maps: bcm963xx-flash: clean up printk usage

Replace raw printk's with their pr_XXX equivalent and unify broken up
strings so they become grepable.

Also replace the PFX definition with a pr_fmt().

Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
Acked-by: Florian Fainelli <florian@openwrt.org>
Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@linux.intel.com>
12 years agomtd: maps: bcm963xx-flash: remove superfluous semicolons
Jonas Gorski [Mon, 5 Dec 2011 15:08:06 +0000 (16:08 +0100)]
mtd: maps: bcm963xx-flash: remove superfluous semicolons

Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
Acked-by: Florian Fainelli <florian@openwrt.org>
Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@linux.intel.com>
12 years agomtd: maps: bcm963xx-flash: fix word order for spare partition
Jonas Gorski [Mon, 5 Dec 2011 15:08:05 +0000 (16:08 +0100)]
mtd: maps: bcm963xx-flash: fix word order for spare partition

Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
Acked-by: Florian Fainelli <florian@openwrt.org>
Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@linux.intel.com>
12 years agomtd: davinci: if no amif timing is passed, don; t setup cscfg register
Heiko Schocher [Sun, 4 Dec 2011 09:37:36 +0000 (10:37 +0100)]
mtd: davinci: if no amif timing is passed, don; t setup cscfg register

Signed-off-by: Heiko Schocher <hs@denx.de>
Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@linux.intel.com>
12 years agomtd: nand: set correct length to FBCR for a non-full-page write
Liu Shuo [Sun, 4 Dec 2011 04:31:37 +0000 (12:31 +0800)]
mtd: nand: set correct length to FBCR for a non-full-page write

When we do a non-full-page write, the length be set to FBCR should
not be 'elbc_fcm_ctrl->index', it should be 'elbc_fcm_ctrl->index -
elbc_fcm_ctrl->column'.

Signed-off-by: Liu Shuo <b35362@freescale.com>
Signed-off-by: Li Yang <leoli@freescale.com>
Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@linux.intel.com>
12 years agomtd: nand: use elbc_fcm_ctrl->oob to set FPAR_MS bit of FPAR
Liu Shuo [Sun, 4 Dec 2011 04:31:36 +0000 (12:31 +0800)]
mtd: nand: use elbc_fcm_ctrl->oob to set FPAR_MS bit of FPAR

On both of large-page chip and small-page chip, we always should use
'elbc_fcm_ctrl->oob' to set the FPAR_LP_MS/FPAR_SP_MS bit of FPAR, don't
use a overflowed 'column' to set it.

Signed-off-by: Liu Shuo <b35362@freescale.com>
Signed-off-by: Li Yang <leoli@freescale.com>
Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@linux.intel.com>
12 years agomtd: docg3: fixes and cleanups
Robert Jarzmik [Fri, 2 Dec 2011 19:00:12 +0000 (20:00 +0100)]
mtd: docg3: fixes and cleanups

This patch takes into account checkpatch, sparse and ECC
comments.

Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@linux.intel.com>
12 years agomtd: mtdoops: skip reading initially bad blocks
Roman Tereshonkov [Fri, 2 Dec 2011 13:07:17 +0000 (15:07 +0200)]
mtd: mtdoops: skip reading initially bad blocks

Use block_isbad to check and skip the bad blocks reading.
This will allow to get rid of the read errors if bad blocks
are present initially.

Cc: stable@kernel.org
Signed-off-by: Roman Tereshonkov <roman.tereshonkov@nokia.com>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
12 years agomtd: tests: stresstest: bail out if device has not enough eraseblocks
Wolfram Sang [Tue, 29 Nov 2011 14:34:08 +0000 (15:34 +0100)]
mtd: tests: stresstest: bail out if device has not enough eraseblocks

stresstest needs at least two eraseblocks. Bail out gracefully if that
condition is not met. Fixes the following 'division by zero' OOPS:

[  619.100000] mtd_stresstest: MTD device size 131072, eraseblock size 131072, page size 2048, count of eraseblocks 1, pages per eraseblock 64, OOB size 64
[  619.120000] mtd_stresstest: scanning for bad eraseblocks
[  619.120000] mtd_stresstest: scanned 1 eraseblocks, 0 are bad
[  619.130000] mtd_stresstest: doing operations
[  619.130000] mtd_stresstest: 0 operations done
[  619.140000] Division by zero in kernel.
...

caused by

        /* Read or write up 2 eraseblocks at a time - hence 'ebcnt - 1' */
        eb %= (ebcnt - 1);

Cc: stable@kernel.org
Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
12 years agomtd: convert drivers/mtd/* to use module_platform_driver()
Axel Lin [Sun, 27 Nov 2011 12:45:03 +0000 (20:45 +0800)]
mtd: convert drivers/mtd/* to use module_platform_driver()

This patch converts the drivers in drivers/mtd/* to use the
module_platform_driver() macro which makes the code smaller and a bit
simpler.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Acked by: Haojian Zhuang <haojian.zhuang@gmail.com>
Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@linux.intel.com>
12 years agoDocumentation: add sysfs entries for mtd docg3 chips
Robert Jarzmik [Tue, 29 Nov 2011 22:16:35 +0000 (23:16 +0100)]
Documentation: add sysfs entries for mtd docg3 chips

Add documentation for MSystems disk-on-chip docg3 chips
sysfs entries, which enable and disable protection areas,
giving or disabling access to the chip's memory.

Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
12 years agomtd: docg3: dereferencing an ERR_PTR() in docg3_probe()
Dan Carpenter [Mon, 28 Nov 2011 13:53:13 +0000 (16:53 +0300)]
mtd: docg3: dereferencing an ERR_PTR() in docg3_probe()

If doc_probe_device() returned an ERR_PTR, then we accidentally saved
that to docg3_floors[floor] = mtd; which gets derefenced in the error
handling when we call doc_release_device().

I've reworked the error handling to take care of that and hopefully
make it a little simpler.

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>
12 years agomtd: Remove redundant spi driver bus initialization
Lars-Peter Clausen [Thu, 24 Nov 2011 15:29:16 +0000 (16:29 +0100)]
mtd: Remove redundant spi driver bus initialization

In ancient times it was necessary to manually initialize the bus field of an
spi_driver to spi_bus_type. These days this is done in spi_driver_register(),
so we can drop the manual assignment.

The patch was generated using the following coccinelle semantic patch:
// <smpl>
@@
identifier _driver;
@@
struct spi_driver _driver = {
.driver = {
- .bus = &spi_bus_type,
},
};
// </smpl>

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@linux.intel.com>
12 years agomtd: gpmi: add missing include 'module.h'
Wolfram Sang [Wed, 23 Nov 2011 14:57:06 +0000 (15:57 +0100)]
mtd: gpmi: add missing include 'module.h'

Fixes:

drivers/mtd/nand/gpmi-nand/gpmi-nand.c: In function 'gpmi_nfc_init':
drivers/mtd/nand/gpmi-nand/gpmi-nand.c:1475:16: error: 'THIS_MODULE' undeclared (first use in this function)
drivers/mtd/nand/gpmi-nand/gpmi-nand.c:1475:16: note: each undeclared identifier is reported only once for each function it appears in
drivers/mtd/nand/gpmi-nand/gpmi-nand.c: At top level:
drivers/mtd/nand/gpmi-nand/gpmi-nand.c:1617:15: error: expected declaration specifiers or '...' before string constant
drivers/mtd/nand/gpmi-nand/gpmi-nand.c:1617:1: warning: data definition has no type or storage class
drivers/mtd/nand/gpmi-nand/gpmi-nand.c:1617:1: warning: type defaults to 'int' in declaration of 'MODULE_AUTHOR'

and some more...

Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
Acked-by: Huang Shijie <b32955@freescale.com>
Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@linux.intel.com>
12 years agomtd: docg3: add protection areas sysfs access
Robert Jarzmik [Sat, 19 Nov 2011 15:02:58 +0000 (16:02 +0100)]
mtd: docg3: add protection areas sysfs access

As each docg3 chip has 2 protection areas (DPS0 and DPS1),
and because theses areas can prevent user access to the chip
data, add for each floor the sysfs entries which insert the
protection key into the right DPS.

Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
Reviewed-by: Ivan Djelic <ivan.djelic@parrot.com>
Reviewed-by: Mike Dunn <mikedunn@newsguy.com>
12 years agomtd: docg3: add fast mode
Robert Jarzmik [Sat, 19 Nov 2011 15:02:57 +0000 (16:02 +0100)]
mtd: docg3: add fast mode

Docg3 chips can work in 3 modes : normal MLC mode, fast
mode and reliable mode. Normally, as docg3 is a MLC chip, it
should be configured to work in normal mode.

In both normal mode, each page is distinct. This
means that writing to page 12 of blocks 14,15 writes only to
that page, and reading from page 12 of blocks 14,15 reads
only from that page.

In reliable and fast modes, pages are coupled by pairs, and
are clones one of each other. This means that the available
capacity of the chip is halved. Pages are coupled in each
block, and page of index 2*n contains the same data as page
2*n+1 of the same block.

In fast mode, the reads occur a bit faster, but are a bit
less reliable that in normal mode.

When reading from page 2*n, the chip reads bytes from both
page 2*n and page 2*n+1, makes a logical and for each byte,
and returns the result. As programming a page means
"clearing bits", even if a bit was not cleared on one page
because the flash is worn out, the other page has the bit
cleared, and the result of the "AND" gives a correct result.

When writing to page 2*n, the chip writes data to both page
2*n and page 2*n+1.

Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
Reviewed-by: Ivan Djelic <ivan.djelic@parrot.com>
Reviewed-by: Mike Dunn <mikedunn@newsguy.com>
12 years agomtd: docg3: add suspend and resume
Robert Jarzmik [Sat, 19 Nov 2011 15:02:56 +0000 (16:02 +0100)]
mtd: docg3: add suspend and resume

Add functions to powerdown and powerup from suspend, in
order to save power.

Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
Reviewed-by: Ivan Djelic <ivan.djelic@parrot.com>
Reviewed-by: Mike Dunn <mikedunn@newsguy.com>
12 years agomtd: docg3: add ECC correction code
Robert Jarzmik [Sat, 19 Nov 2011 15:02:55 +0000 (16:02 +0100)]
mtd: docg3: add ECC correction code

Credit for discovering the BCH algorith parameters, and bit
reversing algorithm is to be give to Mike Dunn and Ivan
Djelic.

The BCH correction code relied upon the BCH library, where
all data and ECC is bit-reversed. The BCH library works
correctly when each input byte is bit-reversed, and
accordingly ECC output is also bit-reversed.

Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
Reviewed-by: Ivan Djelic <ivan.djelic@parrot.com>
Reviewed-by: Mike Dunn <mikedunn@newsguy.com>
12 years agomtd: docg3: map erase and write functions
Robert Jarzmik [Sat, 19 Nov 2011 15:02:54 +0000 (16:02 +0100)]
mtd: docg3: map erase and write functions

Map the developped write and erase functions into the mtd
structure.

Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
Reviewed-by: Ivan Djelic <ivan.djelic@parrot.com>
Reviewed-by: Mike Dunn <mikedunn@newsguy.com>
12 years agomtd: docg3: add erase functions
Robert Jarzmik [Sat, 19 Nov 2011 15:02:53 +0000 (16:02 +0100)]
mtd: docg3: add erase functions

Add erase capability to the docg3 driver. The erase block is
made of 2 physical blocks, as both share all 64 pages. That
makes an erase block of at least 64 kBytes.

Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
Reviewed-by: Ivan Djelic <ivan.djelic@parrot.com>
Reviewed-by: Mike Dunn <mikedunn@newsguy.com>
12 years agomtd: docg3: add write functions
Robert Jarzmik [Sat, 19 Nov 2011 15:02:52 +0000 (16:02 +0100)]
mtd: docg3: add write functions

Add write capability to the docg3 driver. The writes are
possible on a single page (512 bytes + 16 bytes), even if
that page is split on 2 physical pages on 2 blocks (each on
one plane).

Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
Reviewed-by: Ivan Djelic <ivan.djelic@parrot.com>
Reviewed-by: Mike Dunn <mikedunn@newsguy.com>
12 years agomtd: docg3: add OOB buffer to device structure
Robert Jarzmik [Sat, 19 Nov 2011 15:02:51 +0000 (16:02 +0100)]
mtd: docg3: add OOB buffer to device structure

Add OOB buffer area to store the OOB data until the actual
page is written, so that it can be completed by hardware ECC
generator.

Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
Reviewed-by: Ivan Djelic <ivan.djelic@parrot.com>
Reviewed-by: Mike Dunn <mikedunn@newsguy.com>
12 years agomtd: docg3: add registers for erasing and writing
Robert Jarzmik [Sat, 19 Nov 2011 15:02:50 +0000 (16:02 +0100)]
mtd: docg3: add registers for erasing and writing

Add the required registers and commands to erase and write
flash pages / blocks.

Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
Reviewed-by: Ivan Djelic <ivan.djelic@parrot.com>
Reviewed-by: Mike Dunn <mikedunn@newsguy.com>
12 years agomtd: docg3: add OOB layout to mtdinfo
Robert Jarzmik [Sat, 19 Nov 2011 15:02:49 +0000 (16:02 +0100)]
mtd: docg3: add OOB layout to mtdinfo

Add OOB layout description for docg3, so that userspace can
use this information to setup the data for write_oob().

Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
Reviewed-by: Ivan Djelic <ivan.djelic@parrot.com>
Reviewed-by: Mike Dunn <mikedunn@newsguy.com>
12 years agomtd: docg3: add multiple floor support
Robert Jarzmik [Sat, 19 Nov 2011 15:02:48 +0000 (16:02 +0100)]
mtd: docg3: add multiple floor support

Add support for multiple floors, ie. cascaded docg3
chips. There might be 4 docg3 chips cascaded, sharing the
same address space, and providing up to 4 times the storage
capacity of a unique chip.

Each floor will be seen as an independant mtd device.

Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
Reviewed-by: Ivan Djelic <ivan.djelic@parrot.com>
Reviewed-by: Mike Dunn <mikedunn@newsguy.com>
12 years agomtd: docg3: fix reading oob+data without correction
Robert Jarzmik [Sat, 19 Nov 2011 15:02:47 +0000 (16:02 +0100)]
mtd: docg3: fix reading oob+data without correction

Fix the docg3 reads to be able to cope with all possible
data buffer / oob buffer / file mode combinations from
docg3_read_oob().
This especially ensures that raw reads do not use ECC
corrections, and AUTOOOB and PLACEOOB do use ECC
correction.

The approach is to empty docg3_read() and make it a wrapper
to docg3_read_oob(). As docg3_read_oob() handles all the
funny cases (no data buffer but oob buffer, data buffer but
no oob buffer, ...), docg3_read() is just a special use of
docg3_read_oob().

Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
Reviewed-by: Ivan Djelic <ivan.djelic@parrot.com>
Reviewed-by: Mike Dunn <mikedunn@newsguy.com>
12 years agomtd: docg3: fix BCH registers
Robert Jarzmik [Sat, 19 Nov 2011 15:02:46 +0000 (16:02 +0100)]
mtd: docg3: fix BCH registers

BCH registers are contiguous, not on every byte. Fix the
register definitions.

Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
Reviewed-by: Ivan Djelic <ivan.djelic@parrot.com>
Reviewed-by: Mike Dunn <mikedunn@newsguy.com>
12 years agomtd: docg3: fix protection areas reading
Robert Jarzmik [Sat, 19 Nov 2011 15:02:45 +0000 (16:02 +0100)]
mtd: docg3: fix protection areas reading

The protection areas boundaries were on 16bit registers, not
8bit. This is consistent with block numbers, which can
extend up to 4096 on bigger chips (and is 2048 on the
docg3).

Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
Reviewed-by: Ivan Djelic <ivan.djelic@parrot.com>
Reviewed-by: Mike Dunn <mikedunn@newsguy.com>
12 years agomtd: docg3: fix tracing of IO in writeb
Robert Jarzmik [Sat, 19 Nov 2011 15:02:44 +0000 (16:02 +0100)]
mtd: docg3: fix tracing of IO in writeb

Writeb was incorrectly traced as a 16 bits write, instead of
a 8 bits write. Fix it by tracing the correct width.

Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
Reviewed-by: Ivan Djelic <ivan.djelic@parrot.com>
Reviewed-by: Mike Dunn <mikedunn@newsguy.com>