Skip to content

Commit 5bf01b5

Browse files
daniellertsdavem330
authored andcommitted
mlxsw: spectrum_ethtool: Remove internal speeds from PTYS register
The PTYS register is used to report and configure the port type and speed. Currently, internal bits in the register are used the same way other bits are used. Using the internal bits can cause bad parameter firmware errors. For example, trying to write to internal bit 25 returns: EMAD reg access failed (tid=53e2bffa00004310,reg_id=5004(ptys),type=write,status=7(bad parameter)) Remove the internal bits from the PTYS register, so that it is no longer possible to pass them to firmware. Signed-off-by: Danielle Ratson <[email protected]> Reviewed-by: Jiri Pirko <[email protected]> Signed-off-by: Ido Schimmel <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent ffff9c9 commit 5bf01b5

File tree

3 files changed

+1
-68
lines changed

3 files changed

+1
-68
lines changed

drivers/net/ethernet/mellanox/mlxsw/reg.h

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4174,7 +4174,6 @@ MLXSW_ITEM32(reg, ptys, an_status, 0x04, 28, 4);
41744174

41754175
#define MLXSW_REG_PTYS_EXT_ETH_SPEED_SGMII_100M BIT(0)
41764176
#define MLXSW_REG_PTYS_EXT_ETH_SPEED_1000BASE_X_SGMII BIT(1)
4177-
#define MLXSW_REG_PTYS_EXT_ETH_SPEED_2_5GBASE_X_2_5GMII BIT(2)
41784177
#define MLXSW_REG_PTYS_EXT_ETH_SPEED_5GBASE_R BIT(3)
41794178
#define MLXSW_REG_PTYS_EXT_ETH_SPEED_XFI_XAUI_1_10G BIT(4)
41804179
#define MLXSW_REG_PTYS_EXT_ETH_SPEED_XLAUI_4_XLPPI_4_40G BIT(5)
@@ -4197,7 +4196,6 @@ MLXSW_ITEM32(reg, ptys, ext_eth_proto_cap, 0x08, 0, 32);
41974196
#define MLXSW_REG_PTYS_ETH_SPEED_10GBASE_CX4 BIT(2)
41984197
#define MLXSW_REG_PTYS_ETH_SPEED_10GBASE_KX4 BIT(3)
41994198
#define MLXSW_REG_PTYS_ETH_SPEED_10GBASE_KR BIT(4)
4200-
#define MLXSW_REG_PTYS_ETH_SPEED_20GBASE_KR2 BIT(5)
42014199
#define MLXSW_REG_PTYS_ETH_SPEED_40GBASE_CR4 BIT(6)
42024200
#define MLXSW_REG_PTYS_ETH_SPEED_40GBASE_KR4 BIT(7)
42034201
#define MLXSW_REG_PTYS_ETH_SPEED_10GBASE_CR BIT(12)
@@ -4210,10 +4208,6 @@ MLXSW_ITEM32(reg, ptys, ext_eth_proto_cap, 0x08, 0, 32);
42104208
#define MLXSW_REG_PTYS_ETH_SPEED_100GBASE_CR4 BIT(20)
42114209
#define MLXSW_REG_PTYS_ETH_SPEED_100GBASE_SR4 BIT(21)
42124210
#define MLXSW_REG_PTYS_ETH_SPEED_100GBASE_KR4 BIT(22)
4213-
#define MLXSW_REG_PTYS_ETH_SPEED_100GBASE_LR4_ER4 BIT(23)
4214-
#define MLXSW_REG_PTYS_ETH_SPEED_100BASE_TX BIT(24)
4215-
#define MLXSW_REG_PTYS_ETH_SPEED_100BASE_T BIT(25)
4216-
#define MLXSW_REG_PTYS_ETH_SPEED_10GBASE_T BIT(26)
42174211
#define MLXSW_REG_PTYS_ETH_SPEED_25GBASE_CR BIT(27)
42184212
#define MLXSW_REG_PTYS_ETH_SPEED_25GBASE_KR BIT(28)
42194213
#define MLXSW_REG_PTYS_ETH_SPEED_25GBASE_SR BIT(29)

drivers/net/ethernet/mellanox/mlxsw/spectrum_ethtool.c

