netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [RFC/RFT 00/23] net: ethernet: Rework EEE
@ 2023-03-27 17:01 Andrew Lunn
  2023-03-27 17:01 ` [RFC/RFT 01/23] net: phy: Add phydev->eee_active to simplify adjust link callbacks Andrew Lunn
                   ` (22 more replies)
  0 siblings, 23 replies; 37+ messages in thread
From: Andrew Lunn @ 2023-03-27 17:01 UTC (permalink / raw)
  To: netdev
  Cc: Florian Fainelli, Heiner Kallweit, Russell King, Oleksij Rempel,
	Andrew Lunn

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.

There is some overlap here with the addition of SMART EEE. This needs
to be solved before either patchset is merged. This patchset is also
large, so might need splitting into adding new infrastructure,
migrating MAC drivers, removing old code.

I deliberately reduced the Cc: list down to just a few developers, who
i hope can test the core and a couple of the MAC drivers, and review
if the new API makes sense, before the other MAC drivers are reviewed.

Andrew Lunn (23):
  net: phy: Add phydev->eee_active to simplify adjust link callbacks
  net: phylink: Plumb eee_active in mac_link_up call
  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: 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              |  8 +-
 drivers/net/dsa/b53/b53_priv.h                |  3 +-
 drivers/net/dsa/bcm_sf2.c                     |  3 +-
 drivers/net/dsa/lan9303-core.c                |  2 +-
 drivers/net/dsa/lantiq_gswip.c                |  3 +-
 drivers/net/dsa/microchip/ksz_common.c        | 10 ++-
 drivers/net/dsa/microchip/ksz_common.h        |  3 +-
 drivers/net/dsa/mt7530.c                      |  8 +-
 drivers/net/dsa/mv88e6xxx/chip.c              |  3 +-
 drivers/net/dsa/ocelot/felix.c                |  3 +-
 drivers/net/dsa/qca/ar9331.c                  |  3 +-
 drivers/net/dsa/qca/qca8k-8xxx.c              |  3 +-
 drivers/net/dsa/realtek/rtl8365mb.c           |  2 +-
 drivers/net/dsa/realtek/rtl8366rb.c           |  3 +-
 drivers/net/dsa/rzn1_a5psw.c                  |  3 +-
 drivers/net/dsa/sja1105/sja1105_main.c        |  3 +-
 drivers/net/dsa/xrs700x/xrs700x.c             |  3 +-
 drivers/net/ethernet/altera/altera_tse_main.c |  3 +-
 drivers/net/ethernet/atheros/ag71xx.c         |  3 +-
 .../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/cadence/macb_main.c      |  3 +-
 .../net/ethernet/freescale/dpaa2/dpaa2-mac.c  |  3 +-
 .../net/ethernet/freescale/enetc/enetc_pf.c   |  3 +-
 drivers/net/ethernet/freescale/fec_main.c     | 88 ++++++++-----------
 .../net/ethernet/freescale/fman/fman_dtsec.c  |  3 +-
 .../net/ethernet/freescale/fman/fman_memac.c  |  3 +-
 .../net/ethernet/freescale/fman/fman_tgec.c   |  3 +-
 drivers/net/ethernet/marvell/mvneta.c         | 24 ++---
 .../net/ethernet/marvell/mvpp2/mvpp2_main.c   |  5 +-
 .../ethernet/marvell/prestera/prestera_main.c |  3 +-
 drivers/net/ethernet/mediatek/mtk_eth_soc.c   |  3 +-
 .../net/ethernet/microchip/lan743x_ethtool.c  | 22 -----
 drivers/net/ethernet/microchip/lan743x_main.c |  9 ++
 .../microchip/lan966x/lan966x_phylink.c       |  3 +-
 .../microchip/sparx5/sparx5_phylink.c         |  3 +-
 drivers/net/ethernet/mscc/ocelot_net.c        |  3 +-
 .../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 | 13 +--
 drivers/net/ethernet/ti/am65-cpsw-nuss.c      |  3 +-
 .../net/ethernet/xilinx/xilinx_axienet_main.c |  3 +-
 drivers/net/phy/phy-c45.c                     | 11 ++-
 drivers/net/phy/phy-core.c                    | 11 +++
 drivers/net/phy/phy.c                         | 57 ++++++------
 drivers/net/phy/phy_device.c                  | 37 ++++----
 drivers/net/phy/phylink.c                     | 37 ++++----
 drivers/net/usb/asix_devices.c                |  2 +-
 drivers/net/usb/lan78xx.c                     | 38 ++++----
 include/linux/phy.h                           | 10 ++-
 include/linux/phylink.h                       | 25 +++---
 include/net/dsa.h                             |  3 +-
 net/dsa/port.c                                |  9 +-
 57 files changed, 295 insertions(+), 336 deletions(-)

