WiFi 7 chips can download BB MCU firmware via the same path as existing WiFi CPU firmware, and we need to check them successful after downloading, so use a corresponding hardware bit to confirm certain firmware is ready. To reuse the flow, uses mac_gen pointers to adapt WiFi 6/7 chips with different settings and checking rules. Also, refine flow to support download firmware one by one. Then, changes of flow look like 1. initial setup --> no logic change 2. download WiFi CPU firmware --> 2. for all firmware suits 2.1. download WiFi CPU firmware & check ready 2.2. download BB MCU firmware & check ready 3. check ready by status code --> no logic change Ping-Ke Shih (8): wifi: rtw89: fw: move polling function of firmware path ready to an individual function wifi: rtw89: fw: generalize download firmware flow by mac_gen pointers wifi: rtw89: fw: implement supported functions of download firmware for WiFi 7 chips wifi: rtw89: fw: add checking type for variant type of firmware wifi: rtw89: fw: propagate an argument include_bb for BB MCU firmware wifi: rtw89: 8922a: add chip_ops::bb_preinit to enable BB before downloading firmware wifi: rtw89: fw: refine download flow to support variant firmware suits wifi: rtw89: 8922a: set memory heap address for secure firmware drivers/net/wireless/realtek/rtw89/core.c | 2 +- drivers/net/wireless/realtek/rtw89/core.h | 19 +++ drivers/net/wireless/realtek/rtw89/fw.c | 122 +++++++++----- drivers/net/wireless/realtek/rtw89/fw.h | 7 +- drivers/net/wireless/realtek/rtw89/mac.c | 45 +++++- drivers/net/wireless/realtek/rtw89/mac.h | 10 +- drivers/net/wireless/realtek/rtw89/mac_be.c | 151 ++++++++++++++++++ drivers/net/wireless/realtek/rtw89/reg.h | 109 +++++++++++++ drivers/net/wireless/realtek/rtw89/rtw8851b.c | 2 + drivers/net/wireless/realtek/rtw89/rtw8852a.c | 2 + drivers/net/wireless/realtek/rtw89/rtw8852b.c | 2 + drivers/net/wireless/realtek/rtw89/rtw8852c.c | 2 + drivers/net/wireless/realtek/rtw89/wow.c | 4 +- 13 files changed, 424 insertions(+), 53 deletions(-) -- 2.25.1