From: Robert Marko Date: Mon, 9 Mar 2026 11:02:53 +0000 (+0100) Subject: qualcommax: set USXGMII MAC autoneg bit on Aquantia PHY-s X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b6fac1dd4dc99ec7c7aa3f7ca8b13f7f4f5f1d32;p=thirdparty%2Fopenwrt.git qualcommax: set USXGMII MAC autoneg bit on Aquantia PHY-s Now that we are not using SSDK anymore, we must set the USXGMII MAC autoneg bit manually, as otherwise MAC autonegotiation does not work. Link: https://github.com/openwrt/openwrt/pull/22381 Signed-off-by: Robert Marko --- diff --git a/target/linux/qualcommax/patches-6.12/0760-net-phy-aquantia-enable-USXGMII-MAC-autoneg.patch b/target/linux/qualcommax/patches-6.12/0760-net-phy-aquantia-enable-USXGMII-MAC-autoneg.patch new file mode 100644 index 00000000000..6ff9b323381 --- /dev/null +++ b/target/linux/qualcommax/patches-6.12/0760-net-phy-aquantia-enable-USXGMII-MAC-autoneg.patch @@ -0,0 +1,36 @@ +From 54280bff5b17407e8b23cdeafdc63f4d43ad1ee5 Mon Sep 17 00:00:00 2001 +From: Robert Marko +Date: Thu, 27 Nov 2025 13:49:06 +0100 +Subject: [PATCH] net: phy: aquantia: enable USXGMII MAC autoneg + +USXGMII MAC autoneg control bit is always set disabled by default, in order +for USXGMII to work properly we must enable it. + +Signed-off-by: Robert Marko +--- + drivers/net/phy/aquantia/aquantia_main.c | 7 +++++++ + 1 file changed, 7 insertions(+) + +--- a/drivers/net/phy/aquantia/aquantia_main.c ++++ b/drivers/net/phy/aquantia/aquantia_main.c +@@ -46,6 +46,9 @@ + #define MDIO_PHYXS_VEND_IF_STATUS_TYPE_RXAUI 7 + #define MDIO_PHYXS_VEND_IF_STATUS_TYPE_OCSGMII 10 + ++#define MDIO_PHYXS_VEND_PROV2 0xc441 ++#define MDIO_PHYXS_VEND_PROV2_USX_AUTONEG_MAC BIT(3) ++ + #define MDIO_AN_VEND_PROV 0xc400 + #define MDIO_AN_VEND_PROV_1000BASET_FULL BIT(15) + #define MDIO_AN_VEND_PROV_1000BASET_HALF BIT(14) +@@ -440,6 +443,10 @@ static int aqr107_read_status(struct phy + break; + case MDIO_PHYXS_VEND_IF_STATUS_TYPE_USXGMII: + phydev->interface = PHY_INTERFACE_MODE_USXGMII; ++ phy_modify_mmd(phydev, MDIO_MMD_PHYXS, ++ MDIO_PHYXS_VEND_PROV2, ++ MDIO_PHYXS_VEND_PROV2_USX_AUTONEG_MAC, ++ MDIO_PHYXS_VEND_PROV2_USX_AUTONEG_MAC); + break; + case MDIO_PHYXS_VEND_IF_STATUS_TYPE_XAUI: + phydev->interface = PHY_INTERFACE_MODE_XAUI;