[PATCH 00/31] crypto: qat - rework in preparation for qat_4xxx driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This set is an initial rework of the QAT driver in preparation for the
inclusion of the qat_4xxx driver (QAT GEN4).

Summary of changes:
  * IV update logic moved to software to remove allocation of the IV
    buffer in the data-path and allow for devices that are not capable
    of updating it when performing AES-CBC or AES-CTR.
  * Added logic to detect the presence of engines and accelerators via
    soft-straps and fuse registers.
  * Added infrastructure to support devices with an arbitrary number of
    rings per bank.
  * Introduced adf_gen2_hw_data.[c|h] that contain logic that is common
    between QAT GEN2 devices (c62x, c3xxx and dh895xcc).
  * Abstracted logic that configures iov threads.
  * Abstracted access to transport CSRs.
  * Abstracted, refactored and updated admin interface logic.
  * Abstracted and refactored arbiter logic.
  * Changed sequence on how arbitration is enabled on rings.
  * Added support for device capability detection.
  * Replaced hardcoded masks.
  * Changed logic in adf_sriov.c to allow for drivers that do not
    implement some of the functions of that module.
  * Refactored logic related to device configuration and instance
    creation.
  * Changed logic to allow for instances in different banks.
  * Extended accelerator mask.

Ahsan Atta (1):
  crypto: qat - num_rings_per_bank is device dependent

Giovanni Cabiddu (28):
  crypto: qat - mask device capabilities with soft straps
  crypto: qat - fix configuration of iov threads
  crypto: qat - split transport CSR access logic
  crypto: qat - relocate GEN2 CSR access code
  crypto: qat - abstract admin interface
  crypto: qat - add packed to init admin structures
  crypto: qat - rename ME in AE
  crypto: qat - change admin sequence
  crypto: qat - use admin mask to send fw constants
  crypto: qat - update constants table
  crypto: qat - remove writes into WQCFG
  crypto: qat - remove unused macros in arbiter module
  crypto: qat - abstract arbiter access
  crypto: qat - register crypto instances based on capability
  crypto: qat - enable ring after pair is programmed
  crypto: qat - abstract build ring base
  crypto: qat - replace constant masks with GENMASK
  crypto: qat - use BIT_ULL() - 1 pattern for masks
  crypto: qat - abstract writes to arbiter enable
  crypto: qat - remove hardcoded bank irq clear flag mask
  crypto: qat - call functions in adf_sriov if available
  crypto: qat - remove unnecessary void* casts
  crypto: qat - change return value in adf_cfg_add_key_value_param()
  crypto: qat - change return value in adf_cfg_key_val_get()
  crypto: qat - refactor qat_crypto_create_instances()
  crypto: qat - refactor qat_crypto_dev_config()
  crypto: qat - allow for instances in different banks
  crypto: qat - extend ae_mask

Marco Chiappero (2):
  crypto: qat - update IV in software
  crypto: qat - add support for capability detection

 .../crypto/qat/qat_c3xxx/adf_c3xxx_hw_data.c  |  49 ++++-
 .../crypto/qat/qat_c3xxx/adf_c3xxx_hw_data.h  |   5 +
 drivers/crypto/qat/qat_c3xxx/adf_drv.c        |  11 +-
 .../qat/qat_c3xxxvf/adf_c3xxxvf_hw_data.c     |   7 +-
 drivers/crypto/qat/qat_c3xxxvf/adf_drv.c      |   4 +-
 .../crypto/qat/qat_c62x/adf_c62x_hw_data.c    |  49 ++++-
 .../crypto/qat/qat_c62x/adf_c62x_hw_data.h    |   5 +
 drivers/crypto/qat/qat_c62x/adf_drv.c         |  11 +-
 .../qat/qat_c62xvf/adf_c62xvf_hw_data.c       |   7 +-
 drivers/crypto/qat/qat_c62xvf/adf_drv.c       |   4 +-
 drivers/crypto/qat/qat_common/Makefile        |   1 +
 .../crypto/qat/qat_common/adf_accel_devices.h |  58 +++++-
 drivers/crypto/qat/qat_common/adf_admin.c     |  77 ++++----
 drivers/crypto/qat/qat_common/adf_cfg.c       |   4 +-
 .../crypto/qat/qat_common/adf_cfg_strings.h   |   3 +-
 .../crypto/qat/qat_common/adf_gen2_hw_data.c  | 181 ++++++++++++++++++
 .../crypto/qat/qat_common/adf_gen2_hw_data.h  | 123 ++++++++++++
 .../crypto/qat/qat_common/adf_hw_arbiter.c    |  94 ++++-----
 drivers/crypto/qat/qat_common/adf_isr.c       |   4 +-
 drivers/crypto/qat/qat_common/adf_sriov.c     |  74 ++-----
 drivers/crypto/qat/qat_common/adf_transport.c | 130 +++++++++----
 .../qat_common/adf_transport_access_macros.h  |  67 -------
 .../qat/qat_common/adf_transport_debug.c      |  32 ++--
 .../qat/qat_common/adf_transport_internal.h   |   2 +-
 drivers/crypto/qat/qat_common/adf_vf_isr.c    |   5 +-
 .../qat/qat_common/icp_qat_fw_init_admin.h    |   6 +-
 drivers/crypto/qat/qat_common/icp_qat_hw.h    |  23 +++
 drivers/crypto/qat/qat_common/qat_algs.c      | 136 +++++++------
 drivers/crypto/qat/qat_common/qat_crypto.c    | 162 ++++++++++------
 drivers/crypto/qat/qat_common/qat_crypto.h    |  26 ++-
 drivers/crypto/qat/qat_common/qat_hal.c       |  27 +--
 .../qat/qat_dh895xcc/adf_dh895xcc_hw_data.c   |  60 +++++-
 .../qat/qat_dh895xcc/adf_dh895xcc_hw_data.h   |   5 +
 drivers/crypto/qat/qat_dh895xcc/adf_drv.c     |   9 +-
 .../qat_dh895xccvf/adf_dh895xccvf_hw_data.c   |   7 +-
 drivers/crypto/qat/qat_dh895xccvf/adf_drv.c   |   4 +-
 36 files changed, 1024 insertions(+), 448 deletions(-)
 create mode 100644 drivers/crypto/qat/qat_common/adf_gen2_hw_data.c
 create mode 100644 drivers/crypto/qat/qat_common/adf_gen2_hw_data.h

-- 
2.26.2




[Index of Archives]     [Kernel]     [Gnu Classpath]     [Gnu Crypto]     [DM Crypt]     [Netfilter]     [Bugtraq]

  Powered by Linux