[dpdk-dev] net/liquidio: set device speed capability info
Checks
Commit Message
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@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(+)
Comments
On 5/25/2017 10:24 AM, Shijith Thotton wrote:
> 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@caviumnetworks.com>
Applied to dpdk-next-net/master, thanks.
@@ -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
@@ -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 */
@@ -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;