lkml.org 
[lkml]   [2012]   [Sep]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Subject[RFC PATCH 00/13] DMA Engine support for AM33xx
    Date
    This series adds DMA Engine support for AM33xx, which uses
    an EDMA DMAC. The EDMA DMAC has been previously supported by only
    a private API implementation (much like the situation with OMAP
    DMA) found on the DaVinci family of SoCs.

    There are a mind-boggling number of dependencies for this series:

    - Jon Hunter's OF DMA helpers series
    https://patchwork.kernel.org/patch/1461061/
    https://patchwork.kernel.org/patch/1461051/
    - Patch to address OF DMA helpers naming issues:
    https://patchwork.kernel.org/patch/1477921/
    - EDMA DMA Engine wrapper driver in linux-next
    c2dde5f8f2095d7c623ff3565c1462e190272273
    - EDMA DMA Engine wrapper driver bug fix:
    https://patchwork.kernel.org/patch/1474411/
    - A huge number of patches in linux-next for AM33xx boot
    (too numerous to list)

    The approach taken is similar to how OMAP DMA is being converted to
    DMA Engine support. With the functional EDMA private API already
    existing in mach-davinci/dma.c, we first move that to an ARM common
    area so it can be shared. Adding DT and runtime PM support to the
    private EDMA API implementation allows it to run on AM33xx. AM33xx
    *only* boots using DT so we leverage Jon's generic DT DMA helpers to
    register EDMA DMAC with the of_dma framework and then add support
    for calling the dma_request_slave_channel() API to both the mmc
    and spi drivers.

    What works? Well, with this series we now have MMC and SPI support
    on AM33xx. The only caveat for MMC is that the mmc3 controller has
    its events on the crossbar and is not usable right now.

    This is tested on BeagleBone with a SPI framebuffer driver and SD
    card.

    After this series, the plan is to convert the last in-tree user
    of the private EDMA API (davinci-pcm/mcasp) and then eliminate
    the private EDMA API by folding its functionality into
    drivers/dma/edma.c.

    TODO:
    add AM33xx crossbar support to the private EDMA API
    (any EDMA events on the crossbar are not supported)

    Matt Porter (13):
    ARM: davinci: move private EDMA API to arm/common
    ARM: edma: remove unused transfer controller handlers
    ARM: edma: add DT and runtime PM support for AM335x
    dmaengine: edma: enable build for AM335x
    dma: Add TI EDMA device tree binding
    ARM: omap: add hsmmc am33xx specific init
    mmc: omap_hsmmc: dma_request_slave_channel() support for DT platforms
    mmc: omap_hsmmc: limit max_segs with the EDMA DMAC
    mmc: omap_hsmmc: add generic DMA request support to the DT binding
    spi: omap2-mcspi: dma_request_slave_channel() support for DT
    platforms
    spi: omap2-mcspi: add generic DMA request support to the DT binding
    ARM: dts: add am33xx EDMA support
    Documentation: add schedule for removing private EDMA API

    Documentation/devicetree/bindings/dma/ti-edma.txt | 49 +
    .../devicetree/bindings/mmc/ti-omap-hsmmc.txt | 25 +-
    Documentation/devicetree/bindings/spi/omap-spi.txt | 27 +-
    Documentation/feature-removal-schedule.txt | 10 +
    arch/arm/Kconfig | 1 +
    arch/arm/boot/dts/am33xx.dtsi | 46 +
    arch/arm/common/Kconfig | 3 +
    arch/arm/common/Makefile | 1 +
    arch/arm/common/edma.c | 1779 ++++++++++++++++++++
    arch/arm/include/asm/mach/edma.h | 267 +++
    arch/arm/mach-davinci/Makefile | 2 +-
    arch/arm/mach-davinci/devices.c | 3 +-
    arch/arm/mach-davinci/dm355.c | 2 +-
    arch/arm/mach-davinci/dm365.c | 2 +-
    arch/arm/mach-davinci/dm644x.c | 2 +-
    arch/arm/mach-davinci/dm646x.c | 2 +-
    arch/arm/mach-davinci/dma.c | 1588 -----------------
    arch/arm/mach-davinci/include/mach/asp.h | 2 +-
    arch/arm/mach-davinci/include/mach/da8xx.h | 3 +-
    arch/arm/mach-davinci/include/mach/edma.h | 267 ---
    arch/arm/mach-davinci/include/mach/spi.h | 2 +-
    arch/arm/mach-omap2/hsmmc.c | 7 +-
    arch/arm/plat-omap/Kconfig | 1 +
    drivers/dma/Kconfig | 2 +-
    drivers/dma/edma.c | 2 +-
    drivers/mmc/host/omap_hsmmc.c | 26 +-
    drivers/spi/spi-omap2-mcspi.c | 68 +-
    27 files changed, 2296 insertions(+), 1893 deletions(-)
    create mode 100644 Documentation/devicetree/bindings/dma/ti-edma.txt
    create mode 100644 arch/arm/common/edma.c
    create mode 100644 arch/arm/include/asm/mach/edma.h
    delete mode 100644 arch/arm/mach-davinci/dma.c
    delete mode 100644 arch/arm/mach-davinci/include/mach/edma.h

    --
    1.7.9.5



    \
     
     \ /
      Last update: 2012-09-20 17:21    [W:0.034 / U:0.008 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site