From 6bc2711085a52bd4d8da0173b22b8d4d532c5d21 Mon Sep 17 00:00:00 2001 From: Bitterblue Smith Date: Sat, 1 Nov 2025 21:27:09 +0200 Subject: [PATCH] wifi: rtw89: 8852c: Accept USB devices and load their MAC address Make rtw8852c_read_efuse() accept USB devices and load the MAC address from the correct offset. Also fix the offset of the MAC address because it was wrong. Signed-off-by: Bitterblue Smith Acked-by: Ping-Ke Shih Signed-off-by: Ping-Ke Shih Link: https://patch.msgid.link/78138507-99ea-4a58-a02b-f4d11dbfba3b@gmail.com --- drivers/net/wireless/realtek/rtw89/rtw8852c.c | 16 +++++++--------- drivers/net/wireless/realtek/rtw89/rtw8852c.h | 2 +- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852c.c b/drivers/net/wireless/realtek/rtw89/rtw8852c.c index 10e3963b692c7..8550ae3bcb64a 100644 --- a/drivers/net/wireless/realtek/rtw89/rtw8852c.c +++ b/drivers/net/wireless/realtek/rtw89/rtw8852c.c @@ -480,14 +480,6 @@ static int rtw8852c_pwr_off_func(struct rtw89_dev *rtwdev) return 0; } -static void rtw8852c_e_efuse_parsing(struct rtw89_efuse *efuse, - struct rtw8852c_efuse *map) -{ - ether_addr_copy(efuse->addr, map->e.mac_addr); - efuse->rfe_type = map->rfe_type; - efuse->xtal_cap = map->xtal_k; -} - static void rtw8852c_efuse_parsing_tssi(struct rtw89_dev *rtwdev, struct rtw8852c_efuse *map) { @@ -596,12 +588,18 @@ static int rtw8852c_read_efuse(struct rtw89_dev *rtwdev, u8 *log_map, switch (rtwdev->hci.type) { case RTW89_HCI_TYPE_PCIE: - rtw8852c_e_efuse_parsing(efuse, map); + ether_addr_copy(efuse->addr, map->e.mac_addr); + break; + case RTW89_HCI_TYPE_USB: + ether_addr_copy(efuse->addr, map->u.mac_addr); break; default: return -ENOTSUPP; } + efuse->rfe_type = map->rfe_type; + efuse->xtal_cap = map->xtal_k; + rtw89_info(rtwdev, "chip rfe_type is %d\n", efuse->rfe_type); return 0; diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852c.h b/drivers/net/wireless/realtek/rtw89/rtw8852c.h index 77b05daedd105..8585921ac6c4a 100644 --- a/drivers/net/wireless/realtek/rtw89/rtw8852c.h +++ b/drivers/net/wireless/realtek/rtw89/rtw8852c.h @@ -11,7 +11,7 @@ #define BB_PATH_NUM_8852C 2 struct rtw8852c_u_efuse { - u8 rsvd[0x38]; + u8 rsvd[0x88]; u8 mac_addr[ETH_ALEN]; }; -- 2.47.3