14 May, 2012

1 commit

  • Pull three MTD fixes from David Woodhouse:
    - Fix a lock ordering deadlock in JFFS2
    - Fix an oops in the dataflash driver, triggered by a dummy call to test
    whether it has OTP functionality.
    - Fix request_mem_region() failure on amsdelta NAND driver.

    * tag 'for-linus-3.4-20120513' of git://git.infradead.org/linux-mtd:
    mtd: ams-delta: fix request_mem_region() failure
    jffs2: Fix lock acquisition order bug in gc path
    mtd: fix oops in dataflash driver

    Linus Torvalds
     

09 May, 2012

1 commit

  • A call to request_mem_region() has been introduced in the omap-gpio
    driver recently (commit 96751fcbe5438e95514b025e9cee7a6d38038f40,
    "gpio/omap: Use devm_ API and add request_mem_region"). This change
    prevented the Amstrad Delta NAND driver, which was doing the same in
    order to take control over OMAP MPU I/O lines that the NAND device hangs
    off, from loading successfully.

    The I/O lines and corresponding registers used by the NAND driver are a
    subset of those used for the GPIO function. Then, to avoid run time
    collisions, all MPUIO GPIO lines should be marked as requested while
    initializing the NAND driver, and vice versa, a single MPUIO GPIO line
    already requested before the NAND driver initialization is attempted
    should prevent the NAND device from being started successfully.

    There is another driver, omap-keypad, which also manipulates MPUIO
    registers, but has never been calling request_mem_region() on startup,
    so it's not affected by the change in the gpio-omap and works correctly.
    It uses the depreciated omap_read/write functions for accessing MPUIO
    registers. Unlike the NAND driver, these I/O lines and registers are
    separate from those used by the GPIO driver. However, both register sets
    are non-contiguous and overlapping, so it would be impractical to
    request the two sets separately, one from the gpio-omap, the other form
    the omap-keypad driver.

    In order to solve all these issues correctly, a solution first suggested
    by Artem Bityutskiy, then closer specified by Tony Lindgren while they
    commented the initial version of this fix, should be implemented. The
    gpio-omap driver should export a few functions which would allow the
    other two drivers to access MPUIO registers in a safe manner instead of
    trying to manage them in parallel to the GPIO driver. However, such a
    big change, affecting 3 drivers all together, is not suitable for the rc
    cycle, and should be prepared for the merge window. Then, an
    alternative solution is proposed as a regression fix.

    For the ams-delta NAND driver to initialize correctly in coexistence
    with the changed GPIO driver, drop the request_mem_region() call from
    the former, especially as this call is going to be removed while the
    long-term solution is implemented.

    Tested on Amstrad Delta.

    Signed-off-by: Janusz Krzysztofik
    Acked-by: Tony Lindgren
    Signed-off-by: Artem Bityutskiy
    Signed-off-by: David Woodhouse

    Janusz Krzysztofik
     

08 May, 2012

1 commit

  • I'm seeing an oops in mtd_dataflash.c with Linux 3.3. What appears to
    be happening is that otp_select_filemode calls mtd_read_fact_prot_reg
    with -1 for offset and length and a NULL buffer to test if OTP
    operations are supported. This finds its way down to otp_read in
    mtd_dataflash.c and causes an oops when memcpying the returned data
    into the NULL buf.

    None of the checks in otp_read catches the negative length and offset.
    Changing the length of the dummy read to 0 prevents the oops.

    Cc: stable@kernel.org [3.3+]
    Signed-off-by: Artem Bityutskiy
    Signed-off-by: David Woodhouse

    Will Newton
     

27 Apr, 2012

1 commit

  • Pull [GIT PULL] slave-dmaengine fixes from Vinod Koul.

    * 'fixes' of git://git.infradead.org/users/vkoul/slave-dma:
    dmaengine/amba-pl08x : reset phychan_hold on terminate all
    dma: pl330: fix a couple of compilation warnings
    dma/ste_dma40: fix erroneous comparison
    dma/ste_dma40: explicitly include regulator consumer header
    dma40: Improve the logic of stopping logical chan
    dmaengine: at_hdmac: remove clear-on-read in atc_dostart()
    dma: mxs-dma: enable channel in device_issue_pending call
    dmaengine: imx-dma: dont complete descriptor for cyclic dma

    Linus Torvalds
     

20 Apr, 2012

