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-06-21 10:57:44 +0100 |
commit | ec3ecabf5fdc16220e13b56564547280c8fada97 (patch) | |
tree | f6da41cd3031f7046f0d30304f20a723b2b0b52c | |
parent | bb07c566a5ca611cf37d0ff4e151716de9d58884 (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 e8f80a3d2b19..d8fa19f24859 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) |