diff options
-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) |