drivers: net: cpsw: add am335x errata workarround for interrutps
authorMugunthan V N <mugunthanvnm@ti.com>
Wed, 12 Aug 2015 09:52:53 +0000 (15:22 +0530)
committerDavid S. Miller <davem@davemloft.net>
Thu, 13 Aug 2015 23:51:00 +0000 (16:51 -0700)
commit7da1160002f1d59e79e7d89da474ff7c679a07a5
tree0b8fabed99eae041ba3047f592379cc36459ecda
parent182ad468e70fc7e8ff2e5d64344c690beaa00ddd
drivers: net: cpsw: add am335x errata workarround for interrutps

As per Am335x Errata [1] Advisory 1.0.9, The CPSW C0_TX_PEND and
C0_RX_PEND interrupt outputs provide a single transmit interrupt
that combines transmit channel interrupts TXPEND[7:0] and a
single receive interrupt that combines receive channel interrupts
RXPEND[7:0]. The TXPEND[0] and RXPEND[0] interrupt outputs are
connected to the ARM Cortex-A8 interrupt controller (INTC) rather
than the C0_TX_PEND and C0_RX_PEND interrupt outputs. So even
though CPSW interrupt is cleared by writing appropriate values to
EOI register the interrupt is not cleared in IRQ controller. So
interrupt is still pending and CPU is struck in ISR, the
workaround is to disable the interrupts in ARM irq controller.

[1] http://www.ti.com/lit/er/sprz360f/sprz360f.pdf

Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/ti/cpsw.c