| From 696d8b70c09dd421c4d037fab04341e5b30585cf Mon Sep 17 00:00:00 2001 |
| From: Peter Ujfalusi <peter.ujfalusi@ti.com> |
| Date: Wed, 14 Oct 2015 14:42:43 +0300 |
| Subject: ARM: common: edma: Fix channel parameter for irq callbacks |
| |
| From: Peter Ujfalusi <peter.ujfalusi@ti.com> |
| |
| commit 696d8b70c09dd421c4d037fab04341e5b30585cf upstream. |
| |
| In case when the interrupt happened for the second eDMA the channel |
| number was incorrectly passed to the client driver. |
| |
| Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> |
| Signed-off-by: Vinod Koul <vinod.koul@intel.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| arch/arm/common/edma.c | 6 ++++-- |
| 1 file changed, 4 insertions(+), 2 deletions(-) |
| |
| --- a/arch/arm/common/edma.c |
| +++ b/arch/arm/common/edma.c |
| @@ -404,7 +404,8 @@ static irqreturn_t dma_irq_handler(int i |
| BIT(slot)); |
| if (edma_cc[ctlr]->intr_data[channel].callback) |
| edma_cc[ctlr]->intr_data[channel].callback( |
| - channel, EDMA_DMA_COMPLETE, |
| + EDMA_CTLR_CHAN(ctlr, channel), |
| + EDMA_DMA_COMPLETE, |
| edma_cc[ctlr]->intr_data[channel].data); |
| } |
| } while (sh_ipr); |
| @@ -458,7 +459,8 @@ static irqreturn_t dma_ccerr_handler(int |
| if (edma_cc[ctlr]->intr_data[k]. |
| callback) { |
| edma_cc[ctlr]->intr_data[k]. |
| - callback(k, |
| + callback( |
| + EDMA_CTLR_CHAN(ctlr, k), |
| EDMA_DMA_CC_ERROR, |
| edma_cc[ctlr]->intr_data |
| [k].data); |