From: Ioana Ciornei <ioana.cior...@nxp.com>

The list of availabla DPNI APIs depends on the DPNI API version
available on a system. Retrieve the API version in the init stage and
store it in the private structure so that it can be used at a later
stage.

Signed-off-by: Ioana Ciornei <ioana.cior...@nxp.com>
---
 .mailmap                         | 1 +
 drivers/net/dpaa2/dpaa2_ethdev.c | 8 ++++++++
 drivers/net/dpaa2/dpaa2_ethdev.h | 3 +++
 3 files changed, 12 insertions(+)

diff --git a/.mailmap b/.mailmap
index 91e08f4a1f..93905921b1 100644
--- a/.mailmap
+++ b/.mailmap
@@ -606,6 +606,7 @@ Ilya Maximets <i.maxim...@ovn.org> <i.maxim...@samsung.com>
 Ilya V. Matveychikov <matvejchi...@gmail.com>
 Ilyes Ben Hamouda <ilyes.ben_hamo...@6wind.com>
 Intiyaz Basha <intiyaz.ba...@caviumnetworks.com>
+Ioana Ciornei <ioana.cior...@nxp.com>
 Isaac Boukris <ibouk...@gmail.com>
 Itamar Gozlan <igoz...@nvidia.com>
 Itsuro Oda <o...@valinux.co.jp>
diff --git a/drivers/net/dpaa2/dpaa2_ethdev.c b/drivers/net/dpaa2/dpaa2_ethdev.c
index 298fded65e..b88c9d748a 100644
--- a/drivers/net/dpaa2/dpaa2_ethdev.c
+++ b/drivers/net/dpaa2/dpaa2_ethdev.c
@@ -2814,6 +2814,14 @@ dpaa2_dev_init(struct rte_eth_dev *eth_dev)
                goto init_err;
        }
 
+       ret = dpni_get_api_version(dpni_dev, CMD_PRI_LOW, &priv->dpni_ver_major,
+                                  &priv->dpni_ver_minor);
+       if (ret) {
+               DPAA2_PMD_ERR("Failure in get dpni@%d API version, err code %d",
+                       hw_id, ret);
+               goto init_err;
+       }
+
        priv->num_rx_tc = attr.num_rx_tcs;
        priv->num_tx_tc = attr.num_tx_tcs;
        priv->qos_entries = attr.qos_entries;
diff --git a/drivers/net/dpaa2/dpaa2_ethdev.h b/drivers/net/dpaa2/dpaa2_ethdev.h
index 570b1608a0..ee5ae3b70a 100644
--- a/drivers/net/dpaa2/dpaa2_ethdev.h
+++ b/drivers/net/dpaa2/dpaa2_ethdev.h
@@ -394,6 +394,9 @@ struct dpaa2_dev_priv {
        uint8_t max_cgs;
        uint8_t cgid_in_use[MAX_RX_QUEUES];
 
+       uint16_t dpni_ver_major;
+       uint16_t dpni_ver_minor;
+
        enum rte_dpaa2_dev_type ep_dev_type;   /**< Endpoint Device Type */
        uint16_t ep_object_id;                 /**< Endpoint DPAA2 Object ID */
        char ep_name[RTE_DEV_NAME_MAX_LEN];
-- 
2.25.1

Reply via email to