From 37ba0b9001d7c71c5f6fe265ceb1ecaec814e844 Mon Sep 17 00:00:00 2001 From: Shijith Thotton Date: Thu, 25 May 2017 14:54:18 +0530 Subject: [PATCH] net/liquidio: set device speed capability info 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 --- 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 49cc356622..3bea03a378 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 67eaa45267..de58c7cc20 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 6fce88f311..94caa907f3 100644 --- a/drivers/net/liquidio/lio_ethdev.c +++ b/drivers/net/liquidio/lio_ethdev.c @@ -394,6 +394,25 @@ lio_dev_info_get(struct rte_eth_dev *eth_dev, 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;