Skip to content

Commit 93e6284

Browse files
Hariprasad KelamNipaLocal
Hariprasad Kelam
authored and
NipaLocal
committed
octeontx2-pf: ethtool: Display "Autoneg" and "Port" fields
The Octeontx2/CN10k netdev drivers access a shared firmware structure to obtain link configuration details, such as supported and advertised link modes. This patch updates the shared firmware data to include additional fields like 'Autonegotiation' and 'Port type'. ethtool eth1 Settings for eth1: Supported ports: [ ] Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Half 1000baseT/Full 10000baseT/Full 10000baseKR/Full 1000baseX/Full 10000baseSR/Full 10000baseLR/Full Supported pause frame use: No Supports auto-negotiation: Yes Supported FEC modes: BaseR Advertised link modes: Not reported Advertised pause frame use: No Advertised auto-negotiation: Yes Advertised FEC modes: BaseR Speed: 10000Mb/s Duplex: Full Port: AUI PHYAD: 0 Transceiver: internal Auto-negotiation: off Current message level: 0x00000000 (0) Link detected: yes Signed-off-by: Hariprasad Kelam <[email protected]> Reviewed-by: Simon Horman <[email protected]> Signed-off-by: NipaLocal <nipa@local>
1 parent 0a00cb7 commit 93e6284

File tree

2 files changed

+23
-5
lines changed

2 files changed

+23
-5
lines changed

drivers/net/ethernet/marvell/octeontx2/af/mbox.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -654,7 +654,9 @@ struct cgx_lmac_fwdata_s {
654654
/* Only applicable if SFP/QSFP slot is present */
655655
struct sfp_eeprom_s sfp_eeprom;
656656
struct phy_s phy;
657-
#define LMAC_FWDATA_RESERVED_MEM 1021
657+
u64 advertised_an:1;
658+
u64 port;
659+
#define LMAC_FWDATA_RESERVED_MEM 1019
658660
u64 reserved[LMAC_FWDATA_RESERVED_MEM];
659661
};
660662

drivers/net/ethernet/marvell/octeontx2/nic/otx2_ethtool.c

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1174,11 +1174,13 @@ static void otx2_get_link_mode_info(u64 link_mode_bmap,
11741174
}
11751175

11761176
if (req_mode == OTX2_MODE_ADVERTISED)
1177-
linkmode_copy(link_ksettings->link_modes.advertising,
1178-
otx2_link_modes);
1177+
linkmode_or(link_ksettings->link_modes.advertising,
1178+
link_ksettings->link_modes.advertising,
1179+
otx2_link_modes);
11791180
else
1180-
linkmode_copy(link_ksettings->link_modes.supported,
1181-
otx2_link_modes);
1181+
linkmode_or(link_ksettings->link_modes.supported,
1182+
link_ksettings->link_modes.supported,
1183+
otx2_link_modes);
11821184
}
11831185

11841186
static int otx2_get_link_ksettings(struct net_device *netdev,
@@ -1200,6 +1202,11 @@ static int otx2_get_link_ksettings(struct net_device *netdev,
12001202
supported,
12011203
Autoneg);
12021204

1205+
if (rsp->fwdata.advertised_an)
1206+
ethtool_link_ksettings_add_link_mode(cmd,
1207+
advertising,
1208+
Autoneg);
1209+
12031210
otx2_get_link_mode_info(rsp->fwdata.advertised_link_modes,
12041211
OTX2_MODE_ADVERTISED, cmd);
12051212
otx2_get_fec_info(rsp->fwdata.advertised_fec,
@@ -1208,6 +1215,15 @@ static int otx2_get_link_ksettings(struct net_device *netdev,
12081215
OTX2_MODE_SUPPORTED, cmd);
12091216
otx2_get_fec_info(rsp->fwdata.supported_fec,
12101217
OTX2_MODE_SUPPORTED, cmd);
1218+
1219+
switch (rsp->fwdata.port) {
1220+
case PORT_TP:
1221+
case PORT_AUI:
1222+
cmd->base.port = rsp->fwdata.port;
1223+
break;
1224+
default:
1225+
cmd->base.port = PORT_NONE;
1226+
}
12111227
return 0;
12121228
}
12131229

0 commit comments

Comments
 (0)