crypto: hisilicon/sec - only HW V2 needs to change the BD err detection
authorKai Ye <yekai13@huawei.com>
Sat, 11 Jun 2022 07:38:08 +0000 (15:38 +0800)
committerHerbert Xu <herbert@gondor.apana.org.au>
Fri, 17 Jun 2022 09:19:21 +0000 (17:19 +0800)
The base register address of V2 and V3 are different. HW V3 not needs
to change the BD err detection.

Signed-off-by: Kai Ye <yekai13@huawei.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/crypto/hisilicon/sec2/sec_main.c

index bdb690a..2c0be91 100644 (file)
@@ -508,16 +508,17 @@ static int sec_engine_init(struct hisi_qm *qm)
 
        writel(SEC_SAA_ENABLE, qm->io_base + SEC_SAA_EN_REG);
 
-       /* HW V2 enable sm4 extra mode, as ctr/ecb */
-       if (qm->ver < QM_HW_V3)
+       if (qm->ver < QM_HW_V3) {
+               /* HW V2 enable sm4 extra mode, as ctr/ecb */
                writel_relaxed(SEC_BD_ERR_CHK_EN0,
                               qm->io_base + SEC_BD_ERR_CHK_EN_REG0);
 
-       /* Enable sm4 xts mode multiple iv */
-       writel_relaxed(SEC_BD_ERR_CHK_EN1,
-                      qm->io_base + SEC_BD_ERR_CHK_EN_REG1);
-       writel_relaxed(SEC_BD_ERR_CHK_EN3,
-                      qm->io_base + SEC_BD_ERR_CHK_EN_REG3);
+               /* HW V2 enable sm4 xts mode multiple iv */
+               writel_relaxed(SEC_BD_ERR_CHK_EN1,
+                              qm->io_base + SEC_BD_ERR_CHK_EN_REG1);
+               writel_relaxed(SEC_BD_ERR_CHK_EN3,
+                              qm->io_base + SEC_BD_ERR_CHK_EN_REG3);
+       }
 
        /* config endian */
        sec_set_endian(qm);