1 commit

  • Enable channel in device_issue_pending call, so that the order between
    cookie assignment and channel enabling can be ensured naturally.

    It fixes the mxs gpmi-nand breakage which is caused by the incorrect
    order of cookie assigning and channel enabling.

    Suggested-by: Russell King
    Signed-off-by: Shawn Guo
    Tested-by: Huang Shijie
    Tested-by
    Signed-off-by: Vinod Koul

    Shawn Guo
     

09 Apr, 2012

1 commit


06 Apr, 2012

2 commits

  • Merge batch of fixes from Andrew Morton:
    "The simple_open() cleanup was held back while I wanted for laggards to
    merge things.

    I still need to send a few checkpoint/restore patches. I've been
    wobbly about merging them because I'm wobbly about the overall
    prospects for success of the project. But after speaking with Pavel
    at the LSF conference, it sounds like they're further toward
    completion than I feared - apparently davem is at the "has stopped
    complaining" stage regarding the net changes. So I need to go back
    and re-review those patchs and their (lengthy) discussion."

    * emailed from Andrew Morton : (16 patches)
    memcg swap: use mem_cgroup_uncharge_swap fix
    backlight: add driver for DA9052/53 PMIC v1
    C6X: use set_current_blocked() and block_sigmask()
    MAINTAINERS: add entry for sparse checker
    MAINTAINERS: fix REMOTEPROC F: typo
    alpha: use set_current_blocked() and block_sigmask()
    simple_open: automatically convert to simple_open()
    scripts/coccinelle/api/simple_open.cocci: semantic patch for simple_open()
    libfs: add simple_open()
    hugetlbfs: remove unregister_filesystem() when initializing module
    drivers/rtc/rtc-88pm860x.c: fix rtc irq enable callback
    fs/xattr.c:setxattr(): improve handling of allocation failures
    fs/xattr.c:listxattr(): fall back to vmalloc() if kmalloc() failed
    fs/xattr.c: suppress page allocation failure warnings from sys_listxattr()
    sysrq: use SEND_SIG_FORCED instead of force_sig()
    proc: fix mount -t proc -o AAA

    Linus Torvalds
     
  • Many users of debugfs copy the implementation of default_open() when
    they want to support a custom read/write function op. This leads to a
    proliferation of the default_open() implementation across the entire
    tree.

    Now that the common implementation has been consolidated into libfs we
    can replace all the users of this function with simple_open().

    This replacement was done with the following semantic patch:

    @ open @
    identifier open_f != simple_open;
    identifier i, f;
    @@
    -int open_f(struct inode *i, struct file *f)
    -{
    (
    -if (i->i_private)
    -f->private_data = i->i_private;
    |
    -f->private_data = i->i_private;
    )
    -return 0;
    -}

    @ has_open depends on open @
    identifier fops;
    identifier open.open_f;
    @@
    struct file_operations fops = {
    ...
    -.open = open_f,
    +.open = simple_open,
    ...
    };

    [akpm@linux-foundation.org: checkpatch fixes]
    Signed-off-by: Stephen Boyd
    Cc: Greg Kroah-Hartman
    Cc: Al Viro
    Cc: Julia Lawall
    Acked-by: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Stephen Boyd
     

01 Apr, 2012

2 commits

  • Pull second try at vfs part d#2 from Al Viro:
    "Miklos' first series (with do_lookup() rewrite split into edible
    chunks) + assorted bits and pieces.

    The 'untangling of do_lookup()' series is is a splitup of what used to
    be a monolithic patch from Miklos, so this series is basically "how do
    I convince myself that his patch is correct (or find a hole in it)".
    No holes found and I like the resulting cleanup, so in it went..."

    Changes from try 1: Fix a boot problem with selinux, and commit messages
    prettied up a bit.

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (24 commits)
    vfs: fix out-of-date dentry_unhash() comment
    vfs: split __lookup_hash
    untangling do_lookup() - take __lookup_hash()-calling case out of line.
    untangling do_lookup() - switch to calling __lookup_hash()
    untangling do_lookup() - merge d_alloc_and_lookup() callers
    untangling do_lookup() - merge failure exits in !dentry case
    untangling do_lookup() - massage !dentry case towards __lookup_hash()
    untangling do_lookup() - get rid of need_reval in !dentry case
    untangling do_lookup() - eliminate a loop.
    untangling do_lookup() - expand the area under ->i_mutex
    untangling do_lookup() - isolate !dentry stuff from the rest of it.
    vfs: move MAY_EXEC check from __lookup_hash()
    vfs: don't revalidate just looked up dentry
    vfs: fix d_need_lookup/d_revalidate order in do_lookup
    ext3: move headers to fs/ext3/
    migrate ext2_fs.h guts to fs/ext2/ext2.h
    new helper: ext2_image_size()
    get rid of pointless includes of ext2_fs.h
    ext2: No longer export ext2_fs.h to user space
    mtdchar: kill persistently held vfsmount
    ...

    Linus Torvalds
     
  • ... and mtdchar_notifier along with it; just have ->drop_inode() that
    will unconditionally get evict them instead of dances on mtd device
    removal and use simple_pin_fs() instead of kern_mount()

    Signed-off-by: Al Viro

    Al Viro
     

