|
Torsten Duwe |
979244 |
From 448588adcdf4a025b0b5517a5c9557b036b3cf79 Mon Sep 17 00:00:00 2001
|
|
Torsten Duwe |
979244 |
From: Marco Chiappero <marco.chiappero@intel.com>
|
|
Torsten Duwe |
979244 |
Date: Thu, 16 Dec 2021 09:13:16 +0000
|
|
Torsten Duwe |
979244 |
Subject: [PATCH] crypto: qat - add the adf_get_pmisc_base() helper function
|
|
Torsten Duwe |
979244 |
Git-commit: 448588adcdf4a025b0b5517a5c9557b036b3cf79
|
|
Torsten Duwe |
979244 |
Patch-mainline: v5.17-rc1
|
|
Torsten Duwe |
979244 |
References: jsc#PED-1073
|
|
Torsten Duwe |
979244 |
|
|
Torsten Duwe |
979244 |
Add and use the new helper function adf_get_pmisc_base() where convenient.
|
|
Torsten Duwe |
979244 |
|
|
Torsten Duwe |
979244 |
Also:
|
|
Torsten Duwe |
979244 |
- remove no longer shared variables
|
|
Torsten Duwe |
979244 |
- leverage other utilities, such as GET_PFVF_OPS(), as a consequence
|
|
Torsten Duwe |
979244 |
- consistently use the "pmisc_addr" name for the returned value of this
|
|
Torsten Duwe |
979244 |
new helper
|
|
Torsten Duwe |
979244 |
|
|
Torsten Duwe |
979244 |
Signed-off-by: Marco Chiappero <marco.chiappero@intel.com>
|
|
Torsten Duwe |
979244 |
Co-developed-by: Giovanni Cabiddu <giovanni.cabiddu@intel.com>
|
|
Torsten Duwe |
979244 |
Signed-off-by: Giovanni Cabiddu <giovanni.cabiddu@intel.com>
|
|
Torsten Duwe |
979244 |
Reviewed-by: Fiona Trahe <fiona.trahe@intel.com>
|
|
Torsten Duwe |
979244 |
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
|
|
Torsten Duwe |
979244 |
Signed-off-by: Torsten Duwe <duwe@suse.de>
|
|
Torsten Duwe |
979244 |
|
|
Torsten Duwe |
979244 |
---
|
|
Torsten Duwe |
979244 |
drivers/crypto/qat/qat_common/adf_admin.c | 10 ++---
|
|
Torsten Duwe |
979244 |
.../crypto/qat/qat_common/adf_common_drv.h | 11 +++++
|
|
Torsten Duwe |
979244 |
.../crypto/qat/qat_common/adf_gen2_hw_data.c | 39 ++++++------------
|
|
Torsten Duwe |
979244 |
drivers/crypto/qat/qat_common/adf_gen2_pfvf.c | 24 ++++-------
|
|
Torsten Duwe |
979244 |
.../crypto/qat/qat_common/adf_gen4_hw_data.c | 9 +---
|
|
Torsten Duwe |
979244 |
drivers/crypto/qat/qat_common/adf_isr.c | 28 ++++---------
|
|
Torsten Duwe |
979244 |
drivers/crypto/qat/qat_common/adf_vf_isr.c | 14 ++-----
|
|
Torsten Duwe |
979244 |
drivers/crypto/qat/qat_common/qat_hal.c | 41 +++++--------------
|
|
Torsten Duwe |
979244 |
8 files changed, 61 insertions(+), 115 deletions(-)
|
|
Torsten Duwe |
979244 |
|
|
Torsten Duwe |
979244 |
diff --git a/drivers/crypto/qat/qat_common/adf_admin.c b/drivers/crypto/qat/qat_common/adf_admin.c
|
|
Torsten Duwe |
979244 |
index c381b89d548d1..498eb6f690e37 100644
|
|
Torsten Duwe |
979244 |
--- a/drivers/crypto/qat/qat_common/adf_admin.c
|
|
Torsten Duwe |
979244 |
+++ b/drivers/crypto/qat/qat_common/adf_admin.c
|
|
Torsten Duwe |
979244 |
@@ -255,9 +255,7 @@ int adf_init_admin_comms(struct adf_accel_dev *accel_dev)
|
|
Torsten Duwe |
979244 |
{
|
|
Torsten Duwe |
979244 |
struct adf_admin_comms *admin;
|
|
Torsten Duwe |
979244 |
struct adf_hw_device_data *hw_data = accel_dev->hw_device;
|
|
Torsten Duwe |
979244 |
- struct adf_bar *pmisc =
|
|
Torsten Duwe |
979244 |
- &GET_BARS(accel_dev)[hw_data->get_misc_bar_id(hw_data)];
|
|
Torsten Duwe |
979244 |
- void __iomem *csr = pmisc->virt_addr;
|
|
Torsten Duwe |
979244 |
+ void __iomem *pmisc_addr = adf_get_pmisc_base(accel_dev);
|
|
Torsten Duwe |
979244 |
struct admin_info admin_csrs_info;
|
|
Torsten Duwe |
979244 |
u32 mailbox_offset, adminmsg_u, adminmsg_l;
|
|
Torsten Duwe |
979244 |
void __iomem *mailbox;
|
|
Torsten Duwe |
979244 |
@@ -291,13 +289,13 @@ int adf_init_admin_comms(struct adf_accel_dev *accel_dev)
|
|
Torsten Duwe |
979244 |
hw_data->get_admin_info(&admin_csrs_info);
|
|
Torsten Duwe |
979244 |
|
|
Torsten Duwe |
979244 |
mailbox_offset = admin_csrs_info.mailbox_offset;
|
|
Torsten Duwe |
979244 |
- mailbox = csr + mailbox_offset;
|
|
Torsten Duwe |
979244 |
+ mailbox = pmisc_addr + mailbox_offset;
|
|
Torsten Duwe |
979244 |
adminmsg_u = admin_csrs_info.admin_msg_ur;
|
|
Torsten Duwe |
979244 |
adminmsg_l = admin_csrs_info.admin_msg_lr;
|
|
Torsten Duwe |
979244 |
|
|
Torsten Duwe |
979244 |
reg_val = (u64)admin->phy_addr;
|
|
Torsten Duwe |
979244 |
- ADF_CSR_WR(csr, adminmsg_u, upper_32_bits(reg_val));
|
|
Torsten Duwe |
979244 |
- ADF_CSR_WR(csr, adminmsg_l, lower_32_bits(reg_val));
|
|
Torsten Duwe |
979244 |
+ ADF_CSR_WR(pmisc_addr, adminmsg_u, upper_32_bits(reg_val));
|
|
Torsten Duwe |
979244 |
+ ADF_CSR_WR(pmisc_addr, adminmsg_l, lower_32_bits(reg_val));
|
|
Torsten Duwe |
979244 |
|
|
Torsten Duwe |
979244 |
mutex_init(&admin->lock);
|
|
Torsten Duwe |
979244 |
admin->mailbox_addr = mailbox;
|
|
Torsten Duwe |
979244 |
diff --git a/drivers/crypto/qat/qat_common/adf_common_drv.h b/drivers/crypto/qat/qat_common/adf_common_drv.h
|
|
Torsten Duwe |
979244 |
index 2d8b720855054..5212891344a90 100644
|
|
Torsten Duwe |
979244 |
--- a/drivers/crypto/qat/qat_common/adf_common_drv.h
|
|
Torsten Duwe |
979244 |
+++ b/drivers/crypto/qat/qat_common/adf_common_drv.h
|
|
Torsten Duwe |
979244 |
@@ -243,4 +243,15 @@ static inline void adf_flush_vf_wq(struct adf_accel_dev *accel_dev)
|
|
Torsten Duwe |
979244 |
}
|
|
Torsten Duwe |
979244 |
|
|
Torsten Duwe |
979244 |
#endif
|
|
Torsten Duwe |
979244 |
+
|
|
Torsten Duwe |
979244 |
+static inline void __iomem *adf_get_pmisc_base(struct adf_accel_dev *accel_dev)
|
|
Torsten Duwe |
979244 |
+{
|
|
Torsten Duwe |
979244 |
+ struct adf_hw_device_data *hw_data = accel_dev->hw_device;
|
|
Torsten Duwe |
979244 |
+ struct adf_bar *pmisc;
|
|
Torsten Duwe |
979244 |
+
|
|
Torsten Duwe |
979244 |
+ pmisc = &GET_BARS(accel_dev)[hw_data->get_misc_bar_id(hw_data)];
|
|
Torsten Duwe |
979244 |
+
|
|
Torsten Duwe |
979244 |
+ return pmisc->virt_addr;
|
|
Torsten Duwe |
979244 |
+}
|
|
Torsten Duwe |
979244 |
+
|
|
Torsten Duwe |
979244 |
#endif
|
|
Torsten Duwe |
979244 |
diff --git a/drivers/crypto/qat/qat_common/adf_gen2_hw_data.c b/drivers/crypto/qat/qat_common/adf_gen2_hw_data.c
|
|
Torsten Duwe |
979244 |
index 688dd6f53b0bd..57035b7dd4b20 100644
|
|
Torsten Duwe |
979244 |
--- a/drivers/crypto/qat/qat_common/adf_gen2_hw_data.c
|
|
Torsten Duwe |
979244 |
+++ b/drivers/crypto/qat/qat_common/adf_gen2_hw_data.c
|
|
Torsten Duwe |
979244 |
@@ -1,5 +1,6 @@
|
|
Torsten Duwe |
979244 |
// SPDX-License-Identifier: (BSD-3-Clause OR GPL-2.0-only)
|
|
Torsten Duwe |
979244 |
/* Copyright(c) 2020 Intel Corporation */
|
|
Torsten Duwe |
979244 |
+#include "adf_common_drv.h"
|
|
Torsten Duwe |
979244 |
#include "adf_gen2_hw_data.h"
|
|
Torsten Duwe |
979244 |
#include "icp_qat_hw.h"
|
|
Torsten Duwe |
979244 |
#include <linux/pci.h>
|
|
Torsten Duwe |
979244 |
@@ -25,31 +26,29 @@ EXPORT_SYMBOL_GPL(adf_gen2_get_num_aes);
|
|
Torsten Duwe |
979244 |
void adf_gen2_enable_error_correction(struct adf_accel_dev *accel_dev)
|
|
Torsten Duwe |
979244 |
{
|
|
Torsten Duwe |
979244 |
struct adf_hw_device_data *hw_data = accel_dev->hw_device;
|
|
Torsten Duwe |
979244 |
- struct adf_bar *misc_bar = &GET_BARS(accel_dev)
|
|
Torsten Duwe |
979244 |
- [hw_data->get_misc_bar_id(hw_data)];
|
|
Torsten Duwe |
979244 |
+ void __iomem *pmisc_addr = adf_get_pmisc_base(accel_dev);
|
|
Torsten Duwe |
979244 |
unsigned long accel_mask = hw_data->accel_mask;
|
|
Torsten Duwe |
979244 |
unsigned long ae_mask = hw_data->ae_mask;
|
|
Torsten Duwe |
979244 |
- void __iomem *csr = misc_bar->virt_addr;
|
|
Torsten Duwe |
979244 |
unsigned int val, i;
|
|
Torsten Duwe |
979244 |
|
|
Torsten Duwe |
979244 |
/* Enable Accel Engine error detection & correction */
|
|
Torsten Duwe |
979244 |
for_each_set_bit(i, &ae_mask, hw_data->num_engines) {
|
|
Torsten Duwe |
979244 |
- val = ADF_CSR_RD(csr, ADF_GEN2_AE_CTX_ENABLES(i));
|
|
Torsten Duwe |
979244 |
+ val = ADF_CSR_RD(pmisc_addr, ADF_GEN2_AE_CTX_ENABLES(i));
|
|
Torsten Duwe |
979244 |
val |= ADF_GEN2_ENABLE_AE_ECC_ERR;
|
|
Torsten Duwe |
979244 |
- ADF_CSR_WR(csr, ADF_GEN2_AE_CTX_ENABLES(i), val);
|
|
Torsten Duwe |
979244 |
- val = ADF_CSR_RD(csr, ADF_GEN2_AE_MISC_CONTROL(i));
|
|
Torsten Duwe |
979244 |
+ ADF_CSR_WR(pmisc_addr, ADF_GEN2_AE_CTX_ENABLES(i), val);
|
|
Torsten Duwe |
979244 |
+ val = ADF_CSR_RD(pmisc_addr, ADF_GEN2_AE_MISC_CONTROL(i));
|
|
Torsten Duwe |
979244 |
val |= ADF_GEN2_ENABLE_AE_ECC_PARITY_CORR;
|
|
Torsten Duwe |
979244 |
- ADF_CSR_WR(csr, ADF_GEN2_AE_MISC_CONTROL(i), val);
|
|
Torsten Duwe |
979244 |
+ ADF_CSR_WR(pmisc_addr, ADF_GEN2_AE_MISC_CONTROL(i), val);
|
|
Torsten Duwe |
979244 |
}
|
|
Torsten Duwe |
979244 |
|
|
Torsten Duwe |
979244 |
/* Enable shared memory error detection & correction */
|
|
Torsten Duwe |
979244 |
for_each_set_bit(i, &accel_mask, hw_data->num_accel) {
|
|
Torsten Duwe |
979244 |
- val = ADF_CSR_RD(csr, ADF_GEN2_UERRSSMSH(i));
|
|
Torsten Duwe |
979244 |
+ val = ADF_CSR_RD(pmisc_addr, ADF_GEN2_UERRSSMSH(i));
|
|
Torsten Duwe |
979244 |
val |= ADF_GEN2_ERRSSMSH_EN;
|
|
Torsten Duwe |
979244 |
- ADF_CSR_WR(csr, ADF_GEN2_UERRSSMSH(i), val);
|
|
Torsten Duwe |
979244 |
- val = ADF_CSR_RD(csr, ADF_GEN2_CERRSSMSH(i));
|
|
Torsten Duwe |
979244 |
+ ADF_CSR_WR(pmisc_addr, ADF_GEN2_UERRSSMSH(i), val);
|
|
Torsten Duwe |
979244 |
+ val = ADF_CSR_RD(pmisc_addr, ADF_GEN2_CERRSSMSH(i));
|
|
Torsten Duwe |
979244 |
val |= ADF_GEN2_ERRSSMSH_EN;
|
|
Torsten Duwe |
979244 |
- ADF_CSR_WR(csr, ADF_GEN2_CERRSSMSH(i), val);
|
|
Torsten Duwe |
979244 |
+ ADF_CSR_WR(pmisc_addr, ADF_GEN2_CERRSSMSH(i), val);
|
|
Torsten Duwe |
979244 |
}
|
|
Torsten Duwe |
979244 |
}
|
|
Torsten Duwe |
979244 |
EXPORT_SYMBOL_GPL(adf_gen2_enable_error_correction);
|
|
Torsten Duwe |
979244 |
@@ -57,15 +56,9 @@ EXPORT_SYMBOL_GPL(adf_gen2_enable_error_correction);
|
|
Torsten Duwe |
979244 |
void adf_gen2_cfg_iov_thds(struct adf_accel_dev *accel_dev, bool enable,
|
|
Torsten Duwe |
979244 |
int num_a_regs, int num_b_regs)
|
|
Torsten Duwe |
979244 |
{
|
|
Torsten Duwe |
979244 |
- struct adf_hw_device_data *hw_data = accel_dev->hw_device;
|
|
Torsten Duwe |
979244 |
- void __iomem *pmisc_addr;
|
|
Torsten Duwe |
979244 |
- struct adf_bar *pmisc;
|
|
Torsten Duwe |
979244 |
- int pmisc_id, i;
|
|
Torsten Duwe |
979244 |
+ void __iomem *pmisc_addr = adf_get_pmisc_base(accel_dev);
|
|
Torsten Duwe |
979244 |
u32 reg;
|
|
Torsten Duwe |
979244 |
-
|
|
Torsten Duwe |
979244 |
- pmisc_id = hw_data->get_misc_bar_id(hw_data);
|
|
Torsten Duwe |
979244 |
- pmisc = &GET_BARS(accel_dev)[pmisc_id];
|
|
Torsten Duwe |
979244 |
- pmisc_addr = pmisc->virt_addr;
|
|
Torsten Duwe |
979244 |
+ int i;
|
|
Torsten Duwe |
979244 |
|
|
Torsten Duwe |
979244 |
/* Set/Unset Valid bit in AE Thread to PCIe Function Mapping Group A */
|
|
Torsten Duwe |
979244 |
for (i = 0; i < num_a_regs; i++) {
|
|
Torsten Duwe |
979244 |
@@ -245,18 +238,12 @@ EXPORT_SYMBOL_GPL(adf_gen2_get_accel_cap);
|
|
Torsten Duwe |
979244 |
void adf_gen2_set_ssm_wdtimer(struct adf_accel_dev *accel_dev)
|
|
Torsten Duwe |
979244 |
{
|
|
Torsten Duwe |
979244 |
struct adf_hw_device_data *hw_data = accel_dev->hw_device;
|
|
Torsten Duwe |
979244 |
+ void __iomem *pmisc_addr = adf_get_pmisc_base(accel_dev);
|
|
Torsten Duwe |
979244 |
u32 timer_val_pke = ADF_SSM_WDT_PKE_DEFAULT_VALUE;
|
|
Torsten Duwe |
979244 |
u32 timer_val = ADF_SSM_WDT_DEFAULT_VALUE;
|
|
Torsten Duwe |
979244 |
unsigned long accel_mask = hw_data->accel_mask;
|
|
Torsten Duwe |
979244 |
- void __iomem *pmisc_addr;
|
|
Torsten Duwe |
979244 |
- struct adf_bar *pmisc;
|
|
Torsten Duwe |
979244 |
- int pmisc_id;
|
|
Torsten Duwe |
979244 |
u32 i = 0;
|
|
Torsten Duwe |
979244 |
|
|
Torsten Duwe |
979244 |
- pmisc_id = hw_data->get_misc_bar_id(hw_data);
|
|
Torsten Duwe |
979244 |
- pmisc = &GET_BARS(accel_dev)[pmisc_id];
|
|
Torsten Duwe |
979244 |
- pmisc_addr = pmisc->virt_addr;
|
|
Torsten Duwe |
979244 |
-
|
|
Torsten Duwe |
979244 |
/* Configures WDT timers */
|
|
Torsten Duwe |
979244 |
for_each_set_bit(i, &accel_mask, hw_data->num_accel) {
|
|
Torsten Duwe |
979244 |
/* Enable WDT for sym and dc */
|
|
Torsten Duwe |
979244 |
diff --git a/drivers/crypto/qat/qat_common/adf_gen2_pfvf.c b/drivers/crypto/qat/qat_common/adf_gen2_pfvf.c
|
|
Torsten Duwe |
979244 |
index 099e39808d139..5ac69ece34a85 100644
|
|
Torsten Duwe |
979244 |
--- a/drivers/crypto/qat/qat_common/adf_gen2_pfvf.c
|
|
Torsten Duwe |
979244 |
+++ b/drivers/crypto/qat/qat_common/adf_gen2_pfvf.c
|
|
Torsten Duwe |
979244 |
@@ -75,15 +75,12 @@ static void adf_gen2_disable_vf2pf_interrupts(void __iomem *pmisc_addr,
|
|
Torsten Duwe |
979244 |
static int adf_gen2_pfvf_send(struct adf_accel_dev *accel_dev, u32 msg,
|
|
Torsten Duwe |
979244 |
u8 vf_nr)
|
|
Torsten Duwe |
979244 |
{
|
|
Torsten Duwe |
979244 |
- struct adf_accel_pci *pci_info = &accel_dev->accel_pci_dev;
|
|
Torsten Duwe |
979244 |
- struct adf_hw_device_data *hw_data = accel_dev->hw_device;
|
|
Torsten Duwe |
979244 |
- void __iomem *pmisc_bar_addr =
|
|
Torsten Duwe |
979244 |
- pci_info->pci_bars[hw_data->get_misc_bar_id(hw_data)].virt_addr;
|
|
Torsten Duwe |
979244 |
- u32 val, pfvf_offset, count = 0;
|
|
Torsten Duwe |
979244 |
- u32 local_in_use_mask, local_in_use_pattern;
|
|
Torsten Duwe |
979244 |
+ void __iomem *pmisc_addr = adf_get_pmisc_base(accel_dev);
|
|
Torsten Duwe |
979244 |
+ unsigned int retries = ADF_PFVF_MSG_MAX_RETRIES;
|
|
Torsten Duwe |
979244 |
u32 remote_in_use_mask, remote_in_use_pattern;
|
|
Torsten Duwe |
979244 |
+ u32 local_in_use_mask, local_in_use_pattern;
|
|
Torsten Duwe |
979244 |
+ u32 val, pfvf_offset, count = 0;
|
|
Torsten Duwe |
979244 |
struct mutex *lock; /* lock preventing concurrent acces of CSR */
|
|
Torsten Duwe |
979244 |
- unsigned int retries = ADF_PFVF_MSG_MAX_RETRIES;
|
|
Torsten Duwe |
979244 |
u32 int_bit;
|
|
Torsten Duwe |
979244 |
int ret;
|
|
Torsten Duwe |
979244 |
|
|
Torsten Duwe |
979244 |
@@ -114,7 +111,7 @@ start:
|
|
Torsten Duwe |
979244 |
ret = 0;
|
|
Torsten Duwe |
979244 |
|
|
Torsten Duwe |
979244 |
/* Check if the PFVF CSR is in use by remote function */
|
|
Torsten Duwe |
979244 |
- val = ADF_CSR_RD(pmisc_bar_addr, pfvf_offset);
|
|
Torsten Duwe |
979244 |
+ val = ADF_CSR_RD(pmisc_addr, pfvf_offset);
|
|
Torsten Duwe |
979244 |
if ((val & remote_in_use_mask) == remote_in_use_pattern) {
|
|
Torsten Duwe |
979244 |
dev_dbg(&GET_DEV(accel_dev),
|
|
Torsten Duwe |
979244 |
"PFVF CSR in use by remote function\n");
|
|
Torsten Duwe |
979244 |
@@ -122,12 +119,12 @@ start:
|
|
Torsten Duwe |
979244 |
}
|
|
Torsten Duwe |
979244 |
|
|
Torsten Duwe |
979244 |
/* Attempt to get ownership of the PFVF CSR */
|
|
Torsten Duwe |
979244 |
- ADF_CSR_WR(pmisc_bar_addr, pfvf_offset, msg | int_bit);
|
|
Torsten Duwe |
979244 |
+ ADF_CSR_WR(pmisc_addr, pfvf_offset, msg | int_bit);
|
|
Torsten Duwe |
979244 |
|
|
Torsten Duwe |
979244 |
/* Wait for confirmation from remote func it received the message */
|
|
Torsten Duwe |
979244 |
do {
|
|
Torsten Duwe |
979244 |
msleep(ADF_PFVF_MSG_ACK_DELAY);
|
|
Torsten Duwe |
979244 |
- val = ADF_CSR_RD(pmisc_bar_addr, pfvf_offset);
|
|
Torsten Duwe |
979244 |
+ val = ADF_CSR_RD(pmisc_addr, pfvf_offset);
|
|
Torsten Duwe |
979244 |
} while ((val & int_bit) && (count++ < ADF_PFVF_MSG_ACK_MAX_RETRY));
|
|
Torsten Duwe |
979244 |
|
|
Torsten Duwe |
979244 |
if (val & int_bit) {
|
|
Torsten Duwe |
979244 |
@@ -143,7 +140,7 @@ start:
|
|
Torsten Duwe |
979244 |
}
|
|
Torsten Duwe |
979244 |
|
|
Torsten Duwe |
979244 |
/* Finished with the PFVF CSR; relinquish it and leave msg in CSR */
|
|
Torsten Duwe |
979244 |
- ADF_CSR_WR(pmisc_bar_addr, pfvf_offset, val & ~local_in_use_mask);
|
|
Torsten Duwe |
979244 |
+ ADF_CSR_WR(pmisc_addr, pfvf_offset, val & ~local_in_use_mask);
|
|
Torsten Duwe |
979244 |
out:
|
|
Torsten Duwe |
979244 |
mutex_unlock(lock);
|
|
Torsten Duwe |
979244 |
return ret;
|
|
Torsten Duwe |
979244 |
@@ -160,10 +157,7 @@ retry:
|
|
Torsten Duwe |
979244 |
|
|
Torsten Duwe |
979244 |
static u32 adf_gen2_pfvf_recv(struct adf_accel_dev *accel_dev, u8 vf_nr)
|
|
Torsten Duwe |
979244 |
{
|
|
Torsten Duwe |
979244 |
- struct adf_accel_pci *pci_info = &accel_dev->accel_pci_dev;
|
|
Torsten Duwe |
979244 |
- struct adf_hw_device_data *hw_data = accel_dev->hw_device;
|
|
Torsten Duwe |
979244 |
- void __iomem *pmisc_addr =
|
|
Torsten Duwe |
979244 |
- pci_info->pci_bars[hw_data->get_misc_bar_id(hw_data)].virt_addr;
|
|
Torsten Duwe |
979244 |
+ void __iomem *pmisc_addr = adf_get_pmisc_base(accel_dev);
|
|
Torsten Duwe |
979244 |
u32 pfvf_offset;
|
|
Torsten Duwe |
979244 |
u32 msg_origin;
|
|
Torsten Duwe |
979244 |
u32 int_bit;
|
|
Torsten Duwe |
979244 |
diff --git a/drivers/crypto/qat/qat_common/adf_gen4_hw_data.c b/drivers/crypto/qat/qat_common/adf_gen4_hw_data.c
|
|
Torsten Duwe |
979244 |
index c7808ff2aba1e..3148a62938fdd 100644
|
|
Torsten Duwe |
979244 |
--- a/drivers/crypto/qat/qat_common/adf_gen4_hw_data.c
|
|
Torsten Duwe |
979244 |
+++ b/drivers/crypto/qat/qat_common/adf_gen4_hw_data.c
|
|
Torsten Duwe |
979244 |
@@ -111,20 +111,13 @@ static inline void adf_gen4_unpack_ssm_wdtimer(u64 value, u32 *upper,
|
|
Torsten Duwe |
979244 |
|
|
Torsten Duwe |
979244 |
void adf_gen4_set_ssm_wdtimer(struct adf_accel_dev *accel_dev)
|
|
Torsten Duwe |
979244 |
{
|
|
Torsten Duwe |
979244 |
- struct adf_hw_device_data *hw_data = accel_dev->hw_device;
|
|
Torsten Duwe |
979244 |
+ void __iomem *pmisc_addr = adf_get_pmisc_base(accel_dev);
|
|
Torsten Duwe |
979244 |
u64 timer_val_pke = ADF_SSM_WDT_PKE_DEFAULT_VALUE;
|
|
Torsten Duwe |
979244 |
u64 timer_val = ADF_SSM_WDT_DEFAULT_VALUE;
|
|
Torsten Duwe |
979244 |
u32 ssm_wdt_pke_high = 0;
|
|
Torsten Duwe |
979244 |
u32 ssm_wdt_pke_low = 0;
|
|
Torsten Duwe |
979244 |
u32 ssm_wdt_high = 0;
|
|
Torsten Duwe |
979244 |
u32 ssm_wdt_low = 0;
|
|
Torsten Duwe |
979244 |
- void __iomem *pmisc_addr;
|
|
Torsten Duwe |
979244 |
- struct adf_bar *pmisc;
|
|
Torsten Duwe |
979244 |
- int pmisc_id;
|
|
Torsten Duwe |
979244 |
-
|
|
Torsten Duwe |
979244 |
- pmisc_id = hw_data->get_misc_bar_id(hw_data);
|
|
Torsten Duwe |
979244 |
- pmisc = &GET_BARS(accel_dev)[pmisc_id];
|
|
Torsten Duwe |
979244 |
- pmisc_addr = pmisc->virt_addr;
|
|
Torsten Duwe |
979244 |
|
|
Torsten Duwe |
979244 |
/* Convert 64bit WDT timer value into 32bit values for
|
|
Torsten Duwe |
979244 |
* mmio write to 32bit CSRs.
|
|
Torsten Duwe |
979244 |
diff --git a/drivers/crypto/qat/qat_common/adf_isr.c b/drivers/crypto/qat/qat_common/adf_isr.c
|
|
Torsten Duwe |
979244 |
index 522e0c10d9b9b..4ca482aa69f7c 100644
|
|
Torsten Duwe |
979244 |
--- a/drivers/crypto/qat/qat_common/adf_isr.c
|
|
Torsten Duwe |
979244 |
+++ b/drivers/crypto/qat/qat_common/adf_isr.c
|
|
Torsten Duwe |
979244 |
@@ -57,54 +57,42 @@ static irqreturn_t adf_msix_isr_bundle(int irq, void *bank_ptr)
|
|
Torsten Duwe |
979244 |
#ifdef CONFIG_PCI_IOV
|
|
Torsten Duwe |
979244 |
void adf_enable_vf2pf_interrupts(struct adf_accel_dev *accel_dev, u32 vf_mask)
|
|
Torsten Duwe |
979244 |
{
|
|
Torsten Duwe |
979244 |
- struct adf_hw_device_data *hw_data = accel_dev->hw_device;
|
|
Torsten Duwe |
979244 |
- u32 misc_bar_id = hw_data->get_misc_bar_id(hw_data);
|
|
Torsten Duwe |
979244 |
- struct adf_bar *pmisc = &GET_BARS(accel_dev)[misc_bar_id];
|
|
Torsten Duwe |
979244 |
- void __iomem *pmisc_addr = pmisc->virt_addr;
|
|
Torsten Duwe |
979244 |
+ void __iomem *pmisc_addr = adf_get_pmisc_base(accel_dev);
|
|
Torsten Duwe |
979244 |
unsigned long flags;
|
|
Torsten Duwe |
979244 |
|
|
Torsten Duwe |
979244 |
spin_lock_irqsave(&accel_dev->pf.vf2pf_ints_lock, flags);
|
|
Torsten Duwe |
979244 |
- hw_data->pfvf_ops.enable_vf2pf_interrupts(pmisc_addr, vf_mask);
|
|
Torsten Duwe |
979244 |
+ GET_PFVF_OPS(accel_dev)->enable_vf2pf_interrupts(pmisc_addr, vf_mask);
|
|
Torsten Duwe |
979244 |
spin_unlock_irqrestore(&accel_dev->pf.vf2pf_ints_lock, flags);
|
|
Torsten Duwe |
979244 |
}
|
|
Torsten Duwe |
979244 |
|
|
Torsten Duwe |
979244 |
void adf_disable_vf2pf_interrupts(struct adf_accel_dev *accel_dev, u32 vf_mask)
|
|
Torsten Duwe |
979244 |
{
|
|
Torsten Duwe |
979244 |
- struct adf_hw_device_data *hw_data = accel_dev->hw_device;
|
|
Torsten Duwe |
979244 |
- u32 misc_bar_id = hw_data->get_misc_bar_id(hw_data);
|
|
Torsten Duwe |
979244 |
- struct adf_bar *pmisc = &GET_BARS(accel_dev)[misc_bar_id];
|
|
Torsten Duwe |
979244 |
- void __iomem *pmisc_addr = pmisc->virt_addr;
|
|
Torsten Duwe |
979244 |
+ void __iomem *pmisc_addr = adf_get_pmisc_base(accel_dev);
|
|
Torsten Duwe |
979244 |
unsigned long flags;
|
|
Torsten Duwe |
979244 |
|
|
Torsten Duwe |
979244 |
spin_lock_irqsave(&accel_dev->pf.vf2pf_ints_lock, flags);
|
|
Torsten Duwe |
979244 |
- hw_data->pfvf_ops.disable_vf2pf_interrupts(pmisc_addr, vf_mask);
|
|
Torsten Duwe |
979244 |
+ GET_PFVF_OPS(accel_dev)->disable_vf2pf_interrupts(pmisc_addr, vf_mask);
|
|
Torsten Duwe |
979244 |
spin_unlock_irqrestore(&accel_dev->pf.vf2pf_ints_lock, flags);
|
|
Torsten Duwe |
979244 |
}
|
|
Torsten Duwe |
979244 |
|
|
Torsten Duwe |
979244 |
static void adf_disable_vf2pf_interrupts_irq(struct adf_accel_dev *accel_dev,
|
|
Torsten Duwe |
979244 |
u32 vf_mask)
|
|
Torsten Duwe |
979244 |
{
|
|
Torsten Duwe |
979244 |
- struct adf_hw_device_data *hw_data = accel_dev->hw_device;
|
|
Torsten Duwe |
979244 |
- u32 misc_bar_id = hw_data->get_misc_bar_id(hw_data);
|
|
Torsten Duwe |
979244 |
- struct adf_bar *pmisc = &GET_BARS(accel_dev)[misc_bar_id];
|
|
Torsten Duwe |
979244 |
- void __iomem *pmisc_addr = pmisc->virt_addr;
|
|
Torsten Duwe |
979244 |
+ void __iomem *pmisc_addr = adf_get_pmisc_base(accel_dev);
|
|
Torsten Duwe |
979244 |
|
|
Torsten Duwe |
979244 |
spin_lock(&accel_dev->pf.vf2pf_ints_lock);
|
|
Torsten Duwe |
979244 |
- hw_data->pfvf_ops.disable_vf2pf_interrupts(pmisc_addr, vf_mask);
|
|
Torsten Duwe |
979244 |
+ GET_PFVF_OPS(accel_dev)->disable_vf2pf_interrupts(pmisc_addr, vf_mask);
|
|
Torsten Duwe |
979244 |
spin_unlock(&accel_dev->pf.vf2pf_ints_lock);
|
|
Torsten Duwe |
979244 |
}
|
|
Torsten Duwe |
979244 |
|
|
Torsten Duwe |
979244 |
static bool adf_handle_vf2pf_int(struct adf_accel_dev *accel_dev)
|
|
Torsten Duwe |
979244 |
{
|
|
Torsten Duwe |
979244 |
- struct adf_hw_device_data *hw_data = accel_dev->hw_device;
|
|
Torsten Duwe |
979244 |
- int bar_id = hw_data->get_misc_bar_id(hw_data);
|
|
Torsten Duwe |
979244 |
- struct adf_bar *pmisc = &GET_BARS(accel_dev)[bar_id];
|
|
Torsten Duwe |
979244 |
- void __iomem *pmisc_addr = pmisc->virt_addr;
|
|
Torsten Duwe |
979244 |
+ void __iomem *pmisc_addr = adf_get_pmisc_base(accel_dev);
|
|
Torsten Duwe |
979244 |
bool irq_handled = false;
|
|
Torsten Duwe |
979244 |
unsigned long vf_mask;
|
|
Torsten Duwe |
979244 |
|
|
Torsten Duwe |
979244 |
/* Get the interrupt sources triggered by VFs */
|
|
Torsten Duwe |
979244 |
- vf_mask = hw_data->pfvf_ops.get_vf2pf_sources(pmisc_addr);
|
|
Torsten Duwe |
979244 |
+ vf_mask = GET_PFVF_OPS(accel_dev)->get_vf2pf_sources(pmisc_addr);
|
|
Torsten Duwe |
979244 |
|
|
Torsten Duwe |
979244 |
if (vf_mask) {
|
|
Torsten Duwe |
979244 |
struct adf_accel_vf_info *vf_info;
|
|
Torsten Duwe |
979244 |
diff --git a/drivers/crypto/qat/qat_common/adf_vf_isr.c b/drivers/crypto/qat/qat_common/adf_vf_isr.c
|
|
Torsten Duwe |
979244 |
index fe094178f065e..86c3bd0c9c2bb 100644
|
|
Torsten Duwe |
979244 |
--- a/drivers/crypto/qat/qat_common/adf_vf_isr.c
|
|
Torsten Duwe |
979244 |
+++ b/drivers/crypto/qat/qat_common/adf_vf_isr.c
|
|
Torsten Duwe |
979244 |
@@ -30,22 +30,16 @@ struct adf_vf_stop_data {
|
|
Torsten Duwe |
979244 |
|
|
Torsten Duwe |
979244 |
void adf_enable_pf2vf_interrupts(struct adf_accel_dev *accel_dev)
|
|
Torsten Duwe |
979244 |
{
|
|
Torsten Duwe |
979244 |
- struct adf_accel_pci *pci_info = &accel_dev->accel_pci_dev;
|
|
Torsten Duwe |
979244 |
- struct adf_hw_device_data *hw_data = accel_dev->hw_device;
|
|
Torsten Duwe |
979244 |
- void __iomem *pmisc_bar_addr =
|
|
Torsten Duwe |
979244 |
- pci_info->pci_bars[hw_data->get_misc_bar_id(hw_data)].virt_addr;
|
|
Torsten Duwe |
979244 |
+ void __iomem *pmisc_addr = adf_get_pmisc_base(accel_dev);
|
|
Torsten Duwe |
979244 |
|
|
Torsten Duwe |
979244 |
- ADF_CSR_WR(pmisc_bar_addr, ADF_VINTMSK_OFFSET, 0x0);
|
|
Torsten Duwe |
979244 |
+ ADF_CSR_WR(pmisc_addr, ADF_VINTMSK_OFFSET, 0x0);
|
|
Torsten Duwe |
979244 |
}
|
|
Torsten Duwe |
979244 |
|
|
Torsten Duwe |
979244 |
void adf_disable_pf2vf_interrupts(struct adf_accel_dev *accel_dev)
|
|
Torsten Duwe |
979244 |
{
|
|
Torsten Duwe |
979244 |
- struct adf_accel_pci *pci_info = &accel_dev->accel_pci_dev;
|
|
Torsten Duwe |
979244 |
- struct adf_hw_device_data *hw_data = accel_dev->hw_device;
|
|
Torsten Duwe |
979244 |
- void __iomem *pmisc_bar_addr =
|
|
Torsten Duwe |
979244 |
- pci_info->pci_bars[hw_data->get_misc_bar_id(hw_data)].virt_addr;
|
|
Torsten Duwe |
979244 |
+ void __iomem *pmisc_addr = adf_get_pmisc_base(accel_dev);
|
|
Torsten Duwe |
979244 |
|
|
Torsten Duwe |
979244 |
- ADF_CSR_WR(pmisc_bar_addr, ADF_VINTMSK_OFFSET, 0x2);
|
|
Torsten Duwe |
979244 |
+ ADF_CSR_WR(pmisc_addr, ADF_VINTMSK_OFFSET, 0x2);
|
|
Torsten Duwe |
979244 |
}
|
|
Torsten Duwe |
979244 |
EXPORT_SYMBOL_GPL(adf_disable_pf2vf_interrupts);
|
|
Torsten Duwe |
979244 |
|
|
Torsten Duwe |
979244 |
diff --git a/drivers/crypto/qat/qat_common/qat_hal.c b/drivers/crypto/qat/qat_common/qat_hal.c
|
|
Torsten Duwe |
979244 |
index 12ca6b8764aaa..4bfd8f3566f7a 100644
|
|
Torsten Duwe |
979244 |
--- a/drivers/crypto/qat/qat_common/qat_hal.c
|
|
Torsten Duwe |
979244 |
+++ b/drivers/crypto/qat/qat_common/qat_hal.c
|
|
Torsten Duwe |
979244 |
@@ -684,8 +684,7 @@ static int qat_hal_chip_init(struct icp_qat_fw_loader_handle *handle,
|
|
Torsten Duwe |
979244 |
{
|
|
Torsten Duwe |
979244 |
struct adf_accel_pci *pci_info = &accel_dev->accel_pci_dev;
|
|
Torsten Duwe |
979244 |
struct adf_hw_device_data *hw_data = accel_dev->hw_device;
|
|
Torsten Duwe |
979244 |
- struct adf_bar *misc_bar =
|
|
Torsten Duwe |
979244 |
- &pci_info->pci_bars[hw_data->get_misc_bar_id(hw_data)];
|
|
Torsten Duwe |
979244 |
+ void __iomem *pmisc_addr = adf_get_pmisc_base(accel_dev);
|
|
Torsten Duwe |
979244 |
unsigned int max_en_ae_id = 0;
|
|
Torsten Duwe |
979244 |
struct adf_bar *sram_bar;
|
|
Torsten Duwe |
979244 |
unsigned int csr_val = 0;
|
|
Torsten Duwe |
979244 |
@@ -715,18 +714,12 @@ static int qat_hal_chip_init(struct icp_qat_fw_loader_handle *handle,
|
|
Torsten Duwe |
979244 |
handle->chip_info->fcu_loaded_ae_csr = FCU_AE_LOADED_4XXX;
|
|
Torsten Duwe |
979244 |
handle->chip_info->fcu_loaded_ae_pos = 0;
|
|
Torsten Duwe |
979244 |
|
|
Torsten Duwe |
979244 |
- handle->hal_cap_g_ctl_csr_addr_v =
|
|
Torsten Duwe |
979244 |
- (void __iomem *)((uintptr_t)misc_bar->virt_addr +
|
|
Torsten Duwe |
979244 |
- ICP_QAT_CAP_OFFSET_4XXX);
|
|
Torsten Duwe |
979244 |
- handle->hal_cap_ae_xfer_csr_addr_v =
|
|
Torsten Duwe |
979244 |
- (void __iomem *)((uintptr_t)misc_bar->virt_addr +
|
|
Torsten Duwe |
979244 |
- ICP_QAT_AE_OFFSET_4XXX);
|
|
Torsten Duwe |
979244 |
- handle->hal_ep_csr_addr_v =
|
|
Torsten Duwe |
979244 |
- (void __iomem *)((uintptr_t)misc_bar->virt_addr +
|
|
Torsten Duwe |
979244 |
- ICP_QAT_EP_OFFSET_4XXX);
|
|
Torsten Duwe |
979244 |
+ handle->hal_cap_g_ctl_csr_addr_v = pmisc_addr + ICP_QAT_CAP_OFFSET_4XXX;
|
|
Torsten Duwe |
979244 |
+ handle->hal_cap_ae_xfer_csr_addr_v = pmisc_addr + ICP_QAT_AE_OFFSET_4XXX;
|
|
Torsten Duwe |
979244 |
+ handle->hal_ep_csr_addr_v = pmisc_addr + ICP_QAT_EP_OFFSET_4XXX;
|
|
Torsten Duwe |
979244 |
handle->hal_cap_ae_local_csr_addr_v =
|
|
Torsten Duwe |
979244 |
(void __iomem *)((uintptr_t)handle->hal_cap_ae_xfer_csr_addr_v
|
|
Torsten Duwe |
979244 |
- + LOCAL_TO_XFER_REG_OFFSET);
|
|
Torsten Duwe |
979244 |
+ + LOCAL_TO_XFER_REG_OFFSET);
|
|
Torsten Duwe |
979244 |
break;
|
|
Torsten Duwe |
979244 |
case PCI_DEVICE_ID_INTEL_QAT_C62X:
|
|
Torsten Duwe |
979244 |
case PCI_DEVICE_ID_INTEL_QAT_C3XXX:
|
|
Torsten Duwe |
979244 |
@@ -749,15 +742,9 @@ static int qat_hal_chip_init(struct icp_qat_fw_loader_handle *handle,
|
|
Torsten Duwe |
979244 |
handle->chip_info->fcu_dram_addr_lo = FCU_DRAM_ADDR_LO;
|
|
Torsten Duwe |
979244 |
handle->chip_info->fcu_loaded_ae_csr = FCU_STATUS;
|
|
Torsten Duwe |
979244 |
handle->chip_info->fcu_loaded_ae_pos = FCU_LOADED_AE_POS;
|
|
Torsten Duwe |
979244 |
- handle->hal_cap_g_ctl_csr_addr_v =
|
|
Torsten Duwe |
979244 |
- (void __iomem *)((uintptr_t)misc_bar->virt_addr +
|
|
Torsten Duwe |
979244 |
- ICP_QAT_CAP_OFFSET);
|
|
Torsten Duwe |
979244 |
- handle->hal_cap_ae_xfer_csr_addr_v =
|
|
Torsten Duwe |
979244 |
- (void __iomem *)((uintptr_t)misc_bar->virt_addr +
|
|
Torsten Duwe |
979244 |
- ICP_QAT_AE_OFFSET);
|
|
Torsten Duwe |
979244 |
- handle->hal_ep_csr_addr_v =
|
|
Torsten Duwe |
979244 |
- (void __iomem *)((uintptr_t)misc_bar->virt_addr +
|
|
Torsten Duwe |
979244 |
- ICP_QAT_EP_OFFSET);
|
|
Torsten Duwe |
979244 |
+ handle->hal_cap_g_ctl_csr_addr_v = pmisc_addr + ICP_QAT_CAP_OFFSET;
|
|
Torsten Duwe |
979244 |
+ handle->hal_cap_ae_xfer_csr_addr_v = pmisc_addr + ICP_QAT_AE_OFFSET;
|
|
Torsten Duwe |
979244 |
+ handle->hal_ep_csr_addr_v = pmisc_addr + ICP_QAT_EP_OFFSET;
|
|
Torsten Duwe |
979244 |
handle->hal_cap_ae_local_csr_addr_v =
|
|
Torsten Duwe |
979244 |
(void __iomem *)((uintptr_t)handle->hal_cap_ae_xfer_csr_addr_v
|
|
Torsten Duwe |
979244 |
+ LOCAL_TO_XFER_REG_OFFSET);
|
|
Torsten Duwe |
979244 |
@@ -782,15 +769,9 @@ static int qat_hal_chip_init(struct icp_qat_fw_loader_handle *handle,
|
|
Torsten Duwe |
979244 |
handle->chip_info->fcu_dram_addr_lo = 0;
|
|
Torsten Duwe |
979244 |
handle->chip_info->fcu_loaded_ae_csr = 0;
|
|
Torsten Duwe |
979244 |
handle->chip_info->fcu_loaded_ae_pos = 0;
|
|
Torsten Duwe |
979244 |
- handle->hal_cap_g_ctl_csr_addr_v =
|
|
Torsten Duwe |
979244 |
- (void __iomem *)((uintptr_t)misc_bar->virt_addr +
|
|
Torsten Duwe |
979244 |
- ICP_QAT_CAP_OFFSET);
|
|
Torsten Duwe |
979244 |
- handle->hal_cap_ae_xfer_csr_addr_v =
|
|
Torsten Duwe |
979244 |
- (void __iomem *)((uintptr_t)misc_bar->virt_addr +
|
|
Torsten Duwe |
979244 |
- ICP_QAT_AE_OFFSET);
|
|
Torsten Duwe |
979244 |
- handle->hal_ep_csr_addr_v =
|
|
Torsten Duwe |
979244 |
- (void __iomem *)((uintptr_t)misc_bar->virt_addr +
|
|
Torsten Duwe |
979244 |
- ICP_QAT_EP_OFFSET);
|
|
Torsten Duwe |
979244 |
+ handle->hal_cap_g_ctl_csr_addr_v = pmisc_addr + ICP_QAT_CAP_OFFSET;
|
|
Torsten Duwe |
979244 |
+ handle->hal_cap_ae_xfer_csr_addr_v = pmisc_addr + ICP_QAT_AE_OFFSET;
|
|
Torsten Duwe |
979244 |
+ handle->hal_ep_csr_addr_v = pmisc_addr + ICP_QAT_EP_OFFSET;
|
|
Torsten Duwe |
979244 |
handle->hal_cap_ae_local_csr_addr_v =
|
|
Torsten Duwe |
979244 |
(void __iomem *)((uintptr_t)handle->hal_cap_ae_xfer_csr_addr_v
|
|
Torsten Duwe |
979244 |
+ LOCAL_TO_XFER_REG_OFFSET);
|
|
Torsten Duwe |
979244 |
--
|
|
Torsten Duwe |
979244 |
2.35.3
|
|
Torsten Duwe |
979244 |
|