aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVignesh Raghavendra <vigneshr@ti.com>2023-03-08 09:42:57 +0530
committerTom Rini <trini@konsulko.com>2023-03-22 11:01:08 -0400
commitc058bc85305373140823bb4ad2cf9e5e997b069b (patch)
treec06d3e7309022a299855ac566ba51f3fb38b0007
parent18aca667d6098958305fa50f7ba8fd671192da81 (diff)
downloadu-boot-WIP/2023-03-22-assorted-fixes.zip
u-boot-WIP/2023-03-22-assorted-fixes.tar.gz
u-boot-WIP/2023-03-22-assorted-fixes.tar.bz2
dma: ti: k3-udma: Fix channel hang on teardownWIP/2023-03-22-assorted-fixes
Setting RX flow error handling will stall the channel until descriptors are available to move RX data. Setting this bit causes issues when tearing down ethernet DMA channel at the end of TFTP transfer as unrelated network packets can cause teardown to stall indefinitely waiting for driver to queue add more desc leading to channel hang with error logs: udma_stop_dev2mem TIMEOUT ! udma_stop_dev2mem: peer not stopped TIMEOUT ! udma_stop_dev2mem TIMEOUT ! Fix this by clearing rx_error_handling similar to how its done for UDMA as part of udma_alloc_rchan_sci_req() This fixes occasional TFTP Failures seen when downloading multiple files one after the other on AM64/AM62 SoCs. Fixes: 9a92851c33e8 ("dma: ti: k3-udma: Add BCDMA and PKTDMA support") Reported-by: Nishanth Menon <nm@ti.com> Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
-rw-r--r--drivers/dma/ti/k3-udma.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/dma/ti/k3-udma.c b/drivers/dma/ti/k3-udma.c
index d92b964..05c3a43 100644
--- a/drivers/dma/ti/k3-udma.c
+++ b/drivers/dma/ti/k3-udma.c
@@ -2150,7 +2150,7 @@ static int pktdma_tisci_rx_channel_config(struct udma_chan *uc)
flow_req.rx_psinfo_present = 1;
else
flow_req.rx_psinfo_present = 0;
- flow_req.rx_error_handling = 1;
+ flow_req.rx_error_handling = 0;
ret = tisci_ops->rx_flow_cfg(tisci_rm->tisci, &flow_req);