1d35e6132SPavan Nikhilesh /* SPDX-License-Identifier: BSD-3-Clause 2d35e6132SPavan Nikhilesh * Copyright(C) 2021 Marvell. 3d35e6132SPavan Nikhilesh */ 4d35e6132SPavan Nikhilesh 5d35e6132SPavan Nikhilesh #include "eventdev_pmd.h" 6d35e6132SPavan Nikhilesh #include "rte_eventdev.h" 7d35e6132SPavan Nikhilesh 8d35e6132SPavan Nikhilesh static uint16_t 9d35e6132SPavan Nikhilesh dummy_event_enqueue_burst(__rte_unused void *port, 10d35e6132SPavan Nikhilesh __rte_unused const struct rte_event ev[], 11d35e6132SPavan Nikhilesh __rte_unused uint16_t nb_events) 12d35e6132SPavan Nikhilesh { 13d35e6132SPavan Nikhilesh RTE_EDEV_LOG_ERR( 14d35e6132SPavan Nikhilesh "event enqueue burst requested for unconfigured event device"); 15d35e6132SPavan Nikhilesh return 0; 16d35e6132SPavan Nikhilesh } 17d35e6132SPavan Nikhilesh 18d35e6132SPavan Nikhilesh static uint16_t 19d35e6132SPavan Nikhilesh dummy_event_dequeue_burst(__rte_unused void *port, 20d35e6132SPavan Nikhilesh __rte_unused struct rte_event ev[], 21d35e6132SPavan Nikhilesh __rte_unused uint16_t nb_events, 22d35e6132SPavan Nikhilesh __rte_unused uint64_t timeout_ticks) 23d35e6132SPavan Nikhilesh { 24d35e6132SPavan Nikhilesh RTE_EDEV_LOG_ERR( 25d35e6132SPavan Nikhilesh "event dequeue burst requested for unconfigured event device"); 26d35e6132SPavan Nikhilesh return 0; 27d35e6132SPavan Nikhilesh } 28d35e6132SPavan Nikhilesh 2954f17843SMattias Rönnblom static void 3054f17843SMattias Rönnblom dummy_event_maintain(__rte_unused void *port, __rte_unused int op) 3154f17843SMattias Rönnblom { 3254f17843SMattias Rönnblom RTE_EDEV_LOG_ERR( 3354f17843SMattias Rönnblom "maintenance requested for unconfigured event device"); 3454f17843SMattias Rönnblom } 3554f17843SMattias Rönnblom 36d35e6132SPavan Nikhilesh static uint16_t 37d35e6132SPavan Nikhilesh dummy_event_tx_adapter_enqueue(__rte_unused void *port, 38d35e6132SPavan Nikhilesh __rte_unused struct rte_event ev[], 39d35e6132SPavan Nikhilesh __rte_unused uint16_t nb_events) 40d35e6132SPavan Nikhilesh { 41d35e6132SPavan Nikhilesh RTE_EDEV_LOG_ERR( 42d35e6132SPavan Nikhilesh "event Tx adapter enqueue requested for unconfigured event device"); 43d35e6132SPavan Nikhilesh return 0; 44d35e6132SPavan Nikhilesh } 45d35e6132SPavan Nikhilesh 46d35e6132SPavan Nikhilesh static uint16_t 47d35e6132SPavan Nikhilesh dummy_event_tx_adapter_enqueue_same_dest(__rte_unused void *port, 48d35e6132SPavan Nikhilesh __rte_unused struct rte_event ev[], 49d35e6132SPavan Nikhilesh __rte_unused uint16_t nb_events) 50d35e6132SPavan Nikhilesh { 51d35e6132SPavan Nikhilesh RTE_EDEV_LOG_ERR( 52d35e6132SPavan Nikhilesh "event Tx adapter enqueue same destination requested for unconfigured event device"); 53d35e6132SPavan Nikhilesh return 0; 54d35e6132SPavan Nikhilesh } 55d35e6132SPavan Nikhilesh 56d35e6132SPavan Nikhilesh static uint16_t 57d35e6132SPavan Nikhilesh dummy_event_crypto_adapter_enqueue(__rte_unused void *port, 58d35e6132SPavan Nikhilesh __rte_unused struct rte_event ev[], 59d35e6132SPavan Nikhilesh __rte_unused uint16_t nb_events) 60d35e6132SPavan Nikhilesh { 61d35e6132SPavan Nikhilesh RTE_EDEV_LOG_ERR( 62d35e6132SPavan Nikhilesh "event crypto adapter enqueue requested for unconfigured event device"); 63d35e6132SPavan Nikhilesh return 0; 64d35e6132SPavan Nikhilesh } 65d35e6132SPavan Nikhilesh 6666a30a29SAmit Prakash Shukla static uint16_t 6766a30a29SAmit Prakash Shukla dummy_event_dma_adapter_enqueue(__rte_unused void *port, __rte_unused struct rte_event ev[], 6866a30a29SAmit Prakash Shukla __rte_unused uint16_t nb_events) 6966a30a29SAmit Prakash Shukla { 7066a30a29SAmit Prakash Shukla RTE_EDEV_LOG_ERR("event DMA adapter enqueue requested for unconfigured event device"); 7166a30a29SAmit Prakash Shukla return 0; 7266a30a29SAmit Prakash Shukla } 7366a30a29SAmit Prakash Shukla 74d007a7f3SPavan Nikhilesh static int 75d007a7f3SPavan Nikhilesh dummy_event_port_profile_switch(__rte_unused void *port, __rte_unused uint8_t profile_id) 76d007a7f3SPavan Nikhilesh { 77d007a7f3SPavan Nikhilesh RTE_EDEV_LOG_ERR("change profile requested for unconfigured event device"); 78d007a7f3SPavan Nikhilesh return -EINVAL; 79d007a7f3SPavan Nikhilesh } 80d007a7f3SPavan Nikhilesh 81c1bdd86dSPavan Nikhilesh static int 82c1bdd86dSPavan Nikhilesh dummy_event_port_preschedule_modify(__rte_unused void *port, 83c1bdd86dSPavan Nikhilesh __rte_unused enum rte_event_dev_preschedule_type preschedule) 84c1bdd86dSPavan Nikhilesh { 85c1bdd86dSPavan Nikhilesh RTE_EDEV_LOG_ERR("modify pre-schedule requested for unconfigured event device"); 86c1bdd86dSPavan Nikhilesh return -EINVAL; 87c1bdd86dSPavan Nikhilesh } 88c1bdd86dSPavan Nikhilesh 89c1bdd86dSPavan Nikhilesh static int 90c1bdd86dSPavan Nikhilesh dummy_event_port_preschedule_modify_hint( 91c1bdd86dSPavan Nikhilesh __rte_unused void *port, __rte_unused enum rte_event_dev_preschedule_type preschedule) 92c1bdd86dSPavan Nikhilesh { 93c1bdd86dSPavan Nikhilesh return -ENOTSUP; 94c1bdd86dSPavan Nikhilesh } 95c1bdd86dSPavan Nikhilesh 96*4ade669cSPavan Nikhilesh static void 97*4ade669cSPavan Nikhilesh dummy_event_port_preschedule(__rte_unused void *port, 98*4ade669cSPavan Nikhilesh __rte_unused enum rte_event_dev_preschedule_type preschedule) 99*4ade669cSPavan Nikhilesh { 100*4ade669cSPavan Nikhilesh RTE_EDEV_LOG_ERR("pre-schedule requested for unconfigured event device"); 101*4ade669cSPavan Nikhilesh } 102*4ade669cSPavan Nikhilesh 103*4ade669cSPavan Nikhilesh static void 104*4ade669cSPavan Nikhilesh dummy_event_port_preschedule_hint(__rte_unused void *port, 105*4ade669cSPavan Nikhilesh __rte_unused enum rte_event_dev_preschedule_type preschedule) 106*4ade669cSPavan Nikhilesh { 107*4ade669cSPavan Nikhilesh } 108*4ade669cSPavan Nikhilesh 109d35e6132SPavan Nikhilesh void 110d35e6132SPavan Nikhilesh event_dev_fp_ops_reset(struct rte_event_fp_ops *fp_op) 111d35e6132SPavan Nikhilesh { 112d35e6132SPavan Nikhilesh static void *dummy_data[RTE_MAX_QUEUES_PER_PORT]; 113d35e6132SPavan Nikhilesh static const struct rte_event_fp_ops dummy = { 114d35e6132SPavan Nikhilesh .enqueue_burst = dummy_event_enqueue_burst, 115d35e6132SPavan Nikhilesh .enqueue_new_burst = dummy_event_enqueue_burst, 116d35e6132SPavan Nikhilesh .enqueue_forward_burst = dummy_event_enqueue_burst, 117d35e6132SPavan Nikhilesh .dequeue_burst = dummy_event_dequeue_burst, 11854f17843SMattias Rönnblom .maintain = dummy_event_maintain, 119d35e6132SPavan Nikhilesh .txa_enqueue = dummy_event_tx_adapter_enqueue, 120*4ade669cSPavan Nikhilesh .txa_enqueue_same_dest = dummy_event_tx_adapter_enqueue_same_dest, 121d35e6132SPavan Nikhilesh .ca_enqueue = dummy_event_crypto_adapter_enqueue, 12266a30a29SAmit Prakash Shukla .dma_enqueue = dummy_event_dma_adapter_enqueue, 123d007a7f3SPavan Nikhilesh .profile_switch = dummy_event_port_profile_switch, 124c1bdd86dSPavan Nikhilesh .preschedule_modify = dummy_event_port_preschedule_modify, 125*4ade669cSPavan Nikhilesh .preschedule = dummy_event_port_preschedule, 126d35e6132SPavan Nikhilesh .data = dummy_data, 127d35e6132SPavan Nikhilesh }; 128d35e6132SPavan Nikhilesh 129d35e6132SPavan Nikhilesh *fp_op = dummy; 130d35e6132SPavan Nikhilesh } 131d35e6132SPavan Nikhilesh 132d35e6132SPavan Nikhilesh void 133d35e6132SPavan Nikhilesh event_dev_fp_ops_set(struct rte_event_fp_ops *fp_op, 134d35e6132SPavan Nikhilesh const struct rte_eventdev *dev) 135d35e6132SPavan Nikhilesh { 136d35e6132SPavan Nikhilesh fp_op->enqueue_burst = dev->enqueue_burst; 137d35e6132SPavan Nikhilesh fp_op->enqueue_new_burst = dev->enqueue_new_burst; 138d35e6132SPavan Nikhilesh fp_op->enqueue_forward_burst = dev->enqueue_forward_burst; 139d35e6132SPavan Nikhilesh fp_op->dequeue_burst = dev->dequeue_burst; 14054f17843SMattias Rönnblom fp_op->maintain = dev->maintain; 141d35e6132SPavan Nikhilesh fp_op->txa_enqueue = dev->txa_enqueue; 142d35e6132SPavan Nikhilesh fp_op->txa_enqueue_same_dest = dev->txa_enqueue_same_dest; 143d35e6132SPavan Nikhilesh fp_op->ca_enqueue = dev->ca_enqueue; 14466a30a29SAmit Prakash Shukla fp_op->dma_enqueue = dev->dma_enqueue; 145d007a7f3SPavan Nikhilesh fp_op->profile_switch = dev->profile_switch; 146c1bdd86dSPavan Nikhilesh fp_op->preschedule_modify = dev->preschedule_modify; 147*4ade669cSPavan Nikhilesh fp_op->preschedule = dev->preschedule; 148d35e6132SPavan Nikhilesh fp_op->data = dev->data->ports; 149c1bdd86dSPavan Nikhilesh 150c1bdd86dSPavan Nikhilesh if (fp_op->preschedule_modify == NULL) 151c1bdd86dSPavan Nikhilesh fp_op->preschedule_modify = dummy_event_port_preschedule_modify_hint; 152*4ade669cSPavan Nikhilesh 153*4ade669cSPavan Nikhilesh if (fp_op->preschedule == NULL) 154*4ade669cSPavan Nikhilesh fp_op->preschedule = dummy_event_port_preschedule_hint; 155d35e6132SPavan Nikhilesh } 156