• Marek Szyprowski's avatar
    dmaengine: add support for reporting pause and resume separately · d8095f94
    Marek Szyprowski authored
    'cmd_pause' DMA channel capability means that respective DMA engine
    supports both pausing and resuming given DMA channel. However, in some
    cases it is important to know if DMA channel can be paused without the
    need to resume it. This is a typical requirement for proper residue
    reading on transfer timeout in UART drivers. There are also some DMA
    engines with limited hardware, which doesn't really support resuming.
    
    Reporting pause and resume capabilities separately allows UART drivers to
    properly check for the really required capabilities and operate in DMA
    mode also in systems with limited DMA hardware. On the other hand drivers,
    which rely on full channel suspend/resume support, should now check for
    both 'pause' and 'resume' features.
    
    Existing clients of dma_get_slave_caps() have been checked and the only
    driver which rely on proper channel resuming is soc-generic-dmaengine-pcm
    driver, which has been updated to check the newly added capability.
    Existing 'cmd_pause' now only indicates that DMA engine support pausing
    given DMA channel.
    Signed-off-by: default avatarMarek Szyprowski <m.szyprowski@samsung.com>
    Acked-by: default avatarMark Brown <broonie@kernel.org>
    Signed-off-by: default avatarVinod Koul <vkoul@kernel.org>
    d8095f94
dmaengine.c 33.7 KB