1. 25 7月, 2014 1 次提交
  2. 15 7月, 2014 1 次提交
  3. 07 3月, 2012 1 次提交
  4. 18 11月, 2011 1 次提交
    • J
      DMAEngine: Define interleaved transfer request api · b14dab79
      Jassi Brar 提交于
      Define a new api that could be used for doing fancy data transfers
      like interleaved to contiguous copy and vice-versa.
      Traditional SG_list based transfers tend to be very inefficient in
      such cases as where the interleave and chunk are only a few bytes,
      which call for a very condensed api to convey pattern of the transfer.
      This api supports all 4 variants of scatter-gather and contiguous transfer.
      
      Of course, neither can this api help transfers that don't lend to DMA by
      nature, i.e, scattered tiny read/writes with no periodic pattern.
      
      Also since now we support SLAVE channels that might not provide
      device_prep_slave_sg callback but device_prep_interleaved_dma,
      remove the BUG_ON check.
      Signed-off-by: NJassi Brar <jaswinder.singh@linaro.org>
      Acked-by: NBarry Song <Baohua.Song@csr.com>
      [renamed dmaxfer_template to dma_interleaved_template
       did fixup after the enum dma_transfer_merge]
      Signed-off-by: NVinod Koul <vinod.koul@linux.intel.com>
      b14dab79
  5. 27 7月, 2011 1 次提交
  6. 26 5月, 2011 1 次提交
  7. 06 1月, 2009 1 次提交
    • D
      async_tx, dmaengine: document channel allocation and api rework · 28405d8d
      Dan Williams 提交于
      "Wouldn't it be better if the dmaengine layer made sure it didn't pass
      the same channel several times to a client?
      
      I mean, you seem concerned that the memcpy() API should be transparent
      and easy to use, but the whole registration interface is just
      ridiculously complicated..."
      	- Haavard
      
      The dmaengine and async_tx registration/allocation interface is indeed
      needlessly complicated.  This redesign has the following goals:
      
      1/ Simplify reference counting: dma channels are not something one would
         expect to be hotplugged, it should be an exceptional event handled by
         drivers not something clients should be mandated to handle in a
         callback.  The common case channel removal event is 'rmmod <dma driver>',
         which for simplicity should be disallowed if the channel is in use.
      2/ Add an interface for requesting exclusive access to a channel
         suitable to device-to-memory users.
      3/ Convert all memory-to-memory users over to a common allocator, the goal
         here is to not have competing channel allocation schemes.  The only
         competition should be between device-to-memory exclusive allocations and
         the memory-to-memory usage case where channels are shared between
         multiple "clients".
      
      Cc: Haavard Skinnemoen <haavard.skinnemoen@atmel.com>
      Cc: Neil Brown <neilb@suse.de>
      Cc: Jeff Garzik <jeff@garzik.org>
      Reviewed-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NDan Williams <dan.j.williams@intel.com>
      
      28405d8d