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_crypto.c     | 16 ++++++++++++++++<br /> drivers/crypto/zsda/zsda_crypto.h     |  2 ++<br /> drivers/crypto/zsda/zsda_crypto_pmd.c | 12 ++++++++++--<br /> 3 files changed, 28 insertions(+), 2 deletions(-)<br /> <br />diff --git a/drivers/crypto/zsda/zsda_crypto.c b/drivers/crypto/zsda/zsda_crypto.c<br />index 66ae2a804e..58fdde8ec8 100644<br />--- a/drivers/crypto/zsda/zsda_crypto.c<br />+++ b/drivers/crypto/zsda/zsda_crypto.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_crypto.h b/drivers/crypto/zsda/zsda_crypto.h<br />index 09cc5ce755..3a8019d48f 100644<br />--- a/drivers/crypto/zsda/zsda_crypto.h<br />+++ b/drivers/crypto/zsda/zsda_crypto.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_CRYPTO_H_ */<br />diff --git a/drivers/crypto/zsda/zsda_crypto_pmd.c b/drivers/crypto/zsda/zsda_crypto_pmd.c<br />index af5192d1cd..e2b22a881b 100644<br />--- a/drivers/crypto/zsda/zsda_crypto_pmd.c<br />+++ b/drivers/crypto/zsda/zsda_crypto_pmd.c<br />@@ -143,7 +143,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_CRYPRO_ENCRY;<br />     task_q_info.service_str = "encry";<br />@@ -243,6 +243,14 @@ zsda_crypto_enqueue_op_burst(void *qp, struct rte_crypto_op **ops,<br />                      nb_ops);<br /> }<br />  <br />+static uint16_t<br />+zsda_crypto_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_crypto_dev_create(struct zsda_pci_device *zsda_pci_dev)<br /> {<br />@@ -283,7 +291,7 @@ zsda_crypto_dev_create(struct zsda_pci_device *zsda_pci_dev)<br />     cryptodev->dev_ops = &crypto_zsda_ops;<br />  <br />     cryptodev->enqueue_burst = zsda_crypto_enqueue_op_burst;<br />-    cryptodev->dequeue_burst = NULL;<br />+    cryptodev->dequeue_burst = zsda_crypto_dequeue_op_burst;<br />     cryptodev->feature_flags = 0;<br />  <br />     crypto_dev_priv = cryptodev->data->dev_private;<br />--  <br />2.27.0<br />