• Alexandre Bounine's avatar
    rapidio/tsi721_dma: rework scatter-gather list handling · 50835e97
    Alexandre Bounine authored
    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: default avatarAlexandre Bounine <alexandre.bounine@idt.com>
    Cc: Matt Porter <mporter@kernel.crashing.org>
    Cc: Andre van Herk <andre.van.herk@prodrive-technologies.com>
    Cc: Stef van Os <stef.van.os@prodrive-technologies.com>
    Cc: Vinod Koul <vinod.koul@intel.com>
    Cc: Dan Williams <dan.j.williams@intel.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    50835e97
tsi721_dma.c 24 KB