net: pcs: xpcs: use mii_c73_to_linkmode() helper
authorRussell King (Oracle) <rmk+kernel@armlinux.org.uk>
Tue, 23 May 2023 10:16:08 +0000 (11:16 +0100)
committerJakub Kicinski <kuba@kernel.org>
Wed, 24 May 2023 16:13:22 +0000 (09:13 -0700)
Convert xpcs clause 73 reading to use the newly introduced
mii_c73_to_linkmode() helper to translate the link partner
advertisement to an ethtool bitmap.

Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/pcs/pcs-xpcs.c

index 5723abfc6fc8bf24754fabd5bdd43d1145faec02..2165859a063cf2551c6c13e9891d870afd49c326 100644 (file)
@@ -529,18 +529,7 @@ static int xpcs_read_lpa_c73(struct dw_xpcs *xpcs,
                lpa[i] = ret;
        }
 
-       if (lpa[2] & DW_C73_2500KX)
-               phylink_set(state->lp_advertising, 2500baseX_Full);
-       if (lpa[1] & DW_C73_1000KX)
-               phylink_set(state->lp_advertising, 1000baseKX_Full);
-       if (lpa[1] & DW_C73_10000KX4)
-               phylink_set(state->lp_advertising, 10000baseKX4_Full);
-       if (lpa[1] & DW_C73_10000KR)
-               phylink_set(state->lp_advertising, 10000baseKR_Full);
-       if (lpa[0] & DW_C73_PAUSE)
-               phylink_set(state->lp_advertising, Pause);
-       if (lpa[0] & DW_C73_ASYM_PAUSE)
-               phylink_set(state->lp_advertising, Asym_Pause);
+       mii_c73_mod_linkmode(state->lp_advertising, lpa);
 
        linkmode_and(state->lp_advertising, state->lp_advertising,
                     state->advertising);