Subject: Re: [PATCH net-next v1 3/4] net: phy: do not force EEE support

From: "Russell King (Oracle)" <[email-masked]>
Date: Mon, 20 Feb 2023 17:24:01 +0000

On Mon, Feb 20, 2023 at 05:13:39PM +0100, Oleksij Rempel wrote:
> On Mon, Feb 20, 2023 at 04:48:26PM +0100, Andrew Lunn wrote:
> > > Hm.. ethtool do not provide enough information about expected behavior.
> > > Here is my expectation:
> > > - "ethtool --set-eee lan1 eee on" should enable EEE if it is disabled.
> > > - "ethtool --set-eee lan1 advertise 0x10" should change set of
> > >   advertised modes.
> > > - a sequence of "..advertise 0x10", "..eee on", "eee off" should restore
> > >   preconfigured advertise modes. advertising_eee instead of
> > >   supported_eee.
> > 
> > I agree ethtool is not very well documented. However, i would follow
> > what -s does. You can pass link modes you want to advertise, and you
> > can turn auto-neg on and off. Does turning auto-neg off and on again
> > reset the links modes which are advertised? I don't actually know, but
> > i think the behaviour should be consistent for link modes and EEE
> > modes.
> 
> Hm.. "ethtool -s lan1 autoneg on" will restore supported values. Even
> without switching it off.

Remember that -s is for the media capabilities, not EEE. There is
specific handling of the advertising mask in the userspace
ethtool.c::do_sset() but that doesn't exist for EEE, which merely
goes a ETHTOOL_GEEE, modifies the structure according to the arguments
given, and then calls ETHTOOL_SEEE. So:

# ethtool --set-eee lan1 eee on

will merely change eeecmd.eee_enabled to be set if it wasn't already,
but will not change eeecmd.advertised in any way - it'll contain
whatever it did before, which may or may not be zero.

This is in contrast to:

# ethtool -s lan1 autoneg on

which will set the advertisement to be the those that are supported.

-- 
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at last!