wifi: rtw89: 8852c: support fw crash simulation
authorZong-Zhe Yang <kevin_yang@realtek.com>
Wed, 14 Sep 2022 03:50:33 +0000 (11:50 +0800)
committerKalle Valo <kvalo@kernel.org>
Mon, 19 Sep 2022 10:03:38 +0000 (13:03 +0300)
With FW >= v0.27.40.0, 8852C FW has feature to handle crash simulation.
Besides, use RTW89_WCPU_BASE_MASK to replace use of RTW89_WCPU_BASE_ADDR
and work for both 8852A and 8852C.

Signed-off-by: Zong-Zhe Yang <kevin_yang@realtek.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://lore.kernel.org/r/20220914035034.14521-4-pkshih@realtek.com
drivers/net/wireless/realtek/rtw89/fw.c
drivers/net/wireless/realtek/rtw89/fw.h
drivers/net/wireless/realtek/rtw89/ser.c

index b88b710..11d4d05 100644 (file)
@@ -230,6 +230,7 @@ static const struct __fw_feat_cfg fw_feat_tbl[] = {
        __CFG_FW_FEAT(RTL8852C, le, 0, 27, 33, 0, NO_DEEP_PS),
        __CFG_FW_FEAT(RTL8852C, ge, 0, 27, 34, 0, TX_WAKE),
        __CFG_FW_FEAT(RTL8852C, ge, 0, 27, 36, 0, SCAN_OFFLOAD),
+       __CFG_FW_FEAT(RTL8852C, ge, 0, 27, 40, 0, CRASH_TRIGGER),
 };
 
 static void rtw89_fw_recognize_features(struct rtw89_dev *rtwdev)
index 72b667a..249a463 100644 (file)
@@ -2652,7 +2652,7 @@ struct rtw89_fw_h2c_rf_get_mccch {
 
 #define RTW89_FW_RSVD_PLE_SIZE 0x800
 
-#define RTW89_WCPU_BASE_ADDR 0xA0000000
+#define RTW89_WCPU_BASE_MASK GENMASK(27, 0)
 
 #define RTW89_FW_BACKTRACE_INFO_SIZE 8
 #define RTW89_VALID_FW_BACKTRACE_SIZE(_size) \
index ee0ae28..1b01ff0 100644 (file)
@@ -539,7 +539,7 @@ static int rtw89_ser_fw_backtrace_dump(struct rtw89_dev *rtwdev, u8 *buf,
                                       const struct __fw_backtrace_entry *ent)
 {
        struct __fw_backtrace_info *ptr = (struct __fw_backtrace_info *)buf;
-       u32 fwbt_addr = ent->wcpu_addr - RTW89_WCPU_BASE_ADDR;
+       u32 fwbt_addr = ent->wcpu_addr & RTW89_WCPU_BASE_MASK;
        u32 fwbt_size = ent->size;
        u32 fwbt_key = ent->key;
        u32 i;