hc
2024-02-20 102a0743326a03cd1a1202ceda21e175b7d3575c
kernel/drivers/crypto/rockchip/rk_crypto_v2_skcipher.c
....@@ -136,11 +136,13 @@
136136 if (tag_len > RK_MAX_TAG_SIZE)
137137 return -EINVAL;
138138
139
- ret = readl_poll_timeout_atomic(rk_dev->reg + CRYPTO_TAG_VALID,
139
+ ret = read_poll_timeout_atomic(CRYPTO_READ,
140140 reg_ctrl,
141141 reg_ctrl & CRYPTO_CH0_TAG_VALID,
142
- RK_POLL_PERIOD_US,
143
- RK_POLL_TIMEOUT_US);
142
+ 0,
143
+ RK_POLL_TIMEOUT_US,
144
+ false,
145
+ rk_dev, CRYPTO_TAG_VALID);
144146 if (ret)
145147 goto exit;
146148
....@@ -188,13 +190,17 @@
188190 CRYPTO_WRITE(rk_dev, CRYPTO_RST_CTL, tmp | tmp_mask);
189191
190192 /* This is usually done in 20 clock cycles */
191
- ret = readl_poll_timeout_atomic(rk_dev->reg + CRYPTO_RST_CTL,
192
- tmp, !tmp, 0, pool_timeout_us);
193
+ ret = read_poll_timeout_atomic(CRYPTO_READ, tmp, !tmp, 0,
194
+ pool_timeout_us, false, rk_dev, CRYPTO_RST_CTL);
193195 if (ret)
194196 dev_err(rk_dev->dev, "cipher reset pool timeout %ums.",
195197 pool_timeout_us);
196198
197199 CRYPTO_WRITE(rk_dev, CRYPTO_BC_CTL, 0xffff0000);
200
+
201
+ /* clear dma int status */
202
+ tmp = CRYPTO_READ(rk_dev, CRYPTO_DMA_INT_ST);
203
+ CRYPTO_WRITE(rk_dev, CRYPTO_DMA_INT_ST, tmp);
198204 }
199205
200206 static void rk_crypto_complete(struct crypto_async_request *base, int err)