From: Yan-Hsuan Chuang <yhchuang@xxxxxxxxxxx> 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 <yhchuang@xxxxxxxxxxx> --- 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 304c8df..56137cf5 100644 --- a/drivers/net/wireless/realtek/rtw88/reg.h +++ b/drivers/net/wireless/realtek/rtw88/reg.h @@ -301,6 +301,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