@@ -2685,6 +2685,18 @@ mlxsw_sp2_mask_ethtool_50gaui_2_laui_2_50gbase_cr2_kr2[] = {
26852685#define MLXSW_SP2_MASK_ETHTOOL_50GAUI_2_LAUI_2_50GBASE_CR2_KR2_LEN \
26862686 ARRAY_SIZE(mlxsw_sp2_mask_ethtool_50gaui_2_laui_2_50gbase_cr2_kr2)
26872687
2688+ static const enum ethtool_link_mode_bit_indices
2689+ mlxsw_sp2_mask_ethtool_50gaui_1_laui_1_50gbase_cr_kr [] = {
2690+ ETHTOOL_LINK_MODE_50000baseKR_Full_BIT ,
2691+ ETHTOOL_LINK_MODE_50000baseSR_Full_BIT ,
2692+ ETHTOOL_LINK_MODE_50000baseCR_Full_BIT ,
2693+ ETHTOOL_LINK_MODE_50000baseLR_ER_FR_Full_BIT ,
2694+ ETHTOOL_LINK_MODE_50000baseDR_Full_BIT ,
2695+ };
2696+
2697+ #define MLXSW_SP2_MASK_ETHTOOL_50GAUI_1_LAUI_1_50GBASE_CR_KR_LEN \
2698+ ARRAY_SIZE(mlxsw_sp2_mask_ethtool_50gaui_1_laui_1_50gbase_cr_kr)
2699+
26882700static const enum ethtool_link_mode_bit_indices
26892701mlxsw_sp2_mask_ethtool_caui_4_100gbase_cr4_kr4 [] = {
26902702 ETHTOOL_LINK_MODE_100000baseKR4_Full_BIT ,
@@ -2696,6 +2708,30 @@ mlxsw_sp2_mask_ethtool_caui_4_100gbase_cr4_kr4[] = {
26962708#define MLXSW_SP2_MASK_ETHTOOL_CAUI_4_100GBASE_CR4_KR4_LEN \
26972709 ARRAY_SIZE(mlxsw_sp2_mask_ethtool_caui_4_100gbase_cr4_kr4)
26982710
2711+ static const enum ethtool_link_mode_bit_indices
2712+ mlxsw_sp2_mask_ethtool_100gaui_2_100gbase_cr2_kr2 [] = {
2713+ ETHTOOL_LINK_MODE_100000baseKR2_Full_BIT ,
2714+ ETHTOOL_LINK_MODE_100000baseSR2_Full_BIT ,
2715+ ETHTOOL_LINK_MODE_100000baseCR2_Full_BIT ,
2716+ ETHTOOL_LINK_MODE_100000baseLR2_ER2_FR2_Full_BIT ,
2717+ ETHTOOL_LINK_MODE_100000baseDR2_Full_BIT ,
2718+ };
2719+
2720+ #define MLXSW_SP2_MASK_ETHTOOL_100GAUI_2_100GBASE_CR2_KR2_LEN \
2721+ ARRAY_SIZE(mlxsw_sp2_mask_ethtool_100gaui_2_100gbase_cr2_kr2)
2722+
2723+ static const enum ethtool_link_mode_bit_indices
2724+ mlxsw_sp2_mask_ethtool_200gaui_4_200gbase_cr4_kr4 [] = {
2725+ ETHTOOL_LINK_MODE_200000baseKR4_Full_BIT ,
2726+ ETHTOOL_LINK_MODE_200000baseSR4_Full_BIT ,
2727+ ETHTOOL_LINK_MODE_200000baseLR4_ER4_FR4_Full_BIT ,
2728+ ETHTOOL_LINK_MODE_200000baseDR4_Full_BIT ,
2729+ ETHTOOL_LINK_MODE_200000baseCR4_Full_BIT ,
2730+ };
2731+
2732+ #define MLXSW_SP2_MASK_ETHTOOL_200GAUI_4_200GBASE_CR4_KR4_LEN \
2733+ ARRAY_SIZE(mlxsw_sp2_mask_ethtool_200gaui_4_200gbase_cr4_kr4)
2734+
26992735struct mlxsw_sp2_port_link_mode {
27002736 const enum ethtool_link_mode_bit_indices * mask_ethtool ;
27012737 int m_ethtool_len ;
@@ -2752,12 +2788,30 @@ static const struct mlxsw_sp2_port_link_mode mlxsw_sp2_port_link_mode[] = {
27522788 .m_ethtool_len = MLXSW_SP2_MASK_ETHTOOL_50GAUI_2_LAUI_2_50GBASE_CR2_KR2_LEN ,
27532789 .speed = SPEED_50000 ,
27542790 },
2791+ {
2792+ .mask = MLXSW_REG_PTYS_EXT_ETH_SPEED_50GAUI_1_LAUI_1_50GBASE_CR_KR ,
2793+ .mask_ethtool = mlxsw_sp2_mask_ethtool_50gaui_1_laui_1_50gbase_cr_kr ,
2794+ .m_ethtool_len = MLXSW_SP2_MASK_ETHTOOL_50GAUI_1_LAUI_1_50GBASE_CR_KR_LEN ,
2795+ .speed = SPEED_50000 ,
2796+ },
27552797 {
27562798 .mask = MLXSW_REG_PTYS_EXT_ETH_SPEED_CAUI_4_100GBASE_CR4_KR4 ,
27572799 .mask_ethtool = mlxsw_sp2_mask_ethtool_caui_4_100gbase_cr4_kr4 ,
27582800 .m_ethtool_len = MLXSW_SP2_MASK_ETHTOOL_CAUI_4_100GBASE_CR4_KR4_LEN ,
27592801 .speed = SPEED_100000 ,
27602802 },
2803+ {
2804+ .mask = MLXSW_REG_PTYS_EXT_ETH_SPEED_100GAUI_2_100GBASE_CR2_KR2 ,
2805+ .mask_ethtool = mlxsw_sp2_mask_ethtool_100gaui_2_100gbase_cr2_kr2 ,
2806+ .m_ethtool_len = MLXSW_SP2_MASK_ETHTOOL_100GAUI_2_100GBASE_CR2_KR2_LEN ,
2807+ .speed = SPEED_100000 ,
2808+ },
2809+ {
2810+ .mask = MLXSW_REG_PTYS_EXT_ETH_SPEED_200GAUI_4_200GBASE_CR4_KR4 ,
2811+ .mask_ethtool = mlxsw_sp2_mask_ethtool_200gaui_4_200gbase_cr4_kr4 ,
2812+ .m_ethtool_len = MLXSW_SP2_MASK_ETHTOOL_200GAUI_4_200GBASE_CR4_KR4_LEN ,
2813+ .speed = SPEED_200000 ,
2814+ },
27612815};
27622816
27632817#define MLXSW_SP2_PORT_LINK_MODE_LEN ARRAY_SIZE(mlxsw_sp2_port_link_mode)
0 commit comments