1 /* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright (C) 2020 Marvell International Ltd.
5 #ifndef _OTX2_CRYPTODEV_OPS_HELPER_H_
6 #define _OTX2_CRYPTODEV_OPS_HELPER_H_
8 #include "cpt_pmd_logs.h"
11 sym_session_clear(int driver_id, struct rte_cryptodev_sym_session *sess)
13 void *priv = get_sym_session_private_data(sess, driver_id);
14 struct cpt_sess_misc *misc;
15 struct rte_mempool *pool;
22 ctx = SESS_PRIV(misc);
24 if (ctx->auth_key != NULL)
25 rte_free(ctx->auth_key);
27 memset(priv, 0, cpt_get_session_size());
29 pool = rte_mempool_from_obj(priv);
31 set_sym_session_private_data(sess, driver_id, NULL);
33 rte_mempool_put(pool, priv);
36 static __rte_always_inline uint8_t
37 otx2_cpt_compcode_get(struct cpt_request_info *req)
39 volatile struct cpt_res_s_9s *res;
42 res = (volatile struct cpt_res_s_9s *)req->completion_addr;
44 if (unlikely(res->compcode == CPT_9X_COMP_E_NOTDONE)) {
45 if (rte_get_timer_cycles() < req->time_out)
46 return ERR_REQ_PENDING;
48 CPT_LOG_DP_ERR("Request timed out");
49 return ERR_REQ_TIMEOUT;
52 if (likely(res->compcode == CPT_9X_COMP_E_GOOD)) {
54 if (unlikely(res->uc_compcode)) {
55 ret = res->uc_compcode;
56 CPT_LOG_DP_DEBUG("Request failed with microcode error");
57 CPT_LOG_DP_DEBUG("MC completion code 0x%x",
61 CPT_LOG_DP_DEBUG("HW completion code 0x%x", res->compcode);
64 switch (res->compcode) {
65 case CPT_9X_COMP_E_INSTERR:
66 CPT_LOG_DP_ERR("Request failed with instruction error");
68 case CPT_9X_COMP_E_FAULT:
69 CPT_LOG_DP_ERR("Request failed with DMA fault");
71 case CPT_9X_COMP_E_HWERR:
72 CPT_LOG_DP_ERR("Request failed with hardware error");
75 CPT_LOG_DP_ERR("Request failed with unknown completion code");
82 #endif /* _OTX2_CRYPTODEV_OPS_HELPER_H_ */