Hi Pavan, <... snipped ...>
> @@ -261,8 +267,12 @@ timvf_ring_create(struct rte_event_timer_adapter > *adptr) > timvf_write64(0x7, (uint8_t *)timr->vbar0 + > TIM_VF_NRSPERR_ENA_W1C); > timvf_write64(0x7, (uint8_t *)timr->vbar0 + > TIM_VF_NRSPERR_ENA_W1S); > > - adptr->arm_burst = timvf_timer_reg_burst_mp; > - adptr->arm_tmo_tick_burst = NULL; > + if (mp_flags) > + adptr->arm_burst = timvf_timer_reg_burst_sp; > + else > + adptr->arm_burst = timvf_timer_reg_burst_mp; > + > + adptr->arm_tmo_tick_burst = timvf_timer_reg_brst; > adptr->cancel_burst = timvf_timer_unreg_burst; > > return 0; The values assigned here to adptr->(arm_burst|arm_tmo_tick_burst|cancel_burst) would get overwritten by the caller with the values that are set immediately below. I.e., the below should be sufficient by itself. > @@ -297,11 +307,13 @@ timvf_timer_adapter_caps_get(const struct > rte_eventdev *dev, uint64_t flags, > uint32_t *caps, const struct rte_event_timer_adapter_ops > **ops) { > RTE_SET_USED(dev); > - RTE_SET_USED(flags); > > - timvf_ops.arm_burst = timvf_timer_reg_burst_mp; > - timvf_ops.arm_tmo_tick_burst = NULL; > + if (flags & RTE_EVENT_TIMER_ADAPTER_F_SP_PUT) > + timvf_ops.arm_burst = timvf_timer_reg_burst_sp; > + else > + timvf_ops.arm_burst = timvf_timer_reg_burst_mp; > > + timvf_ops.arm_tmo_tick_burst = timvf_timer_reg_brst; > timvf_ops.cancel_burst = timvf_timer_unreg_burst; > *caps = RTE_EVENT_TIMER_ADAPTER_CAP_INTERNAL_PORT; > *ops = &timvf_ops; > diff --git a/drivers/event/octeontx/timvf_evdev.h > b/drivers/event/octeontx/timvf_evdev.h > index c80e147e8..b5db233bb 100644 > --- a/drivers/event/octeontx/timvf_evdev.h > +++ b/drivers/event/octeontx/timvf_evdev.h > @@ -186,8 +186,13 @@ bkt_mod(uint32_t rel_bkt, uint32_t nb_bkts) <... snipped ...> Regards, Gabriel