wifi: rtw89: add firmware suit for BB MCU 0/1
authorPing-Ke Shih <pkshih@realtek.com>
Tue, 1 Aug 2023 02:11:24 +0000 (10:11 +0800)
committerKalle Valo <kvalo@kernel.org>
Thu, 3 Aug 2023 12:04:11 +0000 (15:04 +0300)
For existing chips, firmware is only for WiFi CPU, but WiFi 7 chips add
new hardware component BB MCU that needs firmware as well. The firmwares of
BB MCU 0/1 are also downloaded via the same path like WiFi CPU firmware,
and use the same firmware header format, so add firmware suits to access
them commonly.

Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://lore.kernel.org/r/20230801021127.15919-6-pkshih@realtek.com
drivers/net/wireless/realtek/rtw89/core.h

index 01f79f2a8e2b6b238c1b0c53b262de4e05fbd7ab..aaee0733301ac9940b8dbaa505b873c51fd2f4e4 100644 (file)
@@ -3548,6 +3548,8 @@ enum rtw89_fw_type {
        RTW89_FW_NORMAL = 1,
        RTW89_FW_WOWLAN = 3,
        RTW89_FW_NORMAL_CE = 5,
+       RTW89_FW_BBMCU0 = 64,
+       RTW89_FW_BBMCU1 = 65,
        RTW89_FW_LOGFMT = 255,
 };
 
@@ -3620,6 +3622,8 @@ struct rtw89_fw_info {
        u8 c2h_counter;
        struct rtw89_fw_suit normal;
        struct rtw89_fw_suit wowlan;
+       struct rtw89_fw_suit bbmcu0;
+       struct rtw89_fw_suit bbmcu1;
        struct rtw89_fw_log log;
        u32 feature_map;
 };
@@ -5154,10 +5158,19 @@ static inline struct rtw89_fw_suit *rtw89_fw_suit_get(struct rtw89_dev *rtwdev,
 {
        struct rtw89_fw_info *fw_info = &rtwdev->fw;
 
-       if (type == RTW89_FW_WOWLAN)
+       switch (type) {
+       case RTW89_FW_WOWLAN:
                return &fw_info->wowlan;
-       else if (type == RTW89_FW_LOGFMT)
+       case RTW89_FW_LOGFMT:
                return &fw_info->log.suit;
+       case RTW89_FW_BBMCU0:
+               return &fw_info->bbmcu0;
+       case RTW89_FW_BBMCU1:
+               return &fw_info->bbmcu1;
+       default:
+               break;
+       }
+
        return &fw_info->normal;
 }