Commit 27755ff8 authored by Ioana Ciornei's avatar Ioana Ciornei Committed by David S. Miller
Browse files

net: phylink: Add phylink_mac_link_{up, down} wrapper functions



This is a cosmetic patch that reduces the clutter in phylink_resolve
around calling the .mac_link_up/.mac_link_down driver callbacks.  In a
further patch this logic will be extended to emit notifications in case
a net device does not exist.

Signed-off-by: default avatarIoana Ciornei <ioana.ciornei@nxp.com>
Reviewed-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent c920f745
Loading
Loading
Loading
Loading
+32 −18
Original line number Diff line number Diff line
@@ -395,6 +395,34 @@ static const char *phylink_pause_to_str(int pause)
	}
}

static void phylink_mac_link_up(struct phylink *pl,
				struct phylink_link_state link_state)
{
	struct net_device *ndev = pl->netdev;

	pl->ops->mac_link_up(ndev, pl->link_an_mode,
			     pl->phy_state.interface,
			     pl->phydev);

	netif_carrier_on(ndev);

	netdev_info(ndev,
		    "Link is Up - %s/%s - flow control %s\n",
		    phy_speed_to_str(link_state.speed),
		    phy_duplex_to_str(link_state.duplex),
		    phylink_pause_to_str(link_state.pause));
}

static void phylink_mac_link_down(struct phylink *pl)
{
	struct net_device *ndev = pl->netdev;

	netif_carrier_off(ndev);
	pl->ops->mac_link_down(ndev, pl->link_an_mode,
			       pl->phy_state.interface);
	netdev_info(ndev, "Link is Down\n");
}

static void phylink_resolve(struct work_struct *w)
{
	struct phylink *pl = container_of(w, struct phylink, resolve);
@@ -443,24 +471,10 @@ static void phylink_resolve(struct work_struct *w)
	}

	if (link_state.link != netif_carrier_ok(ndev)) {
		if (!link_state.link) {
			netif_carrier_off(ndev);
			pl->ops->mac_link_down(ndev, pl->link_an_mode,
					       pl->phy_state.interface);
			netdev_info(ndev, "Link is Down\n");
		} else {
			pl->ops->mac_link_up(ndev, pl->link_an_mode,
					     pl->phy_state.interface,
					     pl->phydev);

			netif_carrier_on(ndev);

			netdev_info(ndev,
				    "Link is Up - %s/%s - flow control %s\n",
				    phy_speed_to_str(link_state.speed),
				    phy_duplex_to_str(link_state.duplex),
				    phylink_pause_to_str(link_state.pause));
		}
		if (!link_state.link)
			phylink_mac_link_down(pl);
		else
			phylink_mac_link_up(pl, link_state);
	}
	if (!link_state.link && pl->mac_link_dropped) {
		pl->mac_link_dropped = false;