net: phy: phy_port: Correctly recompute the port's linkmodes
authorMaxime Chevallier <maxime.chevallier@bootlin.com>
Thu, 5 Feb 2026 09:23:06 +0000 (10:23 +0100)
committerJakub Kicinski <kuba@kernel.org>
Fri, 13 Feb 2026 01:44:55 +0000 (17:44 -0800)
commit4cebb26ac6f02b49b8a7c6974af3b4f23685e1a2
tree01d3ca16cbbfe1276679fcb5da48bac879f2e33b
parent6248f3dc4ec536163bf8e1761f3c08d6f31c3cfe
net: phy: phy_port: Correctly recompute the port's linkmodes

a PHY-driven phy_port contains a 'supported' field containing the
linkmodes available on this port. This is populated based on :
 - The PHY's reported features
 - The DT representation of the connector
 - The PHY's attach_mdi() callback

As these different attrbution methods work in conjunction, the helper
phy_port_update_supported() recomputes the final 'supported' value based
on the populated mediums, linkmodes and pairs.

However this recompute wasn't correctly implemented, and added more
modes than necessary by or'ing the medium-specific modes to the existing
support. Let's fix this and properly filter the modes.

Fixes: 589e934d2735 ("net: phy: Introduce PHY ports representation")
Signed-off-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
Reviewed-by: Christophe Leroy (CS GROUP) <chleroy@kernel.org>
Link: https://patch.msgid.link/20260205092317.755906-4-maxime.chevallier@bootlin.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/phy/phy_port.c