]> git.droids-corp.org - dpdk.git/commitdiff
event/cnxk: add timer adapter capabilities
authorShijith Thotton <sthotton@marvell.com>
Tue, 4 May 2021 00:27:13 +0000 (05:57 +0530)
committerJerin Jacob <jerinj@marvell.com>
Tue, 4 May 2021 05:20:58 +0000 (07:20 +0200)
Add function to retrieve event timer adapter capabilities.

Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
Signed-off-by: Shijith Thotton <sthotton@marvell.com>
drivers/event/cnxk/cn10k_eventdev.c
drivers/event/cnxk/cn9k_eventdev.c
drivers/event/cnxk/cnxk_tim_evdev.c
drivers/event/cnxk/cnxk_tim_evdev.h

index a0c6d32cc5c6dd6bac93f05c8f7548a0e702686b..0981085e8d83ba5a072edcfcf2b5abf86c428c07 100644 (file)
@@ -420,6 +420,8 @@ static struct rte_eventdev_ops cn10k_sso_dev_ops = {
        .port_unlink = cn10k_sso_port_unlink,
        .timeout_ticks = cnxk_sso_timeout_ticks,
 
+       .timer_adapter_caps_get = cnxk_tim_caps_get,
+
        .dump = cnxk_sso_dump,
        .dev_start = cn10k_sso_start,
        .dev_stop = cn10k_sso_stop,
index 48991e522f9cd6b2acbbca453e3cb0d81a33e549..d9882ebb967a8334ff7d57cbb3489faf330001bb 100644 (file)
@@ -494,6 +494,8 @@ static struct rte_eventdev_ops cn9k_sso_dev_ops = {
        .port_unlink = cn9k_sso_port_unlink,
        .timeout_ticks = cnxk_sso_timeout_ticks,
 
+       .timer_adapter_caps_get = cnxk_tim_caps_get,
+
        .dump = cnxk_sso_dump,
        .dev_start = cn9k_sso_start,
        .dev_stop = cn9k_sso_stop,
index 46461b88586eed35d26c4181e0a12d3246546c2c..265bee533aa18217a4e2b2272ea6f5e57ca5e404 100644 (file)
@@ -5,6 +5,26 @@
 #include "cnxk_eventdev.h"
 #include "cnxk_tim_evdev.h"
 
+int
+cnxk_tim_caps_get(const struct rte_eventdev *evdev, uint64_t flags,
+                 uint32_t *caps,
+                 const struct rte_event_timer_adapter_ops **ops)
+{
+       struct cnxk_tim_evdev *dev = cnxk_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
 cnxk_tim_init(struct roc_sso *sso)
 {
@@ -37,7 +57,7 @@ cnxk_tim_init(struct roc_sso *sso)
 void
 cnxk_tim_fini(void)
 {
-       struct cnxk_tim_evdev *dev = tim_priv_get();
+       struct cnxk_tim_evdev *dev = cnxk_tim_priv_get();
 
        if (rte_eal_process_type() != RTE_PROC_PRIMARY)
                return;
index 5ddc94ed4cf689f7f343f7fc9dc956d1ce6055dc..ece66ab2502aad168b56c24cfe62bab93f32d37c 100644 (file)
@@ -27,7 +27,7 @@ struct cnxk_tim_evdev {
 };
 
 static inline struct cnxk_tim_evdev *
-tim_priv_get(void)
+cnxk_tim_priv_get(void)
 {
        const struct rte_memzone *mz;
 
@@ -38,6 +38,10 @@ tim_priv_get(void)
        return mz->addr;
 }
 
+int cnxk_tim_caps_get(const struct rte_eventdev *dev, uint64_t flags,
+                     uint32_t *caps,
+                     const struct rte_event_timer_adapter_ops **ops);
+
 void cnxk_tim_init(struct roc_sso *sso);
 void cnxk_tim_fini(void);