• Joy Zou's avatar
    dmaengine: fsl-edma: change the memory access from local into remote mode in i.MX 8QM · 8ddad558
    Joy Zou authored
    Fix the issue where MEM_TO_MEM fail on i.MX8QM due to the requirement
    that both source and destination addresses need pass through the IOMMU.
    Typically, peripheral FIFO addresses bypass the IOMMU, necessitating
    only one of the source or destination to go through it.
    
    Set "is_remote" to true to ensure both source and destination
    addresses pass through the IOMMU.
    
    iMX8 Spec define "Local" and "Remote" bus as below.
    Local bus: bypass IOMMU to directly access other peripheral register,
    such as FIFO.
    Remote bus: go through IOMMU to access system memory.
    
    The test fail log as follow:
    [ 66.268506] dmatest: dma0chan0-copy0: result #1: 'test timed out' with src_off=0x100 dst_off=0x80 len=0x3ec0 (0)
    [ 66.278785] dmatest: dma0chan0-copy0: summary 1 tests, 1 failures 0.32 iops 4 KB/s (0)
    
    Fixes: 72f5801a ("dmaengine: fsl-edma: integrate v3 support")
    Signed-off-by: default avatarJoy Zou <joy.zou@nxp.com>
    Cc: stable@vger.kernel.org
    Reviewed-by: default avatarFrank Li <Frank.Li@nxp.com>
    Link: https://lore.kernel.org/r/20240510030959.703663-1-joy.zou@nxp.comSigned-off-by: default avatarVinod Koul <vkoul@kernel.org>
    8ddad558
fsl-edma-common.c 24.7 KB