diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/ethernet/marvell/mvpp2.c | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/drivers/net/ethernet/marvell/mvpp2.c b/drivers/net/ethernet/marvell/mvpp2.c index 3dc5f64..cacbd88 100644 --- a/drivers/net/ethernet/marvell/mvpp2.c +++ b/drivers/net/ethernet/marvell/mvpp2.c @@ -5740,7 +5740,6 @@ static void mvpp2_link_event(struct net_device *dev) { struct mvpp2_port *port = netdev_priv(dev); struct phy_device *phydev = dev->phydev; - int status_change = 0; u32 val; if (phydev->link) { @@ -5771,16 +5770,8 @@ static void mvpp2_link_event(struct net_device *dev) } if (phydev->link != port->link) { - if (!phydev->link) { - port->duplex = -1; - port->speed = 0; - } - port->link = phydev->link; - status_change = 1; - } - if (status_change) { if (phydev->link) { val = readl(port->base + MVPP2_GMAC_AUTONEG_CONFIG); val |= (MVPP2_GMAC_FORCE_LINK_PASS | @@ -5789,9 +5780,13 @@ static void mvpp2_link_event(struct net_device *dev) mvpp2_egress_enable(port); mvpp2_ingress_enable(port); } else { + port->duplex = -1; + port->speed = 0; + mvpp2_ingress_disable(port); mvpp2_egress_disable(port); } + phy_print_status(phydev); } } |