25 May, 2010

14 commits

  • Commit 58f9b0b02414062eaff46716bc04b47d7e79add5, "of: eliminate
    of_device->node and dev_archdata->{of,prom}_node" changed the location
    of the device_node pointer. Most drivers were converted to the new
    location, but the xilinx_spi_of driver was missed and now fails to
    compile.

    This patch fixes up the xilinx_spi_of driver to use the new location.

    Signed-off-by: Grant Likely

    Grant Likely
     
  • Grant Likely
     
  • Computation of the clock prescaler value returned bogus results if
    the requested SPI clock was impossible to set. It now sets either
    the maximum or minimum clock frequency, as appropriate.

    Signed-off-by: Thomas Koeller
    Signed-off-by: Grant Likely

    Thomas Koeller
     
  • A number of files in drivers/spi fail checkincludes.pl due to the double
    include of .

    The first include is needed to get the struct spi_bitbang definition and
    the spi_bitbang_* function prototypes.

    The second include happens after defining EXPAND_BITBANG_TXRX to get the
    inlined bitbang_txrx_* utility functions.

    The header is also included by a number of other
    spi drivers, as well as some arch/ code, in order to use struct spi_bitbang
    and the associated functions.

    To fix the double include, and remove any potential confusion about it, move
    the inlined bitbang_txrx_* functions to a new private header in drivers/spi
    and also remove the need to define EXPAND_BITBANG_TXRX.

    Signed-off-by: H Hartley Sweeten
    Signed-off-by: Grant Likely

    hartleys
     
  • Signed-off-by: John Rigby
    Signed-off-by: Anatolij Gustschin
    Signed-off-by: Grant Likely

    Anatolij Gustschin
     
  • This patch adds an SPI master driver for the Cirrus EP93xx SPI controller found
    in EP93xx chips.

    Signed-off-by: Mika Westerberg
    Signed-off-by: H Hartley Sweeten
    Acked-by: H Hartley Sweeten
    Signed-off-by: Grant Likely

    Mika Westerberg
     
  • Check spi->chip_select for range before use.

    Signed-off-by: Scott Ellis
    Signed-off-by: Grant Likely

    Scott Ellis
     
  • Turbo mode allows to read data to shift register when rx-buffer
    is full thus improving the perfomance. This feature is available
    for RX-only mode.

    In PIO turbo mode when the penultimate word is available
    in RX-buffer the controller should be disabled before reading data
    to prevent the next transaction triggering. The controller itself
    handles the last word to be correctly loaded to shift-register and
    then transferred to RX-buffer.

    The turbo mode is enabled by setting turbo_mode parameter to 1.
    This parameter is a part of omap2_mcspi_device_config structure
    which is passed through the spi_device controller_data pointer.

    Signed-off-by: Roman Tereshonkov
    Signed-off-by: Grant Likely

    Roman Tereshonkov
     
  • The value 160 has been obtained as optimal in testing it for
    wl1271 which use spi for communication.
    In some sense this change might also influence on other spi devices
    connected to omap2_mcspi controller.

    Signed-off-by: Roman Tereshonkov
    Signed-off-by: Grant Likely

    Roman Tereshonkov
     
  • This fix prevents queue being marked as "stopped", if data exists
    in the queue list.

    Signed-off-by: Grzegorz Sygieda
    Signed-off-by: Lukasz Baj
    Signed-off-by: Linus Walleij
    Signed-off-by: Grant Likely

    Grzegorz Sygieda
     
  • This adds support for a further ST variant of the PL022 called
    PL023. Some differences in the control registers due to being
    stripped down to SPI mode only, and a new clock feedback sample
    delay config setting is available.

    Signed-off-by: Linus Walleij
    Signed-off-by: Grant Likely

    Linus Walleij
     
  • The PL022 SPI driver did not cleanly separate between the
    original unmodified ARM version and the ST Microelectronics
    versions. Split this more cleanly and fix some whitespace
    moaning from checkpatch at the same time.

    Signed-off-by: Linus Walleij
    Signed-off-by: Grant Likely

    Linus Walleij
     
  • This fixes a typo were map_tx_dma is used instead of
    map_rx_dma, casing the driver to unmap rx_dma when it
    shouldn't.

    Signed-off-by: Joakim Tjernlund
    Acked-by: Anton Vorontsov
    Signed-off-by: Grant Likely

    Joakim Tjernlund
     
  • QE mode uses Little Endian so words > 8 bits are byte swapped.
    Workaround this by always enforcing wordsize 8 for words
    > 8 bits. Unfortunately this will not work for LSB transfers
    where wordsize is > 8 bits so disable these for now.

    Also move the different quirks into its own function to keep
    mpc8xxx_spi_setup_transfer() sane.

    Signed-off-by: Joakim Tjernlund
    Acked-by: Anton Vorontsov
    Signed-off-by: Grant Likely

    Joakim Tjernlund
     

22 May, 2010

4 commits

  • tx_dma/rx_dma are already set to a dummy buffer when no
    tx/rx buffer and t->tx_dma/t->rx_dma does not contain a dma
    address, but NULL.
    This may lead to corruption of kernel memory. Fix this by
    leaving tx_dma/rx_dma alone.

    Do not INIT_TX_RX while controller is enabled, this is bad according
    to the MPC8321 manual.

    Signed-off-by: Joakim Tjernlund
    Acked-by: Anton Vorontsov
    Signed-off-by: Grant Likely

    Joakim Tjernlund
     
  • Merging in current state of Linus' tree to deal with merge conflicts and
    build failures in vio.c after merge.

    Conflicts:
    drivers/i2c/busses/i2c-cpm.c
    drivers/i2c/busses/i2c-mpc.c
    drivers/net/gianfar.c

    Also fixed up one line in arch/powerpc/kernel/vio.c to use the
    correct node pointer.

    Signed-off-by: Grant Likely

    Grant Likely
     
  • .name, .match_table and .owner are duplicated in both of_platform_driver
    and device_driver. This patch is a removes the extra copies from struct
    of_platform_driver and converts all users to the device_driver members.

    This patch is a pretty mechanical change. The usage model doesn't change
    and if any drivers have been missed, or if anything has been fixed up
    incorrectly, then it will fail with a compile time error, and the fixup
    will be trivial. This patch looks big and scary because it touches so
    many files, but it should be pretty safe.

    Signed-off-by: Grant Likely
    Acked-by: Sean MacLennan

    Grant Likely
     
  • * 'omap-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6: (113 commits)
    omap4: Add support for i2c init
    omap: Fix i2c platform init code for omap4
    OMAP2 clock: fix recursive spinlock attempt when CONFIG_CPU_FREQ=y
    OMAP powerdomain, hwmod, omap_device: add some credits
    OMAP4 powerdomain: Support LOWPOWERSTATECHANGE for powerdomains
    OMAP3 clock: add support for setting the divider for sys_clkout2 using clk_set_rate
    OMAP4 powerdomain: Fix pwrsts flags for ALWAYS ON domains
    OMAP: timers: Fix clock source names for OMAP4
    OMAP4 clock: Support clk_set_parent
    OMAP4: PRCM: Add offset defines for all CM registers
    OMAP4: PRCM: Add offset defines for all PRM registers
    OMAP4: PRCM: Remove duplicate definition of base addresses
    OMAP4: PRM: Remove MPU internal code name and apply PRCM naming convention
    OMAP4: CM: Remove non-functional registers in ES1.0
    OMAP: hwmod: Replace WARN by pr_warning for clockdomain check
    OMAP: hwmod: Rename hwmod name for the MPU
    OMAP: hwmod: Do not exit the iteration if one clock init failed
    OMAP: hwmod: Replace WARN by pr_warning if clock lookup failed
    OMAP: hwmod: Remove IS_ERR check with omap_clk_get_by_name return value
    OMAP: hwmod: Fix wrong pointer iteration in oh->slaves
    ...

    Linus Torvalds
     

21 May, 2010

