From: Yan-Hsuan Chuang <[email protected]>

8822c crystal setting register is no longer at 0x24 and 0x28.
It is at REG_ANAPAR_XTAL_0 instead.

Signed-off-by: Yan-Hsuan Chuang <[email protected]>
---
 drivers/net/wireless/realtek/rtw88/reg.h      | 1 +
 drivers/net/wireless/realtek/rtw88/rtw8822c.c | 6 +++---
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/drivers/net/wireless/realtek/rtw88/reg.h 
b/drivers/net/wireless/realtek/rtw88/reg.h
index 4923a45..e48ea2d 100644
--- a/drivers/net/wireless/realtek/rtw88/reg.h
+++ b/drivers/net/wireless/realtek/rtw88/reg.h
@@ -296,6 +296,7 @@
 #define REG_WMAC_OPTION_FUNCTION 0x07D0
 #define REG_WMAC_OPTION_FUNCTION_1 0x07D4
 
+#define REG_ANAPAR_XTAL_0      0x1040
 #define REG_CPU_DMEM_CON       0x1080
 #define BIT_WL_PLATFORM_RST    BIT(16)
 #define BIT_WL_SECURITY_CLK    BIT(15)
diff --git a/drivers/net/wireless/realtek/rtw88/rtw8822c.c 
b/drivers/net/wireless/realtek/rtw88/rtw8822c.c
index 38e770c..71f2af0 100644
--- a/drivers/net/wireless/realtek/rtw88/rtw8822c.c
+++ b/drivers/net/wireless/realtek/rtw88/rtw8822c.c
@@ -95,9 +95,9 @@ static void rtw8822c_phy_set_param(struct rtw_dev *rtwdev)
 
        rtw_phy_load_tables(rtwdev);
 
-       crystal_cap = rtwdev->efuse.crystal_cap & 0x3F;
-       rtw_write32_mask(rtwdev, 0x24, 0x7e000000, crystal_cap);
-       rtw_write32_mask(rtwdev, 0x28, 0x7e, crystal_cap);
+       crystal_cap = rtwdev->efuse.crystal_cap & 0x7f;
+       rtw_write32_mask(rtwdev, REG_ANAPAR_XTAL_0, 0xfffc00,
+                        crystal_cap | (crystal_cap << 7));
 
        /* post init after header files config */
        rtw8822c_header_file_init(rtwdev, false);
-- 
2.7.4

Reply via email to