This series first fix a bug related with runtime pm. Then do three clean up. After that, we add three new features: per channel irq support, dma-channel-mask support and polled mode support. Since v3: - rebase on the latest rc1 Since v2 - fix typo - add reason why we need to runtime resume before reading reg in commit msg Hi Vinod, I still kept patch2 in v2, because I think the irq has been disabled from the dw-axi-dma side, so the irq won't be fired any more. If you prefer to keep the devm_free_irq() just ignore patch2. Thanks a lot. Jisheng Zhang (11): dmaengine: dw-axi-dmac: fix reading register when runtime suspended dmaengine: dw-axi-dmac: remove unnecessary devm_free_irq() calling dmaengine: dw-axi-dmac: remove unnecessary axi_dma_enable() calling dmaengine: dw-axi-dmac: remove redundant axi_dma_disable() calling dmaengine: dw-axi-dmac: delay irq getting until request_irq dmaengine: dw-axi-dmac: move ch irq handling into common routine dmaengine: dw-axi-dmac: support per channel irq dmaengine: dw-axi-dmac: support dma-channel-mask dmaengine: dw-axi-dmac: try best to get residue when tx is running dmaengine: dw-axi-dmac: move dma_chan_tx_status() dmaengine: dw-axi-dmac: support polled mode .../dma/dw-axi-dmac/dw-axi-dmac-platform.c | 207 ++++++++++++------ drivers/dma/dw-axi-dmac/dw-axi-dmac.h | 4 + 2 files changed, 147 insertions(+), 64 deletions(-) -- 2.40.0