hc
2024-01-04 1543e317f1da31b75942316931e8f491a8920811
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