mbox series

[net-next,v4,00/15] Introduce an ethernet port representation

Message ID 20250213101606.1154014-1-maxime.chevallier@bootlin.com (mailing list archive)
Headers show
Series Introduce an ethernet port representation | expand

Message

Maxime Chevallier Feb. 13, 2025, 10:15 a.m. UTC
Hello everyone,

This is V4 of the series introducing the phy_port infrastructure.

Previous version was incorrectly labeled V1, all previous versions can
be found here :

V3: https://lore.kernel.org/netdev/20250207223634.600218-1-maxime.chevallier@bootlin.com/
RFC V2: https://lore.kernel.org/netdev/20250122174252.82730-1-maxime.chevallier@bootlin.com/
RFC V1: https://lore.kernel.org/netdev/20241220201506.2791940-1-maxime.chevallier@bootlin.com/

The goal of that work is to lay the ground for multi-port devices,
either using multi-port PHY devices, or MII-side multiplexers.

for now, that series only focuses on the PHY device aspect, and includes
no uAPI and no muxing support yet.

The key points from that series are :

 - The introduction of a dedicated object to represent a port
 - The introduciton of a new binding to represent these ports in
   devicetree, to accurately describe multi-port devices
 - The support of ports for PHY devices, including PHY-drivert SFP
   busses through a generic phylib set of upstream ops
 - The MAINTAINERS file was updated to account for the new files
 - Some documentation :)

Changes in V4 :

 - Introduced a kernel doc
 - Reworked the mediums definitions in patch 2
 - QCA807x now uses the generic SFP support
 - Fixed some implementation bugs to build the support list based on the
   interfaces supported on a port

Maxime Chevallier (15):
  net: ethtool: Introduce ETHTOOL_LINK_MEDIUM_* values
  net: ethtool: Export the link_mode_params definitions
  net: phy: Introduce PHY ports representation
  net: phy: dp83822: Add support for phy_port representation
  net: phy: Create a phy_port for PHY-driven SFPs
  net: phy: Introduce generic SFP handling for PHY drivers
  net: phy: marvell-88x2222: Support SFP through phy_port interface
  net: phy: marvell: Support SFP through phy_port interface
  net: phy: marvell10g: Support SFP through phy_port
  net: phy: at803x: Support SFP through phy_port interface
  net: phy: qca807x: Support SFP through phy_port interface
  net: phy: Only rely on phy_port for PHY-driven SFP
  net: phy: dp83822: Add SFP support through the phy_port interface
  Documentation: networking: Document the phy_port infrastructure
  dt-bindings: net: Introduce the phy-port description

 .../devicetree/bindings/net/ethernet-phy.yaml |  18 +
 .../bindings/net/ethernet-port.yaml           |  47 +++
 Documentation/networking/index.rst            |   1 +
 Documentation/networking/phy-port.rst         | 111 +++++++
 MAINTAINERS                                   |   3 +
 drivers/net/phy/Makefile                      |   2 +-
 drivers/net/phy/dp83822.c                     |  71 ++--
 drivers/net/phy/marvell-88x2222.c             |  96 +++---
 drivers/net/phy/marvell.c                     | 100 +++---
 drivers/net/phy/marvell10g.c                  |  37 +--
 drivers/net/phy/phy_device.c                  | 312 +++++++++++++++++-
 drivers/net/phy/phy_port.c                    | 176 ++++++++++
 drivers/net/phy/phylink.c                     |  32 ++
 drivers/net/phy/qcom/at803x.c                 |  64 +---
 drivers/net/phy/qcom/qca807x.c                |  75 ++---
 include/linux/ethtool.h                       |  73 ++++
 include/linux/phy.h                           |  38 ++-
 include/linux/phy_port.h                      |  92 ++++++
 include/linux/phylink.h                       |   2 +
 net/ethtool/common.c                          | 250 ++++++++------
 net/ethtool/common.h                          |   7 -
 21 files changed, 1218 insertions(+), 389 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/net/ethernet-port.yaml
 create mode 100644 Documentation/networking/phy-port.rst
 create mode 100644 drivers/net/phy/phy_port.c
 create mode 100644 include/linux/phy_port.h

Comments

Jakub Kicinski Feb. 15, 2025, 12:53 a.m. UTC | #1
On Thu, 13 Feb 2025 11:15:48 +0100 Maxime Chevallier wrote:
> This is V4 of the series introducing the phy_port infrastructure.

FWIW it doesn't seem to apply:

Applying: net: ethtool: Introduce ETHTOOL_LINK_MEDIUM_* values
Applying: net: ethtool: Export the link_mode_params definitions
error: sha1 information is lacking or useless (net/ethtool/common.c).
error: could not build fake ancestor
hint: Use 'git am --show-current-patch=diff' to see the failed patch
hint: When you have resolved this problem, run "git am --continue".
hint: If you prefer to skip this patch, run "git am --skip" instead.
hint: To restore the original branch and stop patching, run "git am --abort".
hint: Disable this message with "git config set advice.mergeConflict false"
Patch failed at 0002 net: ethtool: Export the link_mode_params definitions
Maxime Chevallier Feb. 17, 2025, 9:20 a.m. UTC | #2
On Fri, 14 Feb 2025 16:53:45 -0800
Jakub Kicinski <kuba@kernel.org> wrote:

> On Thu, 13 Feb 2025 11:15:48 +0100 Maxime Chevallier wrote:
> > This is V4 of the series introducing the phy_port infrastructure.  
> 
> FWIW it doesn't seem to apply:
> 
> Applying: net: ethtool: Introduce ETHTOOL_LINK_MEDIUM_* values
> Applying: net: ethtool: Export the link_mode_params definitions
> error: sha1 information is lacking or useless (net/ethtool/common.c).
> error: could not build fake ancestor

Hmm strange, I may have messed-up somewhere ? I'll rebase anyways for
the next iterations, some of the recently merged work with the
.get_nexy_update_time conflicts with the series as well.

Thanks,

Maxime