Re: [PATCH 1/1] fsldma: ignore end of segments interrupt
From: Timur Tabi <hidden>
Date: 2012-02-16 19:34:15
Ira W. Snyder wrote:
This leads me to believe that this occurs mostly (but not always) concurrent with the end-of-chain interrupt.
Have you tested this on an 85xx platform? I noticed something odd. You're modifying fsldma_chan_irq(), which is for DMA controllers that have per-channel IRQs. 83xx devices don't have per-channel IRQs -- all channels on one controller have the same IRQ. Looking at the device tree, I see that the IRQs are listed in the channel nodes *and* in the controller node. I don't see how we ever use the per-controller ISR. I wonder if the shared IRQ is the part of the cause of the interrupts you're seeing.
In the last month, the "unhandled sr" error has occurred on 92 out of 120 boards in production use. The statistics are included below. On some boards, it is much more frequent than on others. All boards have roughly the same workload. Another interesting tidbit from my logs: this only occurs on DMA channel 2 (the are numbered starting at 0, it is the 3rd channel). Here is an example log message:
What happens if you never register that channel? That is, remove this
node from the device tree:
dma-channel@100 {
compatible = "fsl,mpc8349-dma-channel", "fsl,elo-dma-channel";
reg = <0x100 0x80>;
cell-index = <2>;
interrupt-parent = <&ipic>;
interrupts = <71 8>;
};
--
Timur Tabi
Linux kernel developer at Freescale