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-07-13 14:14:00 +0100 |
commit | e2c57490f205ae7c0e11fcf756675937f933be5e (patch) | |
tree | 0c5e22a07e1b2a930cedfa46a6714a9bf651bb46 | |
parent | e454bf101fa457dd5c2cea0b1aaab7ba33048089 (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 12ee26b69a4c..3129f6c633dd 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 */ @@ -55,17 +64,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) |