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(__rte_unused void *port, 10d35e6132SPavan Nikhilesh __rte_unused const struct rte_event *ev) 11d35e6132SPavan Nikhilesh { 12d35e6132SPavan Nikhilesh RTE_EDEV_LOG_ERR( 13d35e6132SPavan Nikhilesh "event enqueue requested for unconfigured event device"); 14d35e6132SPavan Nikhilesh return 0; 15d35e6132SPavan Nikhilesh } 16d35e6132SPavan Nikhilesh 17d35e6132SPavan Nikhilesh static uint16_t 18d35e6132SPavan Nikhilesh dummy_event_enqueue_burst(__rte_unused void *port, 19d35e6132SPavan Nikhilesh __rte_unused const struct rte_event ev[], 20d35e6132SPavan Nikhilesh __rte_unused uint16_t nb_events) 21d35e6132SPavan Nikhilesh { 22d35e6132SPavan Nikhilesh RTE_EDEV_LOG_ERR( 23d35e6132SPavan Nikhilesh "event enqueue burst requested for unconfigured event device"); 24d35e6132SPavan Nikhilesh return 0; 25d35e6132SPavan Nikhilesh } 26d35e6132SPavan Nikhilesh 27d35e6132SPavan Nikhilesh static uint16_t 28d35e6132SPavan Nikhilesh dummy_event_dequeue(__rte_unused void *port, __rte_unused struct rte_event *ev, 29d35e6132SPavan Nikhilesh __rte_unused uint64_t timeout_ticks) 30d35e6132SPavan Nikhilesh { 31d35e6132SPavan Nikhilesh RTE_EDEV_LOG_ERR( 32d35e6132SPavan Nikhilesh "event dequeue requested for unconfigured event device"); 33d35e6132SPavan Nikhilesh return 0; 34d35e6132SPavan Nikhilesh } 35d35e6132SPavan Nikhilesh 36d35e6132SPavan Nikhilesh static uint16_t 37d35e6132SPavan Nikhilesh dummy_event_dequeue_burst(__rte_unused void *port, 38d35e6132SPavan Nikhilesh __rte_unused struct rte_event ev[], 39d35e6132SPavan Nikhilesh __rte_unused uint16_t nb_events, 40d35e6132SPavan Nikhilesh __rte_unused uint64_t timeout_ticks) 41d35e6132SPavan Nikhilesh { 42d35e6132SPavan Nikhilesh RTE_EDEV_LOG_ERR( 43d35e6132SPavan Nikhilesh "event dequeue burst requested for unconfigured event device"); 44d35e6132SPavan Nikhilesh return 0; 45d35e6132SPavan Nikhilesh } 46d35e6132SPavan Nikhilesh 4754f17843SMattias Rönnblom static void 4854f17843SMattias Rönnblom dummy_event_maintain(__rte_unused void *port, __rte_unused int op) 4954f17843SMattias Rönnblom { 5054f17843SMattias Rönnblom RTE_EDEV_LOG_ERR( 5154f17843SMattias Rönnblom "maintenance requested for unconfigured event device"); 5254f17843SMattias Rönnblom } 5354f17843SMattias Rönnblom 54d35e6132SPavan Nikhilesh static uint16_t 55d35e6132SPavan Nikhilesh dummy_event_tx_adapter_enqueue(__rte_unused void *port, 56d35e6132SPavan Nikhilesh __rte_unused struct rte_event ev[], 57d35e6132SPavan Nikhilesh __rte_unused uint16_t nb_events) 58d35e6132SPavan Nikhilesh { 59d35e6132SPavan Nikhilesh RTE_EDEV_LOG_ERR( 60d35e6132SPavan Nikhilesh "event Tx adapter enqueue requested for unconfigured event device"); 61d35e6132SPavan Nikhilesh return 0; 62d35e6132SPavan Nikhilesh } 63d35e6132SPavan Nikhilesh 64d35e6132SPavan Nikhilesh static uint16_t 65d35e6132SPavan Nikhilesh dummy_event_tx_adapter_enqueue_same_dest(__rte_unused void *port, 66d35e6132SPavan Nikhilesh __rte_unused struct rte_event ev[], 67d35e6132SPavan Nikhilesh __rte_unused uint16_t nb_events) 68d35e6132SPavan Nikhilesh { 69d35e6132SPavan Nikhilesh RTE_EDEV_LOG_ERR( 70d35e6132SPavan Nikhilesh "event Tx adapter enqueue same destination requested for unconfigured event device"); 71d35e6132SPavan Nikhilesh return 0; 72d35e6132SPavan Nikhilesh } 73d35e6132SPavan Nikhilesh 74d35e6132SPavan Nikhilesh static uint16_t 75d35e6132SPavan Nikhilesh dummy_event_crypto_adapter_enqueue(__rte_unused void *port, 76d35e6132SPavan Nikhilesh __rte_unused struct rte_event ev[], 77d35e6132SPavan Nikhilesh __rte_unused uint16_t nb_events) 78d35e6132SPavan Nikhilesh { 79d35e6132SPavan Nikhilesh RTE_EDEV_LOG_ERR( 80d35e6132SPavan Nikhilesh "event crypto adapter enqueue requested for unconfigured event device"); 81d35e6132SPavan Nikhilesh return 0; 82d35e6132SPavan Nikhilesh } 83d35e6132SPavan Nikhilesh 8466a30a29SAmit Prakash Shukla static uint16_t 8566a30a29SAmit Prakash Shukla dummy_event_dma_adapter_enqueue(__rte_unused void *port, __rte_unused struct rte_event ev[], 8666a30a29SAmit Prakash Shukla __rte_unused uint16_t nb_events) 8766a30a29SAmit Prakash Shukla { 8866a30a29SAmit Prakash Shukla RTE_EDEV_LOG_ERR("event DMA adapter enqueue requested for unconfigured event device"); 8966a30a29SAmit Prakash Shukla return 0; 9066a30a29SAmit Prakash Shukla } 9166a30a29SAmit Prakash Shukla 92d007a7f3SPavan Nikhilesh static int 93d007a7f3SPavan Nikhilesh dummy_event_port_profile_switch(__rte_unused void *port, __rte_unused uint8_t profile_id) 94d007a7f3SPavan Nikhilesh { 95d007a7f3SPavan Nikhilesh RTE_EDEV_LOG_ERR("change profile requested for unconfigured event device"); 96d007a7f3SPavan Nikhilesh return -EINVAL; 97d007a7f3SPavan Nikhilesh } 98d007a7f3SPavan Nikhilesh 99*c1bdd86dSPavan Nikhilesh static int 100*c1bdd86dSPavan Nikhilesh dummy_event_port_preschedule_modify(__rte_unused void *port, 101*c1bdd86dSPavan Nikhilesh __rte_unused enum rte_event_dev_preschedule_type preschedule) 102*c1bdd86dSPavan Nikhilesh { 103*c1bdd86dSPavan Nikhilesh RTE_EDEV_LOG_ERR("modify pre-schedule requested for unconfigured event device"); 104*c1bdd86dSPavan Nikhilesh return -EINVAL; 105*c1bdd86dSPavan Nikhilesh } 106*c1bdd86dSPavan Nikhilesh 107*c1bdd86dSPavan Nikhilesh static int 108*c1bdd86dSPavan Nikhilesh dummy_event_port_preschedule_modify_hint( 109*c1bdd86dSPavan Nikhilesh __rte_unused void *port, __rte_unused enum rte_event_dev_preschedule_type preschedule) 110*c1bdd86dSPavan Nikhilesh { 111*c1bdd86dSPavan Nikhilesh return -ENOTSUP; 112*c1bdd86dSPavan Nikhilesh } 113*c1bdd86dSPavan Nikhilesh 114d35e6132SPavan Nikhilesh void 115d35e6132SPavan Nikhilesh event_dev_fp_ops_reset(struct rte_event_fp_ops *fp_op) 116d35e6132SPavan Nikhilesh { 117d35e6132SPavan Nikhilesh static void *dummy_data[RTE_MAX_QUEUES_PER_PORT]; 118d35e6132SPavan Nikhilesh static const struct rte_event_fp_ops dummy = { 119d35e6132SPavan Nikhilesh .enqueue = dummy_event_enqueue, 120d35e6132SPavan Nikhilesh .enqueue_burst = dummy_event_enqueue_burst, 121d35e6132SPavan Nikhilesh .enqueue_new_burst = dummy_event_enqueue_burst, 122d35e6132SPavan Nikhilesh .enqueue_forward_burst = dummy_event_enqueue_burst, 123d35e6132SPavan Nikhilesh .dequeue = dummy_event_dequeue, 124d35e6132SPavan Nikhilesh .dequeue_burst = dummy_event_dequeue_burst, 12554f17843SMattias Rönnblom .maintain = dummy_event_maintain, 126d35e6132SPavan Nikhilesh .txa_enqueue = dummy_event_tx_adapter_enqueue, 127d35e6132SPavan Nikhilesh .txa_enqueue_same_dest = 128d35e6132SPavan Nikhilesh dummy_event_tx_adapter_enqueue_same_dest, 129d35e6132SPavan Nikhilesh .ca_enqueue = dummy_event_crypto_adapter_enqueue, 13066a30a29SAmit Prakash Shukla .dma_enqueue = dummy_event_dma_adapter_enqueue, 131d007a7f3SPavan Nikhilesh .profile_switch = dummy_event_port_profile_switch, 132*c1bdd86dSPavan Nikhilesh .preschedule_modify = dummy_event_port_preschedule_modify, 133d35e6132SPavan Nikhilesh .data = dummy_data, 134d35e6132SPavan Nikhilesh }; 135d35e6132SPavan Nikhilesh 136d35e6132SPavan Nikhilesh *fp_op = dummy; 137d35e6132SPavan Nikhilesh } 138d35e6132SPavan Nikhilesh 139d35e6132SPavan Nikhilesh void 140d35e6132SPavan Nikhilesh event_dev_fp_ops_set(struct rte_event_fp_ops *fp_op, 141d35e6132SPavan Nikhilesh const struct rte_eventdev *dev) 142d35e6132SPavan Nikhilesh { 143d35e6132SPavan Nikhilesh fp_op->enqueue = dev->enqueue; 144d35e6132SPavan Nikhilesh fp_op->enqueue_burst = dev->enqueue_burst; 145d35e6132SPavan Nikhilesh fp_op->enqueue_new_burst = dev->enqueue_new_burst; 146d35e6132SPavan Nikhilesh fp_op->enqueue_forward_burst = dev->enqueue_forward_burst; 147d35e6132SPavan Nikhilesh fp_op->dequeue = dev->dequeue; 148d35e6132SPavan Nikhilesh fp_op->dequeue_burst = dev->dequeue_burst; 14954f17843SMattias Rönnblom fp_op->maintain = dev->maintain; 150d35e6132SPavan Nikhilesh fp_op->txa_enqueue = dev->txa_enqueue; 151d35e6132SPavan Nikhilesh fp_op->txa_enqueue_same_dest = dev->txa_enqueue_same_dest; 152d35e6132SPavan Nikhilesh fp_op->ca_enqueue = dev->ca_enqueue; 15366a30a29SAmit Prakash Shukla fp_op->dma_enqueue = dev->dma_enqueue; 154d007a7f3SPavan Nikhilesh fp_op->profile_switch = dev->profile_switch; 155*c1bdd86dSPavan Nikhilesh fp_op->preschedule_modify = dev->preschedule_modify; 156d35e6132SPavan Nikhilesh fp_op->data = dev->data->ports; 157*c1bdd86dSPavan Nikhilesh 158*c1bdd86dSPavan Nikhilesh if (fp_op->preschedule_modify == NULL) 159*c1bdd86dSPavan Nikhilesh fp_op->preschedule_modify = dummy_event_port_preschedule_modify_hint; 160d35e6132SPavan Nikhilesh } 161