remarkable-linux/drivers/dma
Dan Williams 6f49a57aa5 dmaengine: up-level reference counting to the module level
Simply, if a client wants any dmaengine channel then prevent all dmaengine
modules from being removed.  Once the clients are done re-enable module
removal.

Why?, beyond reducing complication:
1/ Tracking reference counts per-transaction in an efficient manner, as
   is currently done, requires a complicated scheme to avoid cache-line
   bouncing effects.
2/ Per-transaction ref-counting gives the false impression that a
   dma-driver can be gracefully removed ahead of its user (net, md, or
   dma-slave)
3/ None of the in-tree dma-drivers talk to hot pluggable hardware, but
   if such an engine were built one day we still would not need to notify
   clients of remove events.  The driver can simply return NULL to a
   ->prep() request, something that is much easier for a client to handle.

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:14 -07:00
..
dmaengine.c dmaengine: up-level reference counting to the module level 2009-01-06 11:38:14 -07:00
dmatest.c dmaengine: up-level reference counting to the module level 2009-01-06 11:38:14 -07:00
dw_dmac.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
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.c I/OAT: I/OAT version 3.0 support 2008-07-22 17:30:57 -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
ioatdma.h 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
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