diff options
author | Russell King (Oracle) <rmk+kernel@armlinux.org.uk> | 2021-11-27 16:17:42 +0000 |
---|---|---|
committer | Russell King (Oracle) <rmk+kernel@armlinux.org.uk> | 2022-01-18 10:17:25 +0000 |
commit | 471fbe635ee0c3fd7034c17ed1e10f8699f5b6b9 (patch) | |
tree | ab614b8718a8a511cb363d6e6a12070cd0cc7db2 | |
parent | ce15e75e6844994caed2a53ed0a00c98a806a07a (diff) |
net: phylink: split PCS in-band from inband mode
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
-rw-r--r-- | include/linux/phylink.h | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/include/linux/phylink.h b/include/linux/phylink.h index 96c91be166eb..ff14bdabc64b 100644 --- a/include/linux/phylink.h +++ b/include/linux/phylink.h @@ -17,9 +17,18 @@ enum { MLO_PAUSE_TXRX_MASK = MLO_PAUSE_TX | MLO_PAUSE_RX, MLO_PAUSE_AN = BIT(2), - MLO_AN_PHY = 0, /* Conventional PHY */ - MLO_AN_FIXED, /* Fixed-link mode */ - MLO_AN_INBAND, /* In-band protocol */ + __PHYLINK_AN_MASK = 3, + __PHYLINK_AN_PHY = 0, + __PHYLINK_AN_FIXED, + __PHYLINK_AN_INBAND, + __PHYLINK_PCS_INBAND = BIT(3), + + /* Conventional PHY mode - PHY status passed via phylib and phylink */ + MLO_AN_PHY = __PHYLINK_AN_PHY, + /* Fixed-link mode */ + MLO_AN_FIXED = __PHYLINK_AN_FIXED, + /* In-band protocol - status / negotiation passed inband */ + MLO_AN_INBAND = __PHYLINK_AN_INBAND | __PHYLINK_PCS_INBAND, /* pcs_validate() return values */ PCS_VALIDATE_FAIL = -EINVAL, /* Failed */ @@ -52,17 +61,17 @@ enum { static inline bool phylink_mode_inband(unsigned int mode) { - return mode == MLO_AN_INBAND; + return (mode & __PHYLINK_AN_MASK) == __PHYLINK_AN_INBAND; } static inline bool phylink_mode_fixed(unsigned int mode) { - return mode == MLO_AN_FIXED; + return (mode & __PHYLINK_AN_MASK) == __PHYLINK_AN_FIXED; } static inline bool phylink_mode_phy(unsigned int mode) { - return mode == MLO_AN_PHY; + return (mode & __PHYLINK_AN_MASK) == __PHYLINK_AN_PHY; } static inline bool phylink_autoneg_inband(unsigned int mode) |