31 Mar, 2012

1 commit

  • Pull MTD changes from David Woodhouse:
    - Artem's cleanup of the MTD API continues apace.
    - Fixes and improvements for ST FSMC and SuperH FLCTL NAND, amongst
    others.
    - More work on DiskOnChip G3, new driver for DiskOnChip G4.
    - Clean up debug/warning printks in JFFS2 to use pr_.

    Fix up various trivial conflicts, largely due to changes in calling
    conventions for things like dmaengine_prep_slave_sg() (new inline
    wrapper to hide new parameter, clashing with rewrite of previously last
    parameter that used to be an 'append' flag, and is now a bitmap of
    'unsigned long flags').

    (Also some header file fallout - like so many merges this merge window -
    and silly conflicts with sparse fixes)

    * tag 'for-linus-3.4' of git://git.infradead.org/mtd-2.6: (120 commits)
    mtd: docg3 add protection against concurrency
    mtd: docg3 refactor cascade floors structure
    mtd: docg3 increase write/erase timeout
    mtd: docg3 fix inbound calculations
    mtd: nand: gpmi: fix function annotations
    mtd: phram: fix section mismatch for phram_setup
    mtd: unify initialization of erase_info->fail_addr
    mtd: support ONFI multi lun NAND
    mtd: sm_ftl: fix typo in major number.
    mtd: add device-tree support to spear_smi
    mtd: spear_smi: Remove default partition information from driver
    mtd: Add device-tree support to fsmc_nand
    mtd: fix section mismatch for doc_probe_device
    mtd: nand/fsmc: Remove sparse warnings and errors
    mtd: nand/fsmc: Add DMA support
    mtd: nand/fsmc: Access the NAND device word by word whenever possible
    mtd: nand/fsmc: Use dev_err to report error scenario
    mtd: nand/fsmc: Use devm routines
    mtd: nand/fsmc: Modify fsmc driver to accept nand timing parameters via platform
    mtd: fsmc_nand: add pm callbacks to support hibernation
    ...

    Linus Torvalds
     

30 Mar, 2012

1 commit

  • Pull slave-dmaengine update from Vinod Koul:
    "This includes the cookie cleanup by Russell, the addition of context
    parameter for dmaengine APIs, more arm dmaengine driver cleanup by
    moving code to dmaengine, this time for imx by Javier and pl330 by
    Boojin along with the usual driver fixes."

    Fix up some fairly trivial conflicts with various other cleanups.

    * 'next' of git://git.infradead.org/users/vkoul/slave-dma: (67 commits)
    dmaengine: imx: fix the build failure on x86_64
    dmaengine: i.MX: Fix merge of cookie branch.
    dmaengine: i.MX: Add support for interleaved transfers.
    dmaengine: imx-dma: use 'dev_dbg' and 'dev_warn' for messages.
    dmaengine: imx-dma: remove 'imx_dmav1_baseaddr' and 'dma_clk'.
    dmaengine: imx-dma: remove unused arg of imxdma_sg_next.
    dmaengine: imx-dma: remove internal structure.
    dmaengine: imx-dma: remove 'resbytes' field of 'internal' structure.
    dmaengine: imx-dma: remove 'in_use' field of 'internal' structure.
    dmaengine: imx-dma: remove sg member from internal structure.
    dmaengine: imx-dma: remove 'imxdma_setup_sg_hw' function.
    dmaengine: imx-dma: remove 'imxdma_config_channel_hw' function.
    dmaengine: imx-dma: remove 'imxdma_setup_mem2mem_hw' function.
    dmaengine: imx-dma: remove dma_mode member of internal structure.
    dmaengine: imx-dma: remove data member from internal structure.
    dmaengine: imx-dma: merge old dma-v1.c with imx-dma.c
    dmaengine: at_hdmac: add slave config operation
    dmaengine: add context parameter to prep_slave_sg and prep_dma_cyclic
    dmaengine/dma_slave: introduce inline wrappers
    dma: imx-sdma: Treat firmware messages as warnings instead of erros
    ...

    Linus Torvalds
     

