From: Andrew Lunn <andrew@lunn.ch>
To: netdev <netdev@vger.kernel.org>
Cc: Florian Fainelli <f.fainelli@gmail.com>,
Heiner Kallweit <hkallweit1@gmail.com>,
Russell King <rmk+kernel@armlinux.org.uk>,
Oleksij Rempel <linux@rempel-privat.de>,
Andrew Lunn <andrew@lunn.ch>
Subject: [RFC/RFTv3 00/24] net: ethernet: Rework EEE
Date: Fri, 31 Mar 2023 02:54:54 +0200 [thread overview]
Message-ID: <20230331005518.2134652-1-andrew@lunn.ch> (raw)
Most MAC drivers get EEE wrong. The API to the PHY is not very
obvious, which is probably why. Rework the API, pushing most of the
EEE handling into phylib core, leaving the MAC drivers to just
enable/disable support for EEE in there change_link call back, or
phylink mac_link_up callback.
MAC drivers are now expect to indicate to phylib/phylink if they
support EEE. If not, no EEE link modes are advertised. If the MAC does
support EEE, on phy_start()/phylink_start() EEE advertisement is
configured.
v3
--
Rework phylink code to add a new callback.
Rework function to indicate clock should be stopped during LPI
Andrew Lunn (24):
net: phy: Add phydev->eee_active to simplify adjust link callbacks
net: phylink: Add mac_set_eee() callback
net: phy: Add helper to set EEE Clock stop enable bit
net: phy: Keep track of EEE tx_lpi_enabled
net: phy: Immediately call adjust_link if only tx_lpi_enabled changes
net: phylink: Handle change in EEE from phylib
net: marvell: mvneta: Simplify EEE configuration
net: stmmac: Drop usage of phy_init_eee()
net: stmmac: Simplify ethtool get eee
net: lan743x: Fixup EEE
net: fec: Move fec_enet_eee_mode_set() and helper earlier
net: FEC: Fixup EEE
net: genet: Fixup EEE
net: sxgdb: Fixup EEE
net: dsa: mt7530: Swap to using phydev->eee_active
net: dsa: b53: Swap to using phydev->eee_active
net: phylink: Remove unused phylink_init_eee()
net: phy: remove unused phy_init_eee()
net: usb: lan78xx: Fixup EEE
net: phy: Add phy_support_eee() indicating MAC support EEE
net: phylink: Add MAC_EEE to mac_capabilites
net: phylink: Extend mac_capabilities in MAC drivers which support EEE
net: phylib: call phy_support_eee() in MAC drivers which support EEE
net: phy: Disable EEE advertisement by default
drivers/net/dsa/b53/b53_common.c | 5 +-
drivers/net/dsa/mt7530.c | 2 +-
.../net/ethernet/broadcom/genet/bcmgenet.c | 42 +++------
.../net/ethernet/broadcom/genet/bcmgenet.h | 3 +-
drivers/net/ethernet/broadcom/genet/bcmmii.c | 3 +
drivers/net/ethernet/freescale/fec_main.c | 88 ++++++++-----------
drivers/net/ethernet/marvell/mvneta.c | 28 +++---
.../net/ethernet/microchip/lan743x_ethtool.c | 22 -----
drivers/net/ethernet/microchip/lan743x_main.c | 9 ++
.../net/ethernet/samsung/sxgbe/sxgbe_common.h | 3 -
.../ethernet/samsung/sxgbe/sxgbe_ethtool.c | 21 +----
.../net/ethernet/samsung/sxgbe/sxgbe_main.c | 39 +++-----
drivers/net/ethernet/stmicro/stmmac/stmmac.h | 1 -
.../ethernet/stmicro/stmmac/stmmac_ethtool.c | 7 --
.../net/ethernet/stmicro/stmmac/stmmac_main.c | 10 ++-
drivers/net/phy/phy-c45.c | 35 +++++++-
drivers/net/phy/phy-core.c | 11 +++
drivers/net/phy/phy.c | 83 ++++++++++-------
drivers/net/phy/phy_device.c | 37 ++++----
drivers/net/phy/phylink.c | 47 +++++-----
drivers/net/usb/lan78xx.c | 44 +++++-----
include/linux/phy.h | 11 ++-
include/linux/phylink.h | 62 ++++++++-----
include/uapi/linux/mdio.h | 1 +
net/dsa/port.c | 3 +
25 files changed, 308 insertions(+), 309 deletions(-)
--
2.40.0
next reply other threads:[~2023-03-31 0:56 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-03-31 0:54 Andrew Lunn [this message]
2023-03-31 0:54 ` [RFC/RFTv3 01/24] net: phy: Add phydev->eee_active to simplify adjust link callbacks Andrew Lunn
2023-05-30 17:51 ` Florian Fainelli
2023-03-31 0:54 ` [RFC/RFTv3 02/24] net: phylink: Add mac_set_eee() callback Andrew Lunn
2023-03-31 0:54 ` [RFC/RFTv3 03/24] net: phy: Add helper to set EEE Clock stop enable bit Andrew Lunn
2023-03-31 0:54 ` [RFC/RFTv3 04/24] net: phy: Keep track of EEE tx_lpi_enabled Andrew Lunn
2023-05-30 18:11 ` Florian Fainelli
2023-05-30 18:14 ` Russell King (Oracle)
2023-03-31 0:54 ` [RFC/RFTv3 05/24] net: phy: Immediately call adjust_link if only tx_lpi_enabled changes Andrew Lunn
2023-03-31 0:55 ` [RFC/RFTv3 06/24] net: phylink: Handle change in EEE from phylib Andrew Lunn
2023-03-31 0:55 ` [RFC/RFTv3 07/24] net: marvell: mvneta: Simplify EEE configuration Andrew Lunn
2023-05-30 18:03 ` Florian Fainelli
2023-03-31 0:55 ` [RFC/RFTv3 08/24] net: stmmac: Drop usage of phy_init_eee() Andrew Lunn
2023-03-31 0:55 ` [RFC/RFTv3 09/24] net: stmmac: Simplify ethtool get eee Andrew Lunn
2023-05-19 7:11 ` Oleksij Rempel
2023-03-31 0:55 ` [RFC/RFTv3 10/24] net: lan743x: Fixup EEE Andrew Lunn
2023-05-30 18:03 ` Florian Fainelli
2023-03-31 0:55 ` [RFC/RFTv3 11/24] net: fec: Move fec_enet_eee_mode_set() and helper earlier Andrew Lunn
2023-03-31 0:55 ` [RFC/RFTv3 12/24] net: FEC: Fixup EEE Andrew Lunn
2023-05-19 10:27 ` Oleksij Rempel
2023-03-31 0:55 ` [RFC/RFTv3 13/24] net: genet: " Andrew Lunn
2023-05-30 18:01 ` Florian Fainelli
2023-03-31 0:55 ` [RFC/RFTv3 14/24] net: sxgdb: " Andrew Lunn
2023-03-31 0:55 ` [RFC/RFTv3 15/24] net: dsa: mt7530: Swap to using phydev->eee_active Andrew Lunn
2023-03-31 0:55 ` [RFC/RFTv3 16/24] net: dsa: b53: " Andrew Lunn
2023-05-30 18:05 ` Florian Fainelli
2023-03-31 0:55 ` [RFC/RFTv3 17/24] net: phylink: Remove unused phylink_init_eee() Andrew Lunn
2023-03-31 0:55 ` [RFC/RFTv3 18/24] net: phy: remove unused phy_init_eee() Andrew Lunn
2023-03-31 0:55 ` [RFC/RFTv3 19/24] net: usb: lan78xx: Fixup EEE Andrew Lunn
2023-03-31 0:55 ` [RFC/RFTv3 20/24] net: phy: Add phy_support_eee() indicating MAC support EEE Andrew Lunn
2023-05-30 18:16 ` Florian Fainelli
2023-03-31 0:55 ` [RFC/RFTv3 21/24] net: phylink: Add MAC_EEE to mac_capabilites Andrew Lunn
2023-05-30 18:18 ` Florian Fainelli
2023-03-31 0:55 ` [RFC/RFTv3 22/24] net: phylink: Extend mac_capabilities in MAC drivers which support EEE Andrew Lunn
2023-03-31 0:55 ` [RFC/RFTv3 23/24] net: phylib: call phy_support_eee() " Andrew Lunn
2023-03-31 0:55 ` [RFC/RFTv3 24/24] net: phy: Disable EEE advertisement by default Andrew Lunn
2023-05-26 8:56 ` [RFC/RFTv3 00/24] net: ethernet: Rework EEE Oleksij Rempel
2023-05-26 12:08 ` Andrew Lunn
2023-05-26 16:13 ` Florian Fainelli
2023-05-30 18:31 ` Florian Fainelli
2023-05-30 19:35 ` Russell King (Oracle)
2023-05-30 19:49 ` Russell King (Oracle)
2023-05-31 7:14 ` Oleksij Rempel
2023-05-31 14:41 ` Russell King (Oracle)
2023-05-30 19:48 ` Andrew Lunn
2023-05-30 20:03 ` Florian Fainelli
2023-05-30 20:36 ` Russell King (Oracle)
2023-05-30 20:28 ` Russell King (Oracle)
2023-05-30 23:03 ` Florian Fainelli
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230331005518.2134652-1-andrew@lunn.ch \
--to=andrew@lunn.ch \
--cc=f.fainelli@gmail.com \
--cc=hkallweit1@gmail.com \
--cc=linux@rempel-privat.de \
--cc=netdev@vger.kernel.org \
--cc=rmk+kernel@armlinux.org.uk \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.