From: Vanshika Shukla <[email protected]>

Add fman_onic MAC type handling to get_rx_port_type() so that ONIC
and offline-internal ports are mapped to OH_OFFLINE_PARSING, consistent
with how the VSP port configuration handles these types. Without this,
ONIC ports used an incorrect port type in flow configuration, leading
to failed FMC operations.

Also remove the fif parameter from dpaa_port_vsp_cleanup() since the
function only uses the port pointer, and simplify the dpaa_flow.c
VSP cleanup call sites accordingly.

Signed-off-by: Vanshika Shukla <[email protected]>
---
 drivers/net/dpaa/dpaa_ethdev.c | 111 ++++++++++++++++++++++++------
 drivers/net/dpaa/dpaa_ethdev.h |  11 ++-
 drivers/net/dpaa/dpaa_flow.c   | 120 +++++++++++++++++----------------
 drivers/net/dpaa/dpaa_flow.h   |   7 +-
 4 files changed, 166 insertions(+), 83 deletions(-)

diff --git a/drivers/net/dpaa/dpaa_ethdev.c b/drivers/net/dpaa/dpaa_ethdev.c
index 967e814b5d..d6a21b6ce8 100644
--- a/drivers/net/dpaa/dpaa_ethdev.c
+++ b/drivers/net/dpaa/dpaa_ethdev.c
@@ -1,7 +1,7 @@
 /* SPDX-License-Identifier: BSD-3-Clause
  *
  *   Copyright 2016 Freescale Semiconductor, Inc. All rights reserved.
- *   Copyright 2017-2020,2022-2025 NXP
+ *   Copyright 2017-2020,2022-2026 NXP
  *
  */
 /* System headers */
@@ -482,7 +482,7 @@ static int dpaa_eth_dev_stop(struct rte_eth_dev *dev)
        PMD_INIT_FUNC_TRACE();
        dev->data->dev_started = 0;
 
