forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-01-31 f9004dbfff8a3fbbd7e2a88c8a4327c7f2f8e5b2
kernel/drivers/crypto/rockchip/rk_crypto_v2_ahash.c
....@@ -51,13 +51,17 @@
5151 CRYPTO_WRITE(rk_dev, CRYPTO_RST_CTL, tmp | tmp_mask);
5252
5353 /* This is usually done in 20 clock cycles */
54
- ret = readl_poll_timeout_atomic(rk_dev->reg + CRYPTO_RST_CTL,
55
- tmp, !tmp, 0, pool_timeout_us);
54
+ ret = read_poll_timeout_atomic(CRYPTO_READ, tmp, !tmp, 0, pool_timeout_us,
55
+ false, rk_dev, CRYPTO_RST_CTL);
5656 if (ret)
5757 dev_err(rk_dev->dev, "cipher reset pool timeout %ums.",
5858 pool_timeout_us);
5959
6060 CRYPTO_WRITE(rk_dev, CRYPTO_HASH_CTL, 0xffff0000);
61
+
62
+ /* clear dma int status */
63
+ tmp = CRYPTO_READ(rk_dev, CRYPTO_DMA_INT_ST);
64
+ CRYPTO_WRITE(rk_dev, CRYPTO_DMA_INT_ST, tmp);
6165 }
6266
6367 static int rk_crypto_irq_handle(int irq, void *dev_id)
....@@ -285,11 +289,11 @@
285289 int ret = 0;
286290 u32 reg_ctrl = 0;
287291
288
- ret = readl_poll_timeout_atomic(rk_dev->reg + CRYPTO_HASH_VALID,
289
- reg_ctrl,
290
- reg_ctrl & CRYPTO_HASH_IS_VALID,
291
- RK_POLL_PERIOD_US,
292
- RK_POLL_TIMEOUT_US);
292
+ ret = read_poll_timeout_atomic(CRYPTO_READ, reg_ctrl,
293
+ reg_ctrl & CRYPTO_HASH_IS_VALID,
294
+ RK_POLL_PERIOD_US,
295
+ RK_POLL_TIMEOUT_US, false,
296
+ rk_dev, CRYPTO_HASH_VALID);
293297 if (ret)
294298 goto exit;
295299