mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 18:51:56 -04:00
rapidio/tsi721_dma: rework scatter-gather list handling
Rework Tsi721 RapidIO DMA engine support to allow handling data scatter/gather lists longer than number of hardware buffer descriptors in the DMA channel's descriptor list. The current implementation of Tsi721 DMA transfers requires that number of entries in a scatter/gather list provided by a caller of dmaengine_prep_rio_sg() should not exceed number of allocated hardware buffer descriptors. This patch removes the limitation by processing long scatter/gather lists by sections that can be transferred using hardware descriptor ring of configured size. It also introduces a module parameter "dma_desc_per_channel" to allow run-time configuration of Tsi721 hardware buffer descriptor rings. Signed-off-by: Alexandre Bounine <[email protected]> Cc: Matt Porter <[email protected]> Cc: Andre van Herk <[email protected]> Cc: Stef van Os <[email protected]> Cc: Vinod Koul <[email protected]> Cc: Dan Williams <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
This commit is contained in:
parent
4aff1ce7ad
commit
50835e977b
3 changed files with 394 additions and 355 deletions
|
|
@ -20,13 +20,26 @@ II. Known problems
|
|||
|
||||
None.
|
||||
|
||||
III. To do
|
||||
III. DMA Engine Support
|
||||
|
||||
Add DMA data transfers (non-messaging).
|
||||
Add inbound region (SRIO-to-PCIe) mapping.
|
||||
Tsi721 mport driver supports DMA data transfers between local system memory and
|
||||
remote RapidIO devices. This functionality is implemented according to SLAVE
|
||||
mode API defined by common Linux kernel DMA Engine framework.
|
||||
|
||||
Depending on system requirements RapidIO DMA operations can be included/excluded
|
||||
by setting CONFIG_RAPIDIO_DMA_ENGINE option. Tsi721 miniport driver uses seven
|
||||
out of eight available BDMA channels to support DMA data transfers.
|
||||
One BDMA channel is reserved for generation of maintenance read/write requests.
|
||||
|
||||
If Tsi721 mport driver have been built with RAPIDIO_DMA_ENGINE support included,
|
||||
this driver will accept DMA-specific module parameter:
|
||||
"dma_desc_per_channel" - defines number of hardware buffer descriptors used by
|
||||
each BDMA channel of Tsi721 (by default - 128).
|
||||
|
||||
IV. Version History
|
||||
|
||||
1.1.0 - DMA operations re-worked to support data scatter/gather lists larger
|
||||
than hardware buffer descriptors ring.
|
||||
1.0.0 - Initial driver release.
|
||||
|
||||
V. License
|
||||
|
|
|
|||
Loading…
Reference in a new issue