]> git.baikalelectronics.ru Git - kernel.git/commit
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)
commit376d14c2024c64de095904c796cd3e21d8a9e8a1
tree0b8fabed99eae041ba3047f592379cc36459ecda
parentc641a90d500bdf90a61f15c43355f9bfb7d69702
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