]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
wifi: rtw89: 8852c: Accept USB devices and load their MAC address
authorBitterblue Smith <rtl8821cerfe2@gmail.com>
Sat, 1 Nov 2025 19:27:09 +0000 (21:27 +0200)
committerPing-Ke Shih <pkshih@realtek.com>
Tue, 4 Nov 2025 01:36:16 +0000 (09:36 +0800)
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 <rtl8821cerfe2@gmail.com>
Acked-by: Ping-Ke Shih <pkshih@realtek.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/78138507-99ea-4a58-a02b-f4d11dbfba3b@gmail.com
drivers/net/wireless/realtek/rtw89/rtw8852c.c
drivers/net/wireless/realtek/rtw89/rtw8852c.h

index 10e3963b692c707d8eda3f81c32e0459f115b524..8550ae3bcb64a833625307a9091793be089fc9e6 100644 (file)
@@ -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;
index 77b05daedd105feeaf6c1c005505fd895cca0509..8585921ac6c4a8fb0ee343ecb9b6ddb060b32d00 100644 (file)
@@ -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];
 };