crypto: hisilicon/sec - fix the process of disabling sva prefetching
authorKai Ye <yekai13@huawei.com>
Sat, 26 Jun 2021 02:50:33 +0000 (10:50 +0800)
committerHerbert Xu <herbert@gondor.apana.org.au>
Mon, 28 Jun 2021 03:28:09 +0000 (11:28 +0800)
The open interface of the sva prefetching function is distinguish the chip
version. But the close interface of the sva prefetching function doesn't
distinguish the chip version. As a result, the sva prefetching close
operation is also performed on Kunpeng920, those registers are important
on Kunpeng920, which eventually leads to abnormal hardware problems. So
need to fix it immediately.

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 d120ce3..490db7b 100644 (file)
@@ -364,6 +364,9 @@ static void sec_close_sva_prefetch(struct hisi_qm *qm)
        u32 val;
        int ret;
 
+       if (qm->ver < QM_HW_V3)
+               return;
+
        val = readl_relaxed(qm->io_base + SEC_PREFETCH_CFG);
        val |= SEC_PREFETCH_DISABLE;
        writel(val, qm->io_base + SEC_PREFETCH_CFG);