net: pcs: xpcs: use Autoneg bit rather than an_enabled
authorRussell King (Oracle) <rmk+kernel@armlinux.org.uk>
Tue, 21 Mar 2023 15:58:49 +0000 (15:58 +0000)
committerJakub Kicinski <kuba@kernel.org>
Thu, 23 Mar 2023 05:43:05 +0000 (22:43 -0700)
The Autoneg bit in the advertising bitmap and state->an_enabled are
always identical. Thus, we will be removing state->an_enabled.

Use the Autoneg bit in the advertising bitmap to indicate whether
autonegotiation should be used, rather than using the an_enabled
member which will be going away.

Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Reviewed-by: Simon Horman <simon.horman@corigine.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/pcs/pcs-xpcs.c

index 04a68535304189d93c107ded1e75925115f0e1f8..539cd43eae8d3e532ab551e317f855f429690fa5 100644 (file)
@@ -923,6 +923,7 @@ static int xpcs_get_state_c73(struct dw_xpcs *xpcs,
                              struct phylink_link_state *state,
                              const struct xpcs_compat *compat)
 {
+       bool an_enabled;
        int ret;
 
        /* Link needs to be read first ... */
@@ -940,11 +941,13 @@ static int xpcs_get_state_c73(struct dw_xpcs *xpcs,
                return xpcs_do_config(xpcs, state->interface, MLO_AN_INBAND, NULL);
        }
 
-       if (state->an_enabled && xpcs_aneg_done_c73(xpcs, state, compat)) {
+       an_enabled = linkmode_test_bit(ETHTOOL_LINK_MODE_Autoneg_BIT,
+                                      state->advertising);
+       if (an_enabled && xpcs_aneg_done_c73(xpcs, state, compat)) {
                state->an_complete = true;
                xpcs_read_lpa_c73(xpcs, state);
                xpcs_resolve_lpa_c73(xpcs, state);
-       } else if (state->an_enabled) {
+       } else if (an_enabled) {
                state->link = 0;
        } else if (state->link) {
                xpcs_resolve_pma(xpcs, state);
@@ -999,7 +1002,8 @@ static int xpcs_get_state_c37_1000basex(struct dw_xpcs *xpcs,
 {
        int lpa, bmsr;
 
-       if (state->an_enabled) {
+       if (linkmode_test_bit(ETHTOOL_LINK_MODE_Autoneg_BIT,
+                             state->advertising)) {
                /* Reset link state */
                state->link = false;