• Serge Semin's avatar
    dmaengine: dw: Introduce max burst length hw config · ca7f2851
    Serge Semin authored
    IP core of the DW DMA controller may be synthesized with different
    max burst length of the transfers per each channel. According to Synopsis
    having the fixed maximum burst transactions length may provide some
    performance gain. At the same time setting up the source and destination
    multi size exceeding the max burst length limitation may cause a serious
    problems. In our case the DMA transaction just hangs up. In order to fix
    this lets introduce the max burst length platform config of the DW DMA
    controller device and don't let the DMA channels configuration code
    exceed the burst length hardware limitation.
    
    Note the maximum burst length parameter can be detected either in runtime
    from the DWC parameter registers or from the dedicated DT property.
    Depending on the IP core configuration the maximum value can vary from
    channel to channel so by overriding the channel slave max_burst capability
    we make sure a DMA consumer will get the channel-specific max burst
    length.
    Signed-off-by: default avatarSerge Semin <Sergey.Semin@baikalelectronics.ru>
    Reviewed-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
    Link: https://lore.kernel.org/r/20200723005848.31907-10-Sergey.Semin@baikalelectronics.ruSigned-off-by: default avatarVinod Koul <vkoul@kernel.org>
    ca7f2851
of.c 3.46 KB