From cde9070d9970eef1f7ec2360586c802a16230ad8 Mon Sep 17 00:00:00 2001
From: hc <hc@nodka.com>
Date: Fri, 10 May 2024 07:43:50 +0000
Subject: [PATCH] rtl88x2CE_WiFi_linux driver

---
 kernel/drivers/crypto/rockchip/rk_crypto_v2_skcipher.c |   16 +++++++++++-----
 1 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/kernel/drivers/crypto/rockchip/rk_crypto_v2_skcipher.c b/kernel/drivers/crypto/rockchip/rk_crypto_v2_skcipher.c
index 4a5ade6..2bfff0d 100644
--- a/kernel/drivers/crypto/rockchip/rk_crypto_v2_skcipher.c
+++ b/kernel/drivers/crypto/rockchip/rk_crypto_v2_skcipher.c
@@ -136,11 +136,13 @@
 	if (tag_len > RK_MAX_TAG_SIZE)
 		return -EINVAL;
 
-	ret = readl_poll_timeout_atomic(rk_dev->reg + CRYPTO_TAG_VALID,
+	ret = read_poll_timeout_atomic(CRYPTO_READ,
 					reg_ctrl,
 					reg_ctrl & CRYPTO_CH0_TAG_VALID,
-					RK_POLL_PERIOD_US,
-					RK_POLL_TIMEOUT_US);
+					0,
+					RK_POLL_TIMEOUT_US,
+					false,
+					rk_dev, CRYPTO_TAG_VALID);
 	if (ret)
 		goto exit;
 
@@ -188,13 +190,17 @@
 	CRYPTO_WRITE(rk_dev, CRYPTO_RST_CTL, tmp | tmp_mask);
 
 	/* This is usually done in 20 clock cycles */
-	ret = readl_poll_timeout_atomic(rk_dev->reg + CRYPTO_RST_CTL,
-					tmp, !tmp, 0, pool_timeout_us);
+	ret = read_poll_timeout_atomic(CRYPTO_READ, tmp, !tmp, 0,
+				       pool_timeout_us, false, rk_dev, CRYPTO_RST_CTL);
 	if (ret)
 		dev_err(rk_dev->dev, "cipher reset pool timeout %ums.",
 			pool_timeout_us);
 
 	CRYPTO_WRITE(rk_dev, CRYPTO_BC_CTL, 0xffff0000);
+
+	/* clear dma int status */
+	tmp = CRYPTO_READ(rk_dev, CRYPTO_DMA_INT_ST);
+	CRYPTO_WRITE(rk_dev, CRYPTO_DMA_INT_ST, tmp);
 }
 
 static void rk_crypto_complete(struct crypto_async_request *base, int err)

--
Gitblit v1.6.2