common/cnxk: add new PCI IDs to supported devices
[dpdk.git] / drivers / event / cnxk / cn9k_worker_dual_deq.c
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(C) 2021 Marvell.
3  */
4
5 #include "cn9k_worker.h"
6 #include "cnxk_eventdev.h"
7 #include "cnxk_worker.h"
8
9 #define R(name, f6, f5, f4, f3, f2, f1, f0, flags)                             \
10         uint16_t __rte_hot cn9k_sso_hws_dual_deq_##name(                       \
11                 void *port, struct rte_event *ev, uint64_t timeout_ticks)      \
12         {                                                                      \
13                 struct cn9k_sso_hws_dual *dws = port;                          \
14                 uint16_t gw;                                                   \
15                                                                                \
16                 RTE_SET_USED(timeout_ticks);                                   \
17                 if (dws->swtag_req) {                                          \
18                         dws->swtag_req = 0;                                    \
19                         cnxk_sso_hws_swtag_wait(                               \
20                                 dws->ws_state[!dws->vws].tag_op);              \
21                         return 1;                                              \
22                 }                                                              \
23                                                                                \
24                 gw = cn9k_sso_hws_dual_get_work(                               \
25                         &dws->ws_state[dws->vws], &dws->ws_state[!dws->vws],   \
26                         ev, flags, dws->lookup_mem, dws->tstamp);              \
27                 dws->vws = !dws->vws;                                          \
28                 return gw;                                                     \
29         }                                                                      \
30                                                                                \
31         uint16_t __rte_hot cn9k_sso_hws_dual_deq_seg_##name(                   \
32                 void *port, struct rte_event *ev, uint64_t timeout_ticks)      \
33         {                                                                      \
34                 struct cn9k_sso_hws_dual *dws = port;                          \
35                 uint16_t gw;                                                   \
36                                                                                \
37                 RTE_SET_USED(timeout_ticks);                                   \
38                 if (dws->swtag_req) {                                          \
39                         dws->swtag_req = 0;                                    \
40                         cnxk_sso_hws_swtag_wait(                               \
41                                 dws->ws_state[!dws->vws].tag_op);              \
42                         return 1;                                              \
43                 }                                                              \
44                                                                                \
45                 gw = cn9k_sso_hws_dual_get_work(                               \
46                         &dws->ws_state[dws->vws], &dws->ws_state[!dws->vws],   \
47                         ev, flags, dws->lookup_mem, dws->tstamp);              \
48                 dws->vws = !dws->vws;                                          \
49                 return gw;                                                     \
50         }
51
52 NIX_RX_FASTPATH_MODES
53 #undef R