Add crypto dequeue datapath configuration for zsda device.<br /> <br />Signed-off-by: Hanxiao Li <li.hanxiao@zte.com.cn> <br />---<br /> drivers/crypto/zsda/zsda_sym.c     | 16 ++++++++++++++++<br /> drivers/crypto/zsda/zsda_sym.h     |  2 ++<br /> drivers/crypto/zsda/zsda_sym_pmd.c | 12 ++++++++++--<br /> 3 files changed, 28 insertions(+), 2 deletions(-)<br /> <br />diff --git a/drivers/crypto/zsda/zsda_sym.c b/drivers/crypto/zsda/zsda_sym.c<br />index 0256d7e167..1224f2938a 100644<br />--- a/drivers/crypto/zsda/zsda_sym.c<br />+++ b/drivers/crypto/zsda/zsda_sym.c<br />@@ -254,3 +254,19 @@ zsda_hash_wqe_build(void *op_in, const struct zsda_queue *queue,<br />  <br />     return ret;<br /> }<br />+<br />+int<br />+zsda_crypto_callback(void *cookie_in, struct zsda_cqe *cqe)<br />+{<br />+    struct zsda_op_cookie *tmp_cookie = cookie_in;<br />+    struct rte_crypto_op *op = tmp_cookie->op;<br />+<br />+    if (!(CQE_ERR0(cqe->err0) || CQE_ERR1(cqe->err1)))<br />+        op->status = RTE_CRYPTO_OP_STATUS_SUCCESS;<br />+    else {<br />+        op->status = RTE_CRYPTO_OP_STATUS_ERROR;<br />+        return ZSDA_FAILED;<br />+    }<br />+<br />+    return ZSDA_SUCCESS;<br />+}<br />diff --git a/drivers/crypto/zsda/zsda_sym.h b/drivers/crypto/zsda/zsda_sym.h<br />index 2868480b17..8ceb27e076 100644<br />--- a/drivers/crypto/zsda/zsda_sym.h<br />+++ b/drivers/crypto/zsda/zsda_sym.h<br />@@ -42,4 +42,6 @@ int zsda_cipher_wqe_build(void *op_in, const struct zsda_queue *queue,<br /> int zsda_hash_wqe_build(void *op_in, const struct zsda_queue *queue,<br />                void **op_cookies, const uint16_t new_tail);<br />  <br />+int zsda_crypto_callback(void *cookie_in, struct zsda_cqe *cqe);<br />+<br /> #endif /* _ZSDA_SYM_H_ */<br />diff --git a/drivers/crypto/zsda/zsda_sym_pmd.c b/drivers/crypto/zsda/zsda_sym_pmd.c<br />index 8e120b8044..4b9905b1be 100644<br />--- a/drivers/crypto/zsda/zsda_sym_pmd.c<br />+++ b/drivers/crypto/zsda/zsda_sym_pmd.c<br />@@ -144,7 +144,7 @@ zsda_qp_setup(struct rte_cryptodev *dev, uint16_t qp_id,<br />     task_q_info.nb_des = nb_des;<br />     task_q_info.socket_id = socket_id;<br />     task_q_info.qp_id = qp_id;<br />-    task_q_info.rx_cb = NULL;<br />+    task_q_info.rx_cb = zsda_crypto_callback;<br />  <br />     task_q_info.type = ZSDA_SERVICE_SYMMETRIC_ENCRYPT;<br />     task_q_info.service_str = "sym_encrypt";<br />@@ -244,6 +244,14 @@ zsda_sym_pmd_enqueue_op_burst(void *qp, struct rte_crypto_op **ops,<br />                      nb_ops);<br /> }<br />  <br />+static uint16_t<br />+zsda_sym_pmd_dequeue_op_burst(void *qp, struct rte_crypto_op **ops,<br />+                  uint16_t nb_ops)<br />+{<br />+    return zsda_dequeue_burst((struct zsda_qp *)qp, (void **)ops,<br />+                     nb_ops);<br />+}<br />+<br /> int<br /> zsda_sym_dev_create(struct zsda_pci_device *zsda_pci_dev)<br /> {<br />@@ -284,7 +292,7 @@ zsda_sym_dev_create(struct zsda_pci_device *zsda_pci_dev)<br />     cryptodev->dev_ops = &crypto_zsda_ops;<br />  <br />     cryptodev->enqueue_burst = zsda_sym_pmd_enqueue_op_burst;<br />-    cryptodev->dequeue_burst = NULL;<br />+    cryptodev->dequeue_burst = zsda_sym_pmd_dequeue_op_burst;<br />     cryptodev->feature_flags = 0;<br />  <br />     sym_dev_priv = cryptodev->data->dev_private;<br />--  <br />2.27.0<br />