From: Maxime Chevallier <maxime.chevallier@bootlin.com>
To: "Russell King (Oracle)" <linux@armlinux.org.uk>
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>
Subject: Re: [PATCH net-next v10 07/15] net: phy: Introduce generic SFP handling for PHY drivers
Date: Mon, 4 Aug 2025 15:51:15 +0200 [thread overview]
Message-ID: <20250804155115.4a301cdc@fedora.home> (raw)
In-Reply-To: <aIX35MUxx-OkvX4G@shell.armlinux.org.uk>
On Sun, 27 Jul 2025 10:56:52 +0100
"Russell King (Oracle)" <linux@armlinux.org.uk> wrote:
> On Tue, Jul 22, 2025 at 02:16:12PM +0200, Maxime Chevallier wrote:
> > +static int phy_sfp_module_insert(void *upstream, const struct sfp_eeprom_id *id)
> > +{
> > + struct phy_device *phydev = upstream;
> > + struct phy_port *port = phy_get_sfp_port(phydev);
> > +
> > + __ETHTOOL_DECLARE_LINK_MODE_MASK(sfp_support);
> > + DECLARE_PHY_INTERFACE_MASK(interfaces);
> > + phy_interface_t iface;
> > +
> > + linkmode_zero(sfp_support);
> > +
> > + if (!port)
> > + return -EINVAL;
> > +
> > + sfp_parse_support(phydev->sfp_bus, id, sfp_support, interfaces);
> > +
> > + if (phydev->n_ports == 1)
> > + phydev->port = sfp_parse_port(phydev->sfp_bus, id, sfp_support);
> > +
> > + linkmode_and(sfp_support, port->supported, sfp_support);
> > +
> > + if (linkmode_empty(sfp_support)) {
> > + dev_err(&phydev->mdio.dev, "incompatible SFP module inserted\n");
> > + return -EINVAL;
> > + }
> > +
> > + iface = sfp_select_interface(phydev->sfp_bus, sfp_support);
>
> I've been moving phylink away from using sfp_select_interface() because
> it requires two stages of translation - one from the module capabilties
> to linkmodes, and then linkmodes to interfaces.
>
> sfp_parse_support() now provides the interfaces that the optical module
> supports, and the possible interfaces that a copper module _might_
> support (but we don't know for certain about that until we discover a
> PHY.)
>
> The only place in phylink where this function continues to be used is
> when there's an optical module which supports multiple different
> speeds, and we need to select it based on the advertising mask provided
> by userspace. Everywhere else shouldn't use this function, but should
> instead use the interfaces returned from sfp_parse_support().
Thanks for the input, it'll make things even simpler so I'm all in for
that. I'll rework this for the next iteration, thanks a lot for taking
a look at this !
Maxime
>
next prev parent reply other threads:[~2025-08-04 14:41 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-07-22 12:16 [PATCH net-next v10 00/15] net: phy: Introduce PHY ports representation Maxime Chevallier
2025-07-22 12:16 ` [PATCH net-next v10 01/15] dt-bindings: net: Introduce the ethernet-connector description Maxime Chevallier
2025-07-26 19:49 ` Andrew Lunn
2025-07-31 13:35 ` Maxime Chevallier
2025-07-22 12:16 ` [PATCH net-next v10 02/15] net: ethtool: common: Indicate that BaseT works on up to 4 lanes Maxime Chevallier
2025-07-22 12:16 ` [PATCH net-next v10 03/15] net: ethtool: Introduce ETHTOOL_LINK_MEDIUM_* values Maxime Chevallier
2025-07-22 12:16 ` [PATCH net-next v10 04/15] net: phy: Introduce PHY ports representation Maxime Chevallier
2025-07-26 20:33 ` Andrew Lunn
2025-08-04 13:33 ` Maxime Chevallier
2025-07-26 20:38 ` Andrew Lunn
2025-08-04 13:41 ` Maxime Chevallier
2025-07-22 12:16 ` [PATCH net-next v10 05/15] net: phy: dp83822: Add support for phy_port representation Maxime Chevallier
2025-07-26 20:50 ` Andrew Lunn
2025-08-04 13:44 ` Maxime Chevallier
2025-07-22 12:16 ` [PATCH net-next v10 06/15] net: phy: Create a phy_port for PHY-driven SFPs Maxime Chevallier
2025-07-26 20:52 ` Andrew Lunn
2025-08-04 13:45 ` Maxime Chevallier
2025-07-22 12:16 ` [PATCH net-next v10 07/15] net: phy: Introduce generic SFP handling for PHY drivers Maxime Chevallier
2025-07-26 21:05 ` Andrew Lunn
2025-08-04 13:49 ` Maxime Chevallier
2025-07-27 9:56 ` Russell King (Oracle)
2025-08-04 13:51 ` Maxime Chevallier [this message]
2025-08-22 10:09 ` Maxime Chevallier
2025-07-22 12:16 ` [PATCH net-next v10 08/15] net: phy: marvell-88x2222: Support SFP through phy_port interface Maxime Chevallier
2025-07-22 12:16 ` [PATCH net-next v10 09/15] net: phy: marvell: " Maxime Chevallier
2025-07-26 21:13 ` Andrew Lunn
2025-08-04 13:52 ` Maxime Chevallier
2025-07-22 12:16 ` [PATCH net-next v10 10/15] net: phy: marvell10g: Support SFP through phy_port Maxime Chevallier
2025-07-26 21:17 ` Andrew Lunn
2025-08-04 13:53 ` Maxime Chevallier
2025-07-22 12:16 ` [PATCH net-next v10 11/15] net: phy: at803x: Support SFP through phy_port interface Maxime Chevallier
2025-07-26 21:24 ` Andrew Lunn
2025-08-04 13:56 ` Maxime Chevallier
2025-08-11 13:23 ` Maxime Chevallier
2025-07-22 12:16 ` [PATCH net-next v10 12/15] net: phy: qca807x: " Maxime Chevallier
2025-07-22 12:16 ` [PATCH net-next v10 13/15] net: phy: Only rely on phy_port for PHY-driven SFP Maxime Chevallier
2025-07-22 12:16 ` [PATCH net-next v10 14/15] net: phy: dp83822: Add SFP support through the phy_port interface Maxime Chevallier
2025-07-22 12:16 ` [PATCH net-next v10 15/15] Documentation: networking: Document the phy_port infrastructure Maxime Chevallier
2025-07-25 20:04 ` [PATCH net-next v10 00/15] net: phy: Introduce PHY ports representation Jakub Kicinski
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=20250804155115.4a301cdc@fedora.home \
--to=maxime.chevallier@bootlin.com \
--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=linux@armlinux.org.uk \
--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=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 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.