netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Maxime Chevallier <maxime.chevallier@bootlin.com>
To: "Russell King (Oracle)" <linux@armlinux.org.uk>
Cc: davem@davemloft.net, "Andrew Lunn" <andrew@lunn.ch>,
	"Jakub Kicinski" <kuba@kernel.org>,
	"Eric Dumazet" <edumazet@google.com>,
	"Paolo Abeni" <pabeni@redhat.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 v2 09/13] net: phy: phylink: Use phy_caps_lookup for fixed-link configuration
Date: Wed, 26 Feb 2025 16:16:37 +0100	[thread overview]
Message-ID: <20250226161637.58597e28@fedora.home> (raw)
In-Reply-To: <Z78e1dmEuQzMER5L@shell.armlinux.org.uk>

Hi Russell,

On Wed, 26 Feb 2025 14:01:57 +0000
"Russell King (Oracle)" <linux@armlinux.org.uk> wrote:

> Please use a subject line of "net: phylink: " for phylink patches, not
> "net: phy: " which is for phylib.

Sure thing, I wasn't sure about the subject line for this one.

> On Wed, Feb 26, 2025 at 11:09:24AM +0100, Maxime Chevallier wrote:
> > When phylink creates a fixed-link configuration, it finds a matching
> > linkmode to set as the advertised, lp_advertising and supported modes
> > based on the speed and duplex of the fixed link.
> > 
> > Use the newly introduced phy_caps_lookup to get these modes instead of
> > phy_lookup_settings(). This has the side effect that the matched
> > settings and configured linkmodes may now contain several linkmodes (the
> > intersection of supported linkmodes from the phylink settings and the
> > linkmodes that match speed/duplex) instead of the one from
> > phy_lookup_settings().
> > 
> > Signed-off-by: Maxime Chevallier <maxime.chevallier@bootlin.com>

[...]

> > @@ -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);  
> 
> What's this for? Surely phy_caps_lookup() should not return a link mode
> that wasn't in phy_caps_lookup()'s 3rd argument.

The new lookup may return a linkmode that wasn't in the 3rd argument,
as it will return ALL linkmodes that matched speed and duplex, provided
that at least one of said linkmodes matched the 3rd parameter.

Say you pass SPEED_1000, DUPLEX_FULL and a bitset containing only
1000BaseTFull, you'll get :

 - 1000BaseTFull, 1000BaseKX, 1000BaseT1, etc. in c->linkmodes.

That's the reason for re-andf'ing the modes afterwards.

If that API is too convoluted or error-prone, I can come up with an API
returning only what matched.

Maxime

  reply	other threads:[~2025-02-26 15:16 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-02-26 10:09 [PATCH net-next v2 00/13] net: phy: Rework linkmodes handling in a dedicated file Maxime Chevallier
2025-02-26 10:09 ` [PATCH net-next v2 01/13] net: ethtool: Export the link_mode_params definitions Maxime Chevallier
2025-02-26 10:09 ` [PATCH net-next v2 02/13] net: phy: Use an internal, searchable storage for the linkmodes Maxime Chevallier
2025-02-26 10:09 ` [PATCH net-next v2 03/13] net: phy: phy_caps: Move phy_speeds to phy_caps Maxime Chevallier
2025-02-26 10:09 ` [PATCH net-next v2 04/13] net: phy: phy_caps: Move __set_linkmode_max_speed " Maxime Chevallier
2025-02-26 10:09 ` [PATCH net-next v2 05/13] net: phy: phy_caps: Introduce phy_caps_valid Maxime Chevallier
2025-02-26 10:09 ` [PATCH net-next v2 06/13] net: phy: phy_caps: Implement link_capabilities lookup by linkmode Maxime Chevallier
2025-02-26 10:09 ` [PATCH net-next v2 07/13] net: phy: phy_caps: Allow looking-up link caps based on speed and duplex Maxime Chevallier
2025-02-26 10:09 ` [PATCH net-next v2 08/13] net: phy: phy_device: Use link_capabilities lookup for PHY aneg config Maxime Chevallier
2025-02-26 10:09 ` [PATCH net-next v2 09/13] net: phy: phylink: Use phy_caps_lookup for fixed-link configuration Maxime Chevallier
2025-02-26 14:01   ` Russell King (Oracle)
2025-02-26 15:16     ` Maxime Chevallier [this message]
2025-02-26 10:09 ` [PATCH net-next v2 10/13] net: phy: drop phy_settings and the associated lookup helpers Maxime Chevallier
2025-02-26 10:09 ` [PATCH net-next v2 11/13] net: phy: phylink: Add a mapping between MAC_CAPS and LINK_CAPS Maxime Chevallier
2025-02-26 14:03   ` Russell King (Oracle)
2025-02-26 15:09     ` Maxime Chevallier
2025-02-26 10:09 ` [PATCH net-next v2 12/13] net: phy: phylink: Convert capabilities to linkmodes using phy_caps Maxime Chevallier
2025-02-26 10:09 ` [PATCH net-next v2 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=20250226161637.58597e28@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).