[PATCH net-next v2 2/3] net: dsa: allow use of phylink managed EEE support
Vladimir Oltean
olteanv at gmail.com
Fri Feb 7 07:19:59 PST 2025
On Fri, Feb 07, 2025 at 01:09:38PM +0000, Russell King (Oracle) wrote:
> In order to allow DSA drivers to use phylink managed EEE, changes are
> necessary to the DSA .set_eee() and .get_eee() methods. Where drivers
> make use of phylink managed EEE, these should just pass the method on
> to their phylink implementation without calling the DSA specific
> operations.
>
> Signed-off-by: Russell King (Oracle) <rmk+kernel at armlinux.org.uk>
> ---
> net/dsa/user.c | 21 +++++++++++++--------
> 1 file changed, 13 insertions(+), 8 deletions(-)
>
> diff --git a/net/dsa/user.c b/net/dsa/user.c
> index 291ab1b4acc4..2e0a51c1b750 100644
> --- a/net/dsa/user.c
> +++ b/net/dsa/user.c
> @@ -1243,16 +1243,21 @@ static int dsa_user_set_eee(struct net_device *dev, struct ethtool_keee *e)
> if (!ds->ops->support_eee || !ds->ops->support_eee(ds, dp->index))
> return -EOPNOTSUPP;
>
> - /* Port's PHY and MAC both need to be EEE capable */
> - if (!dev->phydev)
> - return -ENODEV;
> + /* If the port is using phylink managed EEE, then get_mac_eee is
> + * unnecessary.
You thanked me for spotting that this should have been set_mac_eee() in
the comment, but you didn't update it.
https://lore.kernel.org/netdev/Z4bC77mwoeypDAdH@shell.armlinux.org.uk/
> + */
> + if (!phylink_mac_implements_lpi(ds->phylink_mac_ops)) {
> + /* Port's PHY and MAC both need to be EEE capable */
> + if (!dev->phydev)
> + return -ENODEV;
>
> - if (!ds->ops->set_mac_eee)
> - return -EOPNOTSUPP;
> + if (!ds->ops->set_mac_eee)
> + return -EOPNOTSUPP;
>
> - ret = ds->ops->set_mac_eee(ds, dp->index, e);
> - if (ret)
> - return ret;
> + ret = ds->ops->set_mac_eee(ds, dp->index, e);
> + if (ret)
> + return ret;
> + }
>
> return phylink_ethtool_set_eee(dp->pl, e);
> }
> --
> 2.30.2
>
More information about the linux-arm-kernel
mailing list