]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
amd-xgbe: fix MAC_TCR_SS register width for 2.5G and 10M speeds
authorRaju Rangoju <Raju.Rangoju@amd.com>
Thu, 26 Feb 2026 17:07:53 +0000 (22:37 +0530)
committerJakub Kicinski <kuba@kernel.org>
Sat, 28 Feb 2026 22:22:34 +0000 (14:22 -0800)
Extend the MAC_TCR_SS (Speed Select) register field width from 2 bits
to 3 bits to properly support all speed settings.

The MAC_TCR register's SS field encoding requires 3 bits to represent
all supported speeds:
  - 0x00: 10Gbps (XGMII)
  - 0x02: 2.5Gbps (GMII) / 100Mbps
  - 0x03: 1Gbps / 10Mbps
  - 0x06: 2.5Gbps (XGMII) - P100a only

With only 2 bits, values 0x04-0x07 cannot be represented, which breaks
2.5G XGMII mode on newer platforms and causes incorrect speed select
values to be programmed.

Fixes: 07445f3c7ca1 ("amd-xgbe: Add support for 10 Mbps speed")
Co-developed-by: Guruvendra Punugupati <Guruvendra.Punugupati@amd.com>
Signed-off-by: Guruvendra Punugupati <Guruvendra.Punugupati@amd.com>
Signed-off-by: Raju Rangoju <Raju.Rangoju@amd.com>
Link: https://patch.msgid.link/20260226170753.250312-1-Raju.Rangoju@amd.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/amd/xgbe/xgbe-common.h

index 711f295eb777460c61e3b050cf0d52823cb6fce5..80c2c27ac9dc092bc0c74326b0491fe23a30e1de 100644 (file)
 #define MAC_SSIR_SSINC_INDEX           16
 #define MAC_SSIR_SSINC_WIDTH           8
 #define MAC_TCR_SS_INDEX               29
-#define MAC_TCR_SS_WIDTH               2
+#define MAC_TCR_SS_WIDTH               3
 #define MAC_TCR_TE_INDEX               0
 #define MAC_TCR_TE_WIDTH               1
 #define MAC_TCR_VNE_INDEX              24