|
Torsten Duwe |
451a71 |
From 7a73c4622aaa8a7a3820800c5c6b53e1097527ed Mon Sep 17 00:00:00 2001
|
|
Torsten Duwe |
451a71 |
From: Marco Chiappero <marco.chiappero@intel.com>
|
|
Torsten Duwe |
451a71 |
Date: Tue, 28 Sep 2021 12:44:38 +0100
|
|
Torsten Duwe |
451a71 |
Subject: [PATCH] crypto: qat - add VF and PF wrappers to common send function
|
|
Torsten Duwe |
451a71 |
Git-commit: 7a73c4622aaa8a7a3820800c5c6b53e1097527ed
|
|
Torsten Duwe |
451a71 |
Patch-mainline: v5.16-rc1
|
|
Torsten Duwe |
451a71 |
References: jsc#PED-1073
|
|
Torsten Duwe |
451a71 |
|
|
Torsten Duwe |
451a71 |
The send function, adf_iov_putmsg(), is shared by both PF and VF.
|
|
Torsten Duwe |
451a71 |
This commit provides two direction specific APIs, adf_send_pf2vf_msg()
|
|
Torsten Duwe |
451a71 |
and adf_send_vf2pf_msg() which decouple the implementation, which can
|
|
Torsten Duwe |
451a71 |
change and evolve over time, from the user.
|
|
Torsten Duwe |
451a71 |
|
|
Torsten Duwe |
451a71 |
With this change, the adf_iov_putmsg() is now isolated inside the file
|
|
Torsten Duwe |
451a71 |
adf_pf2vf_msg.c and has been marked as static.
|
|
Torsten Duwe |
451a71 |
|
|
Torsten Duwe |
451a71 |
Signed-off-by: Marco Chiappero <marco.chiappero@intel.com>
|
|
Torsten Duwe |
451a71 |
Co-developed-by: Giovanni Cabiddu <giovanni.cabiddu@intel.com>
|
|
Torsten Duwe |
451a71 |
Signed-off-by: Giovanni Cabiddu <giovanni.cabiddu@intel.com>
|
|
Torsten Duwe |
451a71 |
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
|
|
Torsten Duwe |
451a71 |
Signed-off-by: Torsten Duwe <duwe@suse.de>
|
|
Torsten Duwe |
451a71 |
|
|
Torsten Duwe |
451a71 |
---
|
|
Torsten Duwe |
451a71 |
.../crypto/qat/qat_common/adf_common_drv.h | 3 +-
|
|
Torsten Duwe |
451a71 |
drivers/crypto/qat/qat_common/adf_pf2vf_msg.c | 37 +++++++++++++++++--
|
|
Torsten Duwe |
451a71 |
drivers/crypto/qat/qat_common/adf_vf2pf_msg.c | 4 +-
|
|
Torsten Duwe |
451a71 |
3 files changed, 36 insertions(+), 8 deletions(-)
|
|
Torsten Duwe |
451a71 |
|
|
Torsten Duwe |
451a71 |
diff --git a/drivers/crypto/qat/qat_common/adf_common_drv.h b/drivers/crypto/qat/qat_common/adf_common_drv.h
|
|
Torsten Duwe |
451a71 |
index 4261749fae8d4..dd82272019ecd 100644
|
|
Torsten Duwe |
451a71 |
--- a/drivers/crypto/qat/qat_common/adf_common_drv.h
|
|
Torsten Duwe |
451a71 |
+++ b/drivers/crypto/qat/qat_common/adf_common_drv.h
|
|
Torsten Duwe |
451a71 |
@@ -62,7 +62,6 @@ int adf_dev_start(struct adf_accel_dev *accel_dev);
|
|
Torsten Duwe |
451a71 |
void adf_dev_stop(struct adf_accel_dev *accel_dev);
|
|
Torsten Duwe |
451a71 |
void adf_dev_shutdown(struct adf_accel_dev *accel_dev);
|
|
Torsten Duwe |
451a71 |
|
|
Torsten Duwe |
451a71 |
-int adf_iov_putmsg(struct adf_accel_dev *accel_dev, u32 msg, u8 vf_nr);
|
|
Torsten Duwe |
451a71 |
void adf_pf2vf_notify_restarting(struct adf_accel_dev *accel_dev);
|
|
Torsten Duwe |
451a71 |
int adf_enable_vf2pf_comms(struct adf_accel_dev *accel_dev);
|
|
Torsten Duwe |
451a71 |
void adf_vf2pf_req_hndl(struct adf_accel_vf_info *vf_info);
|
|
Torsten Duwe |
451a71 |
@@ -200,7 +199,7 @@ void adf_enable_vf2pf_interrupts(struct adf_accel_dev *accel_dev,
|
|
Torsten Duwe |
451a71 |
void adf_enable_pf2vf_interrupts(struct adf_accel_dev *accel_dev);
|
|
Torsten Duwe |
451a71 |
void adf_disable_pf2vf_interrupts(struct adf_accel_dev *accel_dev);
|
|
Torsten Duwe |
451a71 |
void adf_schedule_vf2pf_handler(struct adf_accel_vf_info *vf_info);
|
|
Torsten Duwe |
451a71 |
-
|
|
Torsten Duwe |
451a71 |
+int adf_send_vf2pf_msg(struct adf_accel_dev *accel_dev, u32 msg);
|
|
Torsten Duwe |
451a71 |
int adf_vf2pf_notify_init(struct adf_accel_dev *accel_dev);
|
|
Torsten Duwe |
451a71 |
void adf_vf2pf_notify_shutdown(struct adf_accel_dev *accel_dev);
|
|
Torsten Duwe |
451a71 |
int adf_init_pf_wq(void);
|
|
Torsten Duwe |
451a71 |
diff --git a/drivers/crypto/qat/qat_common/adf_pf2vf_msg.c b/drivers/crypto/qat/qat_common/adf_pf2vf_msg.c
|
|
Torsten Duwe |
451a71 |
index 5459f295fcd99..23bcbb2e22e2f 100644
|
|
Torsten Duwe |
451a71 |
--- a/drivers/crypto/qat/qat_common/adf_pf2vf_msg.c
|
|
Torsten Duwe |
451a71 |
+++ b/drivers/crypto/qat/qat_common/adf_pf2vf_msg.c
|
|
Torsten Duwe |
451a71 |
@@ -138,7 +138,7 @@ out:
|
|
Torsten Duwe |
451a71 |
*
|
|
Torsten Duwe |
451a71 |
* Return: 0 on success, error code otherwise.
|
|
Torsten Duwe |
451a71 |
*/
|
|
Torsten Duwe |
451a71 |
-int adf_iov_putmsg(struct adf_accel_dev *accel_dev, u32 msg, u8 vf_nr)
|
|
Torsten Duwe |
451a71 |
+static int adf_iov_putmsg(struct adf_accel_dev *accel_dev, u32 msg, u8 vf_nr)
|
|
Torsten Duwe |
451a71 |
{
|
|
Torsten Duwe |
451a71 |
u32 count = 0;
|
|
Torsten Duwe |
451a71 |
int ret;
|
|
Torsten Duwe |
451a71 |
@@ -152,6 +152,35 @@ int adf_iov_putmsg(struct adf_accel_dev *accel_dev, u32 msg, u8 vf_nr)
|
|
Torsten Duwe |
451a71 |
return ret;
|
|
Torsten Duwe |
451a71 |
}
|
|
Torsten Duwe |
451a71 |
|
|
Torsten Duwe |
451a71 |
+/**
|
|
Torsten Duwe |
451a71 |
+ * adf_send_pf2vf_msg() - send PF to VF message
|
|
Torsten Duwe |
451a71 |
+ * @accel_dev: Pointer to acceleration device
|
|
Torsten Duwe |
451a71 |
+ * @vf_nr: VF number to which the message will be sent
|
|
Torsten Duwe |
451a71 |
+ * @msg: Message to send
|
|
Torsten Duwe |
451a71 |
+ *
|
|
Torsten Duwe |
451a71 |
+ * This function allows the PF to send a message to a specific VF.
|
|
Torsten Duwe |
451a71 |
+ *
|
|
Torsten Duwe |
451a71 |
+ * Return: 0 on success, error code otherwise.
|
|
Torsten Duwe |
451a71 |
+ */
|
|
Torsten Duwe |
451a71 |
+static int adf_send_pf2vf_msg(struct adf_accel_dev *accel_dev, u8 vf_nr, u32 msg)
|
|
Torsten Duwe |
451a71 |
+{
|
|
Torsten Duwe |
451a71 |
+ return adf_iov_putmsg(accel_dev, msg, vf_nr);
|
|
Torsten Duwe |
451a71 |
+}
|
|
Torsten Duwe |
451a71 |
+
|
|
Torsten Duwe |
451a71 |
+/**
|
|
Torsten Duwe |
451a71 |
+ * adf_send_vf2pf_msg() - send VF to PF message
|
|
Torsten Duwe |
451a71 |
+ * @accel_dev: Pointer to acceleration device
|
|
Torsten Duwe |
451a71 |
+ * @msg: Message to send
|
|
Torsten Duwe |
451a71 |
+ *
|
|
Torsten Duwe |
451a71 |
+ * This function allows the VF to send a message to the PF.
|
|
Torsten Duwe |
451a71 |
+ *
|
|
Torsten Duwe |
451a71 |
+ * Return: 0 on success, error code otherwise.
|
|
Torsten Duwe |
451a71 |
+ */
|
|
Torsten Duwe |
451a71 |
+int adf_send_vf2pf_msg(struct adf_accel_dev *accel_dev, u32 msg)
|
|
Torsten Duwe |
451a71 |
+{
|
|
Torsten Duwe |
451a71 |
+ return adf_iov_putmsg(accel_dev, msg, 0);
|
|
Torsten Duwe |
451a71 |
+}
|
|
Torsten Duwe |
451a71 |
+
|
|
Torsten Duwe |
451a71 |
void adf_vf2pf_req_hndl(struct adf_accel_vf_info *vf_info)
|
|
Torsten Duwe |
451a71 |
{
|
|
Torsten Duwe |
451a71 |
struct adf_accel_dev *accel_dev = vf_info->accel_dev;
|
|
Torsten Duwe |
451a71 |
@@ -248,7 +277,7 @@ void adf_vf2pf_req_hndl(struct adf_accel_vf_info *vf_info)
|
|
Torsten Duwe |
451a71 |
goto err;
|
|
Torsten Duwe |
451a71 |
}
|
|
Torsten Duwe |
451a71 |
|
|
Torsten Duwe |
451a71 |
- if (resp && adf_iov_putmsg(accel_dev, resp, vf_nr))
|
|
Torsten Duwe |
451a71 |
+ if (resp && adf_send_pf2vf_msg(accel_dev, vf_nr, resp))
|
|
Torsten Duwe |
451a71 |
dev_err(&GET_DEV(accel_dev), "Failed to send response to VF\n");
|
|
Torsten Duwe |
451a71 |
|
|
Torsten Duwe |
451a71 |
out:
|
|
Torsten Duwe |
451a71 |
@@ -269,7 +298,7 @@ void adf_pf2vf_notify_restarting(struct adf_accel_dev *accel_dev)
|
|
Torsten Duwe |
451a71 |
int i, num_vfs = pci_num_vf(accel_to_pci_dev(accel_dev));
|
|
Torsten Duwe |
451a71 |
|
|
Torsten Duwe |
451a71 |
for (i = 0, vf = accel_dev->pf.vf_info; i < num_vfs; i++, vf++) {
|
|
Torsten Duwe |
451a71 |
- if (vf->init && adf_iov_putmsg(accel_dev, msg, i))
|
|
Torsten Duwe |
451a71 |
+ if (vf->init && adf_send_pf2vf_msg(accel_dev, i, msg))
|
|
Torsten Duwe |
451a71 |
dev_err(&GET_DEV(accel_dev),
|
|
Torsten Duwe |
451a71 |
"Failed to send restarting msg to VF%d\n", i);
|
|
Torsten Duwe |
451a71 |
}
|
|
Torsten Duwe |
451a71 |
@@ -290,7 +319,7 @@ static int adf_vf2pf_request_version(struct adf_accel_dev *accel_dev)
|
|
Torsten Duwe |
451a71 |
reinit_completion(&accel_dev->vf.iov_msg_completion);
|
|
Torsten Duwe |
451a71 |
|
|
Torsten Duwe |
451a71 |
/* Send request from VF to PF */
|
|
Torsten Duwe |
451a71 |
- ret = adf_iov_putmsg(accel_dev, msg, 0);
|
|
Torsten Duwe |
451a71 |
+ ret = adf_send_vf2pf_msg(accel_dev, msg);
|
|
Torsten Duwe |
451a71 |
if (ret) {
|
|
Torsten Duwe |
451a71 |
dev_err(&GET_DEV(accel_dev),
|
|
Torsten Duwe |
451a71 |
"Failed to send Compatibility Version Request.\n");
|
|
Torsten Duwe |
451a71 |
diff --git a/drivers/crypto/qat/qat_common/adf_vf2pf_msg.c b/drivers/crypto/qat/qat_common/adf_vf2pf_msg.c
|
|
Torsten Duwe |
451a71 |
index 3e25fac051b25..8d11bb24cea00 100644
|
|
Torsten Duwe |
451a71 |
--- a/drivers/crypto/qat/qat_common/adf_vf2pf_msg.c
|
|
Torsten Duwe |
451a71 |
+++ b/drivers/crypto/qat/qat_common/adf_vf2pf_msg.c
|
|
Torsten Duwe |
451a71 |
@@ -17,7 +17,7 @@ int adf_vf2pf_notify_init(struct adf_accel_dev *accel_dev)
|
|
Torsten Duwe |
451a71 |
u32 msg = (ADF_VF2PF_MSGORIGIN_SYSTEM |
|
|
Torsten Duwe |
451a71 |
(ADF_VF2PF_MSGTYPE_INIT << ADF_VF2PF_MSGTYPE_SHIFT));
|
|
Torsten Duwe |
451a71 |
|
|
Torsten Duwe |
451a71 |
- if (adf_iov_putmsg(accel_dev, msg, 0)) {
|
|
Torsten Duwe |
451a71 |
+ if (adf_send_vf2pf_msg(accel_dev, msg)) {
|
|
Torsten Duwe |
451a71 |
dev_err(&GET_DEV(accel_dev),
|
|
Torsten Duwe |
451a71 |
"Failed to send Init event to PF\n");
|
|
Torsten Duwe |
451a71 |
return -EFAULT;
|
|
Torsten Duwe |
451a71 |
@@ -41,7 +41,7 @@ void adf_vf2pf_notify_shutdown(struct adf_accel_dev *accel_dev)
|
|
Torsten Duwe |
451a71 |
(ADF_VF2PF_MSGTYPE_SHUTDOWN << ADF_VF2PF_MSGTYPE_SHIFT));
|
|
Torsten Duwe |
451a71 |
|
|
Torsten Duwe |
451a71 |
if (test_bit(ADF_STATUS_PF_RUNNING, &accel_dev->status))
|
|
Torsten Duwe |
451a71 |
- if (adf_iov_putmsg(accel_dev, msg, 0))
|
|
Torsten Duwe |
451a71 |
+ if (adf_send_vf2pf_msg(accel_dev, msg))
|
|
Torsten Duwe |
451a71 |
dev_err(&GET_DEV(accel_dev),
|
|
Torsten Duwe |
451a71 |
"Failed to send Shutdown event to PF\n");
|
|
Torsten Duwe |
451a71 |
}
|
|
Torsten Duwe |
451a71 |
--
|
|
Torsten Duwe |
451a71 |
2.35.3
|
|
Torsten Duwe |
451a71 |
|