• Jiada Wang's avatar
    dmaengine: imx-sdma: add 1ms delay to ensure SDMA channel is stopped · 7f3ff14b
    Jiada Wang authored
    sdma_disable_channel() cannot ensure dma is stopped to access
    module's FIFOs. There is chance SDMA core is running and accessing
    BD when disable of corresponding channel, this may cause sometimes
    even after call of .sdma_disable_channel(), SDMA core still be
    running and accessing module's FIFOs.
    
    According to NXP R&D team a delay of one BD SDMA cost time (maximum
    is 1ms) should be added after disable of the channel bit, to ensure
    SDMA core has really been stopped after SDMA clients call
    .device_terminate_all.
    
    This patch introduces adds a new function sdma_disable_channel_with_delay()
    which simply adds 1ms delay after call sdma_disable_channel(),
    and set it as .device_terminate_all.
    Signed-off-by: default avatarJiada Wang <jiada_wang@mentor.com>
    Signed-off-by: default avatarVinod Koul <vinod.koul@intel.com>
    7f3ff14b
imx-sdma.c 49.5 KB