1. 07 1月, 2009 15 次提交
  2. 06 1月, 2009 2 次提交
    • D
      dmaengine: remove dependency on async_tx · 07f2211e
      Dan Williams 提交于
      async_tx.ko is a consumer of dma channels.  A circular dependency arises
      if modules in drivers/dma rely on common code in async_tx.ko.  It
      prevents either module from being unloaded.
      
      Move dma_wait_for_async_tx and async_tx_run_dependencies to dmaeninge.o
      where they should have been from the beginning.
      Reviewed-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NDan Williams <dan.j.williams@intel.com>
      
      07f2211e
    • 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
  3. 05 1月, 2009 23 次提交