diff options
author | Ping-Ke Shih <pkshih@realtek.com> | 2023-08-01 10:11:24 +0800 |
---|---|---|
committer | Kalle Valo <kvalo@kernel.org> | 2023-08-03 15:04:11 +0300 |
commit | 7d112665982b0b78e6bcf4173c8231838c158187 (patch) | |
tree | d5ff5dd4caaec90afe06721dae45bc3eda7de774 /drivers/net/wireless/realtek | |
parent | 12b1a12548eb31812f0a6128a0796d1656e2abb2 (diff) | |
download | linux-stable-7d112665982b0b78e6bcf4173c8231838c158187.tar.gz linux-stable-7d112665982b0b78e6bcf4173c8231838c158187.tar.bz2 linux-stable-7d112665982b0b78e6bcf4173c8231838c158187.zip |
wifi: rtw89: add firmware suit for BB MCU 0/1
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
Diffstat (limited to 'drivers/net/wireless/realtek')
-rw-r--r-- | drivers/net/wireless/realtek/rtw89/core.h | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/drivers/net/wireless/realtek/rtw89/core.h b/drivers/net/wireless/realtek/rtw89/core.h index 01f79f2a8e2b..aaee0733301a 100644 --- a/drivers/net/wireless/realtek/rtw89/core.h +++ b/drivers/net/wireless/realtek/rtw89/core.h @@ -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; } |