From: "Russell King (Oracle)" <rmk+kernel@armlinux.org.uk>
To: Andrew Lunn <andrew@lunn.ch>
Cc: Conor Dooley <conor@kernel.org>,
"David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>,
netdev@vger.kernel.org, Paolo Abeni <pabeni@redhat.com>
Subject: [PATCH net-next] net: phy: vitesse: add inband caps and configuration
Date: Wed, 11 Mar 2026 01:07:00 +0000 [thread overview]
Message-ID: <E1w082O-0000000ChNc-1wDz@rmk-PC.armlinux.org.uk> (raw)
Add support for VSC8662 reporting its inband capabilities, and also
hook to configure the PHY's inband mode.
This fixes a regression in the macb driver caused by commit
1338cfef1ff1 ("net: macb: fix SGMII with inband aneg disabled")
Reported-by: Conor Dooley <conor@kernel.org>
Link: https://lore.kernel.org/r/20260304-nebulizer-rounding-40fbc81a2ba1@spud
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
---
drivers/net/phy/vitesse.c | 41 +++++++++++++++++++++++++++++++++++++++
1 file changed, 41 insertions(+)
diff --git a/drivers/net/phy/vitesse.c b/drivers/net/phy/vitesse.c
index b1b7bbba284e..1a430e832f66 100644
--- a/drivers/net/phy/vitesse.c
+++ b/drivers/net/phy/vitesse.c
@@ -62,6 +62,13 @@
/* Vitesse Extended Page Access Register */
#define MII_VSC82X4_EXT_PAGE_ACCESS 0x1f
+/* Vitesse VSC8662 extended control register */
+#define VSC8662_EXT_CON1 0x17
+#define VSC8662_EXT_CON_MAC_AN BIT(13)
+
+#define VSC8662_MAC_AN 0x1b
+#define VSC8662_MAC_AN_BYPASS BIT(13)
+
/* Vitesse VSC73XX Extended Control Register */
#define MII_VSC73XX_PHY_CTRL_EXT3 0x14
@@ -140,6 +147,38 @@ static int vsc824x_config_init(struct phy_device *phydev)
return err;
}
+static unsigned int vsc8662_inband_caps(struct phy_device *phydev,
+ phy_interface_t interface)
+{
+ if (interface == PHY_INTERFACE_MODE_SGMII)
+ return LINK_INBAND_DISABLE | LINK_INBAND_ENABLE |
+ LINK_INBAND_BYPASS;
+
+ return 0;
+}
+
+static int vsc8662_config_inband(struct phy_device *phydev, unsigned int modes)
+{
+ u16 mask, set;
+ int ret;
+
+ mask = VSC8662_MAC_AN_BYPASS;
+ set = modes & LINK_INBAND_BYPASS ? mask : 0;
+ ret = phy_modify(phydev, VSC8662_MAC_AN, mask, set);
+ if (ret < 0)
+ return ret;
+
+ mask = VSC8662_EXT_CON_MAC_AN;
+ set = modes & (LINK_INBAND_ENABLE | LINK_INBAND_BYPASS) ? mask : 0;
+
+ ret = phy_modify_changed(phydev, VSC8662_EXT_CON1, mask, set);
+ if (ret <= 0)
+ return ret;
+
+ /* We need to soft-reset the PHY when changing VSC8662_EXT_CON_MAC_AN */
+ return genphy_soft_reset(phydev);
+}
+
#define VSC73XX_EXT_PAGE_ACCESS 0x1f
static int vsc73xx_read_page(struct phy_device *phydev)
@@ -649,6 +688,8 @@ static struct phy_driver vsc82xx_driver[] = {
.phy_id_mask = 0x000ffff0,
/* PHY_GBIT_FEATURES */
.config_init = &vsc824x_config_init,
+ .inband_caps = vsc8662_inband_caps,
+ .config_inband = vsc8662_config_inband,
.config_aneg = &vsc82x4_config_aneg,
.config_intr = &vsc82xx_config_intr,
.handle_interrupt = &vsc82xx_handle_interrupt,
--
2.47.3
next reply other threads:[~2026-03-11 1:07 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-11 1:07 Russell King (Oracle) [this message]
2026-03-11 9:22 ` [PATCH net-next] net: phy: vitesse: add inband caps and configuration Conor Dooley
2026-03-11 14:01 ` Geert Uytterhoeven
2026-03-11 14:26 ` Russell King (Oracle)
2026-03-11 14:43 ` Geert Uytterhoeven
2026-03-11 14:54 ` Russell King (Oracle)
2026-03-11 15:04 ` Conor Dooley
2026-03-11 15:28 ` Charles Perry
2026-03-11 15:38 ` Conor Dooley
2026-03-11 14:02 ` Geert Uytterhoeven
2026-03-13 1:00 ` patchwork-bot+netdevbpf
2026-03-13 9:50 ` Conor Dooley
2026-03-14 1:59 ` Jakub Kicinski
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=E1w082O-0000000ChNc-1wDz@rmk-PC.armlinux.org.uk \
--to=rmk+kernel@armlinux.org.uk \
--cc=andrew@lunn.ch \
--cc=conor@kernel.org \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=kuba@kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox