From: Rakesh Kudurumalla <rkuduruma...@marvell.com>

update event device with NIX_RX_REAS_F to handle
out of place processing for boards that does not
support reassembly as cn10k driver process OOP
with NIX_RX_REAS_F enabled.

Signed-off-by: Rakesh Kudurumalla <rkuduruma...@marvell.com>
---
 drivers/event/cnxk/cn10k_eventdev.c | 18 ++++++++++++++++--
 1 file changed, 16 insertions(+), 2 deletions(-)

diff --git a/drivers/event/cnxk/cn10k_eventdev.c 
b/drivers/event/cnxk/cn10k_eventdev.c
index 229d7a03fe..4e2968f91e 100644
--- a/drivers/event/cnxk/cn10k_eventdev.c
+++ b/drivers/event/cnxk/cn10k_eventdev.c
@@ -826,7 +826,7 @@ cn10k_sso_set_priv_mem(const struct rte_eventdev 
*event_dev, void *lookup_mem)
 }
 
 static void
-eventdev_fops_tstamp_update(struct rte_eventdev *event_dev)
+eventdev_fops_update(struct rte_eventdev *event_dev)
 {
        struct rte_event_fp_ops *fp_op =
                rte_event_fp_ops + event_dev->data->dev_id;
@@ -849,7 +849,20 @@ cn10k_sso_tstamp_hdl_update(uint16_t port_id, uint16_t 
flags, bool ptp_en)
        else
                evdev->tstamp[port_id] = NULL;
        cn10k_sso_fp_fns_set((struct rte_eventdev *)(uintptr_t)event_dev);
-       eventdev_fops_tstamp_update(event_dev);
+       eventdev_fops_update(event_dev);
+}
+
+static void
+cn10k_sso_rx_offload_cb(uint16_t port_id, uint64_t flags)
+{
+       struct rte_eth_dev *dev = &rte_eth_devices[port_id];
+       struct cnxk_eth_dev *cnxk_eth_dev = dev->data->dev_private;
+       struct rte_eventdev *event_dev = cnxk_eth_dev->evdev_priv;
+       struct cnxk_sso_evdev *evdev = cnxk_sso_pmd_priv(event_dev);
+
+       evdev->rx_offloads |= flags;
+       cn10k_sso_fp_fns_set((struct rte_eventdev *)(uintptr_t)event_dev);
+       eventdev_fops_update(event_dev);
 }
 
 static int
@@ -1224,6 +1237,7 @@ cn10k_sso_init(struct rte_eventdev *event_dev)
                return rc;
        }
 
+       cnxk_ethdev_rx_offload_cb_register(cn10k_sso_rx_offload_cb);
        event_dev->dev_ops = &cn10k_sso_dev_ops;
        /* For secondary processes, the primary has done all the work */
        if (rte_eal_process_type() != RTE_PROC_PRIMARY) {
-- 
2.34.1

Reply via email to