]> www.infradead.org Git - users/hch/block.git/commitdiff
crypto: qat - adf_get_etr_base() helper
authorGiovanni Cabiddu <giovanni.cabiddu@intel.com>
Wed, 6 Mar 2024 13:58:46 +0000 (21:58 +0800)
committerHerbert Xu <herbert@gondor.apana.org.au>
Tue, 2 Apr 2024 02:47:43 +0000 (10:47 +0800)
Add and use the new helper function adf_get_etr_base() which retrieves
the virtual address of the ring bar.

This will be used extensively when adding support for Live Migration.

Signed-off-by: Giovanni Cabiddu <giovanni.cabiddu@intel.com>
Signed-off-by: Xin Zeng <xin.zeng@intel.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/crypto/intel/qat/qat_common/adf_common_drv.h
drivers/crypto/intel/qat/qat_common/adf_gen4_hw_data.c
drivers/crypto/intel/qat/qat_common/adf_transport.c

index 57328249c89e7a6f4ae7c7754bf2bbb218c6f651..3bec9e20bad0a3e3583e8cc818a7f94a4bad3aa7 100644 (file)
@@ -248,6 +248,16 @@ static inline void __iomem *adf_get_pmisc_base(struct adf_accel_dev *accel_dev)
        return pmisc->virt_addr;
 }
 
+static inline void __iomem *adf_get_etr_base(struct adf_accel_dev *accel_dev)
+{
+       struct adf_hw_device_data *hw_data = accel_dev->hw_device;
+       struct adf_bar *etr;
+
+       etr = &GET_BARS(accel_dev)[hw_data->get_etr_bar_id(hw_data)];
+
+       return etr->virt_addr;
+}
+
 static inline void __iomem *adf_get_aram_base(struct adf_accel_dev *accel_dev)
 {
        struct adf_hw_device_data *hw_data = accel_dev->hw_device;
index d28e1921940a799b4bd145d82745ac957564cea3..b8a6d24f791fab5e6feea59f7c3ed75ae7757861 100644 (file)
@@ -321,8 +321,7 @@ static int reset_ring_pair(void __iomem *csr, u32 bank_number)
 int adf_gen4_ring_pair_reset(struct adf_accel_dev *accel_dev, u32 bank_number)
 {
        struct adf_hw_device_data *hw_data = accel_dev->hw_device;
-       u32 etr_bar_id = hw_data->get_etr_bar_id(hw_data);
-       void __iomem *csr;
+       void __iomem *csr = adf_get_etr_base(accel_dev);
        int ret;
 
        if (bank_number >= hw_data->num_banks)
@@ -331,7 +330,6 @@ int adf_gen4_ring_pair_reset(struct adf_accel_dev *accel_dev, u32 bank_number)
        dev_dbg(&GET_DEV(accel_dev),
                "ring pair reset for bank:%d\n", bank_number);
 
-       csr = (&GET_BARS(accel_dev)[etr_bar_id])->virt_addr;
        ret = reset_ring_pair(csr, bank_number);
        if (ret)
                dev_err(&GET_DEV(accel_dev),
index 630d0483c4e0a1a4134f9f73f0def8091e9e4a55..1efdf46490f147d463fcc5ef9ee14127fb1028ff 100644 (file)
@@ -474,7 +474,6 @@ err:
 int adf_init_etr_data(struct adf_accel_dev *accel_dev)
 {
        struct adf_etr_data *etr_data;
-       struct adf_hw_device_data *hw_data = accel_dev->hw_device;
        void __iomem *csr_addr;
        u32 size;
        u32 num_banks = 0;
@@ -495,8 +494,7 @@ int adf_init_etr_data(struct adf_accel_dev *accel_dev)
        }
 
        accel_dev->transport = etr_data;
-       i = hw_data->get_etr_bar_id(hw_data);
-       csr_addr = accel_dev->accel_pci_dev.pci_bars[i].virt_addr;
+       csr_addr = adf_get_etr_base(accel_dev);
 
        /* accel_dev->debugfs_dir should always be non-NULL here */
        etr_data->debug = debugfs_create_dir("transport",