* [PATCH net-next v3] net: phy: aquantia: Add support for 5GbaseR
@ 2026-10-29 5:47 Hongmei Xu
2026-10-29 13:28 ` Andrew Lunn
0 siblings, 1 reply; 2+ messages in thread
From: Hongmei Xu @ 2026-10-29 5:47 UTC (permalink / raw)
To: Andrew Lunn, Heiner Kallweit, Russell King, David S. Miller,
Eric Dumazet, Jakub Kicinski, Paolo Abeni
Cc: netdev, linux-kernel, Sagar Cheluvegowda, Hongmei Xu
Aquantia PHYs can operate with a 5G USX interface between the PHY
and MAC, reported as interface type 12 in the PHYXS vendor interface
status register (MDIO_PHYXS_VEND_IF_STATUS_TYPE_USX_5G).
Without this change, aqr_gen1_read_status() falls through to the
default case and sets phydev->link = false when the interface type
is USX 5G, preventing 5G links from coming up.
Add the missing PHY_INTERFACE_MODE_5GBASER handling in three places:
- aqr_gen1_read_status(): map USX 5G interface type to
PHY_INTERFACE_MODE_5GBASER so the link is correctly reported
- aqr_gen1_config_init(): accept PHY_INTERFACE_MODE_5GBASER as a
valid interface mode, otherwise the PHY is rejected with -ENODEV
- aqr_gen2_get_rate_matching(): return RATE_MATCH_PAUSE for
PHY_INTERFACE_MODE_5GBASER, consistent with 10GBASER and 2500BASEX,
since the MAC-side interface runs at a fixed rate and the PHY handles
rate adaptation via pause frames
Co-developed-by: Sagar Cheluvegowda <sagar.cheluvegowda@oss.qualcomm.com>
Signed-off-by: Sagar Cheluvegowda <sagar.cheluvegowda@oss.qualcomm.com>
Signed-off-by: Hongmei Xu <hongmei.xu@oss.qualcomm.com>
---
Changes in v3:
- Add git tree name net-next to the subject line. [PATCH net-next]
- Add Co-developer
- Link to v2: https://patch.msgid.link/20260923-aquantia-support-5gbaser-v2-1-4d789dc21418@oss.qualcomm.com
Changes in v2:
- Fix the local variable assignment error in API: aqr_gen1_read_status,
should use interface rather than phydev->interface,
interface = PHY_INTERFACE_MODE_5GBASER.
- Link to v1: https://patch.msgid.link/20260923-aquantia-support-5gbaser-v1-1-537d39bb8c35@oss.qualcomm.com
---
drivers/net/phy/aquantia/aquantia_main.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/drivers/net/phy/aquantia/aquantia_main.c b/drivers/net/phy/aquantia/aquantia_main.c
index e95d391a6dc2..1e3df47365e4 100644
--- a/drivers/net/phy/aquantia/aquantia_main.c
+++ b/drivers/net/phy/aquantia/aquantia_main.c
@@ -49,6 +49,7 @@
#define MDIO_PHYXS_VEND_IF_STATUS_TYPE_RXAUI 7
#define MDIO_PHYXS_VEND_IF_STATUS_TYPE_OFF 9
#define MDIO_PHYXS_VEND_IF_STATUS_TYPE_OCSGMII 10
+#define MDIO_PHYXS_VEND_IF_STATUS_TYPE_USX_5G 12
#define MDIO_AN_VEND_PROV 0xc400
#define MDIO_AN_VEND_PROV_1000BASET_FULL BIT(15)
@@ -585,6 +586,9 @@ static int aqr_gen1_read_status(struct phy_device *phydev)
case MDIO_PHYXS_VEND_IF_STATUS_TYPE_OCSGMII:
interface = PHY_INTERFACE_MODE_2500BASEX;
break;
+ case MDIO_PHYXS_VEND_IF_STATUS_TYPE_USX_5G:
+ interface = PHY_INTERFACE_MODE_5GBASER;
+ break;
case MDIO_PHYXS_VEND_IF_STATUS_TYPE_OFF:
default:
phydev->link = false;
@@ -786,7 +790,8 @@ static int aqr_gen1_config_init(struct phy_device *phydev)
phydev->interface != PHY_INTERFACE_MODE_10GKR &&
phydev->interface != PHY_INTERFACE_MODE_10GBASER &&
phydev->interface != PHY_INTERFACE_MODE_XAUI &&
- phydev->interface != PHY_INTERFACE_MODE_RXAUI)
+ phydev->interface != PHY_INTERFACE_MODE_RXAUI &&
+ phydev->interface != PHY_INTERFACE_MODE_5GBASER)
return -ENODEV;
WARN(phydev->interface == PHY_INTERFACE_MODE_XGMII,
@@ -1040,7 +1045,8 @@ static int aqr_gen2_get_rate_matching(struct phy_device *phydev,
phy_interface_t iface)
{
if (iface == PHY_INTERFACE_MODE_10GBASER ||
- iface == PHY_INTERFACE_MODE_2500BASEX)
+ iface == PHY_INTERFACE_MODE_2500BASEX ||
+ iface == PHY_INTERFACE_MODE_5GBASER)
return RATE_MATCH_PAUSE;
return RATE_MATCH_NONE;
}
---
base-commit: 944ae66642b726bd6b25ae71b1e9ff88a0e0bdb0
change-id: 20260923-aquantia-support-5gbaser-e7271bde9f89
Best regards,
--
Hongmei Xu <hongmei.xu@oss.qualcomm.com>
^ permalink raw reply [flat|nested] 2+ messages in thread* Re: [PATCH net-next v3] net: phy: aquantia: Add support for 5GbaseR
2026-10-29 5:47 [PATCH net-next v3] net: phy: aquantia: Add support for 5GbaseR Hongmei Xu
@ 2026-10-29 13:28 ` Andrew Lunn
0 siblings, 0 replies; 2+ messages in thread
From: Andrew Lunn @ 2026-10-29 13:28 UTC (permalink / raw)
To: Hongmei Xu
Cc: Heiner Kallweit, Russell King, David S. Miller, Eric Dumazet,
Jakub Kicinski, Paolo Abeni, netdev, linux-kernel,
Sagar Cheluvegowda
> @@ -786,7 +790,8 @@ static int aqr_gen1_config_init(struct phy_device *phydev)
> phydev->interface != PHY_INTERFACE_MODE_10GKR &&
> phydev->interface != PHY_INTERFACE_MODE_10GBASER &&
> phydev->interface != PHY_INTERFACE_MODE_XAUI &&
> - phydev->interface != PHY_INTERFACE_MODE_RXAUI)
> + phydev->interface != PHY_INTERFACE_MODE_RXAUI &&
> + phydev->interface != PHY_INTERFACE_MODE_5GBASER)
This is sorted based on speed. So 5GBASER goes earlier in the list.
> {
> if (iface == PHY_INTERFACE_MODE_10GBASER ||
> - iface == PHY_INTERFACE_MODE_2500BASEX)
> + iface == PHY_INTERFACE_MODE_2500BASEX ||
> + iface == PHY_INTERFACE_MODE_5GBASER)
> return RATE_MATCH_PAUSE;
Please keep this in order, 10, 5, 2.5.
Andrew
---
pw-bot: cr
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-10-29 13:28 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-10-29 5:47 [PATCH net-next v3] net: phy: aquantia: Add support for 5GbaseR Hongmei Xu
2026-10-29 13:28 ` Andrew Lunn
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®