14 Jan, 2006

3 commits

  • This is the core of a small SPI framework, implementing the model of a
    queue of messages which complete asynchronously (with thin synchronous
    wrappers on top).

    - It's still less than 2KB of ".text" (ARM). If there's got to be a
    mid-layer for something so simple, that's the right size budget. :)

    - The guts use board-specific SPI device tables to build the driver
    model tree. (Hardware probing is rarely an option.)

    - This version of Kconfig includes no drivers. At this writing there
    are two known master controller drivers (PXA/SSP, OMAP MicroWire)
    and three protocol drivers (CS8415a, ADS7846, DataFlash) with LKML
    mentions of other drivers in development.

    - No userspace API. There are several implementations to compare.
    Implement them like any other driver, and bind them with sysfs.

    The changes from last version posted to LKML (on 11-Nov-2005) are minor,
    and include:

    - One bugfix (removes a FIXME), with the visible effect of making device
    names be "spiB.C" where B is the bus number and C is the chipselect.

    - The "caller provides DMA mappings" mechanism now has kerneldoc, for
    DMA drivers that want to be fancy.

    - Hey, the framework init can be subsys_init. Even though board init
    logic fires earlier, at arch_init ... since the framework init is
    for driver support, and the board init support uses static init.

    - Various additional spec/doc clarifications based on discussions
    with other folk. It adds a brief "thank you" at the end, for folk
    who've helped nudge this framework into existence.

    As I've said before, I think that "protocol tweaking" is the main support
    that this driver framework will need to evolve.

    From: Mark Underwood

    Update the SPI framework to remove a potential priority inversion case by
    reverting to kmalloc if the pre-allocated DMA-safe buffer isn't available.

    Signed-off-by: David Brownell
    Signed-off-by: Andrew Morton
    Signed-off-by: Greg Kroah-Hartman

    David Brownell
     
  • On PowerPC, we want to be able to provide an AT_PLATFORM aux table
    entry to userspace, so that glibc can choose optimized libraries for
    the processor we're running on. Unfortunately that would be the 21st
    aux table entry on powerpc, meaning that the aux table including the
    terminating null entry would overflow the mm->saved_auxv[] array,
    leading to userland programs segfaulting.

    This increases the size of the mm->saved_auxv array to be large enough
    to accommodate an AT_PLATFORM entry on powerpc.

    Signed-off-by: Paul Mackerras
    Signed-off-by: Linus Torvalds

    Paul Mackerras
     
  • There's a lack of parenthesis in fs/ufs/utils.h, so instead of the 512th
    byte of buffer, the usb2 pointer will point to the nth structure of type
    ufs_super_block_second.

    This can cause a mount-time oops if you're unlucky (especially with
    DEBUG_PAGEALLOC, which is how Alexey Dobriyan saw this problem)

    Signed-off-by: Evgeniy Dushistov
    Acked-by: Alexey Dobriyan
    Signed-off-by: Linus Torvalds

    Evgeniy
     

13 Jan, 2006

37 commits