projects
/
platform
/
kernel
/
linux-starfive.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
7d28c50
)
dmaengine: dw-edma: Fix to enable to issue dma request on DMA processing
author
Shunsuke Mie
<mie@igel.co.jp>
Tue, 11 Apr 2023 10:17:58 +0000
(19:17 +0900)
committer
Greg Kroah-Hartman
<gregkh@linuxfoundation.org>
Thu, 11 May 2023 14:03:37 +0000
(23:03 +0900)
[ Upstream commit
970b17dfe264a9085ba4e593730ecfd496b950ab
]
The issue_pending request is ignored while driver is processing a DMA
request. Fix to issue the pending requests on any dma channel status.
Fixes:
e63d79d1ffcd
("dmaengine: Add Synopsys eDMA IP core driver")
Signed-off-by: Shunsuke Mie <mie@igel.co.jp>
Link:
https://lore.kernel.org/r/20230411101758.438472-2-mie@igel.co.jp
Signed-off-by: Vinod Koul <vkoul@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/dma/dw-edma/dw-edma-core.c
patch
|
blob
|
history
diff --git
a/drivers/dma/dw-edma/dw-edma-core.c
b/drivers/dma/dw-edma/dw-edma-core.c
index
cb46cbe
..
ef4cdcf
100644
(file)
--- a/
drivers/dma/dw-edma/dw-edma-core.c
+++ b/
drivers/dma/dw-edma/dw-edma-core.c
@@
-279,9
+279,12
@@
static void dw_edma_device_issue_pending(struct dma_chan *dchan)
struct dw_edma_chan *chan = dchan2dw_edma_chan(dchan);
unsigned long flags;
+ if (!chan->configured)
+ return;
+
spin_lock_irqsave(&chan->vc.lock, flags);
- if (
chan->configured
&& chan->request == EDMA_REQ_NONE &&
- chan->status == EDMA_ST_IDLE
&& vchan_issue_pending(&chan->vc)
) {
+ if (
vchan_issue_pending(&chan->vc)
&& chan->request == EDMA_REQ_NONE &&
+ chan->status == EDMA_ST_IDLE) {
chan->status = EDMA_ST_BUSY;
dw_edma_start_transfer(chan);
}