Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

amd-xgbe: fix MAC_TCR_SS register width for 2.5G and 10M speeds

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>

authored by

Raju Rangoju and committed by
Jakub Kicinski
9439a661 147792c3

+1 -1
+1 -1
drivers/net/ethernet/amd/xgbe/xgbe-common.h
··· 431 431 #define MAC_SSIR_SSINC_INDEX 16 432 432 #define MAC_SSIR_SSINC_WIDTH 8 433 433 #define MAC_TCR_SS_INDEX 29 434 - #define MAC_TCR_SS_WIDTH 2 434 + #define MAC_TCR_SS_WIDTH 3 435 435 #define MAC_TCR_TE_INDEX 0 436 436 #define MAC_TCR_TE_WIDTH 1 437 437 #define MAC_TCR_VNE_INDEX 24