1
linux/drivers/dma
Dan Williams 59b5ec2144 dmaengine: introduce dma_request_channel and private channels
This interface is primarily for device-to-memory clients which need to
search for dma channels with platform-specific characteristics.  The
prototype is:

struct dma_chan *dma_request_channel(dma_cap_mask_t mask,
                                     dma_filter_fn filter_fn,
                                     void *filter_param);

When the optional 'filter_fn' parameter is set to NULL
dma_request_channel simply returns the first channel that satisfies the
capability mask.  Otherwise, when the mask parameter is insufficient for
specifying the necessary channel, the filter_fn routine can be used to
disposition the available channels in the system. The filter_fn routine
is called once for each free channel in the system.  Upon seeing a
suitable channel filter_fn returns DMA_ACK which flags that channel to
be the return value from dma_request_channel.  A channel allocated via
this interface is exclusive to the caller, until dma_release_channel()
is called.

To ensure that all channels are not consumed by the general-purpose
allocator the DMA_PRIVATE capability is provided to exclude a dma_device
from general-purpose (memory-to-memory) consideration.

Reviewed-by: Andrew Morton <akpm@linux-foundation.org>
Acked-by: Maciej Sosnowski <maciej.sosnowski@intel.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
2009-01-06 11:38:15 -07:00
..
dmaengine.c dmaengine: introduce dma_request_channel and private channels 2009-01-06 11:38:15 -07:00
dmatest.c dmaengine: up-level reference counting to the module level 2009-01-06 11:38:14 -07:00
dw_dmac_regs.h dmaengine: Driver for the Synopsys DesignWare DMA controller 2008-07-08 11:59:42 -07:00
dw_dmac.c dmaengine: up-level reference counting to the module level 2009-01-06 11:38:14 -07:00
fsldma.c fsldma: allow Freescale Elo DMA driver to be compiled as a module 2008-09-26 17:00:11 -07:00
fsldma.h fsldma: allow Freescale Elo DMA driver to be compiled as a module 2008-09-26 17:00:11 -07:00
ioat_dca.c I/OAT: I/OAT version 3.0 support 2008-07-22 17:30:57 -07:00
ioat_dma.c ioat: wait for self-test completion 2008-12-03 17:16:55 -07:00
ioat.c I/OAT: I/OAT version 3.0 support 2008-07-22 17:30:57 -07:00
ioatdma_hw.h I/OAT: I/OAT version 3.0 support 2008-07-22 17:30:57 -07:00
ioatdma_registers.h I/OAT: I/OAT version 3.0 support 2008-07-22 17:30:57 -07:00
ioatdma.h I/OAT: I/OAT version 3.0 support 2008-07-22 17:30:57 -07:00
iop-adma.c dmaengine: remove dependency on async_tx 2009-01-05 18:10:19 -07:00
iovlock.c [2/4] I/OAT: fix dma_pin_iovec_pages() error handling 2008-11-10 15:00:56 -08:00
Kconfig dmaengine: remove dependency on async_tx 2009-01-05 18:10:19 -07:00
Makefile dmaengine: Driver for the Synopsys DesignWare DMA controller 2008-07-08 11:59:42 -07:00
mv_xor.c dmaengine: remove dependency on async_tx 2009-01-05 18:10:19 -07:00
mv_xor.h dmaengine: DMA engine driver for Marvell XOR engine 2008-07-08 11:58:36 -07:00