* [PATCH v2 0/2] net:ethernet:enic: add VIC ids and link modes
@ 2026-02-23 10:27 Satish Kharat via B4 Relay
2026-02-23 10:27 ` [PATCH v2 1/2] net:ethernet:enic: add VIC subsystem ids Satish Kharat via B4 Relay
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Satish Kharat via B4 Relay @ 2026-02-23 10:27 UTC (permalink / raw)
To: netdev; +Cc: Satish Kharat
Add VIC subsystem ids and their supported/advertised media types so ethtool
reflects the hardware capabilities for the VIC variants.
Signed-off-by: Satish Kharat <satishkh@cisco.com>
---
Changes in v2:
Addressed comments from Andrew Lunn
- Removed the advertising of the link speed as we don't support autoneg.
- Link to v1: https://lore.kernel.org/r/20260221-enic-cscwi36355-v1-0-5a01a6046d5e@cisco.com
---
Satish Kharat (2):
net:ethernet:enic: add VIC subsystem ids
net:ethernet:enic: map ethtool link modes by VIC type
drivers/net/ethernet/cisco/enic/enic.h | 39 +++++++
drivers/net/ethernet/cisco/enic/enic_ethtool.c | 155 +++++++++++++++++++++++--
2 files changed, 187 insertions(+), 7 deletions(-)
---
base-commit: 8bf22c33e7a172fbc72464f4cc484d23a6b412ba
change-id: 20260220-enic-cscwi36355-7fd00b59fe10
Best regards,
--
Satish Kharat <satishkh@cisco.com>
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH v2 1/2] net:ethernet:enic: add VIC subsystem ids
2026-02-23 10:27 [PATCH v2 0/2] net:ethernet:enic: add VIC ids and link modes Satish Kharat via B4 Relay
@ 2026-02-23 10:27 ` Satish Kharat via B4 Relay
2026-02-23 10:27 ` [PATCH v2 2/2] net:ethernet:enic: map ethtool link modes by VIC type Satish Kharat via B4 Relay
2026-02-25 1:50 ` [PATCH v2 0/2] net:ethernet:enic: add VIC ids and link modes patchwork-bot+netdevbpf
2 siblings, 0 replies; 4+ messages in thread
From: Satish Kharat via B4 Relay @ 2026-02-23 10:27 UTC (permalink / raw)
To: netdev; +Cc: Satish Kharat
From: Satish Kharat <satishkh@cisco.com>
Add VIC subsystem id for 12xx, 13xx, 14xx and 15xxx series
Signed-off-by: Satish Kharat <satishkh@cisco.com>
---
drivers/net/ethernet/cisco/enic/enic.h | 39 ++++++++++++++++++++++++++++++++++
1 file changed, 39 insertions(+)
diff --git a/drivers/net/ethernet/cisco/enic/enic.h b/drivers/net/ethernet/cisco/enic/enic.h
index 301b3f311..6959e85ab 100644
--- a/drivers/net/ethernet/cisco/enic/enic.h
+++ b/drivers/net/ethernet/cisco/enic/enic.h
@@ -22,6 +22,45 @@
#define DRV_NAME "enic"
#define DRV_DESCRIPTION "Cisco VIC Ethernet NIC Driver"
+#define PCI_SUBDEV_ID_CISCO_VIC_1225 0x085
+#define PCI_SUBDEV_ID_CISCO_VIC_1225T 0x0CE
+#define PCI_SUBDEV_ID_CISCO_VIC_1227 0x12E
+#define PCI_SUBDEV_ID_CISCO_VIC_1227T 0x139
+#define PCI_SUBDEV_ID_CISCO_VIC_1240 0x084
+#define PCI_SUBDEV_ID_CISCO_VIC_1280 0x04F
+#define PCI_SUBDEV_ID_CISCO_VIC_1285 0x0CD
+
+#define PCI_SUBDEV_ID_CISCO_VIC_1340 0x12C
+#define PCI_SUBDEV_ID_CISCO_VIC_1380 0x137
+#define PCI_SUBDEV_ID_CISCO_VIC_1385 0x14D
+#define PCI_SUBDEV_ID_CISCO_VIC_1387 0x15D
+
+#define PCI_SUBDEV_ID_CISCO_VIC_1440 0x0215
+#define PCI_SUBDEV_ID_CISCO_VIC_1455 0x0217
+#define PCI_SUBDEV_ID_CISCO_VIC_1457 0x0218
+#define PCI_SUBDEV_ID_CISCO_VIC_1467 0x02AF
+#define PCI_SUBDEV_ID_CISCO_VIC_1477 0x2B0
+#define PCI_SUBDEV_ID_CISCO_VIC_1480 0x0216
+#define PCI_SUBDEV_ID_CISCO_VIC_1485 0x0219
+#define PCI_SUBDEV_ID_CISCO_VIC_1487 0x021A
+#define PCI_SUBDEV_ID_CISCO_VIC_1495 0x024A
+#define PCI_SUBDEV_ID_CISCO_VIC_1497 0x024B
+#define PCI_SUBDEV_ID_CISCO_VIC_14425 0x02CF
+#define PCI_SUBDEV_ID_CISCO_VIC_14825 0x02D0
+
+#define PCI_SUBDEV_ID_CISCO_VIC_15230 0x02DF
+#define PCI_SUBDEV_ID_CISCO_VIC_15231 0x02DB
+#define PCI_SUBDEV_ID_CISCO_VIC_15235 0x02E4
+#define PCI_SUBDEV_ID_CISCO_VIC_15237 0x02F3
+#define PCI_SUBDEV_ID_CISCO_VIC_15238 0x02E8
+#define PCI_SUBDEV_ID_CISCO_VIC_15411 0x02DC
+#define PCI_SUBDEV_ID_CISCO_VIC_15412 0x02E2
+#define PCI_SUBDEV_ID_CISCO_VIC_15420 0x02DE
+#define PCI_SUBDEV_ID_CISCO_VIC_15422 0x02E1
+#define PCI_SUBDEV_ID_CISCO_VIC_15425 0x02F2
+#define PCI_SUBDEV_ID_CISCO_VIC_15427 0x02E0
+#define PCI_SUBDEV_ID_CISCO_VIC_15428 0x02DD
+
#define ENIC_BARS_MAX 6
#define ENIC_WQ_MAX 256
--
2.43.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH v2 2/2] net:ethernet:enic: map ethtool link modes by VIC type
2026-02-23 10:27 [PATCH v2 0/2] net:ethernet:enic: add VIC ids and link modes Satish Kharat via B4 Relay
2026-02-23 10:27 ` [PATCH v2 1/2] net:ethernet:enic: add VIC subsystem ids Satish Kharat via B4 Relay
@ 2026-02-23 10:27 ` Satish Kharat via B4 Relay
2026-02-25 1:50 ` [PATCH v2 0/2] net:ethernet:enic: add VIC ids and link modes patchwork-bot+netdevbpf
2 siblings, 0 replies; 4+ messages in thread
From: Satish Kharat via B4 Relay @ 2026-02-23 10:27 UTC (permalink / raw)
To: netdev; +Cc: Satish Kharat
From: Satish Kharat <satishkh@cisco.com>
Report supported media types based on the VIC subsystem ID so ethtool
reflects the hardware capabilities.
Signed-off-by: Satish Kharat <satishkh@cisco.com>
---
drivers/net/ethernet/cisco/enic/enic_ethtool.c | 155 +++++++++++++++++++++++--
1 file changed, 148 insertions(+), 7 deletions(-)
diff --git a/drivers/net/ethernet/cisco/enic/enic_ethtool.c b/drivers/net/ethernet/cisco/enic/enic_ethtool.c
index 471613899..61541fb8d 100644
--- a/drivers/net/ethernet/cisco/enic/enic_ethtool.c
+++ b/drivers/net/ethernet/cisco/enic/enic_ethtool.c
@@ -126,19 +126,160 @@ static void enic_intr_coal_set_rx(struct enic *enic, u32 timer)
}
}
+static void enic_get_supp_adv_media_type(struct net_device *netdev,
+ struct ethtool_link_ksettings *ecmd)
+{
+ struct enic *enic = netdev_priv(netdev);
+ struct ethtool_link_settings *base = &ecmd->base;
+ u16 sub_dev_id = 0;
+
+ base->port = PORT_OTHER;
+
+ if (enic->pdev)
+ sub_dev_id = enic->pdev->subsystem_device;
+
+ switch (sub_dev_id) {
+ case PCI_SUBDEV_ID_CISCO_VIC_1225:
+ case PCI_SUBDEV_ID_CISCO_VIC_1227:
+ ethtool_link_ksettings_add_link_mode(ecmd, supported,
+ 10000baseSR_Full);
+ ethtool_link_ksettings_add_link_mode(ecmd, supported, FIBRE);
+ base->port = PORT_FIBRE;
+ break;
+ case PCI_SUBDEV_ID_CISCO_VIC_1285:
+ ethtool_link_ksettings_add_link_mode(ecmd, supported,
+ 40000baseSR4_Full);
+ ethtool_link_ksettings_add_link_mode(ecmd, supported, FIBRE);
+ base->port = PORT_FIBRE;
+ break;
+ case PCI_SUBDEV_ID_CISCO_VIC_1225T:
+ case PCI_SUBDEV_ID_CISCO_VIC_1227T:
+ ethtool_link_ksettings_add_link_mode(ecmd, supported,
+ 10000baseT_Full);
+ ethtool_link_ksettings_add_link_mode(ecmd, supported, FIBRE);
+ base->port = PORT_FIBRE;
+ break;
+ case PCI_SUBDEV_ID_CISCO_VIC_1385:
+ case PCI_SUBDEV_ID_CISCO_VIC_1387:
+ ethtool_link_ksettings_add_link_mode(ecmd, supported,
+ 10000baseSR_Full);
+ ethtool_link_ksettings_add_link_mode(ecmd, supported,
+ 10000baseLR_Full);
+ ethtool_link_ksettings_add_link_mode(ecmd, supported,
+ 40000baseSR4_Full);
+ ethtool_link_ksettings_add_link_mode(ecmd, supported,
+ 40000baseLR4_Full);
+ ethtool_link_ksettings_add_link_mode(ecmd, supported, FIBRE);
+ base->port = PORT_FIBRE;
+ break;
+ case PCI_SUBDEV_ID_CISCO_VIC_1477:
+ case PCI_SUBDEV_ID_CISCO_VIC_1485:
+ case PCI_SUBDEV_ID_CISCO_VIC_1487:
+ case PCI_SUBDEV_ID_CISCO_VIC_1495:
+ case PCI_SUBDEV_ID_CISCO_VIC_1497:
+ ethtool_link_ksettings_add_link_mode(ecmd, supported,
+ 40000baseCR4_Full);
+ ethtool_link_ksettings_add_link_mode(ecmd, supported,
+ 40000baseSR4_Full);
+ ethtool_link_ksettings_add_link_mode(ecmd, supported,
+ 40000baseLR4_Full);
+ ethtool_link_ksettings_add_link_mode(ecmd, supported,
+ 100000baseSR4_Full);
+ ethtool_link_ksettings_add_link_mode(ecmd, supported,
+ 100000baseCR4_Full);
+ ethtool_link_ksettings_add_link_mode(ecmd, supported, FIBRE);
+ base->port = PORT_FIBRE;
+ break;
+ case PCI_SUBDEV_ID_CISCO_VIC_15235:
+ case PCI_SUBDEV_ID_CISCO_VIC_15237:
+ case PCI_SUBDEV_ID_CISCO_VIC_15238:
+ ethtool_link_ksettings_add_link_mode(ecmd, supported,
+ 40000baseCR4_Full);
+ ethtool_link_ksettings_add_link_mode(ecmd, supported,
+ 40000baseSR4_Full);
+ ethtool_link_ksettings_add_link_mode(ecmd, supported,
+ 40000baseLR4_Full);
+ ethtool_link_ksettings_add_link_mode(ecmd, supported,
+ 100000baseSR4_Full);
+ ethtool_link_ksettings_add_link_mode(ecmd, supported,
+ 100000baseCR4_Full);
+ ethtool_link_ksettings_add_link_mode(ecmd, supported,
+ 200000baseSR4_Full);
+ ethtool_link_ksettings_add_link_mode(ecmd, supported,
+ 200000baseDR4_Full);
+ ethtool_link_ksettings_add_link_mode(ecmd, supported,
+ 200000baseLR4_ER4_FR4_Full);
+ ethtool_link_ksettings_add_link_mode(ecmd, supported, FIBRE);
+ base->port = PORT_FIBRE;
+ break;
+ case PCI_SUBDEV_ID_CISCO_VIC_1455:
+ case PCI_SUBDEV_ID_CISCO_VIC_1457:
+ case PCI_SUBDEV_ID_CISCO_VIC_1467:
+ ethtool_link_ksettings_add_link_mode(ecmd, supported,
+ 10000baseT_Full);
+ ethtool_link_ksettings_add_link_mode(ecmd, supported,
+ 25000baseSR_Full);
+ ethtool_link_ksettings_add_link_mode(ecmd, supported, FIBRE);
+ base->port = PORT_FIBRE;
+ break;
+ case PCI_SUBDEV_ID_CISCO_VIC_15428:
+ case PCI_SUBDEV_ID_CISCO_VIC_15427:
+ case PCI_SUBDEV_ID_CISCO_VIC_15425:
+ ethtool_link_ksettings_add_link_mode(ecmd, supported,
+ 10000baseT_Full);
+ ethtool_link_ksettings_add_link_mode(ecmd, supported,
+ 25000baseSR_Full);
+ ethtool_link_ksettings_add_link_mode(ecmd, supported,
+ 50000baseSR_Full);
+ ethtool_link_ksettings_add_link_mode(ecmd, supported, FIBRE);
+ base->port = PORT_FIBRE;
+ break;
+ /* Do not mention port type as FIBRE for blade VICs */
+ case PCI_SUBDEV_ID_CISCO_VIC_1240:
+ case PCI_SUBDEV_ID_CISCO_VIC_1280:
+ ethtool_link_ksettings_add_link_mode(ecmd, supported,
+ 10000baseKR_Full);
+ break;
+ case PCI_SUBDEV_ID_CISCO_VIC_1340:
+ case PCI_SUBDEV_ID_CISCO_VIC_1380:
+ case PCI_SUBDEV_ID_CISCO_VIC_1440: /* 10G/40G KR */
+ case PCI_SUBDEV_ID_CISCO_VIC_1480: /* 10G/40G KR */
+ ethtool_link_ksettings_add_link_mode(ecmd, supported,
+ 10000baseKR_Full);
+ ethtool_link_ksettings_add_link_mode(ecmd, supported,
+ 40000baseKR4_Full);
+ break;
+ case PCI_SUBDEV_ID_CISCO_VIC_14425: /* 25G KR */
+ case PCI_SUBDEV_ID_CISCO_VIC_14825: /* 25G KR */
+ case PCI_SUBDEV_ID_CISCO_VIC_15420: /* 25G KR */
+ case PCI_SUBDEV_ID_CISCO_VIC_15422: /* 25G KR */
+ ethtool_link_ksettings_add_link_mode(ecmd, supported,
+ 25000baseKR_Full);
+ break;
+ case PCI_SUBDEV_ID_CISCO_VIC_15411: /* 10G KR */
+ case PCI_SUBDEV_ID_CISCO_VIC_15412: /* 10G KR */
+ ethtool_link_ksettings_add_link_mode(ecmd, supported,
+ 10000baseKR_Full);
+ break;
+ case PCI_SUBDEV_ID_CISCO_VIC_15231: /* 25G/100G/200G KR */
+ case PCI_SUBDEV_ID_CISCO_VIC_15230: /* 25G/100G/200G KR */
+ ethtool_link_ksettings_add_link_mode(ecmd, supported,
+ 25000baseKR_Full);
+ ethtool_link_ksettings_add_link_mode(ecmd, supported,
+ 100000baseKR_Full);
+ ethtool_link_ksettings_add_link_mode(ecmd, supported,
+ 200000baseKR4_Full);
+ break;
+ }
+}
+
static int enic_get_ksettings(struct net_device *netdev,
struct ethtool_link_ksettings *ecmd)
{
struct enic *enic = netdev_priv(netdev);
struct ethtool_link_settings *base = &ecmd->base;
- ethtool_link_ksettings_add_link_mode(ecmd, supported,
- 10000baseT_Full);
- ethtool_link_ksettings_add_link_mode(ecmd, supported, FIBRE);
- ethtool_link_ksettings_add_link_mode(ecmd, advertising,
- 10000baseT_Full);
- ethtool_link_ksettings_add_link_mode(ecmd, advertising, FIBRE);
- base->port = PORT_FIBRE;
+ enic_get_supp_adv_media_type(netdev, ecmd);
if (netif_carrier_ok(netdev)) {
base->speed = vnic_dev_port_speed(enic->vdev);
--
2.43.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH v2 0/2] net:ethernet:enic: add VIC ids and link modes
2026-02-23 10:27 [PATCH v2 0/2] net:ethernet:enic: add VIC ids and link modes Satish Kharat via B4 Relay
2026-02-23 10:27 ` [PATCH v2 1/2] net:ethernet:enic: add VIC subsystem ids Satish Kharat via B4 Relay
2026-02-23 10:27 ` [PATCH v2 2/2] net:ethernet:enic: map ethtool link modes by VIC type Satish Kharat via B4 Relay
@ 2026-02-25 1:50 ` patchwork-bot+netdevbpf
2 siblings, 0 replies; 4+ messages in thread
From: patchwork-bot+netdevbpf @ 2026-02-25 1:50 UTC (permalink / raw)
To: Satish Kharat; +Cc: netdev
Hello:
This series was applied to netdev/net-next.git (main)
by Jakub Kicinski <kuba@kernel.org>:
On Mon, 23 Feb 2026 02:27:19 -0800 you wrote:
> Add VIC subsystem ids and their supported/advertised media types so ethtool
> reflects the hardware capabilities for the VIC variants.
>
> Signed-off-by: Satish Kharat <satishkh@cisco.com>
> ---
> Changes in v2:
> Addressed comments from Andrew Lunn
> - Removed the advertising of the link speed as we don't support autoneg.
> - Link to v1: https://lore.kernel.org/r/20260221-enic-cscwi36355-v1-0-5a01a6046d5e@cisco.com
>
> [...]
Here is the summary with links:
- [v2,1/2] net:ethernet:enic: add VIC subsystem ids
https://git.kernel.org/netdev/net-next/c/472e079f8c90
- [v2,2/2] net:ethernet:enic: map ethtool link modes by VIC type
https://git.kernel.org/netdev/net-next/c/426f1f5b8752
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2026-02-25 1:50 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-23 10:27 [PATCH v2 0/2] net:ethernet:enic: add VIC ids and link modes Satish Kharat via B4 Relay
2026-02-23 10:27 ` [PATCH v2 1/2] net:ethernet:enic: add VIC subsystem ids Satish Kharat via B4 Relay
2026-02-23 10:27 ` [PATCH v2 2/2] net:ethernet:enic: map ethtool link modes by VIC type Satish Kharat via B4 Relay
2026-02-25 1:50 ` [PATCH v2 0/2] net:ethernet:enic: add VIC ids and link modes patchwork-bot+netdevbpf
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox