On Mon, Oct 12, 2020 at 09:38:16PM +0100, Giovanni Cabiddu wrote: > 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 All applied. Thanks. -- Email: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt