diff options
Diffstat (limited to 'target/linux/layerscape/patches-5.4/806-dma-0025-MLK-22909-dmaengine-fsl-edma-v3-clear-interrupt-comi.patch')
-rw-r--r-- | target/linux/layerscape/patches-5.4/806-dma-0025-MLK-22909-dmaengine-fsl-edma-v3-clear-interrupt-comi.patch | 43 |
1 files changed, 0 insertions, 43 deletions
diff --git a/target/linux/layerscape/patches-5.4/806-dma-0025-MLK-22909-dmaengine-fsl-edma-v3-clear-interrupt-comi.patch b/target/linux/layerscape/patches-5.4/806-dma-0025-MLK-22909-dmaengine-fsl-edma-v3-clear-interrupt-comi.patch deleted file mode 100644 index 42f151f3f7..0000000000 --- a/target/linux/layerscape/patches-5.4/806-dma-0025-MLK-22909-dmaengine-fsl-edma-v3-clear-interrupt-comi.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 7021361c27946c60885b3f031ddde342f9a5432f Mon Sep 17 00:00:00 2001 -From: Robin Gong <yibin.gong@nxp.com> -Date: Tue, 5 Nov 2019 21:32:22 +0800 -Subject: [PATCH] MLK-22909 dmaengine: fsl-edma-v3: clear interrupt coming - after channel terminated - -Clear EDMA_CH_INT in case dma done interrupt comes after channel terminated -instead of channel free-ed, otherwise, RCU maybe caught because it's -ignored without interrupt status cleared as Android team report in Monkey -test. - -Signed-off-by: Robin Gong <yibin.gong@nxp.com> -Acked-by: Fugang Duan <fugang.duan@nxp.com> -(cherry picked from commit ef91ff6ed465cebe2fe6483a480351abba36e237) -(cherry picked from commit 56ee55c71c5f3ef254acb4dee581e68f79ef13a5) ---- - drivers/dma/fsl-edma-v3.c | 8 ++++++-- - 1 file changed, 6 insertions(+), 2 deletions(-) - ---- a/drivers/dma/fsl-edma-v3.c -+++ b/drivers/dma/fsl-edma-v3.c -@@ -710,8 +710,8 @@ static irqreturn_t fsl_edma3_tx_handler( - - spin_lock(&fsl_chan->vchan.lock); - -- /* Ignore this interrupt since channel has been disabled already */ -- if (!fsl_chan->edesc) -+ /* Ignore this interrupt since channel has been freeed with power off */ -+ if (!fsl_chan->edesc && !fsl_chan->tcd_pool) - goto irq_handled; - - base_addr = fsl_chan->membase; -@@ -722,6 +722,10 @@ static irqreturn_t fsl_edma3_tx_handler( - - writel(1, base_addr + EDMA_CH_INT); - -+ /* Ignore this interrupt since channel has been disabled already */ -+ if (!fsl_chan->edesc) -+ goto irq_handled; -+ - if (!fsl_chan->edesc->iscyclic) { - fsl_edma3_get_realcnt(fsl_chan); - list_del(&fsl_chan->edesc->vdesc.node); |