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