Message ID | E1t3Fh5-000aQi-Nk@rmk-PC.armlinux.org.uk (mailing list archive) |
---|---|
State | Accepted |
Commit | e0e918494c3cfdc589c9ede49183046a42cdff39 |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net-next] net: phylink: simplify phylink_parse_fixedlink() | expand |
On Tue, Oct 22, 2024 at 03:17:07PM +0100, Russell King (Oracle) wrote: > phylink_parse_fixedlink() wants to preserve the pause, asym_pause and > autoneg bits in pl->supported. Rather than reading the bits into > separate bools, zeroing pl->supported, and then setting them if they > were previously set, use a mask and linkmode_and() to achieve the same > result. > > Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk> Reviewed-by: Simon Horman <horms@kernel.org>
Hello: This patch was applied to netdev/net-next.git (main) by Jakub Kicinski <kuba@kernel.org>: On Tue, 22 Oct 2024 15:17:07 +0100 you wrote: > phylink_parse_fixedlink() wants to preserve the pause, asym_pause and > autoneg bits in pl->supported. Rather than reading the bits into > separate bools, zeroing pl->supported, and then setting them if they > were previously set, use a mask and linkmode_and() to achieve the same > result. > > Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk> > > [...] Here is the summary with links: - [net-next] net: phylink: simplify phylink_parse_fixedlink() https://git.kernel.org/netdev/net-next/c/e0e918494c3c You are awesome, thank you!
diff --git a/drivers/net/phy/phylink.c b/drivers/net/phy/phylink.c index 29206f72ab8b..6ca7ea970f51 100644 --- a/drivers/net/phy/phylink.c +++ b/drivers/net/phy/phylink.c @@ -764,8 +764,8 @@ static int phylink_validate(struct phylink *pl, unsigned long *supported, static int phylink_parse_fixedlink(struct phylink *pl, const struct fwnode_handle *fwnode) { + __ETHTOOL_DECLARE_LINK_MODE_MASK(mask) = { 0, }; struct fwnode_handle *fixed_node; - bool pause, asym_pause, autoneg; const struct phy_setting *s; struct gpio_desc *desc; u32 speed; @@ -838,22 +838,15 @@ static int phylink_parse_fixedlink(struct phylink *pl, linkmode_copy(pl->link_config.advertising, pl->supported); phylink_validate(pl, pl->supported, &pl->link_config); - pause = phylink_test(pl->supported, Pause); - asym_pause = phylink_test(pl->supported, Asym_Pause); - autoneg = phylink_test(pl->supported, Autoneg); s = phy_lookup_setting(pl->link_config.speed, pl->link_config.duplex, pl->supported, true); - linkmode_zero(pl->supported); - phylink_set(pl->supported, MII); - if (pause) - phylink_set(pl->supported, Pause); + linkmode_set_bit(ETHTOOL_LINK_MODE_Pause_BIT, mask); + linkmode_set_bit(ETHTOOL_LINK_MODE_Asym_Pause_BIT, mask); + linkmode_set_bit(ETHTOOL_LINK_MODE_Autoneg_BIT, mask); + linkmode_and(pl->supported, pl->supported, mask); - if (asym_pause) - phylink_set(pl->supported, Asym_Pause); - - if (autoneg) - phylink_set(pl->supported, Autoneg); + phylink_set(pl->supported, MII); if (s) { __set_bit(s->bit, pl->supported);
phylink_parse_fixedlink() wants to preserve the pause, asym_pause and autoneg bits in pl->supported. Rather than reading the bits into separate bools, zeroing pl->supported, and then setting them if they were previously set, use a mask and linkmode_and() to achieve the same result. Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk> --- drivers/net/phy/phylink.c | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-)