hc
2024-01-04 1543e317f1da31b75942316931e8f491a8920811
kernel/drivers/crypto/rockchip/rk_crypto_v3_ahash.c
....@@ -56,13 +56,17 @@
5656 CRYPTO_WRITE(rk_dev, CRYPTO_RST_CTL, tmp | tmp_mask);
5757
5858 /* This is usually done in 20 clock cycles */
59
- ret = readl_poll_timeout_atomic(rk_dev->reg + CRYPTO_RST_CTL,
60
- tmp, !tmp, 0, pool_timeout_us);
59
+ ret = read_poll_timeout_atomic(CRYPTO_READ, tmp, !tmp, 0, pool_timeout_us,
60
+ false, rk_dev, CRYPTO_RST_CTL);
6161 if (ret)
6262 dev_err(rk_dev->dev, "cipher reset pool timeout %ums.",
6363 pool_timeout_us);
6464
6565 CRYPTO_WRITE(rk_dev, CRYPTO_HASH_CTL, 0xffff0000);
66
+
67
+ /* clear dma int status */
68
+ tmp = CRYPTO_READ(rk_dev, CRYPTO_DMA_INT_ST);
69
+ CRYPTO_WRITE(rk_dev, CRYPTO_DMA_INT_ST, tmp);
6670 }
6771
6872 static int rk_hash_mid_data_store(struct rk_crypto_dev *rk_dev, struct rk_hash_mid_data *mid_data)
....@@ -72,11 +76,13 @@
7276
7377 CRYPTO_TRACE();
7478
75
- ret = readl_poll_timeout_atomic(rk_dev->reg + CRYPTO_MID_VALID,
79
+ ret = read_poll_timeout_atomic(CRYPTO_READ,
7680 reg_ctrl,
7781 reg_ctrl & CRYPTO_HASH_MID_IS_VALID,
78
- RK_POLL_PERIOD_US,
79
- RK_POLL_TIMEOUT_US);
82
+ 0,
83
+ RK_POLL_TIMEOUT_US,
84
+ false, rk_dev, CRYPTO_MID_VALID);
85
+
8086 CRYPTO_WRITE(rk_dev, CRYPTO_MID_VALID_SWITCH,
8187 CRYPTO_MID_VALID_ENABLE << CRYPTO_WRITE_MASK_SHIFT);
8288 if (ret) {
....@@ -362,11 +368,11 @@
362368
363369 memset(ctx->priv, 0x00, sizeof(struct rk_hash_mid_data));
364370
365
- ret = readl_poll_timeout_atomic(rk_dev->reg + CRYPTO_HASH_VALID,
366
- reg_ctrl,
367
- reg_ctrl & CRYPTO_HASH_IS_VALID,
368
- RK_POLL_PERIOD_US,
369
- RK_POLL_TIMEOUT_US);
371
+ ret = read_poll_timeout_atomic(CRYPTO_READ, reg_ctrl,
372
+ reg_ctrl & CRYPTO_HASH_IS_VALID,
373
+ RK_POLL_PERIOD_US,
374
+ RK_POLL_TIMEOUT_US, false,
375
+ rk_dev, CRYPTO_HASH_VALID);
370376 if (ret)
371377 goto exit;
372378