.. | .. |
---|
51 | 51 | CRYPTO_WRITE(rk_dev, CRYPTO_RST_CTL, tmp | tmp_mask); |
---|
52 | 52 | |
---|
53 | 53 | /* 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); |
---|
56 | 56 | if (ret) |
---|
57 | 57 | dev_err(rk_dev->dev, "cipher reset pool timeout %ums.", |
---|
58 | 58 | pool_timeout_us); |
---|
59 | 59 | |
---|
60 | 60 | 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); |
---|
61 | 65 | } |
---|
62 | 66 | |
---|
63 | 67 | static int rk_crypto_irq_handle(int irq, void *dev_id) |
---|
.. | .. |
---|
285 | 289 | int ret = 0; |
---|
286 | 290 | u32 reg_ctrl = 0; |
---|
287 | 291 | |
---|
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); |
---|
293 | 297 | if (ret) |
---|
294 | 298 | goto exit; |
---|
295 | 299 | |
---|