dmaengine: centralize channel allocation, introduce dma_find_channel
authorDan Williams <dan.j.williams@intel.com>
Tue, 6 Jan 2009 18:38:14 +0000 (11:38 -0700)
committerDan Williams <dan.j.williams@intel.com>
Tue, 6 Jan 2009 18:38:14 +0000 (11:38 -0700)
commitbec085134e446577a983f17f57d642a88d1af53b
tree7d29afc53fedc72349ee78112fb71f68ff48ce24
parent6f49a57aa5a0c6d4e4e27c85f7af6c83325a12d1
dmaengine: centralize channel allocation, introduce dma_find_channel

Allowing multiple clients to each define their own channel allocation
scheme quickly leads to a pathological situation.  For memory-to-memory
offload all clients can share a central allocator.

This simply moves the existing async_tx allocator to dmaengine with
minimal fixups:
* async_tx.c:get_chan_ref_by_cap --> dmaengine.c:nth_chan
* async_tx.c:async_tx_rebalance --> dmaengine.c:dma_channel_rebalance
* split out common code from async_tx.c:__async_tx_find_channel -->
  dma_find_channel

Reviewed-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
crypto/async_tx/async_tx.c
drivers/dma/dmaengine.c
include/linux/dmaengine.h