diff options
author | Florian Fainelli <f.fainelli@gmail.com> | 2013-05-20 02:53:42 +0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-05-21 01:13:08 +0400 |
commit | 2c7b49212a86f13697281a4dace2cb96aec71d6b (patch) | |
tree | 315bc489f7c0ee3a9c55ae86041bc1846acc2a05 /usr/gen_init_cpio.c | |
parent | 45e983414334f217c60bd04d39d6f5ec2d8d7bb4 (diff) | |
download | linux-2c7b49212a86f13697281a4dace2cb96aec71d6b.tar.xz |
phy: fix the use of PHY_IGNORE_INTERRUPT
When a PHY device is registered with the special IRQ value
PHY_IGNORE_INTERRUPT (-2) it will not properly be handled by the PHY
library:
- it continues to poll its register, while we do not want this
because such PHY link events or register changes are serviced by an
Ethernet MAC
- it will still try to configure PHY interrupts at the PHY level, such
interrupts do not exist at the PHY but at the MAC level
- the state machine only handles PHY_POLL, but should also handle
PHY_IGNORE_INTERRUPT similarly
This patch updates the PHY state machine and initialization paths to
account for the specific PHY_IGNORE_INTERRUPT. Based on an earlier patch
by Thomas Petazzoni, and reworked to add the missing bits. Add a helper
phy_interrupt_is_valid() which specifically tests for a PHY interrupt
not to be PHY_POLL or PHY_IGNORE_INTERRUPT and use it throughout the
code.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'usr/gen_init_cpio.c')
0 files changed, 0 insertions, 0 deletions