1. 30 3月, 2013 1 次提交
  2. 28 2月, 2013 1 次提交
    • A
      dmaengine: dw_dmac: move to generic DMA binding · f9c6a655
      Arnd Bergmann 提交于
      The original device tree binding for this driver, from Viresh Kumar
      unfortunately conflicted with the generic DMA binding, and did not allow
      to completely seperate slave device configuration from the controller.
      
      This is an attempt to replace it with an implementation of the generic
      binding, but it is currently completely untested, because I do not have
      any hardware with this particular controller.
      
      The patch applies on top of the slave-dma tree, which contains both the base
      support for the generic DMA binding, as well as the earlier attempt from
      Viresh. Both of these are currently not merged upstream however.
      
      This version incorporates feedback from Viresh Kumar, Andy Shevchenko
      and Russell King.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Acked-by: NViresh Kumar <viresh.kumar@linaro.org>
      Acked-by: NAndy Shevchenko <andriy.shevchenko@linux.intel.com>
      Cc: Vinod Koul <vinod.koul@linux.intel.com>
      Cc: devicetree-discuss@lists.ozlabs.org
      Cc: linux-arm-kernel@lists.infradead.org
      Signed-off-by: NVinod Koul <vinod.koul@intel.com>
      f9c6a655
  3. 28 1月, 2013 3 次提交
  4. 21 1月, 2013 1 次提交
  5. 12 1月, 2013 2 次提交
  6. 08 1月, 2013 2 次提交
  7. 26 10月, 2012 1 次提交
  8. 27 9月, 2012 4 次提交
  9. 26 7月, 2012 1 次提交
  10. 16 7月, 2012 1 次提交
  11. 21 6月, 2012 1 次提交
  12. 13 3月, 2012 1 次提交
  13. 22 2月, 2012 2 次提交
  14. 28 11月, 2011 1 次提交
    • V
      dmaengine/dw_dmac: Reconfigure interrupt and chan_cfg register on resume · 61e183f8
      Viresh Kumar 提交于
      In S2R all DMA registers are reset by hardware and thus they are required to be
      reprogrammed. The channels which aren't reprogrammed are channel configuration
      and interrupt enable registers, which are currently programmed at chan_alloc
      time.
      
      This patch creates another routine to initialize a channel. It will try to
      initialize channel on every dwc_dostart() call. If channel is already
      initialised then it simply returns, otherwise it configures registers.
      
      This routine will also initialize registers on wakeup from S2R, as we mark
      channels as uninitialized on suspend.
      Signed-off-by: NViresh Kumar <viresh.kumar@st.com>
      Signed-off-by: NVinod Koul <vinod.koul@linux.intel.com>
      61e183f8
  15. 25 5月, 2011 1 次提交
  16. 13 5月, 2011 1 次提交
  17. 07 3月, 2011 3 次提交
  18. 09 9月, 2009 1 次提交
  19. 02 4月, 2009 1 次提交
  20. 19 2月, 2009 1 次提交
  21. 09 7月, 2008 1 次提交
    • H
      dmaengine: Driver for the Synopsys DesignWare DMA controller · 3bfb1d20
      Haavard Skinnemoen 提交于
      This adds a driver for the Synopsys DesignWare DMA controller (aka
      DMACA on AVR32 systems.) This DMA controller can be found integrated
      on the AT32AP7000 chip and is primarily meant for peripheral DMA
      transfer, but can also be used for memory-to-memory transfers.
      
      This patch is based on a driver from David Brownell which was based on
      an older version of the DMA Engine framework. It also implements the
      proposed extensions to the DMA Engine API for slave DMA operations.
      
      The dmatest client shows no problems, but there may still be room for
      improvement performance-wise. DMA slave transfer performance is
      definitely "good enough"; reading 100 MiB from an SD card running at ~20
      MHz yields ~7.2 MiB/s average transfer rate.
      
      Full documentation for this controller can be found in the Synopsys
      DW AHB DMAC Databook:
      
      http://www.synopsys.com/designware/docs/iip/DW_ahb_dmac/latest/doc/dw_ahb_dmac_db.pdf
      
      The controller has lots of implementation options, so it's usually a
      good idea to check the data sheet of the chip it's intergrated on as
      well. The AT32AP7000 data sheet can be found here:
      
      http://www.atmel.com/dyn/products/datasheets.asp?family_id=682
      
      
      Changes since v4:
        * Use client_count instead of dma_chan_is_in_use()
        * Add missing include
        * Unmap buffers unless client told us not to
      
      Changes since v3:
        * Update to latest DMA engine and DMA slave APIs
        * Embed the hw descriptor into the sw descriptor
        * Clean up and update MODULE_DESCRIPTION, copyright date, etc.
      
      Changes since v2:
        * Dequeue all pending transfers in terminate_all()
        * Rename dw_dmac.h -> dw_dmac_regs.h
        * Define and use controller-specific dma_slave data
        * Fix up a few outdated comments
        * Define hardware registers as structs (doesn't generate better
          code, unfortunately, but it looks nicer.)
        * Get number of channels from platform_data instead of hardcoding it
          based on CONFIG_WHATEVER_CPU.
        * Give slave clients exclusive access to the channel
      
      Acked-by: Maciej Sosnowski <maciej.sosnowski@intel.com>,
      Signed-off-by: NHaavard Skinnemoen <haavard.skinnemoen@atmel.com>
      Signed-off-by: NDan Williams <dan.j.williams@intel.com>
      3bfb1d20