| From 4cea2d1dee8f56f3a0841326c4d59124adb8775c Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Thu, 16 Dec 2021 09:13:12 +0000 |
| Subject: crypto: qat - set CIPHER capability for QAT GEN2 |
| |
| From: Giovanni Cabiddu <giovanni.cabiddu@intel.com> |
| |
| [ Upstream commit 547bde7bd4ecd78f36f98744e6c9a0999e52da5a ] |
| |
| Set the CIPHER capability for QAT GEN2 devices if the hardware supports |
| it. This is done if both the CIPHER and the AUTHENTICATION engines are |
| available on the device. |
| |
| Signed-off-by: Giovanni Cabiddu <giovanni.cabiddu@intel.com> |
| Signed-off-by: Marco Chiappero <marco.chiappero@intel.com> |
| Reviewed-by: Fiona Trahe <fiona.trahe@intel.com> |
| Reviewed-by: Marco Chiappero <marco.chiappero@intel.com> |
| Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/crypto/qat/qat_common/adf_gen2_hw_data.c | 12 +++++++++--- |
| 1 file changed, 9 insertions(+), 3 deletions(-) |
| |
| diff --git a/drivers/crypto/qat/qat_common/adf_gen2_hw_data.c b/drivers/crypto/qat/qat_common/adf_gen2_hw_data.c |
| index 9e560c7d4163..9c5871e1752a 100644 |
| --- a/drivers/crypto/qat/qat_common/adf_gen2_hw_data.c |
| +++ b/drivers/crypto/qat/qat_common/adf_gen2_hw_data.c |
| @@ -161,17 +161,23 @@ u32 adf_gen2_get_accel_cap(struct adf_accel_dev *accel_dev) |
| u32 legfuses; |
| u32 capabilities = ICP_ACCEL_CAPABILITIES_CRYPTO_SYMMETRIC | |
| ICP_ACCEL_CAPABILITIES_CRYPTO_ASYMMETRIC | |
| - ICP_ACCEL_CAPABILITIES_AUTHENTICATION; |
| + ICP_ACCEL_CAPABILITIES_AUTHENTICATION | |
| + ICP_ACCEL_CAPABILITIES_CIPHER; |
| |
| /* Read accelerator capabilities mask */ |
| pci_read_config_dword(pdev, ADF_DEVICE_LEGFUSE_OFFSET, &legfuses); |
| |
| - if (legfuses & ICP_ACCEL_MASK_CIPHER_SLICE) |
| + /* A set bit in legfuses means the feature is OFF in this SKU */ |
| + if (legfuses & ICP_ACCEL_MASK_CIPHER_SLICE) { |
| capabilities &= ~ICP_ACCEL_CAPABILITIES_CRYPTO_SYMMETRIC; |
| + capabilities &= ~ICP_ACCEL_CAPABILITIES_CIPHER; |
| + } |
| if (legfuses & ICP_ACCEL_MASK_PKE_SLICE) |
| capabilities &= ~ICP_ACCEL_CAPABILITIES_CRYPTO_ASYMMETRIC; |
| - if (legfuses & ICP_ACCEL_MASK_AUTH_SLICE) |
| + if (legfuses & ICP_ACCEL_MASK_AUTH_SLICE) { |
| capabilities &= ~ICP_ACCEL_CAPABILITIES_AUTHENTICATION; |
| + capabilities &= ~ICP_ACCEL_CAPABILITIES_CIPHER; |
| + } |
| |
| if ((straps | fuses) & ADF_POWERGATE_PKE) |
| capabilities &= ~ICP_ACCEL_CAPABILITIES_CRYPTO_ASYMMETRIC; |
| -- |
| 2.35.1 |
| |