u32 usbnet_get_link (struct net_device *net) { struct usbnet *dev = netdev_priv(net); /* If a check_connect is defined, return its result */ if (dev->driver_info->check_connect) return dev->driver_info->check_connect (dev) == 0; /* if the device has mii operations, use those */ if (dev->mii.mdio_read) return mii_link_ok(&dev->mii); /* Otherwise, dtrt for drivers calling netif_carrier_{on,off} */ return ethtool_op_get_link(net); }
static u32 fe_get_link(struct net_device *dev) { struct fe_priv *priv = netdev_priv(dev); int err; if (!priv->phy_dev) goto out_get_link; if (priv->phy_flags == FE_PHY_FLAG_ATTACH) { err = genphy_update_link(priv->phy_dev); if (err) goto out_get_link; } return priv->phy_dev->link; out_get_link: return ethtool_op_get_link(dev); }
static u32 aq_ethtool_get_link(struct net_device *ndev) { return ethtool_op_get_link(ndev); }