net: phylink: move phylink_pcs_neg_mode() into phylink.c
authorRussell King (Oracle) <rmk+kernel@armlinux.org.uk>
Thu, 4 Jan 2024 09:47:36 +0000 (09:47 +0000)
committerDavid S. Miller <davem@davemloft.net>
Thu, 4 Jan 2024 11:25:50 +0000 (11:25 +0000)
Move phylink_pcs_neg_mode() from the header file into the .c file since
nothing should be using it.

Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/phy/phylink.c
include/linux/phylink.h

index 3d25a4a6212b53690a5ce61ba6f8fa48802afb89..a816391add1200da59fc3510056605527bc4806f 100644 (file)
@@ -1074,6 +1074,72 @@ static void phylink_pcs_an_restart(struct phylink *pl)
                pl->pcs->ops->pcs_an_restart(pl->pcs);
 }
 
+/**
+ * phylink_pcs_neg_mode() - helper to determine PCS inband mode
+ * @mode: one of %MLO_AN_FIXED, %MLO_AN_PHY, %MLO_AN_INBAND.
+ * @interface: interface mode to be used
+ * @advertising: adertisement ethtool link mode mask
+ *
+ * Determines the negotiation mode to be used by the PCS, and returns
+ * one of:
+ *
+ * - %PHYLINK_PCS_NEG_NONE: interface mode does not support inband
+ * - %PHYLINK_PCS_NEG_OUTBAND: an out of band mode (e.g. reading the PHY)
+ *   will be used.
+ * - %PHYLINK_PCS_NEG_INBAND_DISABLED: inband mode selected but autoneg
+ *   disabled
+ * - %PHYLINK_PCS_NEG_INBAND_ENABLED: inband mode selected and autoneg enabled
+ *
+ * Note: this is for cases where the PCS itself is involved in negotiation
+ * (e.g. Clause 37, SGMII and similar) not Clause 73.
+ */
+static unsigned int phylink_pcs_neg_mode(unsigned int mode,
+                                        phy_interface_t interface,
+                                        const unsigned long *advertising)
+{
+       unsigned int neg_mode;
+
+       switch (interface) {
+       case PHY_INTERFACE_MODE_SGMII:
+       case PHY_INTERFACE_MODE_QSGMII:
+       case PHY_INTERFACE_MODE_QUSGMII:
+       case PHY_INTERFACE_MODE_USXGMII:
+               /* These protocols are designed for use with a PHY which
+                * communicates its negotiation result back to the MAC via
+                * inband communication. Note: there exist PHYs that run
+                * with SGMII but do not send the inband data.
+                */
+               if (!phylink_autoneg_inband(mode))
+                       neg_mode = PHYLINK_PCS_NEG_OUTBAND;
+               else
+                       neg_mode = PHYLINK_PCS_NEG_INBAND_ENABLED;
+               break;
+
+       case PHY_INTERFACE_MODE_1000BASEX:
+       case PHY_INTERFACE_MODE_2500BASEX:
+               /* 1000base-X is designed for use media-side for Fibre
+                * connections, and thus the Autoneg bit needs to be
+                * taken into account. We also do this for 2500base-X
+                * as well, but drivers may not support this, so may
+                * need to override this.
+                */
+               if (!phylink_autoneg_inband(mode))
+                       neg_mode = PHYLINK_PCS_NEG_OUTBAND;
+               else if (linkmode_test_bit(ETHTOOL_LINK_MODE_Autoneg_BIT,
+                                          advertising))
+                       neg_mode = PHYLINK_PCS_NEG_INBAND_ENABLED;
+               else
+                       neg_mode = PHYLINK_PCS_NEG_INBAND_DISABLED;
+               break;
+
+       default:
+               neg_mode = PHYLINK_PCS_NEG_NONE;
+               break;
+       }
+
+       return neg_mode;
+}
+
 static void phylink_major_config(struct phylink *pl, bool restart,
                                  const struct phylink_link_state *state)
 {
index 875439ab45dec8fd6a576f5118888216051d230e..d589f89c612c67da0d39e7b45e6bda56be754745 100644 (file)
@@ -98,72 +98,6 @@ static inline bool phylink_autoneg_inband(unsigned int mode)
        return mode == MLO_AN_INBAND;
 }
 
-/**
- * phylink_pcs_neg_mode() - helper to determine PCS inband mode
- * @mode: one of %MLO_AN_FIXED, %MLO_AN_PHY, %MLO_AN_INBAND.
- * @interface: interface mode to be used
- * @advertising: adertisement ethtool link mode mask
- *
- * Determines the negotiation mode to be used by the PCS, and returns
- * one of:
- *
- * - %PHYLINK_PCS_NEG_NONE: interface mode does not support inband
- * - %PHYLINK_PCS_NEG_OUTBAND: an out of band mode (e.g. reading the PHY)
- *   will be used.
- * - %PHYLINK_PCS_NEG_INBAND_DISABLED: inband mode selected but autoneg
- *   disabled
- * - %PHYLINK_PCS_NEG_INBAND_ENABLED: inband mode selected and autoneg enabled
- *
- * Note: this is for cases where the PCS itself is involved in negotiation
- * (e.g. Clause 37, SGMII and similar) not Clause 73.
- */
-static inline unsigned int phylink_pcs_neg_mode(unsigned int mode,
-                                               phy_interface_t interface,
-                                               const unsigned long *advertising)
-{
-       unsigned int neg_mode;
-
-       switch (interface) {
-       case PHY_INTERFACE_MODE_SGMII:
-       case PHY_INTERFACE_MODE_QSGMII:
-       case PHY_INTERFACE_MODE_QUSGMII:
-       case PHY_INTERFACE_MODE_USXGMII:
-               /* These protocols are designed for use with a PHY which
-                * communicates its negotiation result back to the MAC via
-                * inband communication. Note: there exist PHYs that run
-                * with SGMII but do not send the inband data.
-                */
-               if (!phylink_autoneg_inband(mode))
-                       neg_mode = PHYLINK_PCS_NEG_OUTBAND;
-               else
-                       neg_mode = PHYLINK_PCS_NEG_INBAND_ENABLED;
-               break;
-
-       case PHY_INTERFACE_MODE_1000BASEX:
-       case PHY_INTERFACE_MODE_2500BASEX:
-               /* 1000base-X is designed for use media-side for Fibre
-                * connections, and thus the Autoneg bit needs to be
-                * taken into account. We also do this for 2500base-X
-                * as well, but drivers may not support this, so may
-                * need to override this.
-                */
-               if (!phylink_autoneg_inband(mode))
-                       neg_mode = PHYLINK_PCS_NEG_OUTBAND;
-               else if (linkmode_test_bit(ETHTOOL_LINK_MODE_Autoneg_BIT,
-                                          advertising))
-                       neg_mode = PHYLINK_PCS_NEG_INBAND_ENABLED;
-               else
-                       neg_mode = PHYLINK_PCS_NEG_INBAND_DISABLED;
-               break;
-
-       default:
-               neg_mode = PHYLINK_PCS_NEG_NONE;
-               break;
-       }
-
-       return neg_mode;
-}
-
 /**
  * struct phylink_link_state - link state structure
  * @advertising: ethtool bitmask containing advertised link modes