crypto/qat: do not use cryptodev driver
authorPablo de Lara <pablo.de.lara.guarch@intel.com>
Wed, 21 Jun 2017 06:28:26 +0000 (07:28 +0100)
committerPablo de Lara <pablo.de.lara.guarch@intel.com>
Wed, 28 Jun 2017 17:59:22 +0000 (19:59 +0200)
Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Declan Doherty <declan.doherty@intel.com>
drivers/crypto/qat/qat_crypto.c
drivers/crypto/qat/qat_qp.c
drivers/crypto/qat/rte_qat_cryptodev.c

index 0a14c2d..8b7b2fa 100644 (file)
@@ -60,6 +60,7 @@
 #include <rte_spinlock.h>
 #include <rte_hexdump.h>
 #include <rte_crypto_sym.h>
+#include <rte_cryptodev_pci.h>
 #include <openssl/evp.h>
 
 #include "qat_logs.h"
index a358ccd..3921c2e 100644 (file)
@@ -36,6 +36,7 @@
 #include <rte_malloc.h>
 #include <rte_memzone.h>
 #include <rte_cryptodev_pmd.h>
+#include <rte_pci.h>
 #include <rte_atomic.h>
 #include <rte_prefetch.h>
 
@@ -205,7 +206,7 @@ int qat_crypto_sym_qp_setup(struct rte_cryptodev *dev, uint16_t queue_pair_id,
        adf_configure_queues(qp);
        adf_queue_arb_enable(&qp->tx_q, qp->mmap_bar_addr);
        snprintf(op_cookie_pool_name, RTE_RING_NAMESIZE, "%s_qp_op_%d_%hu",
-               dev->driver->pci_drv.driver.name, dev->data->dev_id,
+               pci_dev->driver->driver.name, dev->data->dev_id,
                queue_pair_id);
 
        qp->op_cookie_pool = rte_mempool_lookup(op_cookie_pool_name);
@@ -355,11 +356,13 @@ qat_queue_create(struct rte_cryptodev *dev, struct qat_queue *queue,
                return -EINVAL;
        }
 
+       pci_dev = RTE_DEV_TO_PCI(dev->device);
+
        /*
         * Allocate a memzone for the queue - create a unique name.
         */
        snprintf(queue->memz_name, sizeof(queue->memz_name), "%s_%s_%d_%d_%d",
-               dev->driver->pci_drv.driver.name, "qp_mem", dev->data->dev_id,
+               pci_dev->driver->driver.name, "qp_mem", dev->data->dev_id,
                queue->hw_bundle_number, queue->hw_queue_number);
        qp_mz = queue_dma_zone_reserve(queue->memz_name, queue_size_bytes,
                        socket_id);
@@ -408,7 +411,6 @@ qat_queue_create(struct rte_cryptodev *dev, struct qat_queue *queue,
 
        queue_base = BUILD_RING_BASE_ADDR(queue->base_phys_addr,
                                        queue->queue_size);
-       pci_dev = RTE_DEV_TO_PCI(dev->device);
 
        io_addr = pci_dev->mem_resource[0].addr;
 
index 1bdd30d..78d50fb 100644 (file)
@@ -35,6 +35,7 @@
 #include <rte_dev.h>
 #include <rte_malloc.h>
 #include <rte_cryptodev_pmd.h>
+#include <rte_cryptodev_pci.h>
 
 #include "qat_crypto.h"
 #include "qat_logs.h"
@@ -95,8 +96,7 @@ static const struct rte_pci_id pci_id_qat_map[] = {
 };
 
 static int
-crypto_qat_dev_init(__attribute__((unused)) struct rte_cryptodev_driver *crypto_drv,
-                       struct rte_cryptodev *cryptodev)
+crypto_qat_dev_init(struct rte_cryptodev *cryptodev)
 {
        struct qat_pmd_private *internals;
 
@@ -147,17 +147,25 @@ crypto_qat_dev_init(__attribute__((unused)) struct rte_cryptodev_driver *crypto_
        return 0;
 }
 
-static struct rte_cryptodev_driver rte_qat_pmd = {
-       .pci_drv = {
-               .id_table = pci_id_qat_map,
-               .drv_flags = RTE_PCI_DRV_NEED_MAPPING,
-               .probe = rte_cryptodev_pci_probe,
-               .remove = rte_cryptodev_pci_remove,
-       },
-       .cryptodev_init = crypto_qat_dev_init,
-       .dev_private_size = sizeof(struct qat_pmd_private),
+static int crypto_qat_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,
+       struct rte_pci_device *pci_dev)
+{
+       return rte_cryptodev_pci_generic_probe(pci_dev,
+               sizeof(struct qat_pmd_private), crypto_qat_dev_init);
+}
+
+static int crypto_qat_pci_remove(struct rte_pci_device *pci_dev)
+{
+       return rte_cryptodev_pci_generic_remove(pci_dev, NULL);
+}
+
+static struct rte_pci_driver rte_qat_pmd = {
+       .id_table = pci_id_qat_map,
+       .drv_flags = RTE_PCI_DRV_NEED_MAPPING,
+       .probe = crypto_qat_pci_probe,
+       .remove = crypto_qat_pci_remove
 };
 
-RTE_PMD_REGISTER_PCI(CRYPTODEV_NAME_QAT_SYM_PMD, rte_qat_pmd.pci_drv);
+RTE_PMD_REGISTER_PCI(CRYPTODEV_NAME_QAT_SYM_PMD, rte_qat_pmd);
 RTE_PMD_REGISTER_PCI_TABLE(CRYPTODEV_NAME_QAT_SYM_PMD, pci_id_qat_map);