• John Stultz's avatar
    k3dma: Fix occasional DMA ERR issue by using proper dma api · b77f262a
    John Stultz authored
    After lots of debugging on an occasional DMA ERR issue, I realized
    that the desc structures which we point the dma hardware are being
    allocated out of regular memory. This means when we fill the desc
    structures, that data doesn't always get flushed out to memory by
    the time we start the dma transfer, resulting in the dma engine getting
    some null values, resulting in a DMA ERR on the first irq.
    
    Thus, this patch adopts mechanism similar to the zx296702_dma of
    allocating the desc structures from a dma pool, so the memory caching
    rules are properly set to avoid this issue.
    
    Cc: Zhangfei Gao <zhangfei.gao@linaro.org>
    Cc: Krzysztof Kozlowski <k.kozlowski@samsung.com>
    Cc: Maxime Ripard <maxime.ripard@free-electrons.com>
    Cc: Vinod Koul <vinod.koul@intel.com>
    Cc: Dan Williams <dan.j.williams@intel.com>
    Cc: Mark Brown <broonie@kernel.org>
    Cc: Andy Green <andy@warmcat.com>
    Acked-by: default avatarZhangfei Gao <zhangfei.gao@linaro.org>
    Signed-off-by: default avatarJohn Stutlz <john.stultz@linaro.org>
    Signed-off-by: default avatarVinod Koul <vinod.koul@intel.com>
    b77f262a
k3dma.c 21.4 KB