]> git.baikalelectronics.ru Git - kernel.git/commit
net/faraday: Mask out PHYSTS_CHG interrupt
authorJoel Stanley <joel@jms.id.au>
Wed, 21 Sep 2016 23:05:03 +0000 (08:35 +0930)
committerDavid S. Miller <davem@davemloft.net>
Thu, 22 Sep 2016 07:31:14 +0000 (03:31 -0400)
commitb706c6fb4d6dea8c9df14c9ff4aaabe5c2c99ff4
tree2ddad3b2ce71d6237a3cf13499881510d5a68125
parent6421968db1d8d41711f13368b1c60a2cb1a59933
net/faraday: Mask out PHYSTS_CHG interrupt

The PHYSTS_CHG (the ftgmac100's PHY IRQ) is telling the system to go
look at the PHY registers for a link status change.

The interrupt was causing issues on Aspeed SoC where some board designs
had an active high configuration, some active low, and in some cases
repurposed for other functions. When misconfigured Linux would chew 100%
of CPU cycles servicing interrupts:

 [   20.280000] ftgmac100 1e660000.ethernet eth0: [ISR] = 0x200: PHYSTS_CHG
 [   20.280000] ftgmac100 1e660000.ethernet eth0: [ISR] = 0x200: PHYSTS_CHG
 [   20.280000] ftgmac100 1e660000.ethernet eth0: [ISR] = 0x200: PHYSTS_CHG
 [   20.300000] ftgmac100 1e660000.ethernet eth0: [ISR] = 0x200: PHYSTS_CHG

While in the ftgmac100 IP can be configured for high, low and edge
sensitivity the current driver always polls the PHY, so we chose to mask
out the interrupt.

See https://patchwork.ozlabs.org/patch/672099/ for more discussion.

Signed-off-by: Joel Stanley <joel@jms.id.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/faraday/ftgmac100.c
drivers/net/ethernet/faraday/ftgmac100.h