crypto/octeontx2: enable CPT to share QP with ethdev
[dpdk.git] / drivers / crypto / qat / qat_sym_pmd.c
index c9fc1a8..666ede7 100644 (file)
@@ -127,7 +127,7 @@ static int qat_sym_qp_release(struct rte_cryptodev *dev, uint16_t queue_pair_id)
 
 static int qat_sym_qp_setup(struct rte_cryptodev *dev, uint16_t qp_id,
        const struct rte_cryptodev_qp_conf *qp_conf,
-       int socket_id, struct rte_mempool *session_pool __rte_unused)
+       int socket_id)
 {
        struct qat_qp *qp;
        int ret = 0;
@@ -169,6 +169,7 @@ static int qat_sym_qp_setup(struct rte_cryptodev *dev, uint16_t qp_id,
                                                        = *qp_addr;
 
        qp = (struct qat_qp *)*qp_addr;
+       qp->min_enq_burst_threshold = qat_private->min_enq_burst_threshold;
 
        for (i = 0; i < qp->nb_descriptors; i++) {
 
@@ -205,9 +206,9 @@ static struct rte_cryptodev_ops crypto_qat_ops = {
                .queue_pair_count       = NULL,
 
                /* Crypto related operations */
-               .session_get_size       = qat_sym_session_get_private_size,
-               .session_configure      = qat_sym_session_configure,
-               .session_clear          = qat_sym_session_clear
+               .sym_session_get_size   = qat_sym_session_get_private_size,
+               .sym_session_configure  = qat_sym_session_configure,
+               .sym_session_clear      = qat_sym_session_clear
 };
 
 static uint16_t
@@ -237,8 +238,10 @@ static const struct rte_driver cryptodev_qat_sym_driver = {
 };
 
 int
-qat_sym_dev_create(struct qat_pci_device *qat_pci_dev)
+qat_sym_dev_create(struct qat_pci_device *qat_pci_dev,
+               struct qat_dev_cmd_param *qat_dev_cmd_param __rte_unused)
 {
+       int i = 0;
        struct rte_cryptodev_pmd_init_params init_params = {
                        .name = "",
                        .socket_id = qat_pci_dev->pci_dev->device.numa_node,
@@ -278,7 +281,8 @@ qat_sym_dev_create(struct qat_pci_device *qat_pci_dev)
                        RTE_CRYPTODEV_FF_OOP_SGL_IN_SGL_OUT |
                        RTE_CRYPTODEV_FF_OOP_SGL_IN_LB_OUT |
                        RTE_CRYPTODEV_FF_OOP_LB_IN_SGL_OUT |
-                       RTE_CRYPTODEV_FF_OOP_LB_IN_LB_OUT;
+                       RTE_CRYPTODEV_FF_OOP_LB_IN_LB_OUT |
+                       RTE_CRYPTODEV_FF_DIGEST_ENCRYPTED;
 
        internals = cryptodev->data->dev_private;
        internals->qat_dev = qat_pci_dev;
@@ -290,6 +294,7 @@ qat_sym_dev_create(struct qat_pci_device *qat_pci_dev)
                internals->qat_dev_capabilities = qat_gen1_sym_capabilities;
                break;
        case QAT_GEN2:
+       case QAT_GEN3:
                internals->qat_dev_capabilities = qat_gen2_sym_capabilities;
                break;
        default:
@@ -300,6 +305,15 @@ qat_sym_dev_create(struct qat_pci_device *qat_pci_dev)
                break;
        }
 
+       while (1) {
+               if (qat_dev_cmd_param[i].name == NULL)
+                       break;
+               if (!strcmp(qat_dev_cmd_param[i].name, SYM_ENQ_THRESHOLD_NAME))
+                       internals->min_enq_burst_threshold =
+                                       qat_dev_cmd_param[i].val;
+               i++;
+       }
+
        QAT_LOG(DEBUG, "Created QAT SYM device %s as cryptodev instance %d",
                        cryptodev->data->name, internals->sym_dev_id);
        return 0;
@@ -324,7 +338,6 @@ qat_sym_dev_destroy(struct qat_pci_device *qat_pci_dev)
        return 0;
 }
 
-
 static struct cryptodev_driver qat_crypto_drv;
 RTE_PMD_REGISTER_CRYPTO_DRIVER(qat_crypto_drv,
                cryptodev_qat_sym_driver,