|
Torsten Duwe |
267544 |
From 956125e21f460ef94660019b6ec9de3f835f93ab Mon Sep 17 00:00:00 2001
|
|
Torsten Duwe |
267544 |
From: Giovanni Cabiddu <giovanni.cabiddu@intel.com>
|
|
Torsten Duwe |
267544 |
Date: Wed, 17 Nov 2021 14:30:40 +0000
|
|
Torsten Duwe |
267544 |
Subject: [PATCH] crypto: qat - change PFVF ACK behaviour
|
|
Torsten Duwe |
267544 |
Git-commit: 956125e21f460ef94660019b6ec9de3f835f93ab
|
|
Torsten Duwe |
267544 |
Patch-mainline: v5.17-rc1
|
|
Torsten Duwe |
267544 |
References: jsc#PED-1073
|
|
Torsten Duwe |
267544 |
|
|
Torsten Duwe |
267544 |
Change the PFVF receipt flow on the VF side to read, ack and handle the
|
|
Torsten Duwe |
267544 |
message instead of read, handle and ack.
|
|
Torsten Duwe |
267544 |
This is done for (1) consistency with the PF side, see the function
|
|
Torsten Duwe |
267544 |
adf_recv_and_handle_vf2pf_msg() in adf_pf2vf_msg.c, and (2) performance
|
|
Torsten Duwe |
267544 |
reasons, to avoid keeping the CSR busy while parsing the message.
|
|
Torsten Duwe |
267544 |
|
|
Torsten Duwe |
267544 |
In addition, do not ACK PFVF legacy messages, as this driver is not
|
|
Torsten Duwe |
267544 |
capable of handling PFVF legacy messages.
|
|
Torsten Duwe |
267544 |
If a PFVF message with MSGORIGIN not set is received, do nothing.
|
|
Torsten Duwe |
267544 |
|
|
Torsten Duwe |
267544 |
Signed-off-by: Giovanni Cabiddu <giovanni.cabiddu@intel.com>
|
|
Torsten Duwe |
267544 |
Reviewed-by: Marco Chiappero <marco.chiappero@intel.com>
|
|
Torsten Duwe |
267544 |
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
|
|
Torsten Duwe |
267544 |
Signed-off-by: Torsten Duwe <duwe@suse.de>
|
|
Torsten Duwe |
267544 |
|
|
Torsten Duwe |
267544 |
---
|
|
Torsten Duwe |
267544 |
drivers/crypto/qat/qat_common/adf_pf2vf_msg.c | 8 ++++----
|
|
Torsten Duwe |
267544 |
drivers/crypto/qat/qat_common/adf_vf2pf_msg.c | 7 ++++---
|
|
Torsten Duwe |
267544 |
2 files changed, 8 insertions(+), 7 deletions(-)
|
|
Torsten Duwe |
267544 |
|
|
Torsten Duwe |
267544 |
diff --git a/drivers/crypto/qat/qat_common/adf_pf2vf_msg.c b/drivers/crypto/qat/qat_common/adf_pf2vf_msg.c
|
|
Torsten Duwe |
267544 |
index 796301e9fe5bc..4922ee2a2a081 100644
|
|
Torsten Duwe |
267544 |
--- a/drivers/crypto/qat/qat_common/adf_pf2vf_msg.c
|
|
Torsten Duwe |
267544 |
+++ b/drivers/crypto/qat/qat_common/adf_pf2vf_msg.c
|
|
Torsten Duwe |
267544 |
@@ -195,14 +195,14 @@ bool adf_recv_and_handle_vf2pf_msg(struct adf_accel_dev *accel_dev, u32 vf_nr)
|
|
Torsten Duwe |
267544 |
return true;
|
|
Torsten Duwe |
267544 |
}
|
|
Torsten Duwe |
267544 |
|
|
Torsten Duwe |
267544 |
- /* To ACK, clear the VF2PFINT bit */
|
|
Torsten Duwe |
267544 |
- msg &= ~ADF_VF2PF_INT;
|
|
Torsten Duwe |
267544 |
- ADF_CSR_WR(pmisc_addr, hw_data->get_pf2vf_offset(vf_nr), msg);
|
|
Torsten Duwe |
267544 |
-
|
|
Torsten Duwe |
267544 |
if (!(msg & ADF_VF2PF_MSGORIGIN_SYSTEM))
|
|
Torsten Duwe |
267544 |
/* Ignore legacy non-system (non-kernel) VF2PF messages */
|
|
Torsten Duwe |
267544 |
goto err;
|
|
Torsten Duwe |
267544 |
|
|
Torsten Duwe |
267544 |
+ /* To ACK, clear the VF2PFINT bit */
|
|
Torsten Duwe |
267544 |
+ msg &= ~ADF_VF2PF_INT;
|
|
Torsten Duwe |
267544 |
+ ADF_CSR_WR(pmisc_addr, hw_data->get_pf2vf_offset(vf_nr), msg);
|
|
Torsten Duwe |
267544 |
+
|
|
Torsten Duwe |
267544 |
switch ((msg & ADF_VF2PF_MSGTYPE_MASK) >> ADF_VF2PF_MSGTYPE_SHIFT) {
|
|
Torsten Duwe |
267544 |
case ADF_VF2PF_MSGTYPE_COMPAT_VER_REQ:
|
|
Torsten Duwe |
267544 |
{
|
|
Torsten Duwe |
267544 |
diff --git a/drivers/crypto/qat/qat_common/adf_vf2pf_msg.c b/drivers/crypto/qat/qat_common/adf_vf2pf_msg.c
|
|
Torsten Duwe |
267544 |
index 064477fcb5fb6..a6eaf93d5462b 100644
|
|
Torsten Duwe |
267544 |
--- a/drivers/crypto/qat/qat_common/adf_vf2pf_msg.c
|
|
Torsten Duwe |
267544 |
+++ b/drivers/crypto/qat/qat_common/adf_vf2pf_msg.c
|
|
Torsten Duwe |
267544 |
@@ -69,6 +69,10 @@ bool adf_recv_and_handle_pf2vf_msg(struct adf_accel_dev *accel_dev)
|
|
Torsten Duwe |
267544 |
/* Ignore legacy non-system (non-kernel) PF2VF messages */
|
|
Torsten Duwe |
267544 |
goto err;
|
|
Torsten Duwe |
267544 |
|
|
Torsten Duwe |
267544 |
+ /* To ack, clear the PF2VFINT bit */
|
|
Torsten Duwe |
267544 |
+ msg &= ~ADF_PF2VF_INT;
|
|
Torsten Duwe |
267544 |
+ ADF_CSR_WR(pmisc_bar_addr, offset, msg);
|
|
Torsten Duwe |
267544 |
+
|
|
Torsten Duwe |
267544 |
switch ((msg & ADF_PF2VF_MSGTYPE_MASK) >> ADF_PF2VF_MSGTYPE_SHIFT) {
|
|
Torsten Duwe |
267544 |
case ADF_PF2VF_MSGTYPE_RESTARTING:
|
|
Torsten Duwe |
267544 |
dev_dbg(&GET_DEV(accel_dev),
|
|
Torsten Duwe |
267544 |
@@ -93,9 +97,6 @@ bool adf_recv_and_handle_pf2vf_msg(struct adf_accel_dev *accel_dev)
|
|
Torsten Duwe |
267544 |
goto err;
|
|
Torsten Duwe |
267544 |
}
|
|
Torsten Duwe |
267544 |
|
|
Torsten Duwe |
267544 |
- /* To ack, clear the PF2VFINT bit */
|
|
Torsten Duwe |
267544 |
- msg &= ~ADF_PF2VF_INT;
|
|
Torsten Duwe |
267544 |
- ADF_CSR_WR(pmisc_bar_addr, offset, msg);
|
|
Torsten Duwe |
267544 |
return ret;
|
|
Torsten Duwe |
267544 |
|
|
Torsten Duwe |
267544 |
err:
|
|
Torsten Duwe |
267544 |
--
|
|
Torsten Duwe |
267544 |
2.35.3
|
|
Torsten Duwe |
267544 |
|