[dpdk-dev] [PATCH] net/liquidio: set device speed capability info

Shijith Thotton shijith.thotton at caviumnetworks.com
Thu May 25 11:24:18 CEST 2017


Add subsystem device id of CN23xx cards and expose speed capability of
devices. Update liquidio feature file to mark support.

Signed-off-by: Shijith Thotton <shijith.thotton at caviumnetworks.com>
---
 doc/guides/nics/features/liquidio.ini   |  1 +
 drivers/net/liquidio/base/lio_hw_defs.h |  6 ++++++
 drivers/net/liquidio/lio_ethdev.c       | 19 +++++++++++++++++++
 3 files changed, 26 insertions(+)

diff --git a/doc/guides/nics/features/liquidio.ini b/doc/guides/nics/features/liquidio.ini
index 49cc356..3bea03a 100644
--- a/doc/guides/nics/features/liquidio.ini
+++ b/doc/guides/nics/features/liquidio.ini
@@ -4,6 +4,7 @@
 ; Refer to default.ini for the full list of available PMD features.
 ;
 [Features]
+Speed capabilities   = Y
 Link status          = Y
 Link status event    = Y
 Jumbo frame          = Y
diff --git a/drivers/net/liquidio/base/lio_hw_defs.h b/drivers/net/liquidio/base/lio_hw_defs.h
index 67eaa45..de58c7c 100644
--- a/drivers/net/liquidio/base/lio_hw_defs.h
+++ b/drivers/net/liquidio/base/lio_hw_defs.h
@@ -42,6 +42,12 @@
 
 #define LIO_CN23XX_VF_VID	0x9712
 
+/* CN23xx subsystem device ids */
+#define PCI_SUBSYS_DEV_ID_CN2350_210	0x0004
+#define PCI_SUBSYS_DEV_ID_CN2360_210	0x0005
+#define PCI_SUBSYS_DEV_ID_CN2360_225	0x0006
+#define PCI_SUBSYS_DEV_ID_CN2350_225	0x0007
+
 /* --------------------------CONFIG VALUES------------------------ */
 
 /* CN23xx IQ configuration macros */
diff --git a/drivers/net/liquidio/lio_ethdev.c b/drivers/net/liquidio/lio_ethdev.c
index 132c837..b92a8f0 100644
--- a/drivers/net/liquidio/lio_ethdev.c
+++ b/drivers/net/liquidio/lio_ethdev.c
@@ -394,6 +394,25 @@ struct rte_lio_xstats_name_off {
 		 struct rte_eth_dev_info *devinfo)
 {
 	struct lio_device *lio_dev = LIO_DEV(eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
+
+	devinfo->pci_dev = pci_dev;
+
+	switch (pci_dev->id.subsystem_device_id) {
+	/* CN23xx 10G cards */
+	case PCI_SUBSYS_DEV_ID_CN2350_210:
+	case PCI_SUBSYS_DEV_ID_CN2360_210:
+		devinfo->speed_capa = ETH_LINK_SPEED_10G;
+		break;
+	/* CN23xx 25G cards */
+	case PCI_SUBSYS_DEV_ID_CN2350_225:
+	case PCI_SUBSYS_DEV_ID_CN2360_225:
+		devinfo->speed_capa = ETH_LINK_SPEED_25G;
+		break;
+	default:
+		lio_dev_err(lio_dev,
+			    "Unknown CN23XX subsystem device id. Not setting speed capability.\n");
+	}
 
 	devinfo->max_rx_queues = lio_dev->max_rx_queues;
 	devinfo->max_tx_queues = lio_dev->max_tx_queues;
-- 
1.8.3.1



More information about the dev mailing list