• Sugar Zhang's avatar
    dmaengine: pl330: _prep_dma_memcpy: Fix wrong burst size · e773ca7d
    Sugar Zhang authored
    Actually, burst size is equal to '1 << desc->rqcfg.brst_size'.
    we should use burst size, not desc->rqcfg.brst_size.
    
    dma memcpy performance on Rockchip RV1126
    @ 1512MHz A7, 1056MHz LPDDR3, 200MHz DMA:
    
    dmatest:
    
    /# echo dma0chan0 > /sys/module/dmatest/parameters/channel
    /# echo 4194304 > /sys/module/dmatest/parameters/test_buf_size
    /# echo 8 > /sys/module/dmatest/parameters/iterations
    /# echo y > /sys/module/dmatest/parameters/norandom
    /# echo y > /sys/module/dmatest/parameters/verbose
    /# echo 1 > /sys/module/dmatest/parameters/run
    
    dmatest: dma0chan0-copy0: result #1: 'test passed' with src_off=0x0 dst_off=0x0 len=0x400000
    dmatest: dma0chan0-copy0: result #2: 'test passed' with src_off=0x0 dst_off=0x0 len=0x400000
    dmatest: dma0chan0-copy0: result #3: 'test passed' with src_off=0x0 dst_off=0x0 len=0x400000
    dmatest: dma0chan0-copy0: result #4: 'test passed' with src_off=0x0 dst_off=0x0 len=0x400000
    dmatest: dma0chan0-copy0: result #5: 'test passed' with src_off=0x0 dst_off=0x0 len=0x400000
    dmatest: dma0chan0-copy0: result #6: 'test passed' with src_off=0x0 dst_off=0x0 len=0x400000
    dmatest: dma0chan0-copy0: result #7: 'test passed' with src_off=0x0 dst_off=0x0 len=0x400000
    dmatest: dma0chan0-copy0: result #8: 'test passed' with src_off=0x0 dst_off=0x0 len=0x400000
    
    Before:
    
      dmatest: dma0chan0-copy0: summary 8 tests, 0 failures 48 iops 200338 KB/s (0)
    
    After this patch:
    
      dmatest: dma0chan0-copy0: summary 8 tests, 0 failures 179 iops 734873 KB/s (0)
    
    After this patch and increase dma clk to 400MHz:
    
      dmatest: dma0chan0-copy0: summary 8 tests, 0 failures 259 iops 1062929 KB/s (0)
    Signed-off-by: default avatarSugar Zhang <sugar.zhang@rock-chips.com>
    Link: https://lore.kernel.org/r/1605326106-55681-1-git-send-email-sugar.zhang@rock-chips.comSigned-off-by: default avatarVinod Koul <vkoul@kernel.org>
    e773ca7d
pl330.c 72.8 KB