Lines changed: 0 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -992,22 +992,12 @@ struct mlxsw_sp1_port_link_mode {
992992
};
993993

994994
static const struct mlxsw_sp1_port_link_mode mlxsw_sp1_port_link_mode[] = {
995-
{
996-
.mask = MLXSW_REG_PTYS_ETH_SPEED_100BASE_T,
997-
.mask_ethtool = ETHTOOL_LINK_MODE_100baseT_Full_BIT,
998-
.speed = SPEED_100,
999-
},
1000995
{
1001996
.mask = MLXSW_REG_PTYS_ETH_SPEED_SGMII |
1002997
MLXSW_REG_PTYS_ETH_SPEED_1000BASE_KX,
1003998
.mask_ethtool = ETHTOOL_LINK_MODE_1000baseKX_Full_BIT,
1004999
.speed = SPEED_1000,
10051000
},
1006-
{
1007-
.mask = MLXSW_REG_PTYS_ETH_SPEED_10GBASE_T,
1008-
.mask_ethtool = ETHTOOL_LINK_MODE_10000baseT_Full_BIT,
1009-
.speed = SPEED_10000,
1010-
},
10111001
{
10121002
.mask = MLXSW_REG_PTYS_ETH_SPEED_10GBASE_CX4 |
10131003
MLXSW_REG_PTYS_ETH_SPEED_10GBASE_KX4,
@@ -1022,11 +1012,6 @@ static const struct mlxsw_sp1_port_link_mode mlxsw_sp1_port_link_mode[] = {
10221012
.mask_ethtool = ETHTOOL_LINK_MODE_10000baseKR_Full_BIT,
10231013
.speed = SPEED_10000,
10241014
},
1025-
{
1026-
.mask = MLXSW_REG_PTYS_ETH_SPEED_20GBASE_KR2,
1027-
.mask_ethtool = ETHTOOL_LINK_MODE_20000baseKR2_Full_BIT,
1028-
.speed = SPEED_20000,
1029-
},
10301015
{
10311016
.mask = MLXSW_REG_PTYS_ETH_SPEED_40GBASE_CR4,
10321017
.mask_ethtool = ETHTOOL_LINK_MODE_40000baseCR4_Full_BIT,
@@ -1092,11 +1077,6 @@ static const struct mlxsw_sp1_port_link_mode mlxsw_sp1_port_link_mode[] = {
10921077
.mask_ethtool = ETHTOOL_LINK_MODE_100000baseKR4_Full_BIT,
10931078
.speed = SPEED_100000,
10941079
},
1095-
{
1096-
.mask = MLXSW_REG_PTYS_ETH_SPEED_100GBASE_LR4_ER4,
1097-
.mask_ethtool = ETHTOOL_LINK_MODE_100000baseLR4_ER4_Full_BIT,
1098-
.speed = SPEED_100000,
1099-
},
11001080
};
11011081

11021082
#define MLXSW_SP1_PORT_LINK_MODE_LEN ARRAY_SIZE(mlxsw_sp1_port_link_mode)
@@ -1236,14 +1216,6 @@ mlxsw_sp2_mask_ethtool_1000base_x_sgmii[] = {
12361216
#define MLXSW_SP2_MASK_ETHTOOL_1000BASE_X_SGMII_LEN \
12371217
ARRAY_SIZE(mlxsw_sp2_mask_ethtool_1000base_x_sgmii)
12381218

1239-
static const enum ethtool_link_mode_bit_indices
1240-
mlxsw_sp2_mask_ethtool_2_5gbase_x_2_5gmii[] = {
1241-
ETHTOOL_LINK_MODE_2500baseX_Full_BIT,
1242-
};
1243-
1244-
#define MLXSW_SP2_MASK_ETHTOOL_2_5GBASE_X_2_5GMII_LEN \
1245-
ARRAY_SIZE(mlxsw_sp2_mask_ethtool_2_5gbase_x_2_5gmii)
1246-
12471219
static const enum ethtool_link_mode_bit_indices
12481220
mlxsw_sp2_mask_ethtool_5gbase_r[] = {
12491221
ETHTOOL_LINK_MODE_5000baseT_Full_BIT,
@@ -1407,16 +1379,6 @@ static const struct mlxsw_sp2_port_link_mode mlxsw_sp2_port_link_mode[] = {
14071379
MLXSW_SP_PORT_MASK_WIDTH_8X,
14081380
.speed = SPEED_1000,
14091381
},
1410-
{
1411-
.mask = MLXSW_REG_PTYS_EXT_ETH_SPEED_2_5GBASE_X_2_5GMII,
1412-
.mask_ethtool = mlxsw_sp2_mask_ethtool_2_5gbase_x_2_5gmii,
1413-
.m_ethtool_len = MLXSW_SP2_MASK_ETHTOOL_2_5GBASE_X_2_5GMII_LEN,
1414-
.mask_width = MLXSW_SP_PORT_MASK_WIDTH_1X |
1415-
MLXSW_SP_PORT_MASK_WIDTH_2X |
1416-
MLXSW_SP_PORT_MASK_WIDTH_4X |
1417-
MLXSW_SP_PORT_MASK_WIDTH_8X,
1418-
.speed = SPEED_2500,
1419-
},
14201382
{
14211383
.mask = MLXSW_REG_PTYS_EXT_ETH_SPEED_5GBASE_R,
14221384
.mask_ethtool = mlxsw_sp2_mask_ethtool_5gbase_r,

drivers/net/ethernet/mellanox/mlxsw/switchx2.c

Lines changed: 1 addition & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -550,29 +550,13 @@ struct mlxsw_sx_port_link_mode {
550550
};
551551

552552
static const struct mlxsw_sx_port_link_mode mlxsw_sx_port_link_mode[] = {
553-
{
554-
.mask = MLXSW_REG_PTYS_ETH_SPEED_100BASE_T,
555-
.supported = SUPPORTED_100baseT_Full,
556-
.advertised = ADVERTISED_100baseT_Full,
557-
.speed = 100,
558-
},
559-
{
560-
.mask = MLXSW_REG_PTYS_ETH_SPEED_100BASE_TX,
561-
.speed = 100,
562-
},
563553
{
564554
.mask = MLXSW_REG_PTYS_ETH_SPEED_SGMII |
565555
MLXSW_REG_PTYS_ETH_SPEED_1000BASE_KX,
566556
.supported = SUPPORTED_1000baseKX_Full,
567557
.advertised = ADVERTISED_1000baseKX_Full,
568558
.speed = 1000,
569559
},
570-
{
571-
.mask = MLXSW_REG_PTYS_ETH_SPEED_10GBASE_T,
572-
.supported = SUPPORTED_10000baseT_Full,
573-
.advertised = ADVERTISED_10000baseT_Full,
574-
.speed = 10000,
575-
},
576560
{
577561
.mask = MLXSW_REG_PTYS_ETH_SPEED_10GBASE_CX4 |
578562
MLXSW_REG_PTYS_ETH_SPEED_10GBASE_KX4,
@@ -589,12 +573,6 @@ static const struct mlxsw_sx_port_link_mode mlxsw_sx_port_link_mode[] = {
589573
.advertised = ADVERTISED_10000baseKR_Full,
590574
.speed = 10000,
591575
},
592-
{
593-
.mask = MLXSW_REG_PTYS_ETH_SPEED_20GBASE_KR2,
594-
.supported = SUPPORTED_20000baseKR2_Full,
595-
.advertised = ADVERTISED_20000baseKR2_Full,
596-
.speed = 20000,
597-
},
598576
{
599577
.mask = MLXSW_REG_PTYS_ETH_SPEED_40GBASE_CR4,
600578
.supported = SUPPORTED_40000baseCR4_Full,
@@ -634,8 +612,7 @@ static const struct mlxsw_sx_port_link_mode mlxsw_sx_port_link_mode[] = {
634612
{
635613
.mask = MLXSW_REG_PTYS_ETH_SPEED_100GBASE_CR4 |
636614
MLXSW_REG_PTYS_ETH_SPEED_100GBASE_SR4 |
637-
MLXSW_REG_PTYS_ETH_SPEED_100GBASE_KR4 |
638-
MLXSW_REG_PTYS_ETH_SPEED_100GBASE_LR4_ER4,
615+
MLXSW_REG_PTYS_ETH_SPEED_100GBASE_KR4,
639616
.speed = 100000,
640617
},
641618
};

0 commit comments

Comments
 (0)