diff --git a/drivers/dma/pxp/pxp_dma_v3.c b/drivers/dma/pxp/pxp_dma_v3.c
index b99d975c0638747dae968b764c5177c8a3653a60..8a86c97895d17a32b589c255ec4f1ab1531c70ac 100644
--- a/drivers/dma/pxp/pxp_dma_v3.c
+++ b/drivers/dma/pxp/pxp_dma_v3.c
@@ -4272,6 +4272,12 @@ static void pxp_issue_pending(struct dma_chan *chan)
 	spin_unlock(&pxp_chan->lock);
 
 	pxp_clk_enable(pxp);
+
+	pxp_soft_reset(pxp);
+	if (pxp->devdata && pxp->devdata->pxp_data_path_config)
+		pxp->devdata->pxp_data_path_config(pxp);
+	__raw_writel(0xffff, pxp->base + HW_PXP_IRQ_MASK);
+
 	wake_up_interruptible(&pxp->thread_waitq);
 }