bus/fslmc: add callback per queue to enable
authorNipun Gupta <nipun.gupta@nxp.com>
Fri, 30 Jun 2017 08:54:29 +0000 (14:24 +0530)
committerJerin Jacob <jerin.jacob@caviumnetworks.com>
Fri, 7 Jul 2017 07:27:06 +0000 (09:27 +0200)
Dequeue from event device needs to process the event on
the basis of the hardware queue from which it is dequeued.
A callback is added into dpaa2_queue structure, to enable
event dequeue functionality to call that processing routine.

Signed-off-by: Nipun Gupta <nipun.gupta@nxp.com>
drivers/bus/fslmc/portal/dpaa2_hw_pvt.h

index aee9592..c03e681 100644 (file)
@@ -34,6 +34,8 @@
 #ifndef _DPAA2_HW_PVT_H_
 #define _DPAA2_HW_PVT_H_
 
+#include <rte_eventdev.h>
+
 #include <mc/fsl_mc_sys.h>
 #include <fsl_qbman_portal.h>
 
@@ -101,6 +103,8 @@ struct dpaa2_dpio_dev {
        uintptr_t ci_size; /**< Size of the CI region */
        int32_t vfio_fd; /**< File descriptor received via VFIO */
        int32_t hw_id; /**< An unique ID of this DPIO device instance */
+       uint64_t dqrr_held;
+       uint8_t dqrr_size;
 };
 
 struct dpaa2_dpbp_dev {
@@ -119,6 +123,11 @@ struct queue_storage_info_t {
        int toggle;
 };
 
+typedef void (dpaa2_queue_cb_dqrr_t)(struct qbman_swp *swp,
+               const struct qbman_fd *fd,
+               const struct qbman_result *dq,
+               struct rte_event *ev);
+
 struct dpaa2_queue {
        struct rte_mempool *mb_pool; /**< mbuf pool to populate RX ring. */
        void *dev;
@@ -133,6 +142,7 @@ struct dpaa2_queue {
                struct queue_storage_info_t *q_storage;
                struct qbman_result *cscn;
        };
+       dpaa2_queue_cb_dqrr_t *cb;
 };
 
 struct swp_active_dqs {