summaryrefslogtreecommitdiff
path: root/include/linux/phylink.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/phylink.h')
-rw-r--r--include/linux/phylink.h21
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)