aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew Lunn <andrew@lunn.ch>2015-11-16 17:36:46 -0500
committerDavid S. Miller <davem@davemloft.net>2015-11-17 15:25:44 -0500
commit321beec5047af83db90c88114b7e664b156f49fe (patch)
treeb8d964dbcca37c2b52daa42881fab50b4c0b3d48
parent819ec8e1f349f73bdf65bf33a364538e59007a9a (diff)
net: phy: Use interrupts when available in NOLINK state
The NOLINK state will poll the phy once a second to see if the link has come up. If the phy has an interrupt line, this polling can be skipped, since the phy should interrupt when the link returns. Signed-off-by: Andrew Lunn <andrew@lunn.ch> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/phy/phy.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c
index adb48abafc87..48ce6ef400fe 100644
--- a/drivers/net/phy/phy.c
+++ b/drivers/net/phy/phy.c
@@ -863,6 +863,9 @@ void phy_state_machine(struct work_struct *work)
863 needs_aneg = true; 863 needs_aneg = true;
864 break; 864 break;
865 case PHY_NOLINK: 865 case PHY_NOLINK:
866 if (phy_interrupt_is_valid(phydev))
867 break;
868
866 err = phy_read_status(phydev); 869 err = phy_read_status(phydev);
867 if (err) 870 if (err)
868 break; 871 break;