summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRussell King (Oracle) <rmk+kernel@armlinux.org.uk>2021-11-27 16:17:42 +0000
committerRussell King (Oracle) <rmk+kernel@armlinux.org.uk>2022-06-21 10:57:44 +0100
commitec3ecabf5fdc16220e13b56564547280c8fada97 (patch)
treef6da41cd3031f7046f0d30304f20a723b2b0b52c
parentbb07c566a5ca611cf37d0ff4e151716de9d58884 (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.h21
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)