From: Maxime Chevallier <maxime.chevallier@bootlin.com>
To: "Russell King (Oracle)" <linux@armlinux.org.uk>
Cc: "Paolo Abeni" <pabeni@redhat.com>,
davem@davemloft.net, "Andrew Lunn" <andrew@lunn.ch>,
"Jakub Kicinski" <kuba@kernel.org>,
"Eric Dumazet" <edumazet@google.com>,
"Heiner Kallweit" <hkallweit1@gmail.com>,
netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
thomas.petazzoni@bootlin.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>,
"Vladimir Oltean" <vladimir.oltean@nxp.com>,
"Köry Maincent" <kory.maincent@bootlin.com>,
"Oleksij Rempel" <o.rempel@pengutronix.de>,
"Simon Horman" <horms@kernel.org>,
"Romain Gantois" <romain.gantois@bootlin.com>
Subject: Re: [PATCH net-next v4 09/13] net: phylink: Use phy_caps_lookup for fixed-link configuration
Date: Thu, 6 Mar 2025 14:26:20 +0100 [thread overview]
Message-ID: <20250306142620.002d8b8a@fedora.home> (raw)
In-Reply-To: <Z8maRNYsn1LzjryX@shell.armlinux.org.uk>
On Thu, 6 Mar 2025 12:51:16 +0000
"Russell King (Oracle)" <linux@armlinux.org.uk> wrote:
> On Thu, Mar 06, 2025 at 11:12:20AM +0100, Maxime Chevallier wrote:
> > On Thu, 6 Mar 2025 09:56:32 +0100
> > Paolo Abeni <pabeni@redhat.com> wrote:
> >
> > > On 3/3/25 10:03 AM, Maxime Chevallier wrote:
> > > > @@ -879,8 +880,10 @@ static int phylink_parse_fixedlink(struct phylink *pl,
> > > > linkmode_copy(pl->link_config.advertising, pl->supported);
> > > > phylink_validate(pl, pl->supported, &pl->link_config);
> > > >
> > > > - s = phy_lookup_setting(pl->link_config.speed, pl->link_config.duplex,
> > > > - pl->supported, true);
> > > > + c = phy_caps_lookup(pl->link_config.speed, pl->link_config.duplex,
> > > > + pl->supported, true);
> > > > + if (c)
> > > > + linkmode_and(match, pl->supported, c->linkmodes);
> > >
> > > How about using only the first bit from `c->linkmodes`, to avoid
> > > behavior changes?
> >
> > If what we want is to keep the exact same behaviour, then we need to
> > go one step further and make sure we keep the same one as before, and
> > it's not guaranteed that the first bit in c->linkmodes is this one.
> >
> > We could however have a default supported mask for fixed-link in phylink
> > that contains all the linkmodes we allow for fixed links, then filter
> > with the lookup, something like :
> >
> >
> > - linkmode_fill(pl->supported);
> > + /* (in a dedicated helper) Linkmodes reported for fixed links below
> > + * 10G */
> > + linkmode_zero(pl->supported);
> > +
> > + linkmode_set_bit(ETHTOOL_LINK_MODE_10baseT_Half_BIT, pl->supported);
> > + linkmode_set_bit(ETHTOOL_LINK_MODE_10baseT_Full_BIT, pl->supported);
> > + linkmode_set_bit(ETHTOOL_LINK_MODE_100baseT_Half_BIT, pl->supported);
> > + linkmode_set_bit(ETHTOOL_LINK_MODE_100baseT_Full_BIT, pl->supported);
> > + linkmode_set_bit(ETHTOOL_LINK_MODE_1000baseT_Half_BIT, pl->supported);
> > + linkmode_set_bit(ETHTOOL_LINK_MODE_1000baseT_Full_BIT, pl->supported);
> > + linkmode_set_bit(ETHTOOL_LINK_MODE_2500baseT_Full_BIT, pl->supported);
> > + linkmode_set_bit(ETHTOOL_LINK_MODE_5000baseT_Full_BIT, pl->supported);
> > + linkmode_set_bit(ETHTOOL_LINK_MODE_10000baseT_Full_BIT, pl->supported);
>
> Good idea, but do we have some way to automatically generate the baseT
> link modes?
I think we could with some of the preliminary phy_port patches I had
sent before going into that phy_caps series :
https://lore.kernel.org/netdev/20250213101606.1154014-2-maxime.chevallier@bootlin.com/
It adds the information about medium, maybe we could adapt that, making
sure we filter out BaseT1 for example, but that would be a generic way
of generating that list indeed.
I don't necessarily mean to add this "mediums" thing into this series
right now, we could for now set that list of all BaseT modes in an
internal helper, then later on convert it to the mediums-based
linkmodes listing. I'll go back to phy_ports after phy_caps :)
Thanks,
Maxime
next prev parent reply other threads:[~2025-03-06 13:26 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-03 9:03 [PATCH net-next v4 00/13] net: phy: Rework linkmodes handling in a dedicated file Maxime Chevallier
2025-03-03 9:03 ` [PATCH net-next v4 01/13] net: ethtool: Export the link_mode_params definitions Maxime Chevallier
2025-03-03 9:03 ` [PATCH net-next v4 02/13] net: phy: Use an internal, searchable storage for the linkmodes Maxime Chevallier
2025-03-06 8:30 ` Paolo Abeni
2025-03-06 8:57 ` Maxime Chevallier
2025-03-06 10:47 ` Paolo Abeni
2025-03-03 9:03 ` [PATCH net-next v4 03/13] net: phy: phy_caps: Move phy_speeds to phy_caps Maxime Chevallier
2025-03-03 9:03 ` [PATCH net-next v4 04/13] net: phy: phy_caps: Move __set_linkmode_max_speed " Maxime Chevallier
2025-03-03 9:03 ` [PATCH net-next v4 05/13] net: phy: phy_caps: Introduce phy_caps_valid Maxime Chevallier
2025-03-03 9:03 ` [PATCH net-next v4 06/13] net: phy: phy_caps: Implement link_capabilities lookup by linkmode Maxime Chevallier
2025-03-03 9:03 ` [PATCH net-next v4 07/13] net: phy: phy_caps: Allow looking-up link caps based on speed and duplex Maxime Chevallier
2025-03-03 9:03 ` [PATCH net-next v4 08/13] net: phy: phy_device: Use link_capabilities lookup for PHY aneg config Maxime Chevallier
2025-03-03 9:03 ` [PATCH net-next v4 09/13] net: phylink: Use phy_caps_lookup for fixed-link configuration Maxime Chevallier
2025-03-04 14:43 ` Maxime Chevallier
2025-03-06 12:48 ` Russell King (Oracle)
2025-03-06 8:56 ` Paolo Abeni
2025-03-06 10:12 ` Maxime Chevallier
2025-03-06 12:51 ` Russell King (Oracle)
2025-03-06 13:26 ` Maxime Chevallier [this message]
2025-03-03 9:03 ` [PATCH net-next v4 10/13] net: phy: drop phy_settings and the associated lookup helpers Maxime Chevallier
2025-03-03 9:03 ` [PATCH net-next v4 11/13] net: phylink: Add a mapping between MAC_CAPS and LINK_CAPS Maxime Chevallier
2025-03-03 9:03 ` [PATCH net-next v4 12/13] net: phylink: Convert capabilities to linkmodes using phy_caps Maxime Chevallier
2025-03-03 9:03 ` [PATCH net-next v4 13/13] net: phy: phy_caps: Allow getting an phy_interface's capabilities 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=20250306142620.002d8b8a@fedora.home \
--to=maxime.chevallier@bootlin.com \
--cc=andrew@lunn.ch \
--cc=christophe.leroy@csgroup.eu \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=f.fainelli@gmail.com \
--cc=herve.codina@bootlin.com \
--cc=hkallweit1@gmail.com \
--cc=horms@kernel.org \
--cc=kory.maincent@bootlin.com \
--cc=kuba@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@armlinux.org.uk \
--cc=netdev@vger.kernel.org \
--cc=o.rempel@pengutronix.de \
--cc=pabeni@redhat.com \
--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 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).