Commit b866203d authored by Zach Brown's avatar Zach Brown Committed by David S. Miller

net/phy: micrel: configure intterupts after autoneg workaround

The commit ("net/phy: micrel: Add workaround for bad autoneg") fixes an
autoneg failure case by resetting the hardware. This turns off
intterupts. Things will work themselves out if the phy polls, as it will
figure out it's state during a poll. However if the phy uses only
intterupts, the phy will stall, since interrupts are off. This patch
fixes the issue by calling config_intr after resetting the phy.

Fixes: d2fd719b ("net/phy: micrel: Add workaround for bad autoneg ")
Signed-off-by: default avatarZach Brown <zach.brown@ni.com>
Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
Reviewed-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 48b6bbef
...@@ -619,6 +619,8 @@ static int ksz9031_read_status(struct phy_device *phydev) ...@@ -619,6 +619,8 @@ static int ksz9031_read_status(struct phy_device *phydev)
if ((regval & 0xFF) == 0xFF) { if ((regval & 0xFF) == 0xFF) {
phy_init_hw(phydev); phy_init_hw(phydev);
phydev->link = 0; phydev->link = 0;
if (phydev->drv->config_intr && phy_interrupt_is_valid(phydev))
phydev->drv->config_intr(phydev);
} }
return 0; return 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment