From: "Russell King (Oracle)" <linux@armlinux.org.uk>
To: Maxime Chevallier <maxime.chevallier@bootlin.com>
Cc: davem@davemloft.net, netdev@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org,
thomas.petazzoni@bootlin.com, "Andrew Lunn" <andrew@lunn.ch>,
"Jakub Kicinski" <kuba@kernel.org>,
"Eric Dumazet" <edumazet@google.com>,
"Paolo Abeni" <pabeni@redhat.com>,
linux-arm-kernel@lists.infradead.org,
"Christophe Leroy" <christophe.leroy@csgroup.eu>,
"Herve Codina" <herve.codina@bootlin.com>,
"Florian Fainelli" <f.fainelli@gmail.com>,
"Heiner Kallweit" <hkallweit1@gmail.com>,
"Vladimir Oltean" <vladimir.oltean@nxp.com>,
"Köry Maincent" <kory.maincent@bootlin.com>,
"Marek Behún" <kabel@kernel.org>,
"Oleksij Rempel" <o.rempel@pengutronix.de>,
"Nicolò Veronese" <nicveronese@gmail.com>,
"Simon Horman" <horms@kernel.org>,
mwojtas@chromium.org, "Antoine Tenart" <atenart@kernel.org>,
devicetree@vger.kernel.org, "Conor Dooley" <conor+dt@kernel.org>,
"Krzysztof Kozlowski" <krzk+dt@kernel.org>,
"Rob Herring" <robh@kernel.org>,
"Romain Gantois" <romain.gantois@bootlin.com>,
"Daniel Golle" <daniel@makrotopia.org>,
"Dimitri Fedrau" <dimitri.fedrau@liebherr.com>,
"Sean Anderson" <seanga2@gmail.com>
Subject: Re: [PATCH net-next v4 05/15] net: phy: Create a phy_port for PHY-driven SFPs
Date: Mon, 17 Feb 2025 14:21:29 +0000 [thread overview]
Message-ID: <Z7NF6ciz4RHMaGo6@shell.armlinux.org.uk> (raw)
In-Reply-To: <20250217092911.772da5d0@fedora.home>
On Mon, Feb 17, 2025 at 09:29:11AM +0100, Maxime Chevallier wrote:
> Hello Russell,
>
> On Sat, 15 Feb 2025 18:57:01 +0000
> "Russell King (Oracle)" <linux@armlinux.org.uk> wrote:
>
> > On Thu, Feb 13, 2025 at 11:15:53AM +0100, Maxime Chevallier wrote:
> > > Some PHY devices may be used as media-converters to drive SFP ports (for
> > > example, to allow using SFP when the SoC can only output RGMII). This is
> > > already supported to some extend by allowing PHY drivers to registers
> > > themselves as being SFP upstream.
> > >
> > > However, the logic to drive the SFP can actually be split to a per-port
> > > control logic, allowing support for multi-port PHYs, or PHYs that can
> > > either drive SFPs or Copper.
> > >
> > > To that extent, create a phy_port when registering an SFP bus onto a
> > > PHY. This port is considered a "serdes" port, in that it can feed data
> > > to anther entity on the link. The PHY driver needs to specify the
> > > various PHY_INTERFACE_MODE_XXX that this port supports.
> > >
> > > Signed-off-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
> >
> > With this change, using phy_port requires phylink to also be built in
> > an appropriate manner. Currently, phylink depends on phylib. phy_port
> > becomes part of phylib. This patch makes phylib depend on phylink,
> > thereby creating a circular dependency when modular.
> >
> > I think a different approach is needed here.
>
> That's true.
>
> One way to avoid that would be to extract out of phylink/phylib all the
> functions for linkmode handling that aren't tied to phylink/phylib
> directly, but are about managing the capabilities of each interface,
> linkmode, speed, duplex, etc. For phylink, that would be :
>
> phylink_merge_link_mode
> phylink_get_capabilities
> phylink_cap_from_speed_duplex
> phylink_limit_mac_speed
> phylink_caps_to_linkmodes
> phylink_interface_max_speed
> phylink_interface_signal_rate
> phylink_is_empty_linkmode
> phylink_an_mode_str
> phylink_set_port_modes
>
> For now all these are phylink internal and that makes sense, but if we want
> phy-driven SFP support, stackable PHYs and so on, we'll need some ways for
> the PHY to expose its media-side capabilities, and we'd reuse these.
>
> These would go into linkmode.c/h for example, and we'd have a shared set
> of helpers that we can use in phylink, phylib and phy_port.
>
> Before I go around and rearrange that, are you OK with this approach ?
I'm not convinced. If you're thinking of that level of re-use, you're
probably going to miss out on a lot of logic that's in phylink. Maybe
there should be a way to re-use phylink in its entirety between the
PHY and SFP.
Some of the above (that deal only with linkmodes) would make sense
to move out though.
--
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 80Mbps down 10Mbps up. Decent connectivity at last!
next prev parent reply other threads:[~2025-02-17 14:21 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-02-13 10:15 [PATCH net-next v4 00/15] Introduce an ethernet port representation Maxime Chevallier
2025-02-13 10:15 ` [PATCH net-next v4 01/15] net: ethtool: Introduce ETHTOOL_LINK_MEDIUM_* values Maxime Chevallier
2025-02-13 10:15 ` [PATCH net-next v4 02/15] net: ethtool: Export the link_mode_params definitions Maxime Chevallier
2025-02-13 10:15 ` [PATCH net-next v4 03/15] net: phy: Introduce PHY ports representation Maxime Chevallier
2025-02-13 10:15 ` [PATCH net-next v4 04/15] net: phy: dp83822: Add support for phy_port representation Maxime Chevallier
2025-02-15 11:31 ` AW: " Fedrau Dimitri (LED)
2025-02-17 9:26 ` Maxime Chevallier
2025-02-13 10:15 ` [PATCH net-next v4 05/15] net: phy: Create a phy_port for PHY-driven SFPs Maxime Chevallier
2025-02-15 18:57 ` Russell King (Oracle)
2025-02-17 8:29 ` Maxime Chevallier
2025-02-17 13:43 ` Andrew Lunn
2025-02-17 14:22 ` Maxime Chevallier
2025-02-17 15:29 ` Andrew Lunn
2025-02-17 14:21 ` Russell King (Oracle) [this message]
2025-02-17 14:49 ` Maxime Chevallier
2025-02-13 10:15 ` [PATCH net-next v4 06/15] net: phy: Introduce generic SFP handling for PHY drivers Maxime Chevallier
2025-02-13 10:15 ` [PATCH net-next v4 07/15] net: phy: marvell-88x2222: Support SFP through phy_port interface Maxime Chevallier
2025-02-13 10:15 ` [PATCH net-next v4 08/15] net: phy: marvell: " Maxime Chevallier
2025-02-13 10:15 ` [PATCH net-next v4 09/15] net: phy: marvell10g: Support SFP through phy_port Maxime Chevallier
2025-02-13 10:15 ` [PATCH net-next v4 10/15] net: phy: at803x: Support SFP through phy_port interface Maxime Chevallier
2025-02-13 10:15 ` [PATCH net-next v4 11/15] net: phy: qca807x: " Maxime Chevallier
2025-02-13 10:16 ` [PATCH net-next v4 12/15] net: phy: Only rely on phy_port for PHY-driven SFP Maxime Chevallier
2025-02-13 10:16 ` [PATCH net-next v4 13/15] net: phy: dp83822: Add SFP support through the phy_port interface Maxime Chevallier
2025-02-13 10:16 ` [PATCH net-next v4 14/15] Documentation: networking: Document the phy_port infrastructure Maxime Chevallier
2025-02-13 10:16 ` [PATCH net-next v4 15/15] dt-bindings: net: Introduce the phy-port description Maxime Chevallier
2025-02-19 22:35 ` Rob Herring
2025-02-20 8:35 ` Maxime Chevallier
2025-02-15 0:53 ` [PATCH net-next v4 00/15] Introduce an ethernet port representation Jakub Kicinski
2025-02-17 9:20 ` Maxime Chevallier
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=Z7NF6ciz4RHMaGo6@shell.armlinux.org.uk \
--to=linux@armlinux.org.uk \
--cc=andrew@lunn.ch \
--cc=atenart@kernel.org \
--cc=christophe.leroy@csgroup.eu \
--cc=conor+dt@kernel.org \
--cc=daniel@makrotopia.org \
--cc=davem@davemloft.net \
--cc=devicetree@vger.kernel.org \
--cc=dimitri.fedrau@liebherr.com \
--cc=edumazet@google.com \
--cc=f.fainelli@gmail.com \
--cc=herve.codina@bootlin.com \
--cc=hkallweit1@gmail.com \
--cc=horms@kernel.org \
--cc=kabel@kernel.org \
--cc=kory.maincent@bootlin.com \
--cc=krzk+dt@kernel.org \
--cc=kuba@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=maxime.chevallier@bootlin.com \
--cc=mwojtas@chromium.org \
--cc=netdev@vger.kernel.org \
--cc=nicveronese@gmail.com \
--cc=o.rempel@pengutronix.de \
--cc=pabeni@redhat.com \
--cc=robh@kernel.org \
--cc=romain.gantois@bootlin.com \
--cc=seanga2@gmail.com \
--cc=thomas.petazzoni@bootlin.com \
--cc=vladimir.oltean@nxp.com \
/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 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).