[PATCH net v2 0/3] stmmac: fix ETHQOS SerDes interface handling
From: Thomas Karpiniec <hidden>
Date: 2026-09-18 04:51:38
Also in:
linux-arm-kernel, linux-arm-msm, lkml
From: Thomas Karpiniec <redacted> With a QCA8081 PHY and phy-mode = "2500base-x", stmmac reports only 2500BASE-X in phylink's supported interface bitmap. Phylink consequently removes the PHY's lower-speed copper modes, preventing a link with a gigabit switch. The QCA8081 uses SGMII for lower copper speeds and 2500BASE-X for 2.5Gbps. ETHQOS already switches the SerDes accordingly. Add the integrated PCS interface bitmap to phylink's supported interfaces and mark the Qualcomm SerDes as supporting 2500BASE-X. Also propagate platform mac_finish() errors instead of reporting a successfully configured link. The existing Qualcomm PCS ANE handling is unchanged. Physical cable swaps produced transient PCS events during the unplug interval, but carrier and PCS counters remained unchanged for 60 seconds after each final link. This exact series was tested on an IQ-8275 EVK with cold boots and physical cable swaps at 1Gbps and 2.5Gbps. Two 100-packet tests at 1Gbps had no loss. Injecting -ETIMEDOUT from mac_finish() held carrier down at both speeds, and both recovered after disabling injection and restarting the interface. The test did not cover a speed transition with the cable remaining connected or traffic at 2.5Gbps. The tests used regulator_ignore_unused: without it, the upstream board tree loses PCS link because it lacks the vendor REFGEN always-on workaround. No other kernel or device-tree patches were applied. Changes in v2: - Replace the qcom-ethqos get_interfaces() callback with integrated PCS interface propagation and the 2500BASE-X capability flag. Thomas Karpiniec (3): net: stmmac: propagate platform mac_finish errors net: stmmac: advertise integrated PCS interfaces to phylink net: stmmac: qcom-ethqos: enable 2500BASE-X in integrated PCS .../net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c | 1 + drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 10 ++++++++-- 2 files changed, 9 insertions(+), 2 deletions(-) base-commit: 46bc52d13594848023e681860df8700c8db14354 -- 2.54.0 (Apple Git-157)