29 Mar, 2012

3 commits

  • …m/linux/kernel/git/dhowells/linux-asm_system

    Pull "Disintegrate and delete asm/system.h" from David Howells:
    "Here are a bunch of patches to disintegrate asm/system.h into a set of
    separate bits to relieve the problem of circular inclusion
    dependencies.

    I've built all the working defconfigs from all the arches that I can
    and made sure that they don't break.

    The reason for these patches is that I recently encountered a circular
    dependency problem that came about when I produced some patches to
    optimise get_order() by rewriting it to use ilog2().

    This uses bitops - and on the SH arch asm/bitops.h drags in
    asm-generic/get_order.h by a circuituous route involving asm/system.h.

    The main difficulty seems to be asm/system.h. It holds a number of
    low level bits with no/few dependencies that are commonly used (eg.
    memory barriers) and a number of bits with more dependencies that
    aren't used in many places (eg. switch_to()).

    These patches break asm/system.h up into the following core pieces:

    (1) asm/barrier.h

    Move memory barriers here. This already done for MIPS and Alpha.

    (2) asm/switch_to.h

    Move switch_to() and related stuff here.

    (3) asm/exec.h

    Move arch_align_stack() here. Other process execution related bits
    could perhaps go here from asm/processor.h.

    (4) asm/cmpxchg.h

    Move xchg() and cmpxchg() here as they're full word atomic ops and
    frequently used by atomic_xchg() and atomic_cmpxchg().

    (5) asm/bug.h

    Move die() and related bits.

    (6) asm/auxvec.h

    Move AT_VECTOR_SIZE_ARCH here.

    Other arch headers are created as needed on a per-arch basis."

    Fixed up some conflicts from other header file cleanups and moving code
    around that has happened in the meantime, so David's testing is somewhat
    weakened by that. We'll find out anything that got broken and fix it..

    * tag 'split-asm_system_h-for-linus-20120328' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-asm_system: (38 commits)
    Delete all instances of asm/system.h
    Remove all #inclusions of asm/system.h
    Add #includes needed to permit the removal of asm/system.h
    Move all declarations of free_initmem() to linux/mm.h
    Disintegrate asm/system.h for OpenRISC
    Split arch_align_stack() out from asm-generic/system.h
    Split the switch_to() wrapper out of asm-generic/system.h
    Move the asm-generic/system.h xchg() implementation to asm-generic/cmpxchg.h
    Create asm-generic/barrier.h
    Make asm-generic/cmpxchg.h #include asm-generic/cmpxchg-local.h
    Disintegrate asm/system.h for Xtensa
    Disintegrate asm/system.h for Unicore32 [based on ver #3, changed by gxt]
    Disintegrate asm/system.h for Tile
    Disintegrate asm/system.h for Sparc
    Disintegrate asm/system.h for SH
    Disintegrate asm/system.h for Score
    Disintegrate asm/system.h for S390
    Disintegrate asm/system.h for PowerPC
    Disintegrate asm/system.h for PA-RISC
    Disintegrate asm/system.h for MN10300
    ...

    Linus Torvalds
     
  • Pull "ARM: More device tree support updates" from Olof Johansson:
    "This branch contains a number of updates for device tree support on
    several ARM platforms, in particular:

    * AT91 continues the device tree conversion adding support for a
    number of on-chip drivers and other functionality
    * ux500 adds probing of some of the core SoC blocks through device
    tree
    * Initial device tree support for ST SPEAr600 platforms
    * kirkwood continues the conversion to device-tree probing"

    Manually merge arch/arm/mach-ux500/Kconfig due to MACH_U8500 rename, and
    drivers/usb/gadget/at91_udc.c due to header file include cleanups.

    Also do an "evil merge" for the MACH_U8500 config option rename that the
    affected RMI4 touchscreen driver in staging. It's called MACH_MOP500
    now, and it was missed during previous merges.

    * tag 'dt2' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (48 commits)
    ARM: SPEAr600: Add device-tree support to SPEAr600 boards
    ARM: ux500: Provide local timer support for Device Tree
    ARM: ux500: Enable PL022 SSP Controller in Device Tree
    ARM: ux500: Enable PL310 Level 2 Cache Controller in Device Tree
    ARM: ux500: Enable PL011 AMBA UART Controller for Device Tree
    ARM: ux500: Enable Cortex-A9 GIC (Generic Interrupt Controller) in Device Tree
    ARM: ux500: db8500: list most devices in the snowball device tree
    ARM: ux500: split dts file for snowball into generic part
    ARM: ux500: combine the board init functions for DT boot
    ARM: ux500: Initial Device Tree support for Snowball
    ARM: ux500: CONFIG: Enable Device Tree support for future endeavours
    ARM: kirkwood: use devicetree for rtc-mv
    ARM: kirkwood: rtc-mv devicetree bindings
    ARM: kirkwood: fdt: define uart[01] as disabled, enable uart0
    ARM: kirkwood: fdt: facilitate new boards during fdt migration
    ARM: kirkwood: fdt: absorb kirkwood_init()
    ARM: kirkwood: fdt: use mrvl ticker symbol
    ARM: orion: wdt: use resource vice direct access
    ARM: Kirkwood: Remove tclk from kirkwood_asoc_platform_data.
    ARM: orion: spi: remove enable_clock_fix which is not used
    ...

    Linus Torvalds
     
  • Remove all #inclusions of asm/system.h preparatory to splitting and killing
    it. Performed with the following command:

    perl -p -i -e 's!^#\s*include\s*.*\n!!' `grep -Irl '^#\s*include\s*' *`

    Signed-off-by: David Howells

    David Howells
     

28 Mar, 2012

4 commits

  • Pull UML changes from Richard Weinberger:
    "Mostly bug fixes and cleanups"

    * 'for-linus-3.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml: (35 commits)
    um: Update defconfig
    um: Switch to large mcmodel on x86_64
    MTD: Relax dependencies
    um: Wire CONFIG_GENERIC_IO up
    um: Serve io_remap_pfn_range()
    Introduce CONFIG_GENERIC_IO
    um: allow SUBARCH=x86
    um: most of the SUBARCH uses can be killed
    um: deadlock in line_write_interrupt()
    um: don't bother trying to rebuild CHECKFLAGS for USER_OBJS
    um: use the right ifdef around exports in user_syms.c
    um: a bunch of headers can be killed by using generic-y
    um: ptrace-generic.h doesn't need user.h
    um: kill HOST_TASK_PID
    um: remove pointless include of asm/fixmap.h from asm/pgtable.h
    um: asm-offsets.h might as well come from underlying arch...
    um: merge processor_{32,64}.h a bit...
    um: switch close_chan() to struct line
    um: race fix: initialize delayed_work *before* registering IRQ
    um: line->have_irq is never checked...
    ...

    Linus Torvalds
     
  • Pull ARM platform updates from Russell King:
    "This covers platform stuff for platforms I have a direct interest in
    (iow, I have the hardware). Essentially:
    - as we no longer support any other Acorn platforms other than RiscPC
    anymore, we can collect all that code into mach-rpc.
    - convert Acorn expansion card stuff to use IRQ allocation functions,
    and get rid of NO_IRQ from there.
    - cleanups to the ebsa110 platform to move some private stuff out of
    its header files.
    - large amount of SA11x0 updates:
    - conversion of private DMA implementation to DMA engine support
    (this actually gives us greater flexibility in drivers over the old
    API.)
    - re-worked ucb1x00 updates - convert to genirq, remove sa11x0
    dependencies, fix various minor issues
    - move platform specific sa11x0 framebuffer data into platform files
    in arch/arm instead of keeping this in the driver itself
    - update sa11x0 IrDA driver for DMA engine, and allow it to use DMA
    for SIR transmissions as well as FIR
    - rework sa1111 support for genirq, and irq allocation
    - fix sa1111 IRQ support so it works again
    - use sparse IRQ support

    After this, I have one more pull request remaining from my current
    set, which I think is going to be the most problematical as it
    generates 8 conflicts."

    Fixed up the trivial conflict in arch/arm/mach-rpc/Makefile as per
    Russell.

    * 'platforms' of git://git.linaro.org/people/rmk/linux-arm: (125 commits)
    ARM: 7343/1: sa11x0: convert to sparse IRQ
    ARM: 7342/2: sa1100: prepare for sparse irq conversion
    ARM: 7341/1: input: prepare jornada720 keyboard and ts for sa11x0 sparse irq
    ARM: 7340/1: rtc: sa1100: include mach/irqs.h instead of asm/irq.h
    ARM: sa11x0: remove unused DMA controller definitions
    ARM: sa11x0: remove old SoC private DMA driver
    USB: sa1111: add hcd .reset method
    USB: sa1111: add OHCI shutdown methods
    USB: sa1111: reorganize ohci-sa1111.c
    USB: sa1111: get rid of nasty printk(KERN_DEBUG "%s: ...", __FILE__)
    USB: sa1111: sparse and checkpatch cleanups
    ARM: sa11x0: don't static map sa1111
    ARM: sa1111: use dev_err() rather than printk()
    ARM: sa1111: cleanup sub-device registration and unregistration
    ARM: sa1111: only setup DMA for DMA capable devices
    ARM: sa1111: register sa1111 devices with dmabounce in bus notifier
    ARM: sa1111: move USB interface register definitions to ohci-sa1111.c
    ARM: sa1111: move PCMCIA interface register definitions to sa1111_generic.c
    ARM: sa1111: move PS/2 interface register definitions to sa1111p2.c
    ARM: sa1111: delete unused physical GPIO register definitions
    ...

    Linus Torvalds
     
  • Pull "ARM: board specific updates" from Arnd Bergmann/Olof Johansson:
    "These changes are all specific to one board only. We're trying to
    keep the number of board files low, but generally board level updates
    are ok on platforms that are working on moving towards DT based
    probing, which will eventually lead to removing them.

    The board-ams-delta.c board file gets a conflict between the removal
    of ams_delta_config and the addition of a lot of other data. The
    Kconfig file has two changes in the same line, and in exynos, the
    power domain cleanup conflicts with the addition of the image sensor
    device.

    Signed-off-by: Arnd Bergmann
    [olof: Amended a fix for a mismerge to board-omap4panda.c]
    Signed-off-by: Olof Johansson "

    Fixed up some fairly trivial conflicts manually.

    * tag 'boards' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (82 commits)
    i.MX35-PDK: Add Camera support
    ARM : mx35: 3ds-board: add framebuffer device
    pxa/hx4700: Remove pcmcia platform_device structure
    ARM: pxa/hx4700: Reduce sleep mode battery discharge by 35%
    ARM: pxa/hx4700: Remove unwanted request for GPIO105
    ARM: EXYNOS: support Exynos4210-bus Devfreq driver on Nuri board
    ARM: EXYNOS: Register JPEG on nuri
    ARM: EXYNOS: Register JPEG on universal_c210
    ARM: S5PV210: Enable JPEG on SMDKV210
    ARM: S5PV210: Add JPEG board definition
    ARM: EXYNOS: Enable JPEG on Origen
    ARM: EXYNOS: Enable JPEG on SMDKV310
    ARM: EXYNOS: Add __init attribute to universal_camera_init()
    ARM: EXYNOS: Add __init attribute to nuri_camera_init()
    ARM: S5PV210: Enable FIMC on SMDKC110
    ARM: S5PV210: Enable FIMC on SMDKV210
    ARM: S5PV210: Enable MFC on SMDKC110
    ARM: S5PV210: Enable MFC on SMDKV210
    ARM: EXYNOS: Enable G2D on SMDKV310
    ARM: tegra: update defconfig
    ...

    Linus Torvalds
     
  • Pull "ARM: global cleanups" from Arnd Bergmann:
    "Quite a bit of code gets removed, and some stuff moved around, mostly
    the old samsung s3c24xx stuff. There should be no functional changes
    in this series otherwise. Some cleanups have dependencies on other
    arm-soc branches and will be sent in the second round.

    Signed-off-by: Arnd Bergmann "

    Fixed up trivial conflicts mainly due to #include's being changes on
    both sides.

    * tag 'cleanup' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (121 commits)
    ep93xx: Remove unnecessary includes of ep93xx-regs.h
    ep93xx: Move EP93XX_SYSCON defines to SoC private header
    ep93xx: Move crunch code to mach-ep93xx directory
    ep93xx: Make syscon access functions private to SoC
    ep93xx: Configure GPIO ports in core code
    ep93xx: Move peripheral defines to local SoC header
    ep93xx: Convert the watchdog driver into a platform device.
    ep93xx: Use ioremap for backlight driver
    ep93xx: Move GPIO defines to gpio-ep93xx.h
    ep93xx: Don't use system controller defines in audio drivers
    ep93xx: Move PHYS_BASE defines to local SoC header file
    ARM: EXYNOS: Add clock register addresses for EXYNOS4X12 bus devfreq driver
    ARM: EXYNOS: add clock registers for exynos4x12-cpufreq
    PM / devfreq: update the name of EXYNOS clock registers that were omitted
    PM / devfreq: update the name of EXYNOS clock register
    ARM: EXYNOS: change the prefix S5P_ to EXYNOS4_ for clock
    ARM: EXYNOS: use static declaration on regarding clock
    ARM: EXYNOS: replace clock.c for other new EXYNOS SoCs
    ARM: OMAP2+: Fix build error after merge
    ARM: S3C24XX: remove call to s3c24xx_setup_clocks
    ...

    Linus Torvalds
     

27 Mar, 2012

21 commits

  • As docg3 is intolerant against reentrancy, especially
    because of its weird register access (ie. a register read is
    performed by a first register write), each access to the
    docg3 IO space must be locked.

    Lock the IO space with a mutex, shared by all chips on the
    same cascade, as they all share the same IO space.

    Signed-off-by: Robert Jarzmik
    Signed-off-by: Artem Bityutskiy
    Signed-off-by: David Woodhouse

    Robert Jarzmik
     
  • Group floors into a common cascade structure. This will provide a common
    structure to store common data to all cascaded docg3 chips, like IO
    addressing, locking protection.

    Signed-off-by: Robert Jarzmik
    Signed-off-by: Artem Bityutskiy
    Signed-off-by: David Woodhouse

    Robert Jarzmik
     
  • After several tries with ubifs, it appears empirically that constructor
    provided figures for erase/write timeouts are underestimated. A timeout
    of 100ms seems to work with a 5 years worn chip, and no timeouts occur
    anymore.

    Signed-off-by: Robert Jarzmik
    Signed-off-by: Artem Bityutskiy
    Signed-off-by: David Woodhouse

    Robert Jarzmik
     
  • The last erase block was not accessible, as the out of bound
    check was incorrectly rejecting the last block.
    The read/write/erase offset checks were forbidding the usage of the
    last block, because of the calculation which was considering the
    byte after the last instead of the last byte.

    Signed-off-by: Robert Jarzmik
    Signed-off-by: Artem Bityutskiy
    Signed-off-by: David Woodhouse

    Robert Jarzmik
     
  • A lot of functions have been marked __devinit, but they shouldn't, because they
    are needed for bbt_scan. While I believe the whole MX23 handling should be done
    entirely different, I am missing the resources to fix it. So, let's have at least
    the annotations correct.

    Signed-off-by: Wolfram Sang
    Signed-off-by: Artem Bityutskiy
    Signed-off-by: David Woodhouse

    Wolfram Sang
     
  • phram_setup() is only called from init_phram() which is in .init.text,
    so it must be in the same section to avoid a section mismatch warning.

    Signed-off-by: Ryosuke Saito
    Signed-off-by: Artem Bityutskiy
    Signed-off-by: David Woodhouse

    Ryosuke Saito
     
  • Initialization of 'erase_info->fail_addr' to MTD_FAIL_ADDR_UNKNOWN prior
    erase operation is duplicated accross several MTD drivers, and also taken
    care of by some MTD users as well.

    Harmonize it: initialize 'fail_addr' within 'mtd_erase()' interface.

    Signed-off-by: Shmulik Ladkani
    Signed-off-by: Artem Bityutskiy
    Signed-off-by: David Woodhouse

    Shmulik Ladkani
     
  • With onfi a flash is organized into one or more logical units (LUNs).
    A logical unit (LUN) is the minimum unit that can independently execute
    commands and report status.

    Mtd does not exploit LUN, so make it see a big single flash where size is
    lun_size * number_of_lun.

    Without this patch MT29F8G08ADBDAH4 size is 512MiB instead of 1GiB.

    Artem: split long line on 2 shorter ones.

    Signed-off-by: Matthieu Castet
    Acked-by: Florian Fainelli
    Signed-off-by: Artem Bityutskiy
    Signed-off-by: David Woodhouse

    Matthieu CASTET
     
  • major == 0 allocates dynamic major, not major == -1

    Signed-off-by: Maxim Levitsky
    Signed-off-by: Artem Bityutskiy
    Signed-off-by: David Woodhouse

    Maxim Levitsky
     
  • This patch adds support to configure the SPEAr SMI driver via
    device-tree instead of platform_data.

    Signed-off-by: Stefan Roese
    Signed-off-by: Artem Bityutskiy
    Signed-off-by: David Woodhouse

    Stefan Roese
     
  • Additionally, after failing in mtd_device_parse_register(), the driver
    unmap/free code is now executed.

    Signed-off-by: Stefan Roese
    Signed-off-by: Artem Bityutskiy
    Signed-off-by: David Woodhouse

    Stefan Roese
     
  • This patch adds support to configure the FSMC NAND driver (used amongst
    others on SPEAr platforms) via device-tree instead of platform_data.

    Signed-off-by: Stefan Roese
    Signed-off-by: Artem Bityutskiy
    Signed-off-by: David Woodhouse

    Stefan Roese
     
  • doc_probe_device() is only called from docg3_probe() which is in .init.text,
    so it must be in the same section to avoid a section mismatch warning.

    Signed-off-by: Ryosuke Saito
    Signed-off-by: Artem Bityutskiy
    Signed-off-by: David Woodhouse

    Ryosuke Saito
     
  • This patch removes the sparse below warnings and errors for nand/fsmc driver
    /root/vipin/spear/kernel/3.3/linux-3.3/drivers/mtd/nand/fsmc_nand.c:363:31:
    warning: incorrect type in initializer (different address spaces)
    /root/vipin/spear/kernel/3.3/linux-3.3/drivers/mtd/nand/fsmc_nand.c:363:31:
    expected struct fsmc_regs *regs
    /root/vipin/spear/kernel/3.3/linux-3.3/drivers/mtd/nand/fsmc_nand.c:363:31:
    got void [noderef] *regs_va

    [...]

    Signed-off-by: Vipin Kumar
    Signed-off-by: Artem Bityutskiy
    Signed-off-by: David Woodhouse

    Vipin Kumar
     
  • The fsmc_nand driver uses cpu to read/write onto the device. This is inefficient
    because of two reasons
    - the cpu gets locked on AHB bus while reading from NAND
    - the cpu is unnecessarily used when dma can do the job

    This patch adds the support for accessing the device through DMA

    Signed-off-by: Vipin Kumar
    Reviewed-by: Viresh Kumar
    Signed-off-by: Artem Bityutskiy
    Signed-off-by: David Woodhouse

    Vipin Kumar
     
  • The default way of accessing nand device is using the nand width. This means
    that 8bit devices are using u8 * and 16bit devices are accessed using u16 *.

    This results in a non-optimal performance since the FSMC is designed to
    translate the normal word accesses into device width based accesses. This patch
    implements read_buf and write_buf callbacks using word by word accesses.

    Signed-off-by: Vipin Kumar
    Reviewed-by: Viresh Kumar
    Signed-off-by: Artem Bityutskiy
    Signed-off-by: David Woodhouse

    Vipin Kumar
     
  • fsmc controller takes time to calculate the bch8 codes and the error offsets.
    The calculate logic checks for completion upto a timeout. This patch adds a
    error print when this timer expires and the ecc or error offsets are not yet
    calculated.

    Signed-off-by: Vipin Kumar
    Reviewed-by: Viresh Kumar
    Signed-off-by: Artem Bityutskiy
    Signed-off-by: David Woodhouse

    Vipin Kumar
     
  • fsmc_nand driver currently uses normal kzalloc, request_mem etc routines. This
    patch replaces these routines with devm_kzalloc and devm_request_mem_region etc.
    Consequently, the error and driver removal scenarios are curtailed.

    Signed-off-by: Vipin Kumar
    Reviewed-by: Viresh Kumar
    Signed-off-by: Artem Bityutskiy
    Signed-off-by: David Woodhouse

    Vipin Kumar
     
  • FSMC controllers provide registers to program the required timing values for
    attached NAND device. The timing values used until now are relaxed and should
    work for all devices.

    Although, for read/write performance improvements, the fsmc nand driver should
    accept nand timings as a platform data and program the timing parameters into
    fsmc registers accordingly.

    This patch implements this modification. Additionally, it programs the default
    timing parameters if these are not passed via platform data.

    Signed-off-by: Vipin Kumar
    Signed-off-by: Artem Bityutskiy
    Signed-off-by: David Woodhouse

    Vipin Kumar
     
  • Signed-off-by: Shiraz Hashim
    Signed-off-by: Artem Bityutskiy
    Signed-off-by: David Woodhouse

    Shiraz Hashim
     
  • Ideally, the block should have 0xff written on the bad block position. Any value
    other than 0xff implies a bad block. In practical situations, there can be
    bit flips in the oob area as well which means that a block with 0x7f being read
    at bad block position may imply a bad block but it is infact only a bit flip in
    the bad block byte.

    To resolve this problem, the block is marked as good if number of high bits is
    greater than or equal to badblockbits (initialized to 7)

    Signed-off-by: Vipin Kumar
    Signed-off-by: Artem Bityutskiy
    Signed-off-by: David Woodhouse

    Vipin Kumar