|
Torsten Duwe |
f879cc |
From e3e668fc77153591553a14c4077c619b2ab55974 Mon Sep 17 00:00:00 2001
|
|
Torsten Duwe |
f879cc |
From: Marco Chiappero <marco.chiappero@intel.com>
|
|
Torsten Duwe |
f879cc |
Date: Thu, 7 Apr 2022 17:54:53 +0100
|
|
Torsten Duwe |
f879cc |
Subject: [PATCH] crypto: qat - replace disable_vf2pf_interrupts()
|
|
Torsten Duwe |
f879cc |
Git-commit: e3e668fc77153591553a14c4077c619b2ab55974
|
|
Torsten Duwe |
f879cc |
Patch-mainline: v5.19-rc1
|
|
Torsten Duwe |
f879cc |
References: jsc#PED-1073
|
|
Torsten Duwe |
f879cc |
|
|
Torsten Duwe |
f879cc |
As a consequence of the refactored VF2PF interrupt handling logic, a
|
|
Torsten Duwe |
f879cc |
function that disables specific VF2PF interrupts is no longer needed.
|
|
Torsten Duwe |
f879cc |
Instead, a simpler function that disables all the interrupts, also
|
|
Torsten Duwe |
f879cc |
hiding the device specific amount of VFs to be disabled from the
|
|
Torsten Duwe |
f879cc |
pfvf_ops users, would be sufficient.
|
|
Torsten Duwe |
f879cc |
|
|
Torsten Duwe |
f879cc |
This patch replaces disable_vf2pf_interrupts() with the new
|
|
Torsten Duwe |
f879cc |
disable_all_vf2pf_interrupts(), which doesn't need any argument and
|
|
Torsten Duwe |
f879cc |
disables all the VF2PF interrupts.
|
|
Torsten Duwe |
f879cc |
|
|
Torsten Duwe |
f879cc |
Signed-off-by: Marco Chiappero <marco.chiappero@intel.com>
|
|
Torsten Duwe |
f879cc |
Reviewed-by: Giovanni Cabiddu <giovanni.cabiddu@intel.com>
|
|
Torsten Duwe |
f879cc |
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
|
|
Torsten Duwe |
f879cc |
Signed-off-by: Torsten Duwe <duwe@suse.de>
|
|
Torsten Duwe |
f879cc |
|
|
Torsten Duwe |
f879cc |
---
|
|
Torsten Duwe |
f879cc |
.../crypto/qat/qat_common/adf_accel_devices.h | 2 +-
|
|
Torsten Duwe |
f879cc |
.../crypto/qat/qat_common/adf_common_drv.h | 3 +--
|
|
Torsten Duwe |
f879cc |
drivers/crypto/qat/qat_common/adf_gen2_pfvf.c | 13 ++++-------
|
|
Torsten Duwe |
f879cc |
drivers/crypto/qat/qat_common/adf_gen4_pfvf.c | 10 +++-----
|
|
Torsten Duwe |
f879cc |
drivers/crypto/qat/qat_common/adf_isr.c | 4 ++--
|
|
Torsten Duwe |
f879cc |
drivers/crypto/qat/qat_common/adf_sriov.c | 2 +-
|
|
Torsten Duwe |
f879cc |
.../qat/qat_dh895xcc/adf_dh895xcc_hw_data.c | 23 ++++++++-----------
|
|
Torsten Duwe |
f879cc |
7 files changed, 23 insertions(+), 34 deletions(-)
|
|
Torsten Duwe |
f879cc |
|
|
Torsten Duwe |
f879cc |
diff --git a/drivers/crypto/qat/qat_common/adf_accel_devices.h b/drivers/crypto/qat/qat_common/adf_accel_devices.h
|
|
Torsten Duwe |
f879cc |
index dfa7ee41c5e9c..e927799a8e6c4 100644
|
|
Torsten Duwe |
f879cc |
--- a/drivers/crypto/qat/qat_common/adf_accel_devices.h
|
|
Torsten Duwe |
f879cc |
+++ b/drivers/crypto/qat/qat_common/adf_accel_devices.h
|
|
Torsten Duwe |
f879cc |
@@ -153,7 +153,7 @@ struct adf_pfvf_ops {
|
|
Torsten Duwe |
f879cc |
u32 (*get_pf2vf_offset)(u32 i);
|
|
Torsten Duwe |
f879cc |
u32 (*get_vf2pf_offset)(u32 i);
|
|
Torsten Duwe |
f879cc |
void (*enable_vf2pf_interrupts)(void __iomem *pmisc_addr, u32 vf_mask);
|
|
Torsten Duwe |
f879cc |
- void (*disable_vf2pf_interrupts)(void __iomem *pmisc_addr, u32 vf_mask);
|
|
Torsten Duwe |
f879cc |
+ void (*disable_all_vf2pf_interrupts)(void __iomem *pmisc_addr);
|
|
Torsten Duwe |
f879cc |
u32 (*disable_pending_vf2pf_interrupts)(void __iomem *pmisc_addr);
|
|
Torsten Duwe |
f879cc |
int (*send_msg)(struct adf_accel_dev *accel_dev, struct pfvf_message msg,
|
|
Torsten Duwe |
f879cc |
u32 pfvf_offset, struct mutex *csr_lock);
|
|
Torsten Duwe |
f879cc |
diff --git a/drivers/crypto/qat/qat_common/adf_common_drv.h b/drivers/crypto/qat/qat_common/adf_common_drv.h
|
|
Torsten Duwe |
f879cc |
index feecf1035a90c..da9d765834f0f 100644
|
|
Torsten Duwe |
f879cc |
--- a/drivers/crypto/qat/qat_common/adf_common_drv.h
|
|
Torsten Duwe |
f879cc |
+++ b/drivers/crypto/qat/qat_common/adf_common_drv.h
|
|
Torsten Duwe |
f879cc |
@@ -195,10 +195,9 @@ bool adf_misc_wq_queue_work(struct work_struct *work);
|
|
Torsten Duwe |
f879cc |
#if defined(CONFIG_PCI_IOV)
|
|
Torsten Duwe |
f879cc |
int adf_sriov_configure(struct pci_dev *pdev, int numvfs);
|
|
Torsten Duwe |
f879cc |
void adf_disable_sriov(struct adf_accel_dev *accel_dev);
|
|
Torsten Duwe |
f879cc |
-void adf_disable_vf2pf_interrupts(struct adf_accel_dev *accel_dev,
|
|
Torsten Duwe |
f879cc |
- u32 vf_mask);
|
|
Torsten Duwe |
f879cc |
void adf_enable_vf2pf_interrupts(struct adf_accel_dev *accel_dev,
|
|
Torsten Duwe |
f879cc |
u32 vf_mask);
|
|
Torsten Duwe |
f879cc |
+void adf_disable_all_vf2pf_interrupts(struct adf_accel_dev *accel_dev);
|
|
Torsten Duwe |
f879cc |
bool adf_recv_and_handle_pf2vf_msg(struct adf_accel_dev *accel_dev);
|
|
Torsten Duwe |
f879cc |
bool adf_recv_and_handle_vf2pf_msg(struct adf_accel_dev *accel_dev, u32 vf_nr);
|
|
Torsten Duwe |
f879cc |
int adf_pf2vf_handle_pf_restarting(struct adf_accel_dev *accel_dev);
|
|
Torsten Duwe |
f879cc |
diff --git a/drivers/crypto/qat/qat_common/adf_gen2_pfvf.c b/drivers/crypto/qat/qat_common/adf_gen2_pfvf.c
|
|
Torsten Duwe |
f879cc |
index 8df952df18ef6..6064095334098 100644
|
|
Torsten Duwe |
f879cc |
--- a/drivers/crypto/qat/qat_common/adf_gen2_pfvf.c
|
|
Torsten Duwe |
f879cc |
+++ b/drivers/crypto/qat/qat_common/adf_gen2_pfvf.c
|
|
Torsten Duwe |
f879cc |
@@ -62,15 +62,12 @@ static void adf_gen2_enable_vf2pf_interrupts(void __iomem *pmisc_addr,
|
|
Torsten Duwe |
f879cc |
}
|
|
Torsten Duwe |
f879cc |
}
|
|
Torsten Duwe |
f879cc |
|
|
Torsten Duwe |
f879cc |
-static void adf_gen2_disable_vf2pf_interrupts(void __iomem *pmisc_addr,
|
|
Torsten Duwe |
f879cc |
- u32 vf_mask)
|
|
Torsten Duwe |
f879cc |
+static void adf_gen2_disable_all_vf2pf_interrupts(void __iomem *pmisc_addr)
|
|
Torsten Duwe |
f879cc |
{
|
|
Torsten Duwe |
f879cc |
/* Disable VF2PF interrupts for VFs 0 through 15 per vf_mask[15:0] */
|
|
Torsten Duwe |
f879cc |
- if (vf_mask & ADF_GEN2_VF_MSK) {
|
|
Torsten Duwe |
f879cc |
- u32 val = ADF_CSR_RD(pmisc_addr, ADF_GEN2_ERRMSK3)
|
|
Torsten Duwe |
f879cc |
- | ADF_GEN2_ERR_MSK_VF2PF(vf_mask);
|
|
Torsten Duwe |
f879cc |
- ADF_CSR_WR(pmisc_addr, ADF_GEN2_ERRMSK3, val);
|
|
Torsten Duwe |
f879cc |
- }
|
|
Torsten Duwe |
f879cc |
+ u32 val = ADF_CSR_RD(pmisc_addr, ADF_GEN2_ERRMSK3)
|
|
Torsten Duwe |
f879cc |
+ | ADF_GEN2_ERR_MSK_VF2PF(ADF_GEN2_VF_MSK);
|
|
Torsten Duwe |
f879cc |
+ ADF_CSR_WR(pmisc_addr, ADF_GEN2_ERRMSK3, val);
|
|
Torsten Duwe |
f879cc |
}
|
|
Torsten Duwe |
f879cc |
|
|
Torsten Duwe |
f879cc |
static u32 adf_gen2_disable_pending_vf2pf_interrupts(void __iomem *pmisc_addr)
|
|
Torsten Duwe |
f879cc |
@@ -385,7 +382,7 @@ void adf_gen2_init_pf_pfvf_ops(struct adf_pfvf_ops *pfvf_ops)
|
|
Torsten Duwe |
f879cc |
pfvf_ops->get_pf2vf_offset = adf_gen2_pf_get_pfvf_offset;
|
|
Torsten Duwe |
f879cc |
pfvf_ops->get_vf2pf_offset = adf_gen2_pf_get_pfvf_offset;
|
|
Torsten Duwe |
f879cc |
pfvf_ops->enable_vf2pf_interrupts = adf_gen2_enable_vf2pf_interrupts;
|
|
Torsten Duwe |
f879cc |
- pfvf_ops->disable_vf2pf_interrupts = adf_gen2_disable_vf2pf_interrupts;
|
|
Torsten Duwe |
f879cc |
+ pfvf_ops->disable_all_vf2pf_interrupts = adf_gen2_disable_all_vf2pf_interrupts;
|
|
Torsten Duwe |
f879cc |
pfvf_ops->disable_pending_vf2pf_interrupts = adf_gen2_disable_pending_vf2pf_interrupts;
|
|
Torsten Duwe |
f879cc |
pfvf_ops->send_msg = adf_gen2_pf2vf_send;
|
|
Torsten Duwe |
f879cc |
pfvf_ops->recv_msg = adf_gen2_vf2pf_recv;
|
|
Torsten Duwe |
f879cc |
diff --git a/drivers/crypto/qat/qat_common/adf_gen4_pfvf.c b/drivers/crypto/qat/qat_common/adf_gen4_pfvf.c
|
|
Torsten Duwe |
f879cc |
index 4061725b926df..8091fc52e13a1 100644
|
|
Torsten Duwe |
f879cc |
--- a/drivers/crypto/qat/qat_common/adf_gen4_pfvf.c
|
|
Torsten Duwe |
f879cc |
+++ b/drivers/crypto/qat/qat_common/adf_gen4_pfvf.c
|
|
Torsten Duwe |
f879cc |
@@ -46,13 +46,9 @@ static void adf_gen4_enable_vf2pf_interrupts(void __iomem *pmisc_addr,
|
|
Torsten Duwe |
f879cc |
ADF_CSR_WR(pmisc_addr, ADF_4XXX_VM2PF_MSK, val);
|
|
Torsten Duwe |
f879cc |
}
|
|
Torsten Duwe |
f879cc |
|
|
Torsten Duwe |
f879cc |
-static void adf_gen4_disable_vf2pf_interrupts(void __iomem *pmisc_addr,
|
|
Torsten Duwe |
f879cc |
- u32 vf_mask)
|
|
Torsten Duwe |
f879cc |
+static void adf_gen4_disable_all_vf2pf_interrupts(void __iomem *pmisc_addr)
|
|
Torsten Duwe |
f879cc |
{
|
|
Torsten Duwe |
f879cc |
- unsigned int val;
|
|
Torsten Duwe |
f879cc |
-
|
|
Torsten Duwe |
f879cc |
- val = ADF_CSR_RD(pmisc_addr, ADF_4XXX_VM2PF_MSK) | vf_mask;
|
|
Torsten Duwe |
f879cc |
- ADF_CSR_WR(pmisc_addr, ADF_4XXX_VM2PF_MSK, val);
|
|
Torsten Duwe |
f879cc |
+ ADF_CSR_WR(pmisc_addr, ADF_4XXX_VM2PF_MSK, ADF_GEN4_VF_MSK);
|
|
Torsten Duwe |
f879cc |
}
|
|
Torsten Duwe |
f879cc |
|
|
Torsten Duwe |
f879cc |
static u32 adf_gen4_disable_pending_vf2pf_interrupts(void __iomem *pmisc_addr)
|
|
Torsten Duwe |
f879cc |
@@ -144,7 +140,7 @@ void adf_gen4_init_pf_pfvf_ops(struct adf_pfvf_ops *pfvf_ops)
|
|
Torsten Duwe |
f879cc |
pfvf_ops->get_pf2vf_offset = adf_gen4_pf_get_pf2vf_offset;
|
|
Torsten Duwe |
f879cc |
pfvf_ops->get_vf2pf_offset = adf_gen4_pf_get_vf2pf_offset;
|
|
Torsten Duwe |
f879cc |
pfvf_ops->enable_vf2pf_interrupts = adf_gen4_enable_vf2pf_interrupts;
|
|
Torsten Duwe |
f879cc |
- pfvf_ops->disable_vf2pf_interrupts = adf_gen4_disable_vf2pf_interrupts;
|
|
Torsten Duwe |
f879cc |
+ pfvf_ops->disable_all_vf2pf_interrupts = adf_gen4_disable_all_vf2pf_interrupts;
|
|
Torsten Duwe |
f879cc |
pfvf_ops->disable_pending_vf2pf_interrupts = adf_gen4_disable_pending_vf2pf_interrupts;
|
|
Torsten Duwe |
f879cc |
pfvf_ops->send_msg = adf_gen4_pfvf_send;
|
|
Torsten Duwe |
f879cc |
pfvf_ops->recv_msg = adf_gen4_pfvf_recv;
|
|
Torsten Duwe |
f879cc |
diff --git a/drivers/crypto/qat/qat_common/adf_isr.c b/drivers/crypto/qat/qat_common/adf_isr.c
|
|
Torsten Duwe |
f879cc |
index 23f7fff32c642..ad9e135b8560b 100644
|
|
Torsten Duwe |
f879cc |
--- a/drivers/crypto/qat/qat_common/adf_isr.c
|
|
Torsten Duwe |
f879cc |
+++ b/drivers/crypto/qat/qat_common/adf_isr.c
|
|
Torsten Duwe |
f879cc |
@@ -66,13 +66,13 @@ void adf_enable_vf2pf_interrupts(struct adf_accel_dev *accel_dev, u32 vf_mask)
|
|
Torsten Duwe |
f879cc |
spin_unlock_irqrestore(&accel_dev->pf.vf2pf_ints_lock, flags);
|
|
Torsten Duwe |
f879cc |
}
|
|
Torsten Duwe |
f879cc |
|
|
Torsten Duwe |
f879cc |
-void adf_disable_vf2pf_interrupts(struct adf_accel_dev *accel_dev, u32 vf_mask)
|
|
Torsten Duwe |
f879cc |
+void adf_disable_all_vf2pf_interrupts(struct adf_accel_dev *accel_dev)
|
|
Torsten Duwe |
f879cc |
{
|
|
Torsten Duwe |
f879cc |
void __iomem *pmisc_addr = adf_get_pmisc_base(accel_dev);
|
|
Torsten Duwe |
f879cc |
unsigned long flags;
|
|
Torsten Duwe |
f879cc |
|
|
Torsten Duwe |
f879cc |
spin_lock_irqsave(&accel_dev->pf.vf2pf_ints_lock, flags);
|
|
Torsten Duwe |
f879cc |
- GET_PFVF_OPS(accel_dev)->disable_vf2pf_interrupts(pmisc_addr, vf_mask);
|
|
Torsten Duwe |
f879cc |
+ GET_PFVF_OPS(accel_dev)->disable_all_vf2pf_interrupts(pmisc_addr);
|
|
Torsten Duwe |
f879cc |
spin_unlock_irqrestore(&accel_dev->pf.vf2pf_ints_lock, flags);
|
|
Torsten Duwe |
f879cc |
}
|
|
Torsten Duwe |
f879cc |
|
|
Torsten Duwe |
f879cc |
diff --git a/drivers/crypto/qat/qat_common/adf_sriov.c b/drivers/crypto/qat/qat_common/adf_sriov.c
|
|
Torsten Duwe |
f879cc |
index 8e8421a46b54e..f38b2ffde146b 100644
|
|
Torsten Duwe |
f879cc |
--- a/drivers/crypto/qat/qat_common/adf_sriov.c
|
|
Torsten Duwe |
f879cc |
+++ b/drivers/crypto/qat/qat_common/adf_sriov.c
|
|
Torsten Duwe |
f879cc |
@@ -106,7 +106,7 @@ void adf_disable_sriov(struct adf_accel_dev *accel_dev)
|
|
Torsten Duwe |
f879cc |
pci_disable_sriov(accel_to_pci_dev(accel_dev));
|
|
Torsten Duwe |
f879cc |
|
|
Torsten Duwe |
f879cc |
/* Disable VF to PF interrupts */
|
|
Torsten Duwe |
f879cc |
- adf_disable_vf2pf_interrupts(accel_dev, GENMASK(31, 0));
|
|
Torsten Duwe |
f879cc |
+ adf_disable_all_vf2pf_interrupts(accel_dev);
|
|
Torsten Duwe |
f879cc |
|
|
Torsten Duwe |
f879cc |
/* Clear Valid bits in AE Thread to PCIe Function Mapping */
|
|
Torsten Duwe |
f879cc |
if (hw_data->configure_iov_threads)
|
|
Torsten Duwe |
f879cc |
diff --git a/drivers/crypto/qat/qat_dh895xcc/adf_dh895xcc_hw_data.c b/drivers/crypto/qat/qat_dh895xcc/adf_dh895xcc_hw_data.c
|
|
Torsten Duwe |
f879cc |
index 86187671893c4..cb3bdd3618fb0 100644
|
|
Torsten Duwe |
f879cc |
--- a/drivers/crypto/qat/qat_dh895xcc/adf_dh895xcc_hw_data.c
|
|
Torsten Duwe |
f879cc |
+++ b/drivers/crypto/qat/qat_dh895xcc/adf_dh895xcc_hw_data.c
|
|
Torsten Duwe |
f879cc |
@@ -126,22 +126,19 @@ static void enable_vf2pf_interrupts(void __iomem *pmisc_addr, u32 vf_mask)
|
|
Torsten Duwe |
f879cc |
}
|
|
Torsten Duwe |
f879cc |
}
|
|
Torsten Duwe |
f879cc |
|
|
Torsten Duwe |
f879cc |
-static void disable_vf2pf_interrupts(void __iomem *pmisc_addr, u32 vf_mask)
|
|
Torsten Duwe |
f879cc |
+static void disable_all_vf2pf_interrupts(void __iomem *pmisc_addr)
|
|
Torsten Duwe |
f879cc |
{
|
|
Torsten Duwe |
f879cc |
+ u32 val;
|
|
Torsten Duwe |
f879cc |
+
|
|
Torsten Duwe |
f879cc |
/* Disable VF2PF interrupts for VFs 0 through 15 per vf_mask[15:0] */
|
|
Torsten Duwe |
f879cc |
- if (vf_mask & 0xFFFF) {
|
|
Torsten Duwe |
f879cc |
- u32 val = ADF_CSR_RD(pmisc_addr, ADF_GEN2_ERRMSK3)
|
|
Torsten Duwe |
f879cc |
- | ADF_DH895XCC_ERR_MSK_VF2PF_L(vf_mask);
|
|
Torsten Duwe |
f879cc |
- ADF_CSR_WR(pmisc_addr, ADF_GEN2_ERRMSK3, val);
|
|
Torsten Duwe |
f879cc |
- }
|
|
Torsten Duwe |
f879cc |
+ val = ADF_CSR_RD(pmisc_addr, ADF_GEN2_ERRMSK3)
|
|
Torsten Duwe |
f879cc |
+ | ADF_DH895XCC_ERR_MSK_VF2PF_L(ADF_DH895XCC_VF_MSK);
|
|
Torsten Duwe |
f879cc |
+ ADF_CSR_WR(pmisc_addr, ADF_GEN2_ERRMSK3, val);
|
|
Torsten Duwe |
f879cc |
|
|
Torsten Duwe |
f879cc |
/* Disable VF2PF interrupts for VFs 16 through 31 per vf_mask[31:16] */
|
|
Torsten Duwe |
f879cc |
- if (vf_mask >> 16) {
|
|
Torsten Duwe |
f879cc |
- u32 val = ADF_CSR_RD(pmisc_addr, ADF_GEN2_ERRMSK5)
|
|
Torsten Duwe |
f879cc |
- | ADF_DH895XCC_ERR_MSK_VF2PF_U(vf_mask);
|
|
Torsten Duwe |
f879cc |
-
|
|
Torsten Duwe |
f879cc |
- ADF_CSR_WR(pmisc_addr, ADF_GEN2_ERRMSK5, val);
|
|
Torsten Duwe |
f879cc |
- }
|
|
Torsten Duwe |
f879cc |
+ val = ADF_CSR_RD(pmisc_addr, ADF_GEN2_ERRMSK5)
|
|
Torsten Duwe |
f879cc |
+ | ADF_DH895XCC_ERR_MSK_VF2PF_U(ADF_DH895XCC_VF_MSK);
|
|
Torsten Duwe |
f879cc |
+ ADF_CSR_WR(pmisc_addr, ADF_GEN2_ERRMSK5, val);
|
|
Torsten Duwe |
f879cc |
}
|
|
Torsten Duwe |
f879cc |
|
|
Torsten Duwe |
f879cc |
static u32 disable_pending_vf2pf_interrupts(void __iomem *pmisc_addr)
|
|
Torsten Duwe |
f879cc |
@@ -240,7 +237,7 @@ void adf_init_hw_data_dh895xcc(struct adf_hw_device_data *hw_data)
|
|
Torsten Duwe |
f879cc |
|
|
Torsten Duwe |
f879cc |
adf_gen2_init_pf_pfvf_ops(&hw_data->pfvf_ops);
|
|
Torsten Duwe |
f879cc |
hw_data->pfvf_ops.enable_vf2pf_interrupts = enable_vf2pf_interrupts;
|
|
Torsten Duwe |
f879cc |
- hw_data->pfvf_ops.disable_vf2pf_interrupts = disable_vf2pf_interrupts;
|
|
Torsten Duwe |
f879cc |
+ hw_data->pfvf_ops.disable_all_vf2pf_interrupts = disable_all_vf2pf_interrupts;
|
|
Torsten Duwe |
f879cc |
hw_data->pfvf_ops.disable_pending_vf2pf_interrupts = disable_pending_vf2pf_interrupts;
|
|
Torsten Duwe |
f879cc |
adf_gen2_init_hw_csr_ops(&hw_data->csr_ops);
|
|
Torsten Duwe |
f879cc |
}
|
|
Torsten Duwe |
f879cc |
--
|
|
Torsten Duwe |
f879cc |
2.35.3
|
|
Torsten Duwe |
f879cc |
|