net: dsa: call phy_init_eee in DSA layer

All DSA drivers are calling phy_init_eee if eee_enabled is true.

Move up this statement in the DSA layer to simplify the DSA drivers.
qca8k does not require to cache the ethtool_eee structures from now on.

Signed-off-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Vivien Didelot
2017-08-01 16:32:38 -04:00
committed by David S. Miller
parent 7f5c6d7cdd
commit c48f7eb302
5 changed files with 9 additions and 44 deletions

View File

@@ -654,41 +654,14 @@ qca8k_eee_enable_set(struct dsa_switch *ds, int port, bool enable)
mutex_unlock(&priv->reg_mutex);
}
static int
qca8k_eee_init(struct dsa_switch *ds, int port,
struct phy_device *phy)
{
int ret;
ret = phy_init_eee(phy, 0);
if (ret)
return 0;
qca8k_eee_enable_set(ds, port, true);
return 1;
}
static int
qca8k_set_eee(struct dsa_switch *ds, int port,
struct phy_device *phydev,
struct ethtool_eee *e)
{
struct qca8k_priv *priv = (struct qca8k_priv *)ds->priv;
struct ethtool_eee *p = &priv->port_sts[port].eee;
int ret = 0;
qca8k_eee_enable_set(ds, port, e->eee_enabled);
p->eee_enabled = e->eee_enabled;
if (!p->eee_enabled) {
qca8k_eee_enable_set(ds, port, false);
} else {
p->eee_enabled = qca8k_eee_init(ds, port, phydev);
if (!p->eee_enabled)
ret = -EOPNOTSUPP;
}
return ret;
return 0;
}
static int