dmaengine: sun6i: Fix the access of the IRQ register
The IRQ register number is computed, but this number was not used and the register was the one indexed by the channel index instead. Then, only the first DMA channel was working. Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com> Signed-off-by: Jean-Francois Moine <moinejf@free.fr> Signed-off-by: Vinod Koul <vinod.koul@intel.com>
This commit is contained in:
parent
f55532a0c0
commit
128fe7e9a0
1 changed files with 2 additions and 2 deletions
|
@ -381,9 +381,9 @@ static int sun6i_dma_start_desc(struct sun6i_vchan *vchan)
|
|||
irq_reg = pchan->idx / DMA_IRQ_CHAN_NR;
|
||||
irq_offset = pchan->idx % DMA_IRQ_CHAN_NR;
|
||||
|
||||
irq_val = readl(sdev->base + DMA_IRQ_EN(irq_offset));
|
||||
irq_val = readl(sdev->base + DMA_IRQ_EN(irq_reg));
|
||||
irq_val |= DMA_IRQ_QUEUE << (irq_offset * DMA_IRQ_CHAN_WIDTH);
|
||||
writel(irq_val, sdev->base + DMA_IRQ_EN(irq_offset));
|
||||
writel(irq_val, sdev->base + DMA_IRQ_EN(irq_reg));
|
||||
|
||||
writel(pchan->desc->p_lli, pchan->base + DMA_CHAN_LLI_ADDR);
|
||||
writel(DMA_CHAN_ENABLE_START, pchan->base + DMA_CHAN_ENABLE);
|
||||
|
|
Loading…
Reference in a new issue