3 commits

  • Tony Lindgren
     
  • Change dependency to ARCH_OMAP2PLUS to allow systems based on
    omap24xx, omap34xx or omap44xx

    Cc: spi-devel-general@lists.sourceforge.net
    Signed-off-by: Syed Rafiuddin
    Signed-off-by: Abraham Arce
    Signed-off-by: Tony Lindgren

    Syed Rafiuddin
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (44 commits)
    vlynq: make whole Kconfig-menu dependant on architecture
    add descriptive comment for TIF_MEMDIE task flag declaration.
    EEPROM: max6875: Header file cleanup
    EEPROM: 93cx6: Header file cleanup
    EEPROM: Header file cleanup
    agp: use NULL instead of 0 when pointer is needed
    rtc-v3020: make bitfield unsigned
    PCI: make bitfield unsigned
    jbd2: use NULL instead of 0 when pointer is needed
    cciss: fix shadows sparse warning
    doc: inode uses a mutex instead of a semaphore.
    uml: i386: Avoid redefinition of NR_syscalls
    fix "seperate" typos in comments
    cocbalt_lcdfb: correct sections
    doc: Change urls for sparse
    Powerpc: wii: Fix typo in comment
    i2o: cleanup some exit paths
    Documentation/: it's -> its where appropriate
    UML: Fix compiler warning due to missing task_struct declaration
    UML: add kernel.h include to signal.c
    ...

    Linus Torvalds
     

19 May, 2010

1 commit


11 May, 2010

4 commits


28 Apr, 2010

4 commits


23 Apr, 2010

1 commit


30 Mar, 2010

