mirror of
https://github.com/torvalds/linux.git
synced 2026-06-02 11:33:28 +02:00
wifi: rtw89: fw: change FW feature map to a BITMAP
Originally, FW feature map was declared as a u32. But, the number of FW feature flags is going to be over than 32. So, change it to a BITMAP and update the corresponding macros. Signed-off-by: Zong-Zhe Yang <kevin_yang@realtek.com> Signed-off-by: Ping-Ke Shih <pkshih@realtek.com> Link: https://patch.msgid.link/20251231090647.56407-5-pkshih@realtek.com
This commit is contained in:
parent
9485da4e4c
commit
c5e5519fd9
|
|
@ -4702,6 +4702,8 @@ enum rtw89_fw_feature {
|
|||
RTW89_FW_FEATURE_ADDR_CAM_V0,
|
||||
RTW89_FW_FEATURE_SER_L1_BY_EVENT,
|
||||
RTW89_FW_FEATURE_SIM_SER_L0L1_BY_HALT_H2C,
|
||||
|
||||
NUM_OF_RTW89_FW_FEATURES,
|
||||
};
|
||||
|
||||
struct rtw89_fw_suit {
|
||||
|
|
@ -4793,20 +4795,25 @@ struct rtw89_fw_info {
|
|||
struct rtw89_fw_suit bbmcu0;
|
||||
struct rtw89_fw_suit bbmcu1;
|
||||
struct rtw89_fw_log log;
|
||||
u32 feature_map;
|
||||
struct rtw89_fw_elm_info elm_info;
|
||||
struct rtw89_fw_secure sec;
|
||||
|
||||
DECLARE_BITMAP(feature_map, NUM_OF_RTW89_FW_FEATURES);
|
||||
};
|
||||
|
||||
#define RTW89_CHK_FW_FEATURE(_feat, _fw) \
|
||||
(!!((_fw)->feature_map & BIT(RTW89_FW_FEATURE_ ## _feat)))
|
||||
test_bit(RTW89_FW_FEATURE_ ## _feat, (_fw)->feature_map)
|
||||
|
||||
#define RTW89_CHK_FW_FEATURE_GROUP(_grp, _fw) \
|
||||
(!!((_fw)->feature_map & GENMASK(RTW89_FW_FEATURE_ ## _grp ## _MAX, \
|
||||
RTW89_FW_FEATURE_ ## _grp ## _MIN)))
|
||||
({ \
|
||||
unsigned int bit = find_next_bit((_fw)->feature_map, \
|
||||
NUM_OF_RTW89_FW_FEATURES, \
|
||||
RTW89_FW_FEATURE_ ## _grp ## _MIN); \
|
||||
bit <= RTW89_FW_FEATURE_ ## _grp ## _MAX; \
|
||||
})
|
||||
|
||||
#define RTW89_SET_FW_FEATURE(_fw_feature, _fw) \
|
||||
((_fw)->feature_map |= BIT(_fw_feature))
|
||||
set_bit(_fw_feature, (_fw)->feature_map)
|
||||
|
||||
struct rtw89_cam_info {
|
||||
DECLARE_BITMAP(addr_cam_map, RTW89_MAX_ADDR_CAM_NUM);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user