]> www.infradead.org Git - users/hch/misc.git/commitdiff
net: phylink: use sfp_get_module_caps()
authorRussell King (Oracle) <rmk+kernel@armlinux.org.uk>
Tue, 16 Sep 2025 21:46:57 +0000 (22:46 +0100)
committerJakub Kicinski <kuba@kernel.org>
Mon, 22 Sep 2025 23:05:15 +0000 (16:05 -0700)
Use sfp_get_module_caps() to get SFP module's capabilities.

Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Link: https://patch.msgid.link/E1uydVp-000000061WW-08YM@rmk-PC.armlinux.org.uk
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/phy/phylink.c

index 1b06805f1bd7db1bfe52e10141600b68cbeb5eb5..9d7799ea1c1730e09a073a022eb8acac5b850734 100644 (file)
@@ -3750,17 +3750,18 @@ static int phylink_sfp_config_optical(struct phylink *pl)
 static int phylink_sfp_module_insert(void *upstream,
                                     const struct sfp_eeprom_id *id)
 {
+       const struct sfp_module_caps *caps;
        struct phylink *pl = upstream;
 
        ASSERT_RTNL();
 
-       linkmode_zero(pl->sfp_support);
-       phy_interface_zero(pl->sfp_interfaces);
-       sfp_parse_support(pl->sfp_bus, id, pl->sfp_support, pl->sfp_interfaces);
-       pl->sfp_port = sfp_parse_port(pl->sfp_bus, id, pl->sfp_support);
+       caps = sfp_get_module_caps(pl->sfp_bus);
+       phy_interface_copy(pl->sfp_interfaces, caps->interfaces);
+       linkmode_copy(pl->sfp_support, caps->link_modes);
+       pl->sfp_may_have_phy = caps->may_have_phy;
+       pl->sfp_port = caps->port;
 
        /* If this module may have a PHY connecting later, defer until later */
-       pl->sfp_may_have_phy = sfp_may_have_phy(pl->sfp_bus, id);
        if (pl->sfp_may_have_phy)
                return 0;