-- 
2.39.2


^ permalink raw reply	[flat|nested] 37+ messages in thread

end of thread, other threads:[~2023-03-28 12:09 UTC | newest]

Thread overview: 37+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-03-27 17:01 [RFC/RFT 00/23] net: ethernet: Rework EEE Andrew Lunn
2023-03-27 17:01 ` [RFC/RFT 01/23] net: phy: Add phydev->eee_active to simplify adjust link callbacks Andrew Lunn
2023-03-27 17:54   ` Russell King (Oracle)
2023-03-27 17:01 ` [RFC/RFT 02/23] net: phylink: Plumb eee_active in mac_link_up call Andrew Lunn
2023-03-27 17:57   ` Russell King (Oracle)
2023-03-27 21:53   ` Russell King (Oracle)
2023-03-27 22:45     ` Andrew Lunn
2023-03-27 17:01 ` [RFC/RFT 03/23] net: phy: Add helper to set EEE Clock stop enable bit Andrew Lunn
2023-03-27 17:58   ` Russell King (Oracle)
2023-03-28  5:03   ` Oleksij Rempel
2023-03-28  5:13     ` Oleksij Rempel
2023-03-28 12:09     ` Andrew Lunn
2023-03-27 17:01 ` [RFC/RFT 04/23] net: phy: Keep track of EEE tx_lpi_enabled Andrew Lunn
2023-03-27 17:58   ` Russell King (Oracle)
2023-03-27 17:01 ` [RFC/RFT 05/23] net: phy: Immediately call adjust_link if only tx_lpi_enabled changes Andrew Lunn
2023-03-27 18:02   ` Russell King (Oracle)
2023-03-27 22:13     ` Andrew Lunn
2023-03-27 17:01 ` [RFC/RFT 06/23] net: marvell: mvneta: Simplify EEE configuration Andrew Lunn
2023-03-27 17:01 ` [RFC/RFT 07/23] net: stmmac: Drop usage of phy_init_eee() Andrew Lunn
2023-03-27 17:01 ` [RFC/RFT 08/23] net: stmmac: Simplify ethtool get eee Andrew Lunn
2023-03-27 17:01 ` [RFC/RFT 09/23] net: lan743x: Fixup EEE Andrew Lunn
2023-03-27 17:01 ` [RFC/RFT 10/23] net: fec: Move fec_enet_eee_mode_set() and helper earlier Andrew Lunn
2023-03-27 17:01 ` [RFC/RFT 11/23] net: FEC: Fixup EEE Andrew Lunn
2023-03-27 17:01 ` [RFC/RFT 12/23] net: genet: " Andrew Lunn
2023-03-27 17:01 ` [RFC/RFT 13/23] net: sxgdb: " Andrew Lunn
2023-03-27 17:01 ` [RFC/RFT 14/23] net: dsa: mt7530: Swap to using phydev->eee_active Andrew Lunn
2023-03-27 17:01 ` [RFC/RFT 15/23] net: dsa: b53: " Andrew Lunn
2023-03-27 17:01 ` [RFC/RFT 16/23] net: phylink: Remove unused phylink_init_eee() Andrew Lunn
2023-03-27 17:01 ` [RFC/RFT 17/23] net: phy: remove unused phy_init_eee() Andrew Lunn
2023-03-27 17:01 ` [RFC/RFT 18/23] net: usb: lan78xx: Fixup EEE Andrew Lunn
2023-03-27 17:01 ` [RFC/RFT 19/23] net: phy: Add phy_support_eee() indicating MAC support EEE Andrew Lunn
2023-03-27 17:01 ` [RFC/RFT 20/23] net: phylink: Add MAC_EEE to mac_capabilites Andrew Lunn
2023-03-27 21:59   ` Russell King (Oracle)
2023-03-27 22:15     ` Andrew Lunn
2023-03-27 17:01 ` [RFC/RFT 21/23] net: phylink: Extend mac_capabilities in MAC drivers which support EEE Andrew Lunn
2023-03-27 17:02 ` [RFC/RFT 22/23] net: phylib: call phy_support_eee() " Andrew Lunn
2023-03-27 17:02 ` [RFC/RFT 23/23] net: phy: Disable EEE advertisement by default Andrew Lunn

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).