Commit 7d112665 authored by Ping-Ke Shih's avatar Ping-Ke Shih Committed by Kalle Valo
Browse files

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: default avatarPing-Ke Shih <pkshih@realtek.com>
Signed-off-by: default avatarKalle Valo <kvalo@kernel.org>
Link: https://lore.kernel.org/r/20230801021127.15919-6-pkshih@realtek.com
parent 12b1a125
Loading
Loading
Loading
Loading
+15 −2
Original line number Diff line number Diff line
@@ -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;
}