1 commit

  • …it slab.h inclusion from percpu.h

    percpu.h is included by sched.h and module.h and thus ends up being
    included when building most .c files. percpu.h includes slab.h which
    in turn includes gfp.h making everything defined by the two files
    universally available and complicating inclusion dependencies.

    percpu.h -> slab.h dependency is about to be removed. Prepare for
    this change by updating users of gfp and slab facilities include those
    headers directly instead of assuming availability. As this conversion
    needs to touch large number of source files, the following script is
    used as the basis of conversion.

    http://userweb.kernel.org/~tj/misc/slabh-sweep.py

    The script does the followings.

    * Scan files for gfp and slab usages and update includes such that
    only the necessary includes are there. ie. if only gfp is used,
    gfp.h, if slab is used, slab.h.

    * When the script inserts a new include, it looks at the include
    blocks and try to put the new include such that its order conforms
    to its surrounding. It's put in the include block which contains
    core kernel includes, in the same order that the rest are ordered -
    alphabetical, Christmas tree, rev-Xmas-tree or at the end if there
    doesn't seem to be any matching order.

    * If the script can't find a place to put a new include (mostly
    because the file doesn't have fitting include block), it prints out
    an error message indicating which .h file needs to be added to the
    file.

    The conversion was done in the following steps.

    1. The initial automatic conversion of all .c files updated slightly
    over 4000 files, deleting around 700 includes and adding ~480 gfp.h
    and ~3000 slab.h inclusions. The script emitted errors for ~400
    files.

    2. Each error was manually checked. Some didn't need the inclusion,
    some needed manual addition while adding it to implementation .h or
    embedding .c file was more appropriate for others. This step added
    inclusions to around 150 files.

    3. The script was run again and the output was compared to the edits
    from #2 to make sure no file was left behind.

    4. Several build tests were done and a couple of problems were fixed.
    e.g. lib/decompress_*.c used malloc/free() wrappers around slab
    APIs requiring slab.h to be added manually.

    5. The script was run on all .h files but without automatically
    editing them as sprinkling gfp.h and slab.h inclusions around .h
    files could easily lead to inclusion dependency hell. Most gfp.h
    inclusion directives were ignored as stuff from gfp.h was usually
    wildly available and often used in preprocessor macros. Each
    slab.h inclusion directive was examined and added manually as
    necessary.

    6. percpu.h was updated not to include slab.h.

    7. Build test were done on the following configurations and failures
    were fixed. CONFIG_GCOV_KERNEL was turned off for all tests (as my
    distributed build env didn't work with gcov compiles) and a few
    more options had to be turned off depending on archs to make things
    build (like ipr on powerpc/64 which failed due to missing writeq).

    * x86 and x86_64 UP and SMP allmodconfig and a custom test config.
    * powerpc and powerpc64 SMP allmodconfig
    * sparc and sparc64 SMP allmodconfig
    * ia64 SMP allmodconfig
    * s390 SMP allmodconfig
    * alpha SMP allmodconfig
    * um on x86_64 SMP allmodconfig

    8. percpu.h modifications were reverted so that it could be applied as
    a separate patch and serve as bisection point.

    Given the fact that I had only a couple of failures from tests on step
    6, I'm fairly confident about the coverage of this conversion patch.
    If there is a breakage, it's likely to be something in one of the arch
    headers which should be easily discoverable easily on most builds of
    the specific arch.

    Signed-off-by: Tejun Heo <tj@kernel.org>
    Guess-its-ok-by: Christoph Lameter <cl@linux-foundation.org>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Lee Schermerhorn <Lee.Schermerhorn@hp.com>

    Tejun Heo
     

19 Mar, 2010

1 commit


16 Mar, 2010

1 commit


11 Mar, 2010

2 commits

  • omap2_mcspi_transfer() gets called in omap2_mcspi_work() when the
    transaction speed_hz or bits_per_word fields are non-zero.

    omap2_mcspi_transfer() does not look at the speed_hz field so
    the override speed value is ignored.

    The code should probably change to one of these options.

    1. Skip the call to omap2_mcsp_transfer() if the only reason was a
    non-zero speed_hz and it's not going to be used.

    2. Use the new speed_hz value provided

    The patch below uses the speed_hz value.

    Signed-off-by: Scott Ellis
    Signed-off-by: Grant Likely

    Scott Ellis
     
  • Check spi->controller_state before dereferencing.

    Shows up NULL here when using spi_alloc_device()/spi_add_device()
    and spi_add_device() fails before spi_setup(). Calling spi_dev_put()
    on the leftover spi_device results in the error.

    Signed-off-by: Scott Ellis
    Signed-off-by: Grant Likely

    Scott Ellis
     

08 Mar, 2010

1 commit


02 Mar, 2010

2 commits

  • Conflicts:
    arch/arm/plat-omap/Kconfig

    Tony Lindgren
     
  • * 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm: (100 commits)
    ARM: Eliminate decompressor -Dstatic= PIC hack
    ARM: 5958/1: ARM: U300: fix inverted clk round rate
    ARM: 5956/1: misplaced parentheses
    ARM: 5955/1: ep93xx: move timer defines into core.c and document
    ARM: 5954/1: ep93xx: move gpio interrupt support to gpio.c
    ARM: 5953/1: ep93xx: fix broken build of clock.c
    ARM: 5952/1: ARM: MM: Add ARM_L1_CACHE_SHIFT_6 for handle inside each ARCH Kconfig
    ARM: 5949/1: NUC900 add gpio virtual memory map
    ARM: 5948/1: Enable timer0 to time4 clock support for nuc910
    ARM: 5940/2: ARM: MMCI: remove custom DBG macro and printk
    ARM: make_coherent(): fix problems with highpte, part 2
    MM: Pass a PTE pointer to update_mmu_cache() rather than the PTE itself
    ARM: 5945/1: ep93xx: include correct irq.h in core.c
    ARM: 5933/1: amba-pl011: support hardware flow control
    ARM: 5930/1: Add PKMAP area description to memory.txt.
    ARM: 5929/1: Add checks to detect overlap of memory regions.
    ARM: 5928/1: Change type of VMALLOC_END to unsigned long.
    ARM: 5927/1: Make delimiters of DMA area globally visibly.
    ARM: 5926/1: Add "Virtual kernel memory..." printout.
    ARM: 5920/1: OMAP4: Enable L2 Cache
    ...

    Fix up trivial conflict in arch/arm/mach-mx25/clock.c

    Linus Torvalds
     

27 Feb, 2010

1 commit