From d5437ebe86b54fff47e8abf161c412cc3019d3b5 Mon Sep 17 00:00:00 2001 From: spuligil Date: Sat, 3 Sep 2022 06:00:59 -0700 Subject: [PATCH] fw-api: CL 19468705 - update fw common interface files WMI macros: clarify limits of bit shifts Change-Id: I0586b52fa3b050dae69133bbe2f1495076ff5a84 CRs-Fixed: 2262693 --- fw/wmi_services.h | 14 +++++++------- fw/wmi_unified.h | 49 ++++++++++++++++++++++++----------------------- fw/wmi_version.h | 2 +- 3 files changed, 33 insertions(+), 32 deletions(-) diff --git a/fw/wmi_services.h b/fw/wmi_services.h index e47760e92791..e027cefe8d9f 100644 --- a/fw/wmi_services.h +++ b/fw/wmi_services.h @@ -633,15 +633,15 @@ typedef enum { */ #define WMI_SERVICE_ENABLE(pwmi_svc_bmap,svc_id) \ ( (pwmi_svc_bmap)[(svc_id)/(sizeof(A_UINT32))] |= \ - (1 << ((svc_id)%(sizeof(A_UINT32)))) ) + ((A_UINT32) 1 << ((svc_id)%(sizeof(A_UINT32)))) ) #define WMI_SERVICE_DISABLE(pwmi_svc_bmap,svc_id) \ ( (pwmi_svc_bmap)[(svc_id)/(sizeof(A_UINT32))] &= \ - ( ~(1 << ((svc_id)%(sizeof(A_UINT32)))) ) ) + ( ~((A_UINT32) 1 << ((svc_id)%(sizeof(A_UINT32)))) ) ) #define WMI_SERVICE_IS_ENABLED(pwmi_svc_bmap,svc_id) \ ( ((pwmi_svc_bmap)[(svc_id)/(sizeof(A_UINT32))] & \ - (1 << ((svc_id)%(sizeof(A_UINT32)))) ) != 0) + ((A_UINT32) 1 << ((svc_id)%(sizeof(A_UINT32)))) ) != 0) #define WMI_SERVICE_EXT_ENABLE(pwmi_svc_bmap, pwmi_svc_ext_bmap, svc_id) \ @@ -651,7 +651,7 @@ typedef enum { } else { \ int word = ((svc_id) - WMI_MAX_SERVICE) / 32; \ int bit = (svc_id) & 0x1f; /* svc_id mod 32 */ \ - (pwmi_svc_ext_bmap)[word] |= (1 << bit); \ + (pwmi_svc_ext_bmap)[word] |= ((A_UINT32) 1 << bit); \ } \ } while (0) @@ -662,7 +662,7 @@ typedef enum { } else { \ int word = ((svc_id) - WMI_MAX_SERVICE) / 32; \ int bit = (svc_id) & 0x1f; /* svc_id mod 32 */ \ - (pwmi_svc_ext_bmap)[word] &= ~(1 << bit); \ + (pwmi_svc_ext_bmap)[word] &= ~((A_UINT32) 1 << bit); \ } \ } while (0) @@ -686,7 +686,7 @@ typedef enum { } else { \ int word = ((svc_id) - WMI_MAX_EXT_SERVICE) / 32; \ int bit = (svc_id) & 0x1f; /* svc_id mod 32 */ \ - (pwmi_svc_ext2_bmap)[word] |= (1 << bit); \ + (pwmi_svc_ext2_bmap)[word] |= ((A_UINT32) 1 << bit); \ } \ } while (0) @@ -700,7 +700,7 @@ typedef enum { } else { \ int word = ((svc_id) - WMI_MAX_EXT_SERVICE) / 32; \ int bit = (svc_id) & 0x1f; /* svc_id mod 32 */ \ - (pwmi_svc_ext2_bmap)[word] &= ~(1 << bit); \ + (pwmi_svc_ext2_bmap)[word] &= ~((A_UINT32) 1 << bit); \ } \ } while (0) diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index f16ce9083c2a..d770bff19ed0 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -116,11 +116,11 @@ extern "C" { } while (0) #define WMI_GET_BITS(_val,_index,_num_bits) \ - (((_val) >> (_index)) & ((1 << (_num_bits)) - 1)) + (((_val) >> (_index)) & (((A_UINT32) 1 << (_num_bits)) - 1)) -#define WMI_SET_BITS(_var,_index,_num_bits,_val) do { \ - (_var) &= ~(((1 << (_num_bits)) - 1) << (_index)); \ - (_var) |= (((_val) & ((1 << (_num_bits)) - 1)) << (_index)); \ +#define WMI_SET_BITS(_var,_index,_num_bits,_val) do { \ + (_var) &= ~((((A_UINT32) 1 << (_num_bits)) - 1) << (_index)); \ + (_var) |= (((_val) & (((A_UINT32) 1 << (_num_bits)) - 1)) << (_index)); \ } while (0) #define WMI_APPEND_TWO_SET_BITS(var, lsb_index, lsb_num_bits, msb_index, msb_num_bits, val) \ @@ -180,7 +180,7 @@ static INLINE A_UINT32 wmi_packed_arr_get_bits(A_UINT32 *arr, A_UINT32 index_in_uint = (entry_index - num_entries_in_prev_uints); A_UINT32 start_bit_in_uint = (index_in_uint * bits_per_entry); return (arr[uint_index] >> start_bit_in_uint) & - ((1 << bits_per_entry) - 1); + (((A_UINT32) 1 << bits_per_entry) - 1); } static INLINE void wmi_packed_arr_set_bits(A_UINT32 *arr, A_UINT32 entry_index, @@ -192,9 +192,10 @@ static INLINE void wmi_packed_arr_set_bits(A_UINT32 *arr, A_UINT32 entry_index, A_UINT32 index_in_uint = (entry_index - num_entries_in_prev_uints); A_UINT32 start_bit_in_uint = (index_in_uint * bits_per_entry); - arr[uint_index] &= ~(((1 << bits_per_entry) - 1) << start_bit_in_uint); + arr[uint_index] &= + ~((((A_UINT32) 1 << bits_per_entry) - 1) << start_bit_in_uint); arr[uint_index] |= - ((val & ((1 << bits_per_entry) - 1)) << start_bit_in_uint); + ((val & (((A_UINT32) 1 << bits_per_entry) - 1)) << start_bit_in_uint); } /** 2 word representation of MAC addr */ @@ -218,10 +219,10 @@ typedef struct _wmi_mac_addr { /** macro to convert MAC address from char array to WMI word format */ #define WMI_CHAR_ARRAY_TO_MAC_ADDR(c_macaddr,pwmi_mac_addr) do { \ (pwmi_mac_addr)->mac_addr31to0 = \ - (((c_macaddr)[0] << 0) | \ - ((c_macaddr)[1] << 8) | \ - ((c_macaddr)[2] << 16) | \ - ((c_macaddr)[3] << 24)); \ + (((A_UINT32)(c_macaddr)[0] << 0) | \ + ((A_UINT32)(c_macaddr)[1] << 8) | \ + ((A_UINT32)(c_macaddr)[2] << 16) | \ + ((A_UINT32)(c_macaddr)[3] << 24)); \ (pwmi_mac_addr)->mac_addr47to32 = ((c_macaddr)[4] | ((c_macaddr)[5] << 8));\ } while (0) @@ -2396,11 +2397,11 @@ typedef enum { #define WMI_CHAN_FLAG_ALLOW_EHT 21 /* EHT (11be) is allowed on this channel */ #define WMI_SET_CHANNEL_FLAG(pwmi_channel,flag) do { \ - (pwmi_channel)->info |= (1 << flag); \ + (pwmi_channel)->info |= ((A_UINT32) 1 << flag); \ } while (0) #define WMI_GET_CHANNEL_FLAG(pwmi_channel,flag) \ - (((pwmi_channel)->info & (1 << flag)) >> flag) + (((pwmi_channel)->info & ((A_UINT32) 1 << flag)) >> flag) #define WMI_SET_CHANNEL_MIN_POWER(pwmi_channel,val) do { \ (pwmi_channel)->reg_info_1 &= 0xffffff00; \ @@ -2785,11 +2786,11 @@ enum { #define WMI_DBS_CONC_SCAN_CFG_ASYNC_DBS_SCAN_BITPOS (28) #define WMI_DBS_CONC_SCAN_CFG_SYNC_DBS_SCAN_BITPOS (27) -#define WMI_DBS_CONC_SCAN_CFG_DBS_SCAN_MASK (0x1 << WMI_DBS_CONC_SCAN_CFG_DBS_SCAN_BITPOS) -#define WMI_DBS_CONC_SCAN_CFG_AGILE_SCAN_MASK (0x1 << WMI_DBS_CONC_SCAN_CFG_AGILE_SCAN_BITPOS) -#define WMI_DBS_CONC_SCAN_CFG_AGILE_DFS_SCAN_MASK (0x1 << WMI_DBS_CONC_SCAN_CFG_AGILE_DFS_SCAN_BITPOS) -#define WMI_DBS_CONC_SCAN_CFG_ASYC_DBS_SCAN_MASK (0x1 << WMI_DBS_CONC_SCAN_CFG_ASYNC_DBS_SCAN_BITPOS) -#define WMI_DBS_CONC_SCAN_CFG_SYNC_DBS_SCAN_MASK (0x1 << WMI_DBS_CONC_SCAN_CFG_SYNC_DBS_SCAN_BITPOS) +#define WMI_DBS_CONC_SCAN_CFG_DBS_SCAN_MASK ((A_UINT32) 0x1 << WMI_DBS_CONC_SCAN_CFG_DBS_SCAN_BITPOS) +#define WMI_DBS_CONC_SCAN_CFG_AGILE_SCAN_MASK ((A_UINT32) 0x1 << WMI_DBS_CONC_SCAN_CFG_AGILE_SCAN_BITPOS) +#define WMI_DBS_CONC_SCAN_CFG_AGILE_DFS_SCAN_MASK ((A_UINT32) 0x1 << WMI_DBS_CONC_SCAN_CFG_AGILE_DFS_SCAN_BITPOS) +#define WMI_DBS_CONC_SCAN_CFG_ASYC_DBS_SCAN_MASK ((A_UINT32) 0x1 << WMI_DBS_CONC_SCAN_CFG_ASYNC_DBS_SCAN_BITPOS) +#define WMI_DBS_CONC_SCAN_CFG_SYNC_DBS_SCAN_MASK ((A_UINT32) 0x1 << WMI_DBS_CONC_SCAN_CFG_SYNC_DBS_SCAN_BITPOS) #define WMI_DBS_CONC_SCAN_CFG_DBS_SCAN_SET(scan_cfg, value) \ WMI_SET_BITS(scan_cfg, WMI_DBS_CONC_SCAN_CFG_DBS_SCAN_BITPOS, 1, value) @@ -2820,12 +2821,12 @@ enum { #define WMI_DBS_FW_MODE_CFG_DBS_FOR_STA_PLUS_P2P_BITPOS (27) #define WMI_DBS_FW_MODE_CFG_ASYNC_SBS_BITPOS (26) -#define WMI_DBS_FW_MODE_CFG_DBS_MASK (0x1 << WMI_DBS_FW_MODE_CFG_DBS_BITPOS) -#define WMI_DBS_FW_MODE_CFG_AGILE_DFS_MASK (0x1 << WMI_DBS_FW_MODE_CFG_AGILE_DFS_BITPOS) -#define WMI_DBS_FW_MODE_CFG_DBS_FOR_CXN_DFS_MASK (0x1 << WMI_DBS_FW_MODE_CFG_DBS_FOR_CXN_BITPOS) -#define WMI_DBS_FW_MODE_CFG_DBS_FOR_STA_PLUS_STA_MASK (0x1 << WMI_DBS_FW_MODE_CFG_DBS_FOR_STA_PLUS_STA_BITPOS) -#define WMI_DBS_FW_MODE_CFG_DBS_FOR_STA_PLUS_P2P_MASK (0x1 << WMI_DBS_FW_MODE_CFG_DBS_FOR_STA_PLUS_P2P_BITPOS) -#define WMI_DBS_FW_MODE_CFG_ASYNC_SBS_MASK (0x1 << WMI_DBS_FW_MODE_CFG_ASYNC_SBS_BITPOS) +#define WMI_DBS_FW_MODE_CFG_DBS_MASK ((A_UINT32) 0x1 << WMI_DBS_FW_MODE_CFG_DBS_BITPOS) +#define WMI_DBS_FW_MODE_CFG_AGILE_DFS_MASK ((A_UINT32) 0x1 << WMI_DBS_FW_MODE_CFG_AGILE_DFS_BITPOS) +#define WMI_DBS_FW_MODE_CFG_DBS_FOR_CXN_DFS_MASK ((A_UINT32) 0x1 << WMI_DBS_FW_MODE_CFG_DBS_FOR_CXN_BITPOS) +#define WMI_DBS_FW_MODE_CFG_DBS_FOR_STA_PLUS_STA_MASK ((A_UINT32) 0x1 << WMI_DBS_FW_MODE_CFG_DBS_FOR_STA_PLUS_STA_BITPOS) +#define WMI_DBS_FW_MODE_CFG_DBS_FOR_STA_PLUS_P2P_MASK ((A_UINT32) 0x1 << WMI_DBS_FW_MODE_CFG_DBS_FOR_STA_PLUS_P2P_BITPOS) +#define WMI_DBS_FW_MODE_CFG_ASYNC_SBS_MASK ((A_UINT32) 0x1 << WMI_DBS_FW_MODE_CFG_ASYNC_SBS_BITPOS) #define WMI_DBS_FW_MODE_CFG_DBS_SET(fw_mode, value) \ WMI_SET_BITS(fw_mode, WMI_DBS_FW_MODE_CFG_DBS_BITPOS, 1, value) diff --git a/fw/wmi_version.h b/fw/wmi_version.h index 3ff47e0fd2c2..1cb00ebce9bd 100644 --- a/fw/wmi_version.h +++ b/fw/wmi_version.h @@ -37,7 +37,7 @@ #define __WMI_VER_MINOR_ 0 /** WMI revision number has to be incremented when there is a * change that may or may not break compatibility. */ -#define __WMI_REVISION_ 1209 +#define __WMI_REVISION_ 1210 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work