2023-05-21 12:33:54

by Jisheng Zhang

[permalink] [raw]
Subject: [PATCH v3 00/11] dmaengine: dw-axi_dmac: bug fix clean up and more features

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



2023-05-21 12:37:23

by Jisheng Zhang

[permalink] [raw]
Subject: [PATCH v3 04/11] dmaengine: dw-axi-dmac: remove redundant axi_dma_disable() calling

axi_dma_suspend() will soon call axi_dma_disable(), remove the redundant
axi_dma_disable() callin.

Signed-off-by: Jisheng Zhang <[email protected]>
---
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c | 1 -
1 file changed, 1 deletion(-)

diff --git a/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c b/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
index 4378134eea63..e596910e9f84 100644
--- a/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
+++ b/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
@@ -1556,7 +1556,6 @@ static int dw_remove(struct platform_device *pdev)
axi_chan_disable(&chip->dw->chan[i]);
axi_chan_irq_disable(&chip->dw->chan[i], DWAXIDMAC_IRQ_ALL);
}
- axi_dma_disable(chip);

pm_runtime_disable(chip->dev);
axi_dma_suspend(chip);
--
2.40.0