diff options
Diffstat (limited to 'drivers/net/phy/microchip.c')
| -rw-r--r-- | drivers/net/phy/microchip.c | 3 | 
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/net/phy/microchip.c b/drivers/net/phy/microchip.c index 13570f628aa5..dc8634e7bcbe 100644 --- a/drivers/net/phy/microchip.c +++ b/drivers/net/phy/microchip.c @@ -332,7 +332,7 @@ static void lan88xx_link_change_notify(struct phy_device *phydev)  	 * As workaround, set to 10 before setting to 100  	 * at forced 100 F/H mode.  	 */ -	if (!phydev->autoneg && phydev->speed == 100) { +	if (phydev->state == PHY_NOLINK && !phydev->autoneg && phydev->speed == 100) {  		/* disable phy interrupt */  		temp = phy_read(phydev, LAN88XX_INT_MASK);  		temp &= ~LAN88XX_INT_MASK_MDINTPIN_EN_; @@ -488,6 +488,7 @@ static struct phy_driver microchip_phy_driver[] = {  	.config_init	= lan88xx_config_init,  	.config_aneg	= lan88xx_config_aneg,  	.link_change_notify = lan88xx_link_change_notify, +	.soft_reset	= genphy_soft_reset,  	/* Interrupt handling is broken, do not define related  	 * functions to force polling.  | 
