X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fevent%2Fcnxk%2Fcn9k_worker.c;h=a981bc986f96c21cf28e94093ba11b6b68aead22;hb=33e71acf3d446ced520f07e4d75769323e0ec22c;hp=538bc4b0b3e03bdee9fa8bf606c7f31ab26f2af5;hpb=aa4311c654148c54f1a2471a4dd01af94b229e02;p=dpdk.git diff --git a/drivers/event/cnxk/cn9k_worker.c b/drivers/event/cnxk/cn9k_worker.c index 538bc4b0b3..a981bc986f 100644 --- a/drivers/event/cnxk/cn9k_worker.c +++ b/drivers/event/cnxk/cn9k_worker.c @@ -5,6 +5,7 @@ #include "roc_api.h" #include "cn9k_worker.h" +#include "cn9k_cryptodev_ops.h" uint16_t __rte_hot cn9k_sso_hws_enq(void *port, const struct rte_event *ev) @@ -18,7 +19,8 @@ cn9k_sso_hws_enq(void *port, const struct rte_event *ev) cn9k_sso_hws_forward_event(ws, ev); break; case RTE_EVENT_OP_RELEASE: - cnxk_sso_hws_swtag_flush(ws->tag_op, ws->swtag_flush_op); + cnxk_sso_hws_swtag_flush(ws->base + SSOW_LF_GWS_TAG, + ws->base + SSOW_LF_GWS_OP_SWTAG_FLUSH); break; default: return 0; @@ -66,17 +68,18 @@ uint16_t __rte_hot cn9k_sso_hws_dual_enq(void *port, const struct rte_event *ev) { struct cn9k_sso_hws_dual *dws = port; - struct cn9k_sso_hws_state *vws; + uint64_t base; - vws = &dws->ws_state[!dws->vws]; + base = dws->base[!dws->vws]; switch (ev->op) { case RTE_EVENT_OP_NEW: return cn9k_sso_hws_dual_new_event(dws, ev); case RTE_EVENT_OP_FORWARD: - cn9k_sso_hws_dual_forward_event(dws, vws, ev); + cn9k_sso_hws_dual_forward_event(dws, base, ev); break; case RTE_EVENT_OP_RELEASE: - cnxk_sso_hws_swtag_flush(vws->tag_op, vws->swtag_flush_op); + cnxk_sso_hws_swtag_flush(base + SSOW_LF_GWS_TAG, + base + SSOW_LF_GWS_OP_SWTAG_FLUSH); break; default: return 0; @@ -113,7 +116,29 @@ cn9k_sso_hws_dual_enq_fwd_burst(void *port, const struct rte_event ev[], struct cn9k_sso_hws_dual *dws = port; RTE_SET_USED(nb_events); - cn9k_sso_hws_dual_forward_event(dws, &dws->ws_state[!dws->vws], ev); + cn9k_sso_hws_dual_forward_event(dws, dws->base[!dws->vws], ev); return 1; } + +uint16_t __rte_hot +cn9k_sso_hws_ca_enq(void *port, struct rte_event ev[], uint16_t nb_events) +{ + struct cn9k_sso_hws *ws = port; + + RTE_SET_USED(nb_events); + + return cn9k_cpt_crypto_adapter_enqueue(ws->base + SSOW_LF_GWS_TAG, + ev->event_ptr); +} + +uint16_t __rte_hot +cn9k_sso_hws_dual_ca_enq(void *port, struct rte_event ev[], uint16_t nb_events) +{ + struct cn9k_sso_hws_dual *dws = port; + + RTE_SET_USED(nb_events); + + return cn9k_cpt_crypto_adapter_enqueue( + dws->base[!dws->vws] + SSOW_LF_GWS_TAG, ev->event_ptr); +}