event/octeontx2: add timer adapter capabilities
authorPavan Nikhilesh <pbhagavatula@marvell.com>
Fri, 28 Jun 2019 18:23:38 +0000 (23:53 +0530)
committerJerin Jacob <jerinj@marvell.com>
Wed, 3 Jul 2019 04:56:37 +0000 (06:56 +0200)
Add function to retrieve event timer adapter capabilities.

Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
drivers/event/octeontx2/otx2_evdev.c
drivers/event/octeontx2/otx2_tim_evdev.c
drivers/event/octeontx2/otx2_tim_evdev.h

index a716167..a1222b3 100644 (file)
@@ -1092,6 +1092,8 @@ static struct rte_eventdev_ops otx2_sso_ops = {
        .port_unlink      = otx2_sso_port_unlink,
        .timeout_ticks    = otx2_sso_timeout_ticks,
 
+       .timer_adapter_caps_get = otx2_tim_caps_get,
+
        .xstats_get       = otx2_sso_xstats_get,
        .xstats_reset     = otx2_sso_xstats_reset,
        .xstats_get_names = otx2_sso_xstats_get_names,
index 004701f..0f20c16 100644 (file)
@@ -5,6 +5,25 @@
 #include "otx2_evdev.h"
 #include "otx2_tim_evdev.h"
 
+int
+otx2_tim_caps_get(const struct rte_eventdev *evdev, uint64_t flags,
+                 uint32_t *caps,
+                 const struct rte_event_timer_adapter_ops **ops)
+{
+       struct otx2_tim_evdev *dev = tim_priv_get();
+
+       RTE_SET_USED(flags);
+       RTE_SET_USED(ops);
+       if (dev == NULL)
+               return -ENODEV;
+
+       /* Store evdev pointer for later use. */
+       dev->event_dev = (struct rte_eventdev *)(uintptr_t)evdev;
+       *caps = RTE_EVENT_TIMER_ADAPTER_CAP_INTERNAL_PORT;
+
+       return 0;
+}
+
 void
 otx2_tim_init(struct rte_pci_device *pci_dev, struct otx2_dev *cmn_dev)
 {
index 9f7aeb7..e94c61b 100644 (file)
@@ -13,6 +13,7 @@
 
 struct otx2_tim_evdev {
        struct rte_pci_device *pci_dev;
+       struct rte_eventdev *event_dev;
        struct otx2_mbox *mbox;
        uint16_t nb_rings;
        uintptr_t bar2;
@@ -30,6 +31,10 @@ tim_priv_get(void)
        return mz->addr;
 }
 
+int otx2_tim_caps_get(const struct rte_eventdev *dev, uint64_t flags,
+                     uint32_t *caps,
+                     const struct rte_event_timer_adapter_ops **ops);
+
 void otx2_tim_init(struct rte_pci_device *pci_dev, struct otx2_dev *cmn_dev);
 void otx2_tim_fini(void);