1. 08 10月, 2010 21 次提交
  2. 06 10月, 2010 3 次提交
    • S
      dmaengine: Add Freescale i.MX SDMA support · 1ec1e82f
      Sascha Hauer 提交于
      This patch adds support for the Freescale i.MX SDMA engine.
      
      The SDMA engine is a scatter/gather DMA engine which is implemented
      as a seperate coprocessor. SDMA needs its own firmware which is
      requested using the standard request_firmware mechanism. The firmware
      has different entry points for each peripheral type, so drivers
      have to pass the peripheral type to the DMA engine which in turn
      picks the correct firmware entry point from a table contained in
      the firmware image itself.
      The original Freescale code also supports support for transfering
      data to the internal SRAM which needs different entry points to
      the firmware. Support for this is currently not implemented. Also,
      support for the ASRC (asymmetric sample rate converter) is skipped.
      
      I took a very simple approach to implement dmaengine support. Only
      a single descriptor is statically assigned to a each channel. This
      means that transfers can't be queued up but only a single transfer
      is in progress. This simplifies implementation a lot and is sufficient
      for the usual device/memory transfers.
      Signed-off-by: NSascha Hauer <s.hauer@pengutronix.de>
      Reviewed-by: NLinus Walleij <linus.ml.walleij@gmail.com>
      Signed-off-by: NDan Williams <dan.j.williams@intel.com>
      1ec1e82f
    • S
      dmaengine: add wrapper functions for device control functions · 6e3ecaf0
      Sascha Hauer 提交于
      Add wrapper functions around the dma_device->device_control function
      to bring back type safety. Also, add a wrapper function around
      dma_async_tx_descriptor->tx_submit. This is named dmaengine_submit
      instead of dmaengine_tx_submit to get rid of the confusing 'tx' in the
      function name
      Signed-off-by: NSascha Hauer <s.hauer@pengutronix.de>
      Signed-off-by: NDan Williams <dan.j.williams@intel.com>
      6e3ecaf0
    • S
      dmaengine: add possibility for cyclic transfers · 782bc950
      Sascha Hauer 提交于
      Cyclic transfers are useful for audio where a single buffer divided
      in periods has to be transfered endlessly until stopped. After being
      prepared the transfer is started using the dma_async_descriptor->tx_submit
      function. dma_async_descriptor->callback is called after each period.
      The transfer is stopped using the DMA_TERMINATE_ALL callback.
      While being used for cyclic transfers the channel cannot be used
      for other transfer types.
      Signed-off-by: NSascha Hauer <s.hauer@pengutronix.de>
      Cc: Haavard Skinnemoen <haavard.skinnemoen@atmel.com>
      Signed-off-by: NDan Williams <dan.j.williams@intel.com>
      782bc950
  3. 30 9月, 2010 1 次提交
    • L
      dmaengine: driver for the ARM PL080/PL081 PrimeCells v5 · e8689e63
      Linus Walleij 提交于
      This creates a DMAengine driver for the ARM PL080/PL081 PrimeCells
      based on the implementation earlier submitted by Peter Pearse.
      This is working like a charm for memcpy and slave DMA to the PL011
      PrimeCell on the PB11MPCore.
      
      This DMA controller is used in mostly unmodified form in the ARM
      RealView and Versatile platforms, in the ST-Ericsson Nomadik, and
      in the ST SPEAr platform.
      
      It has been converted to use the header from the Samsung PL080
      derivate instead of its own defintions. The Samsungs have a custom
      driver in their mach-* folders though, atleast we can share the
      register definitions.
      
      Cc: Peter Pearse <peter.pearse@arm.com>
      Cc: Ben Dooks <ben-linux@fluff.org>
      Cc: Kukjin Kim <kgene.kim@samsung.com>
      Cc: Alessandro Rubini <rubini@unipv.it>
      Acked-by: NViresh Kumar <viresh.kumar@st.com>
      Signed-off-by: NLinus Walleij <linus.walleij@stericsson.com>
      [GFP_KERNEL to GFP_NOWAIT in pl08x_prep_dma_memcpy]
      Signed-off-by: NDan Williams <dan.j.williams@intel.com>
      e8689e63
  4. 24 9月, 2010 1 次提交
  5. 23 9月, 2010 14 次提交