Skip to content

Commit a8b05dd

Browse files
emuslnPaolo Abeni
authored andcommitted
ionic: add speed defines for 200G and 400G
Add higher speed defines to the ionic_if.h API and decode them in the ethtool get_link_ksettings callback. Signed-off-by: Shannon Nelson <shannon.nelson@amd.com> Reviewed-by: Jacob Keller <jacob.e.keller@intel.com> Signed-off-by: Paolo Abeni <pabeni@redhat.com>
1 parent 7c372ba commit a8b05dd

File tree

2 files changed

+54
-1
lines changed

2 files changed

+54
-1
lines changed

drivers/net/ethernet/pensando/ionic/ionic_ethtool.c

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,20 @@ static int ionic_get_link_ksettings(struct net_device *netdev,
158158
25000baseCR_Full);
159159
copper_seen++;
160160
break;
161+
case IONIC_XCVR_PID_QSFP_50G_CR2_FC:
162+
case IONIC_XCVR_PID_QSFP_50G_CR2:
163+
ethtool_link_ksettings_add_link_mode(ks, supported,
164+
50000baseCR2_Full);
165+
copper_seen++;
166+
break;
167+
case IONIC_XCVR_PID_QSFP_200G_CR4:
168+
ethtool_link_ksettings_add_link_mode(ks, supported, 200000baseCR4_Full);
169+
copper_seen++;
170+
break;
171+
case IONIC_XCVR_PID_QSFP_400G_CR4:
172+
ethtool_link_ksettings_add_link_mode(ks, supported, 400000baseCR4_Full);
173+
copper_seen++;
174+
break;
161175
case IONIC_XCVR_PID_SFP_10GBASE_AOC:
162176
case IONIC_XCVR_PID_SFP_10GBASE_CU:
163177
ethtool_link_ksettings_add_link_mode(ks, supported,
@@ -196,6 +210,31 @@ static int ionic_get_link_ksettings(struct net_device *netdev,
196210
ethtool_link_ksettings_add_link_mode(ks, supported,
197211
25000baseSR_Full);
198212
break;
213+
case IONIC_XCVR_PID_QSFP_200G_AOC:
214+
case IONIC_XCVR_PID_QSFP_200G_SR4:
215+
ethtool_link_ksettings_add_link_mode(ks, supported,
216+
200000baseSR4_Full);
217+
break;
218+
case IONIC_XCVR_PID_QSFP_200G_FR4:
219+
ethtool_link_ksettings_add_link_mode(ks, supported,
220+
200000baseLR4_ER4_FR4_Full);
221+
break;
222+
case IONIC_XCVR_PID_QSFP_200G_DR4:
223+
ethtool_link_ksettings_add_link_mode(ks, supported,
224+
200000baseDR4_Full);
225+
break;
226+
case IONIC_XCVR_PID_QSFP_400G_FR4:
227+
ethtool_link_ksettings_add_link_mode(ks, supported,
228+
400000baseLR4_ER4_FR4_Full);
229+
break;
230+
case IONIC_XCVR_PID_QSFP_400G_DR4:
231+
ethtool_link_ksettings_add_link_mode(ks, supported,
232+
400000baseDR4_Full);
233+
break;
234+
case IONIC_XCVR_PID_QSFP_400G_SR4:
235+
ethtool_link_ksettings_add_link_mode(ks, supported,
236+
400000baseSR4_Full);
237+
break;
199238
case IONIC_XCVR_PID_SFP_10GBASE_SR:
200239
ethtool_link_ksettings_add_link_mode(ks, supported,
201240
10000baseSR_Full);

drivers/net/ethernet/pensando/ionic/ionic_if.h

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1277,7 +1277,10 @@ enum ionic_xcvr_pid {
12771277
IONIC_XCVR_PID_SFP_25GBASE_CR_S = 3,
12781278
IONIC_XCVR_PID_SFP_25GBASE_CR_L = 4,
12791279
IONIC_XCVR_PID_SFP_25GBASE_CR_N = 5,
1280-
1280+
IONIC_XCVR_PID_QSFP_50G_CR2_FC = 6,
1281+
IONIC_XCVR_PID_QSFP_50G_CR2 = 7,
1282+
IONIC_XCVR_PID_QSFP_200G_CR4 = 8,
1283+
IONIC_XCVR_PID_QSFP_400G_CR4 = 9,
12811284
/* Fiber */
12821285
IONIC_XCVR_PID_QSFP_100G_AOC = 50,
12831286
IONIC_XCVR_PID_QSFP_100G_ACC = 51,
@@ -1303,6 +1306,15 @@ enum ionic_xcvr_pid {
13031306
IONIC_XCVR_PID_SFP_25GBASE_ACC = 71,
13041307
IONIC_XCVR_PID_SFP_10GBASE_T = 72,
13051308
IONIC_XCVR_PID_SFP_1000BASE_T = 73,
1309+
IONIC_XCVR_PID_QSFP_200G_AOC = 74,
1310+
IONIC_XCVR_PID_QSFP_200G_FR4 = 75,
1311+
IONIC_XCVR_PID_QSFP_200G_DR4 = 76,
1312+
IONIC_XCVR_PID_QSFP_200G_SR4 = 77,
1313+
IONIC_XCVR_PID_QSFP_200G_ACC = 78,
1314+
IONIC_XCVR_PID_QSFP_400G_FR4 = 79,
1315+
IONIC_XCVR_PID_QSFP_400G_DR4 = 80,
1316+
IONIC_XCVR_PID_QSFP_400G_SR4 = 81,
1317+
IONIC_XCVR_PID_QSFP_400G_VR4 = 82,
13061318
};
13071319

13081320
/**
@@ -1404,6 +1416,8 @@ struct ionic_xcvr_status {
14041416
*/
14051417
union ionic_port_config {
14061418
struct {
1419+
#define IONIC_SPEED_400G 400000 /* 400G in Mbps */
1420+
#define IONIC_SPEED_200G 200000 /* 200G in Mbps */
14071421
#define IONIC_SPEED_100G 100000 /* 100G in Mbps */
14081422
#define IONIC_SPEED_50G 50000 /* 50G in Mbps */
14091423
#define IONIC_SPEED_40G 40000 /* 40G in Mbps */

0 commit comments

Comments
 (0)