• Gustavo Pimentel's avatar
    dmaengine: Add Synopsys eDMA IP version 0 support · 7e4b8a4f
    Gustavo Pimentel authored
    Add support for the eDMA IP version 0 driver for both register maps (legacy
    and unroll).
    
    The legacy register mapping was the initial implementation, which consisted
    in having all registers belonging to channels multiplexed, which could be
    change anytime (which could led a race-condition) by view port register
    (access to only one channel available each time).
    
    This register mapping is not very effective and efficient in a multithread
    environment, which has led to the development of unroll registers mapping,
    which consists of having all channels registers accessible any time by
    spreading all channels registers by an offset between them.
    
    This version supports a maximum of 16 independent channels (8 write +
    8 read), which can run simultaneously.
    
    Implements a scatter-gather transfer through a linked list, where the size
    of linked list depends on the allocated memory divided equally among all
    channels.
    
    Each linked list descriptor can transfer from 1 byte to 4 Gbytes and is
    alignmented to DWORD.
    
    Both SAR (Source Address Register) and DAR (Destination Address Register)
    are alignmented to byte.
    Signed-off-by: default avatarGustavo Pimentel <gustavo.pimentel@synopsys.com>
    Cc: Vinod Koul <vkoul@kernel.org>
    Cc: Dan Williams <dan.j.williams@intel.com>
    Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Cc: Russell King <rmk+kernel@armlinux.org.uk>
    Cc: Joao Pinto <jpinto@synopsys.com>
    Signed-off-by: default avatarVinod Koul <vkoul@kernel.org>
    7e4b8a4f
dw-edma-v0-core.c 8.42 KB