linux/drivers/net/ethernet/amd/xgbe
Prashanth Kumar KR 4bf22afe53 amd-xgbe: fix MAC_AUTO_SW handling in CL37 AN
MAC_AUTO_SW (VR_MII_DIG_CTRL1 bit 9) enables automatic XPCS speed
mode switching after CL37 auto-negotiation and is only meaningful in
SGMII MAC mode. The original code unconditionally set this bit on
every call to xgbe_an37_set(), including when called from
xgbe_an37_disable() with enable=false. This left MAC_AUTO_SW=1 after
AN was disabled, causing the XPCS to autonomously switch speed from
stale AN state during subsequent mode changes, breaking SGMII speed
negotiation on 1G copper SFP modules.

Patrick: This was breaking negotiation for all 1G SFP modules,
not just copper modules.

Fixes: 42fd432fe6 ("amd-xgbe: align CL37 AN sequence as per databook")
Reported-by: Patrick Oppenlander <patrick.oppenlander@gmail.com>
Link: https://lore.kernel.org/netdev/CAEg67GmFS0Q4oSZkz8zWdOzckSth9_vBPiOy6a7-d697C2w2Xg@mail.gmail.com
Signed-off-by: Prashanth Kumar KR <PrashanthKumar.K.R@amd.com>
Tested-by: Patrick Oppenlander <patrick.oppenlander@gmail.com>
Link: https://patch.msgid.link/20260709095006.3683940-1-prashanthkumar.k.r@amd.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-07-21 09:12:36 -07:00
..
Makefile amd-xgbe: introduce support ethtool selftest 2025-11-06 13:38:11 +01:00
xgbe-common.h amd-xgbe: add TX descriptor cleanup for link-down 2026-03-24 10:48:07 +01:00
xgbe-dcb.c amd-xgbe: Convert to SPDX identifier 2025-04-08 13:26:33 +02:00
xgbe-debugfs.c amd-xgbe: Convert to SPDX identifier 2025-04-08 13:26:33 +02:00
xgbe-desc.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2025-05-01 15:11:38 -07:00
xgbe-dev.c amd-xgbe: add TX descriptor cleanup for link-down 2026-03-24 10:48:07 +01:00
xgbe-drv.c amd-xgbe: add TX descriptor cleanup for link-down 2026-03-24 10:48:07 +01:00
xgbe-ethtool.c net: xgbe: convert to use .get_rx_ring_count 2026-01-17 18:10:16 -08:00
xgbe-hwtstamp.c amd-xgbe: convert to ndo_hwtstamp callbacks 2025-10-20 17:30:26 -07:00
xgbe-i2c.c amd-xgbe: Use int type to store negative error codes 2025-08-27 18:06:46 -07:00
xgbe-main.c amd-xgbe: fix sleep while atomic on suspend/resume 2026-03-03 17:24:38 -08:00
xgbe-mdio.c amd-xgbe: fix MAC_AUTO_SW handling in CL37 AN 2026-07-21 09:12:36 -07:00
xgbe-pci.c amd-xgbe: add PCI power management for S0i3 support 2026-03-10 19:51:23 -07:00
xgbe-phy-v1.c amd-xgbe: Convert to SPDX identifier 2025-04-08 13:26:33 +02:00
xgbe-phy-v2.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2026-03-12 12:53:34 -07:00
xgbe-platform.c net: xgbe: use device_get_mac_addr 2026-03-12 13:38:38 -07:00
xgbe-pps.c amd-xgbe: Add PPS periodic output support 2025-09-14 14:29:26 -07:00
xgbe-ptp.c amd-xgbe: Add PPS periodic output support 2025-09-14 14:29:26 -07:00
xgbe-selftest.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
xgbe-smn.h Networking changes for 6.16. 2025-05-28 15:24:36 -07:00
xgbe.h amd-xgbe: fix PTP addend overflow causing frozen clock 2026-05-02 10:16:27 -07:00