]> git.baikalelectronics.ru Git - kernel.git/commit
net: davinci_emac: Fix hangs with interrupts
authorTony Lindgren <tony@atomide.com>
Thu, 15 Jan 2015 22:45:09 +0000 (14:45 -0800)
committerDavid S. Miller <davem@davemloft.net>
Fri, 16 Jan 2015 06:00:03 +0000 (01:00 -0500)
commit9f4b03d1d0dc5d45141dcbd6b579a1ffe0c6274c
tree523c8a5e167c81a8c80f78e3eb67c0f0427273b8
parent40d766956c4e4d174d9c33d033bdab57434d4fcc
net: davinci_emac: Fix hangs with interrupts

On davinci_emac, we have pulse interrupts. This means that we need to
clear the EOI bits when disabling interrupts as otherwise the interrupts
keep happening. And we also need to not clear the EOI bits again when
enabling the interrupts as otherwise we will get tons of:

unexpected IRQ trap at vector 00

These errors almost certainly mean that the omap-intc.c is signaling
a spurious interrupt with the reserved irq 127 as we've seen earlier
on omap3.

Let's fix the issue by clearing the EOI bits when disabling the
interrupts. Let's also keep the comment for "Rx Threshold and Misc
interrupts are not enabled" for both enable and disable so people
are aware of this when potentially adding more support.

Note that eventually we should handle the RX and TX interrupts
separately like cpsw is now doing. However, so far I have not seen
any issues with this based on my testing, so it seems to behave a
little different compared to the cpsw that had a similar issue.

Cc: Brian Hutchinson <b.hutchman@gmail.com>
Reviewed-by: Felipe Balbi <balbi@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/ti/davinci_emac.c