-       if (!fif->is_shared_mac) {
+       if (!fif->is_shared_mac && fif->mac_type != fman_onic) {
                fman_if_bmi_stats_disable(fif);
                fman_if_disable_rx(fif);
        }
@@ -505,7 +505,7 @@ static int dpaa_eth_dev_close(struct rte_eth_dev *dev)
        struct rte_eth_link *link = &dev->data->dev_link;
        struct dpaa_if *dpaa_intf = dev->data->dev_private;
        struct qman_fq *fq;
-       int loop;
+       uint32_t fqid, loop;
        int ret;
 
        PMD_INIT_FUNC_TRACE();
@@ -520,10 +520,12 @@ static int dpaa_eth_dev_close(struct rte_eth_dev *dev)
 
        /* DPAA FM deconfig */
        if (!(default_q || fmc_q)) {
-               ret = dpaa_fm_deconfig(dpaa_intf, dev->process_private);
-               if (ret) {
-                       DPAA_PMD_WARN("%s: FM deconfig failed(%d)",
-                               dev->data->name, ret);
+               if (dpaa_intf->port_handle) {
+                       ret = dpaa_fm_deconfig(dpaa_intf, dev->process_private);
+                       if (ret) {
+                               DPAA_PMD_WARN("%s: FM deconfig failed(%d)",
+                                       dev->data->name, ret);
+                       }
                }
        }
 
@@ -567,29 +569,72 @@ static int dpaa_eth_dev_close(struct rte_eth_dev *dev)
 
        /* release configuration memory */
        rte_free(dpaa_intf->fc_conf);
+       dpaa_intf->fc_conf = NULL;
 
+       /** For FMCLESS mode of share MAC, deconfig FM to direct
+        * ingress traffic to kernel before fq shutdown.
+        */
+       if (!(default_q || fmc_q) && dpaa_intf->port_handle) {
+               ret = dpaa_fm_deconfig(dpaa_intf, dev->process_private);
+               if (ret) {
+                       DPAA_PMD_WARN("%s: FM deconfig failed(%d)",
+                               dev->data->name, ret);
+               }
+       }
+       if (fif->num_profiles) {
+               ret = dpaa_port_vsp_cleanup(dpaa_intf);
+               if (ret) {
+                       DPAA_PMD_WARN("%s: cleanup VSP failed(%d)",
+                               dev->data->name, ret);
+               }
+       }
+       /** Release congestion Groups after releasing FQIDs*/
        /* Release RX congestion Groups */
        if (dpaa_intf->cgr_rx) {
                for (loop = 0; loop < dpaa_intf->nb_rx_queues; loop++) {
+                       ret = 
qman_find_fq_by_cgrid(dpaa_intf->cgr_rx[loop].cgrid, &fqid);
+                       if (!ret) {
+                               /** Should be FQ not cleaned in previous 
program.*/
+                               DPAA_PMD_DEBUG("FQ(fqid=0x%x) with rx cgid=%d 
is still alive?",
+                                       fqid, dpaa_intf->cgr_rx[loop].cgrid);
+                               ret = qman_shutdown_fq_by_fqid(fqid);
+                               if (ret) {
+                                       DPAA_PMD_WARN("Failed(%d) to shutdown 
fq(fqid=0x%x)",
+                                               ret, fqid);
+                               }
+                       }
                        ret = qman_delete_cgr(&dpaa_intf->cgr_rx[loop]);
                        if (ret) {
                                DPAA_PMD_WARN("%s: delete rxq%d's cgr err(%d)",
                                        dev->data->name, loop, ret);
                        }
                }
+               qman_release_cgrid_range(dpaa_intf->cgr_rx[0].cgrid, 
dpaa_intf->nb_rx_queues);
                rte_free(dpaa_intf->cgr_rx);
                dpaa_intf->cgr_rx = NULL;
        }
 
        /* Release TX congestion Groups */
        if (dpaa_intf->cgr_tx) {
-               for (loop = 0; loop < MAX_DPAA_CORES; loop++) {
+               for (loop = 0; loop < dpaa_intf->nb_tx_queues; loop++) {
+                       ret = 
qman_find_fq_by_cgrid(dpaa_intf->cgr_tx[loop].cgrid, &fqid);
+                       if (!ret) {
+                               /** Should be FQ not cleaned in previous 
program.*/
+                               DPAA_PMD_DEBUG("FQ(fqid=0x%x) with tx cgid=%d 
is still alive?",
+                                       fqid, dpaa_intf->cgr_tx[loop].cgrid);
+                               ret = qman_shutdown_fq_by_fqid(fqid);
+                               if (ret) {
+                                       DPAA_PMD_WARN("Failed(%d) to shutdown 
fq(fqid=0x%x)",
+                                               ret, fqid);
+                               }
+                       }
                        ret = qman_delete_cgr(&dpaa_intf->cgr_tx[loop]);
                        if (ret) {
                                DPAA_PMD_WARN("%s: delete txq%d's cgr err(%d)",
                                        dev->data->name, loop, ret);
                        }
                }
+               qman_release_cgrid_range(dpaa_intf->cgr_tx[0].cgrid, 
dpaa_intf->nb_tx_queues);
                rte_free(dpaa_intf->cgr_tx);
                dpaa_intf->cgr_tx = NULL;
        }
@@ -611,6 +656,10 @@ static int dpaa_eth_dev_close(struct rte_eth_dev *dev)
 
        rte_free(dpaa_intf->tx_queues);
        dpaa_intf->tx_queues = NULL;
+
+       rte_free(dpaa_intf->tx_conf_queues);
+       dpaa_intf->tx_conf_queues = NULL;
+
        if (dpaa_intf->port_handle) {
                ret = dpaa_fm_deconfig(dpaa_intf, fif);
                if (ret) {
@@ -619,7 +668,7 @@ static int dpaa_eth_dev_close(struct rte_eth_dev *dev)
                }
        }
        if (fif->num_profiles) {
-               ret = dpaa_port_vsp_cleanup(dpaa_intf, fif);
+               ret = dpaa_port_vsp_cleanup(dpaa_intf);
                if (ret) {
                        DPAA_PMD_WARN("%s: cleanup VSP failed(%d)",
                                dev->data->name, ret);
@@ -1079,8 +1128,8 @@ static inline int dpaa_eth_rx_queue_bp_check(struct 
rte_eth_dev *dev,
                        vsp_id = 0;
        }
 
-       if (dpaa_intf->vsp_bpid[vsp_id] &&
-               bpid != dpaa_intf->vsp_bpid[vsp_id]) {
+       if (dpaa_intf->vsp[vsp_id].vsp_bp[0]->bpid &&
+               bpid != dpaa_intf->vsp[vsp_id].vsp_bp[0]->bpid) {
                DPAA_PMD_ERR("Various MPs are assigned to RXQs with same VSP");
 
                return -1;
@@ -1117,12 +1166,15 @@ int dpaa_eth_rx_queue_setup(struct rte_eth_dev *dev, 
uint16_t queue_idx,
        rxq->nb_desc = UINT16_MAX;
        rxq->offloads = rx_conf->offloads;
 
+       /* Rx deferred start is not supported */
+       if (rx_conf->rx_deferred_start) {
+               DPAA_PMD_ERR("%p:Rx deferred start not supported", (void *)dev);
+               return -EINVAL;
+       }
+
        DPAA_PMD_INFO("Rx queue setup for queue index: %d fq_id (0x%x)",
                        queue_idx, rxq->fqid);
 
-       /* Shutdown FQ before configure */
-       qman_shutdown_fq(rxq->fqid);
-
        if (!fif->num_profiles) {
                if (dpaa_intf->bp_info && dpaa_intf->bp_info->bp &&
                        dpaa_intf->bp_info->mp != mp) {
@@ -1174,9 +1226,9 @@ int dpaa_eth_rx_queue_setup(struct rte_eth_dev *dev, 
uint16_t queue_idx,
                int8_t vsp_id = rxq->vsp_id;
 
                if (vsp_id >= 0) {
-                       ret = dpaa_port_vsp_update(dpaa_intf, fmc_q, vsp_id,
-                                       DPAA_MEMPOOL_TO_POOL_INFO(mp)->bpid,
-                                       fif, buffsz + RTE_PKTMBUF_HEADROOM);
+                       dpaa_intf->vsp[vsp_id].vsp_bp[0] = 
DPAA_MEMPOOL_TO_POOL_INFO(mp);
+                       dpaa_intf->vsp[vsp_id].bp_num = 1;
+                       ret = dpaa_port_vsp_update(dpaa_intf, fmc_q, vsp_id, 
fif);
                        if (ret) {
                                DPAA_PMD_ERR("dpaa_port_vsp_update failed");
                                return ret;
@@ -1189,11 +1241,12 @@ int dpaa_eth_rx_queue_setup(struct rte_eth_dev *dev, 
uint16_t queue_idx,
                                             " to shared interface on DPDK.");
                                return -EINVAL;
                        }
-                       dpaa_intf->vsp_bpid[fif->base_profile_id] =
-                               DPAA_MEMPOOL_TO_POOL_INFO(mp)->bpid;
+                       dpaa_intf->vsp[fif->base_profile_id].vsp_bp[0] =
+                               DPAA_MEMPOOL_TO_POOL_INFO(mp);
+                       dpaa_intf->vsp[fif->base_profile_id].bp_num = 1;
                }
        } else {
-               dpaa_intf->vsp_bpid[0] =
+               dpaa_intf->vsp[0].vsp_bp[0]->bpid =
                        DPAA_MEMPOOL_TO_POOL_INFO(mp)->bpid;
        }
 
@@ -1426,6 +1479,12 @@ int dpaa_eth_tx_queue_setup(struct rte_eth_dev *dev, 
uint16_t queue_idx,
        txq->nb_desc = UINT16_MAX;
        txq->offloads = tx_conf->offloads;
 
+       /* Tx deferred start is not supported */
+       if (tx_conf->tx_deferred_start) {
+               DPAA_PMD_ERR("%p:Tx deferred start not supported", (void *)dev);
+               return -EINVAL;
+       }
+
        if (queue_idx >= dev->data->nb_tx_queues) {
                rte_errno = EOVERFLOW;
                DPAA_PMD_ERR("%p: queue index out of range (%u >= %u)",
@@ -2356,6 +2415,13 @@ dpaa_dev_init(struct rte_eth_dev *eth_dev)
 
                vsp_id = dev_vspids[loop];
 
+               /* Shutdown FQ before configure to clean the queue */
+               ret = qman_shutdown_fq_by_fqid(fqid);
+               if (ret < 0) {
+                       DPAA_PMD_ERR("Failed shutdown %s:rxq-%d-fqid = 0x%08x",
+                               dpaa_intf->name, loop, fqid);
+               }
+
                if (dpaa_intf->cgr_rx)
                        dpaa_intf->cgr_rx[loop].cgrid = cgrid[loop];
 
@@ -2498,6 +2564,8 @@ dpaa_dev_init(struct rte_eth_dev *eth_dev)
        return 0;
 
 free_tx:
+       rte_free(dpaa_intf->tx_conf_queues);
+       dpaa_intf->tx_conf_queues = NULL;
        rte_free(dpaa_intf->tx_queues);
        dpaa_intf->tx_queues = NULL;
        dpaa_intf->nb_tx_queues = 0;
@@ -2677,6 +2745,9 @@ rte_dpaa_remove(struct rte_dpaa_device *dpaa_dev)
 
        PMD_INIT_FUNC_TRACE();
 
+       if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+               return 0;
+
        eth_dev = rte_eth_dev_allocated(dpaa_dev->device.name);
        dpaa_eth_dev_close(eth_dev);
        ret = rte_eth_dev_release_port(eth_dev);
diff --git a/drivers/net/dpaa/dpaa_ethdev.h b/drivers/net/dpaa/dpaa_ethdev.h
index f400030a5c..195b77ab75 100644
--- a/drivers/net/dpaa/dpaa_ethdev.h
+++ b/drivers/net/dpaa/dpaa_ethdev.h
@@ -118,6 +118,13 @@ enum {
 
 #define FMC_FILE "/tmp/fmc.bin"
 
+struct dpaa_if_vsp {
+       struct dpaa_bp_info *vsp_bp[FMAN_PORT_MAX_EXT_POOLS_NUM];
+       uint8_t bp_num;
+       uint32_t max_size;
+       void *vsp_handle;
+};
+
 extern struct rte_mempool *dpaa_tx_sg_pool;
 
 /* PMD related logs */
@@ -164,8 +171,8 @@ struct dpaa_if {
         */
        struct qman_fq *next_tx_conf_queue;
 
-       void *vsp_handle[DPAA_VSP_PROFILE_MAX_NUM];
-       uint32_t vsp_bpid[DPAA_VSP_PROFILE_MAX_NUM];
+       struct dpaa_if_vsp vsp[DPAA_VSP_PROFILE_MAX_NUM];
+       uint8_t base_vsp;
 };
 
 struct dpaa_if_stats {
diff --git a/drivers/net/dpaa/dpaa_flow.c b/drivers/net/dpaa/dpaa_flow.c
index 417b9b6fbb..a10ca0cb56 100644
--- a/drivers/net/dpaa/dpaa_flow.c
+++ b/drivers/net/dpaa/dpaa_flow.c
@@ -1,5 +1,5 @@
 /* SPDX-License-Identifier: BSD-3-Clause
- * Copyright 2017-2019,2021-2025 NXP
+ * Copyright 2017-2019,2021-2026 NXP
  */
 
 /* System headers */
@@ -8,6 +8,7 @@
 #include <unistd.h>
 #include <sys/types.h>
 
+#include <dpaa_mempool.h>
 #include <dpaa_ethdev.h>
 #include <dpaa_flow.h>
 #include <rte_dpaa_logs.h>
@@ -805,8 +806,7 @@ int dpaa_fm_config(struct rte_eth_dev *dev, uint64_t 
req_dist_set)
 
        if (fif->num_profiles) {
                for (i = 0; i < dev->data->nb_rx_queues; i++)
-                       dpaa_intf->rx_queues[i].vsp_id =
-                               fm_default_vsp_id(fif);
+                       dpaa_intf->rx_queues[i].vsp_id = fm_default_vsp_id(fif);
 
                i = 0;
        }
@@ -938,27 +938,16 @@ int dpaa_fm_term(void)
 }
 
 static int dpaa_port_vsp_configure(struct dpaa_if *dpaa_intf,
-               uint8_t vsp_id, t_handle fman_handle,
-               struct fman_if *fif, u32 mbuf_data_room_size)
+               uint8_t vsp_id, t_handle fman_handle, struct fman_if *fif)
 {
+       struct dpaa_if_vsp *vsp;
        t_fm_vsp_params vsp_params;
        t_fm_buffer_prefix_content buf_prefix_cont;
-       uint8_t idx = mac_idx[fif->mac_idx];
+       uint8_t idx = mac_idx[fif->mac_idx], i;
        int ret;
+       struct t_fm_ext_pools *pools;
 
-       if (vsp_id == fif->base_profile_id && fif->is_shared_mac) {
-               /* For shared interface, VSP of base
-                * profile is default pool located in kernel.
-                */
-               dpaa_intf->vsp_bpid[vsp_id] = 0;
-               return 0;
-       }
-
-       if (vsp_id >= DPAA_VSP_PROFILE_MAX_NUM) {
-               DPAA_PMD_ERR("VSP ID %d exceeds MAX number %d",
-                       vsp_id, DPAA_VSP_PROFILE_MAX_NUM);
-               return -1;
-       }
+       vsp = &dpaa_intf->vsp[vsp_id];
 
        memset(&vsp_params, 0, sizeof(vsp_params));
        vsp_params.h_fm = fman_handle;
@@ -972,17 +961,21 @@ static int dpaa_port_vsp_configure(struct dpaa_if 
*dpaa_intf,
        vsp_params.port_params.port_type = get_rx_port_type(fif);
        if (vsp_params.port_params.port_type == e_FM_PORT_TYPE_DUMMY) {
                DPAA_PMD_ERR("Mac type %d error", fif->mac_type);
-               return -1;
+               return -EINVAL;
        }
 
-       vsp_params.ext_buf_pools.num_of_pools_used = 1;
-       vsp_params.ext_buf_pools.ext_buf_pool[0].id = 
dpaa_intf->vsp_bpid[vsp_id];
-       vsp_params.ext_buf_pools.ext_buf_pool[0].size = mbuf_data_room_size;
+       pools = &vsp_params.ext_buf_pools;
 
-       dpaa_intf->vsp_handle[vsp_id] = fm_vsp_config(&vsp_params);
-       if (!dpaa_intf->vsp_handle[vsp_id]) {
-               DPAA_PMD_ERR("fm_vsp_config error for profile %d", vsp_id);
-               return -EINVAL;
+       pools->num_of_pools_used = vsp->bp_num;
+       for (i = 0; i < vsp->bp_num; i++) {
+               pools->ext_buf_pool[i].id = vsp->vsp_bp[i]->bpid;
+               pools->ext_buf_pool[i].size = vsp->vsp_bp[i]->size;
+       }
+
+       vsp->vsp_handle = fm_vsp_config(&vsp_params);
+       if (!vsp->vsp_handle) {
+               DPAA_PMD_ERR("Configure VSP[%d] failed!", vsp_id);
+               return -EIO;
        }
 
        /* configure the application buffer (structure, size and
@@ -1000,19 +993,18 @@ static int dpaa_port_vsp_configure(struct dpaa_if 
*dpaa_intf,
        buf_prefix_cont.manip_ext_space =
                RTE_PKTMBUF_HEADROOM - DPAA_MBUF_HW_ANNOTATION;
 
-       ret = fm_vsp_config_buffer_prefix_content(dpaa_intf->vsp_handle[vsp_id],
-                                              &buf_prefix_cont);
+       ret = fm_vsp_config_buffer_prefix_content(vsp->vsp_handle,
+                       &buf_prefix_cont);
        if (ret != E_OK) {
-               DPAA_PMD_ERR("fm_vsp_config_buffer_prefix_content error for 
profile %d err: %d",
-                            vsp_id, ret);
+               DPAA_PMD_ERR("Configure VSP[%d]'s buffer prefix failed(%d)!",
+                       vsp_id, ret);
                return ret;
        }
 
        /* initialize the FM VSP module */
-       ret = fm_vsp_init(dpaa_intf->vsp_handle[vsp_id]);
+       ret = fm_vsp_init(vsp->vsp_handle);
        if (ret != E_OK) {
-               DPAA_PMD_ERR("fm_vsp_init error for profile %d err:%d",
-                        vsp_id, ret);
+               DPAA_PMD_ERR("Init VSP[%d] failed(%d)!", vsp_id, ret);
                return ret;
        }
 
@@ -1020,29 +1012,44 @@ static int dpaa_port_vsp_configure(struct dpaa_if 
*dpaa_intf,
 }
 
 int dpaa_port_vsp_update(struct dpaa_if *dpaa_intf,
-               bool fmc_mode, uint8_t vsp_id, uint32_t bpid,
-               struct fman_if *fif, u32 mbuf_data_room_size)
+               bool fmc_mode, uint8_t vsp_id, struct fman_if *fif)
 {
        int ret = 0;
        t_handle fman_handle;
+       struct dpaa_if_vsp *vsp;
 
-       if (!fif->num_profiles)
-               return 0;
+       if (!fif->num_profiles) {
+               DPAA_PMD_ERR("%s: No multiple VSPs specified!",
+                       dpaa_intf->name);
+               return -EINVAL;
+       }
 
-       if (vsp_id >= fif->num_profiles)
-               return 0;
+       if (vsp_id >= (fif->base_profile_id + fif->num_profiles)) {
+               DPAA_PMD_ERR("%s: Invalid VSP ID(%d) >= base(%d) + num(%d)",
+                       dpaa_intf->name, vsp_id, fif->base_profile_id,
+                       fif->num_profiles);
+               return -EINVAL;
+       }
 
-       if (dpaa_intf->vsp_bpid[vsp_id] == bpid)
+       if (vsp_id == fif->base_profile_id && fif->is_shared_mac) {
+               /* For shared interface, VSP of base
+                * profile is default pool located in kernel.
+                */
+               dpaa_intf->vsp[vsp_id].bp_num = 0;
+               dpaa_intf->vsp[vsp_id].vsp_handle = NULL;
                return 0;
+       }
 
-       if (dpaa_intf->vsp_handle[vsp_id]) {
-               ret = fm_vsp_free(dpaa_intf->vsp_handle[vsp_id]);
+       vsp = &dpaa_intf->vsp[vsp_id];
+
+       if (vsp->vsp_handle) {
+               ret = fm_vsp_free(vsp->vsp_handle);
                if (ret != E_OK) {
-                       DPAA_PMD_ERR("Error fm_vsp_free: err %d vsp_handle[%d]",
-                                    ret, vsp_id);
+                       DPAA_PMD_ERR("Free VSP[%d]'s handle failed(%d)",
+                               vsp_id, ret);
                        return ret;
                }
-               dpaa_intf->vsp_handle[vsp_id] = 0;
+               vsp->vsp_handle = NULL;
        }
 
        if (fmc_mode)
@@ -1050,24 +1057,23 @@ int dpaa_port_vsp_update(struct dpaa_if *dpaa_intf,
        else
                fman_handle = fm_info.fman_handle;
 
-       dpaa_intf->vsp_bpid[vsp_id] = bpid;
-
-       return dpaa_port_vsp_configure(dpaa_intf, vsp_id, fman_handle, fif,
-                                      mbuf_data_room_size);
+       return dpaa_port_vsp_configure(dpaa_intf, vsp_id, fman_handle, fif);
 }
 
-int dpaa_port_vsp_cleanup(struct dpaa_if *dpaa_intf, struct fman_if *fif)
+int dpaa_port_vsp_cleanup(struct dpaa_if *dpaa_intf)
 {
-       int idx, ret;
+       int ret;
+       uint8_t idx;
 
-       for (idx = 0; idx < (uint8_t)fif->num_profiles; idx++) {
-               if (dpaa_intf->vsp_handle[idx]) {
-                       ret = fm_vsp_free(dpaa_intf->vsp_handle[idx]);
+       for (idx = 0; idx < DPAA_VSP_PROFILE_MAX_NUM; idx++) {
+               if (dpaa_intf->vsp[idx].vsp_handle) {
+                       ret = fm_vsp_free(dpaa_intf->vsp[idx].vsp_handle);
                        if (ret != E_OK) {
-                               DPAA_PMD_ERR("Error fm_vsp_free: err %d"
-                                            " vsp_handle[%d]", ret, idx);
+                               DPAA_PMD_ERR("Free VSP[%d] failed(%d)",
+                                       idx, ret);
                                return ret;
                        }
+                       dpaa_intf->vsp[idx].vsp_handle = NULL;
                }
        }
 
diff --git a/drivers/net/dpaa/dpaa_flow.h b/drivers/net/dpaa/dpaa_flow.h
index 4742b8dd0a..6a949d6dd4 100644
--- a/drivers/net/dpaa/dpaa_flow.h
+++ b/drivers/net/dpaa/dpaa_flow.h
@@ -1,5 +1,5 @@
 /* SPDX-License-Identifier: BSD-3-Clause
- * Copyright 2017,2019,2022 NXP
+ * Copyright 2017,2019,2022,2026 NXP
  */
 
 #ifndef __DPAA_FLOW_H__
@@ -11,9 +11,8 @@ int dpaa_fm_config(struct rte_eth_dev *dev, uint64_t 
req_dist_set);
 int dpaa_fm_deconfig(struct dpaa_if *dpaa_intf, struct fman_if *fif);
 void dpaa_write_fm_config_to_file(void);
 int dpaa_port_vsp_update(struct dpaa_if *dpaa_intf,
-       bool fmc_mode, uint8_t vsp_id, uint32_t bpid, struct fman_if *fif,
-       u32 mbuf_data_room_size);
-int dpaa_port_vsp_cleanup(struct dpaa_if *dpaa_intf, struct fman_if *fif);
+       bool fmc_mode, uint8_t vsp_id, struct fman_if *fif);
+int dpaa_port_vsp_cleanup(struct dpaa_if *dpaa_intf);
 int dpaa_port_fmc_init(struct fman_if *fif,
                       uint32_t *fqids, int8_t *vspids, int max_nb_rxq);
 
-- 
2.25.1

Reply via email to