|
Torsten Duwe |
536fc2 |
From 925b3069cf6e37a86fc752a35578ec875772bc7c Mon Sep 17 00:00:00 2001
|
|
Torsten Duwe |
536fc2 |
From: Marco Chiappero <marco.chiappero@intel.com>
|
|
Torsten Duwe |
536fc2 |
Date: Thu, 16 Dec 2021 09:13:30 +0000
|
|
Torsten Duwe |
536fc2 |
Subject: [PATCH] crypto: qat - config VFs based on ring-to-svc mapping
|
|
Torsten Duwe |
536fc2 |
Git-commit: 925b3069cf6e37a86fc752a35578ec875772bc7c
|
|
Torsten Duwe |
536fc2 |
Patch-mainline: v5.17-rc1
|
|
Torsten Duwe |
536fc2 |
References: jsc#PED-1073
|
|
Torsten Duwe |
536fc2 |
|
|
Torsten Duwe |
536fc2 |
Change the configuration logic for the VF driver to leverage the
|
|
Torsten Duwe |
536fc2 |
ring-to-service mappings now received via PFVF.
|
|
Torsten Duwe |
536fc2 |
|
|
Torsten Duwe |
536fc2 |
While the driver config logic is not yet capable of supporting
|
|
Torsten Duwe |
536fc2 |
configurations other than the default mapping, make sure that both VF
|
|
Torsten Duwe |
536fc2 |
and PF share the same default configuration in order to work properly.
|
|
Torsten Duwe |
536fc2 |
|
|
Torsten Duwe |
536fc2 |
Signed-off-by: Marco Chiappero <marco.chiappero@intel.com>
|
|
Torsten Duwe |
536fc2 |
Reviewed-by: Giovanni Cabiddu <giovanni.cabiddu@intel.com>
|
|
Torsten Duwe |
536fc2 |
Reviewed-by: Fiona Trahe <fiona.trahe@intel.com>
|
|
Torsten Duwe |
536fc2 |
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
|
|
Torsten Duwe |
536fc2 |
Signed-off-by: Torsten Duwe <duwe@suse.de>
|
|
Torsten Duwe |
536fc2 |
|
|
Torsten Duwe |
536fc2 |
---
|
|
Torsten Duwe |
536fc2 |
drivers/crypto/qat/qat_c3xxxvf/adf_drv.c | 4 ---
|
|
Torsten Duwe |
536fc2 |
drivers/crypto/qat/qat_c62xvf/adf_drv.c | 4 ---
|
|
Torsten Duwe |
536fc2 |
.../crypto/qat/qat_common/adf_common_drv.h | 1 +
|
|
Torsten Duwe |
536fc2 |
drivers/crypto/qat/qat_common/adf_init.c | 9 ++++++-
|
|
Torsten Duwe |
536fc2 |
drivers/crypto/qat/qat_common/qat_crypto.c | 25 +++++++++++++++++++
|
|
Torsten Duwe |
536fc2 |
drivers/crypto/qat/qat_dh895xccvf/adf_drv.c | 4 ---
|
|
Torsten Duwe |
536fc2 |
6 files changed, 34 insertions(+), 13 deletions(-)
|
|
Torsten Duwe |
536fc2 |
|
|
Torsten Duwe |
536fc2 |
diff --git a/drivers/crypto/qat/qat_c3xxxvf/adf_drv.c b/drivers/crypto/qat/qat_c3xxxvf/adf_drv.c
|
|
Torsten Duwe |
536fc2 |
index 0ba1d293bb819..fa18d8009f533 100644
|
|
Torsten Duwe |
536fc2 |
--- a/drivers/crypto/qat/qat_c3xxxvf/adf_drv.c
|
|
Torsten Duwe |
536fc2 |
+++ b/drivers/crypto/qat/qat_c3xxxvf/adf_drv.c
|
|
Torsten Duwe |
536fc2 |
@@ -173,10 +173,6 @@ static int adf_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
|
|
Torsten Duwe |
536fc2 |
/* Completion for VF2PF request/response message exchange */
|
|
Torsten Duwe |
536fc2 |
init_completion(&accel_dev->vf.msg_received);
|
|
Torsten Duwe |
536fc2 |
|
|
Torsten Duwe |
536fc2 |
- ret = qat_crypto_dev_config(accel_dev);
|
|
Torsten Duwe |
536fc2 |
- if (ret)
|
|
Torsten Duwe |
536fc2 |
- goto out_err_free_reg;
|
|
Torsten Duwe |
536fc2 |
-
|
|
Torsten Duwe |
536fc2 |
ret = adf_dev_init(accel_dev);
|
|
Torsten Duwe |
536fc2 |
if (ret)
|
|
Torsten Duwe |
536fc2 |
goto out_err_dev_shutdown;
|
|
Torsten Duwe |
536fc2 |
diff --git a/drivers/crypto/qat/qat_c62xvf/adf_drv.c b/drivers/crypto/qat/qat_c62xvf/adf_drv.c
|
|
Torsten Duwe |
536fc2 |
index 176d8e2786f47..686ec752d0e9e 100644
|
|
Torsten Duwe |
536fc2 |
--- a/drivers/crypto/qat/qat_c62xvf/adf_drv.c
|
|
Torsten Duwe |
536fc2 |
+++ b/drivers/crypto/qat/qat_c62xvf/adf_drv.c
|
|
Torsten Duwe |
536fc2 |
@@ -173,10 +173,6 @@ static int adf_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
|
|
Torsten Duwe |
536fc2 |
/* Completion for VF2PF request/response message exchange */
|
|
Torsten Duwe |
536fc2 |
init_completion(&accel_dev->vf.msg_received);
|
|
Torsten Duwe |
536fc2 |
|
|
Torsten Duwe |
536fc2 |
- ret = qat_crypto_dev_config(accel_dev);
|
|
Torsten Duwe |
536fc2 |
- if (ret)
|
|
Torsten Duwe |
536fc2 |
- goto out_err_free_reg;
|
|
Torsten Duwe |
536fc2 |
-
|
|
Torsten Duwe |
536fc2 |
ret = adf_dev_init(accel_dev);
|
|
Torsten Duwe |
536fc2 |
if (ret)
|
|
Torsten Duwe |
536fc2 |
goto out_err_dev_shutdown;
|
|
Torsten Duwe |
536fc2 |
diff --git a/drivers/crypto/qat/qat_common/adf_common_drv.h b/drivers/crypto/qat/qat_common/adf_common_drv.h
|
|
Torsten Duwe |
536fc2 |
index 5212891344a90..76f4f96ec5eb0 100644
|
|
Torsten Duwe |
536fc2 |
--- a/drivers/crypto/qat/qat_common/adf_common_drv.h
|
|
Torsten Duwe |
536fc2 |
+++ b/drivers/crypto/qat/qat_common/adf_common_drv.h
|
|
Torsten Duwe |
536fc2 |
@@ -114,6 +114,7 @@ void adf_cleanup_etr_data(struct adf_accel_dev *accel_dev);
|
|
Torsten Duwe |
536fc2 |
int qat_crypto_register(void);
|
|
Torsten Duwe |
536fc2 |
int qat_crypto_unregister(void);
|
|
Torsten Duwe |
536fc2 |
int qat_crypto_dev_config(struct adf_accel_dev *accel_dev);
|
|
Torsten Duwe |
536fc2 |
+int qat_crypto_vf_dev_config(struct adf_accel_dev *accel_dev);
|
|
Torsten Duwe |
536fc2 |
struct qat_crypto_instance *qat_crypto_get_instance_node(int node);
|
|
Torsten Duwe |
536fc2 |
void qat_crypto_put_instance(struct qat_crypto_instance *inst);
|
|
Torsten Duwe |
536fc2 |
void qat_alg_callback(void *resp);
|
|
Torsten Duwe |
536fc2 |
diff --git a/drivers/crypto/qat/qat_common/adf_init.c b/drivers/crypto/qat/qat_common/adf_init.c
|
|
Torsten Duwe |
536fc2 |
index 391d82a64a936..2edc63c6b6caa 100644
|
|
Torsten Duwe |
536fc2 |
--- a/drivers/crypto/qat/qat_common/adf_init.c
|
|
Torsten Duwe |
536fc2 |
+++ b/drivers/crypto/qat/qat_common/adf_init.c
|
|
Torsten Duwe |
536fc2 |
@@ -69,7 +69,8 @@ int adf_dev_init(struct adf_accel_dev *accel_dev)
|
|
Torsten Duwe |
536fc2 |
return -EFAULT;
|
|
Torsten Duwe |
536fc2 |
}
|
|
Torsten Duwe |
536fc2 |
|
|
Torsten Duwe |
536fc2 |
- if (!test_bit(ADF_STATUS_CONFIGURED, &accel_dev->status)) {
|
|
Torsten Duwe |
536fc2 |
+ if (!test_bit(ADF_STATUS_CONFIGURED, &accel_dev->status) &&
|
|
Torsten Duwe |
536fc2 |
+ !accel_dev->is_vf) {
|
|
Torsten Duwe |
536fc2 |
dev_err(&GET_DEV(accel_dev), "Device not configured\n");
|
|
Torsten Duwe |
536fc2 |
return -EFAULT;
|
|
Torsten Duwe |
536fc2 |
}
|
|
Torsten Duwe |
536fc2 |
@@ -121,6 +122,12 @@ int adf_dev_init(struct adf_accel_dev *accel_dev)
|
|
Torsten Duwe |
536fc2 |
if (ret)
|
|
Torsten Duwe |
536fc2 |
return ret;
|
|
Torsten Duwe |
536fc2 |
|
|
Torsten Duwe |
536fc2 |
+ if (!test_bit(ADF_STATUS_CONFIGURED, &accel_dev->status) &&
|
|
Torsten Duwe |
536fc2 |
+ accel_dev->is_vf) {
|
|
Torsten Duwe |
536fc2 |
+ if (qat_crypto_vf_dev_config(accel_dev))
|
|
Torsten Duwe |
536fc2 |
+ return -EFAULT;
|
|
Torsten Duwe |
536fc2 |
+ }
|
|
Torsten Duwe |
536fc2 |
+
|
|
Torsten Duwe |
536fc2 |
/*
|
|
Torsten Duwe |
536fc2 |
* Subservice initialisation is divided into two stages: init and start.
|
|
Torsten Duwe |
536fc2 |
* This is to facilitate any ordering dependencies between services
|
|
Torsten Duwe |
536fc2 |
diff --git a/drivers/crypto/qat/qat_common/qat_crypto.c b/drivers/crypto/qat/qat_common/qat_crypto.c
|
|
Torsten Duwe |
536fc2 |
index ece6776fbd53d..7234c4940fae4 100644
|
|
Torsten Duwe |
536fc2 |
--- a/drivers/crypto/qat/qat_common/qat_crypto.c
|
|
Torsten Duwe |
536fc2 |
+++ b/drivers/crypto/qat/qat_common/qat_crypto.c
|
|
Torsten Duwe |
536fc2 |
@@ -8,6 +8,7 @@
|
|
Torsten Duwe |
536fc2 |
#include "adf_transport_access_macros.h"
|
|
Torsten Duwe |
536fc2 |
#include "adf_cfg.h"
|
|
Torsten Duwe |
536fc2 |
#include "adf_cfg_strings.h"
|
|
Torsten Duwe |
536fc2 |
+#include "adf_gen2_hw_data.h"
|
|
Torsten Duwe |
536fc2 |
#include "qat_crypto.h"
|
|
Torsten Duwe |
536fc2 |
#include "icp_qat_fw.h"
|
|
Torsten Duwe |
536fc2 |
|
|
Torsten Duwe |
536fc2 |
@@ -104,6 +105,30 @@ struct qat_crypto_instance *qat_crypto_get_instance_node(int node)
|
|
Torsten Duwe |
536fc2 |
return inst;
|
|
Torsten Duwe |
536fc2 |
}
|
|
Torsten Duwe |
536fc2 |
|
|
Torsten Duwe |
536fc2 |
+/**
|
|
Torsten Duwe |
536fc2 |
+ * qat_crypto_vf_dev_config()
|
|
Torsten Duwe |
536fc2 |
+ * create dev config required to create crypto inst.
|
|
Torsten Duwe |
536fc2 |
+ *
|
|
Torsten Duwe |
536fc2 |
+ * @accel_dev: Pointer to acceleration device.
|
|
Torsten Duwe |
536fc2 |
+ *
|
|
Torsten Duwe |
536fc2 |
+ * Function creates device configuration required to create
|
|
Torsten Duwe |
536fc2 |
+ * asym, sym or, crypto instances
|
|
Torsten Duwe |
536fc2 |
+ *
|
|
Torsten Duwe |
536fc2 |
+ * Return: 0 on success, error code otherwise.
|
|
Torsten Duwe |
536fc2 |
+ */
|
|
Torsten Duwe |
536fc2 |
+int qat_crypto_vf_dev_config(struct adf_accel_dev *accel_dev)
|
|
Torsten Duwe |
536fc2 |
+{
|
|
Torsten Duwe |
536fc2 |
+ u16 ring_to_svc_map = GET_HW_DATA(accel_dev)->ring_to_svc_map;
|
|
Torsten Duwe |
536fc2 |
+
|
|
Torsten Duwe |
536fc2 |
+ if (ring_to_svc_map != ADF_GEN2_DEFAULT_RING_TO_SRV_MAP) {
|
|
Torsten Duwe |
536fc2 |
+ dev_err(&GET_DEV(accel_dev),
|
|
Torsten Duwe |
536fc2 |
+ "Unsupported ring/service mapping present on PF");
|
|
Torsten Duwe |
536fc2 |
+ return -EFAULT;
|
|
Torsten Duwe |
536fc2 |
+ }
|
|
Torsten Duwe |
536fc2 |
+
|
|
Torsten Duwe |
536fc2 |
+ return qat_crypto_dev_config(accel_dev);
|
|
Torsten Duwe |
536fc2 |
+}
|
|
Torsten Duwe |
536fc2 |
+
|
|
Torsten Duwe |
536fc2 |
/**
|
|
Torsten Duwe |
536fc2 |
* qat_crypto_dev_config() - create dev config required to create crypto inst.
|
|
Torsten Duwe |
536fc2 |
*
|
|
Torsten Duwe |
536fc2 |
diff --git a/drivers/crypto/qat/qat_dh895xccvf/adf_drv.c b/drivers/crypto/qat/qat_dh895xccvf/adf_drv.c
|
|
Torsten Duwe |
536fc2 |
index ee45d688b5d73..18756b2e1c912 100644
|
|
Torsten Duwe |
536fc2 |
--- a/drivers/crypto/qat/qat_dh895xccvf/adf_drv.c
|
|
Torsten Duwe |
536fc2 |
+++ b/drivers/crypto/qat/qat_dh895xccvf/adf_drv.c
|
|
Torsten Duwe |
536fc2 |
@@ -173,10 +173,6 @@ static int adf_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
|
|
Torsten Duwe |
536fc2 |
/* Completion for VF2PF request/response message exchange */
|
|
Torsten Duwe |
536fc2 |
init_completion(&accel_dev->vf.msg_received);
|
|
Torsten Duwe |
536fc2 |
|
|
Torsten Duwe |
536fc2 |
- ret = qat_crypto_dev_config(accel_dev);
|
|
Torsten Duwe |
536fc2 |
- if (ret)
|
|
Torsten Duwe |
536fc2 |
- goto out_err_free_reg;
|
|
Torsten Duwe |
536fc2 |
-
|
|
Torsten Duwe |
536fc2 |
ret = adf_dev_init(accel_dev);
|
|
Torsten Duwe |
536fc2 |
if (ret)
|
|
Torsten Duwe |
536fc2 |
goto out_err_dev_shutdown;
|
|
Torsten Duwe |
536fc2 |
--
|
|
Torsten Duwe |
536fc2 |
2.35.3
|
|
Torsten Duwe |
536fc2 |
|