int phylink_ethtool_get_eee(struct phylink *pl, struct ethtool_eee *eee) { int ret = -EOPNOTSUPP; WARN_ON(!lockdep_rtnl_is_held()); if (pl->phydev) ret = phy_ethtool_get_eee(pl->phydev, eee); return ret; }
/** * phylink_ethtool_get_eee() - read the energy efficient ethernet parameters * @pl: a pointer to a &struct phylink returned from phylink_create() * @eee: a pointer to a &struct ethtool_eee for the read parameters */ int phylink_ethtool_get_eee(struct phylink *pl, struct ethtool_eee *eee) { int ret = -EOPNOTSUPP; ASSERT_RTNL(); if (pl->phydev) ret = phy_ethtool_get_eee(pl->phydev, eee); return ret; }
static int sxgbe_get_eee(struct net_device *dev, struct ethtool_eee *edata) { struct sxgbe_priv_data *priv = netdev_priv(dev); if (!priv->hw_cap.eee) return -EOPNOTSUPP; edata->eee_enabled = priv->eee_enabled; edata->eee_active = priv->eee_active; edata->tx_lpi_timer = priv->tx_lpi_timer; return phy_ethtool_get_eee(priv->phydev, edata); }
static int dsa_slave_get_eee(struct net_device *dev, struct ethtool_eee *e) { struct dsa_slave_priv *p = netdev_priv(dev); struct dsa_switch *ds = p->parent; int ret; if (!ds->drv->get_eee) return -EOPNOTSUPP; ret = ds->drv->get_eee(ds, p->port, e); if (ret) return ret; if (p->phy) ret = phy_ethtool_get_eee(p->phy, e); return ret; }