diff --git a/fw/wmi_services.h b/fw/wmi_services.h index c1a7fe50d9bf..2305cad7beee 100644 --- a/fw/wmi_services.h +++ b/fw/wmi_services.h @@ -701,7 +701,7 @@ typedef enum { WMI_SERVICE_APF_DATA_OFFLOAD_SUPPORT_ENABLED = 442, /* Indicates FW support for APFv6 handling offloads and disable QC data offloads */ WMI_SERVICE_PER_VDEV_TWT_RESP_DISABLE_SUPPORT = 443, /* FW supports vdev level TWT responder disable */ WMI_SERVICE_VENDOR_OUI_ACTION_V2 = 444, /* FW supports vendor OUI action version 2 */ - + WMI_SERVICE_HW_BLACKLIST_CHAN_SUPPORT = 445, /* Indicates FW support for computing and sending the HW channel blacklist for the current country and applicable power mode */ WMI_MAX_EXT2_SERVICE diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h index 10f7ab407ce6..80287b318db8 100644 --- a/fw/wmi_tlv_defs.h +++ b/fw/wmi_tlv_defs.h @@ -1481,6 +1481,8 @@ typedef enum { WMITLV_TAG_STRUC_wmi_mlo_link_ttlm_complete_fixed_param, WMITLV_TAG_STRUC_wmi_ctrl_path_sta_dar_stats_struct, WMITLV_TAG_STRUC_wmi_bpf_set_supported_offload_bitmap_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_hw_blacklist_chan_fixed_param, + WMITLV_TAG_STRUC_wmi_hw_blacklist_chan_data, } WMITLV_TAG_ID; /* * IMPORTANT: Please add _ALL_ WMI Commands Here. @@ -2380,6 +2382,7 @@ typedef enum { OP(WMI_PDEV_WIFI_RADAR_CAPABILITIES_EVENTID) \ OP(WMI_VDEV_VBSS_CONFIG_EVENTID) \ OP(WMI_OPT_DP_DIAG_EVENTID) \ + OP(WMI_HW_BLACKLIST_CHAN_EVENTID) \ /* add new EVT_LIST elements above this line */ @@ -6977,7 +6980,9 @@ WMITLV_CREATE_PARAM_STRUC(WMI_REG_CHAN_LIST_CC_EVENTID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_regulatory_chan_priority_struct, reg_chan_priority, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_regulatory_fcc_rule_struct, reg_fcc_rule, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_reg_chan_list_cc_ext_additional_params, reg_more_data, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_regulatory_rule_meta_data, reg_meta_data, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_regulatory_rule_meta_data, reg_meta_data, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_hw_blacklist_chan_fixed_param, hw_blacklist_chan_fixed_param, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_hw_blacklist_chan_data, hw_blacklist_chan_data, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_REG_CHAN_LIST_CC_EXT_EVENTID); /* WMI AFC info event */ @@ -6987,9 +6992,17 @@ WMITLV_CREATE_PARAM_STRUC(WMI_REG_CHAN_LIST_CC_EXT_EVENTID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_afc_power_event_param, wmi_afc_power_event_param, afc_power_event_param, WMITLV_SIZE_FIX)\ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_6g_afc_frequency_info, freq_info_array, WMITLV_SIZE_VAR)\ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_6g_afc_channel_info, channel_info_array, WMITLV_SIZE_VAR)\ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_afc_chan_eirp_power_info, chan_eirp_power_info_array, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_afc_chan_eirp_power_info, chan_eirp_power_info_array, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_hw_blacklist_chan_fixed_param, hw_blacklist_chan_fixed_param, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_hw_blacklist_chan_data, hw_blacklist_chan_data, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_AFC_EVENTID); +/* HW blacklist channels for the current country code */ +#define WMITLV_TABLE_WMI_HW_BLACKLIST_CHAN_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_hw_blacklist_chan_fixed_param, wmi_hw_blacklist_chan_fixed_param, hw_blacklist_chan_fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_hw_blacklist_chan_data, hw_blacklist_chan_data, WMITLV_SIZE_VAR) +WMITLV_CREATE_PARAM_STRUC(WMI_HW_BLACKLIST_CHAN_EVENTID); + /* Indicate LPI AP detect or not to Host */ #define WMITLV_TABLE_WMI_C2C_DETECT_EVENTID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_c2c_detect_event_fixed_param, wmi_c2c_detect_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index 63c6b5e5568c..bee7a553655d 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -2533,6 +2533,8 @@ typedef enum { WMI_AFC_EVENTID, WMI_REG_CHAN_LIST_CC_EXT2_EVENTID, /* DEPRECATED */ WMI_C2C_DETECT_EVENTID, + /* WMI event to send the HW channel blacklist during the CTL blob update */ + WMI_HW_BLACKLIST_CHAN_EVENTID, /** Events for TWT(Target Wake Time) of STA and AP */ WMI_TWT_ENABLE_COMPLETE_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_TWT), @@ -5006,8 +5008,16 @@ typedef struct { * enabled by both host configuration and FW capability. * Refer to the below definitions of * WMI_RSRC_CFG_HOST_SERVICE_FLAG_ACTION_OUI_V2_GET and SET. + * Bit 21 + * This bit will be set by host to inform FW that HW blacklist + * channel is supported in host. Based on this flag, FW will do + * CTL generation for all the IEEE channels allowed in the VLP + * and SP power for the current county and update host in the + * below WMI Events: + * WMI_REG_CHAN_LIST_CC_EXT_EVENTID, WMI_AFC_EVENTID, and + * WMI_HW_BLACKLIST_CHAN_EVENTID * - * Bits 31:21 - Reserved + * Bits 31:22 - Reserved */ A_UINT32 host_service_flags; @@ -5562,6 +5572,12 @@ typedef struct { #define WMI_RSRC_CFG_HOST_SERVICE_FLAG_ACTION_OUI_V2_SET(host_service_flags, val) \ WMI_SET_BITS(host_service_flags, 20, 1, val) +/* This bit is used to inform FW to send HW Blacklist channels to host */ +#define WMI_RSRC_CFG_HOST_SERVICE_FLAG_HOST_SUPPORT_HW_BLACKLIST_CHANNEL_SUPPORT_GET(host_service_flags) \ + WMI_GET_BITS(host_service_flags, 21, 1) +#define WMI_RSRC_CFG_HOST_SERVICE_FLAG_HOST_SUPPORT_HW_BLACKLIST_CHANNEL_SUPPORT_SET(host_service_flags, val) \ + WMI_SET_BITS(host_service_flags, 21, 1, val) + #define WMI_RSRC_CFG_CARRIER_CFG_CHARTER_ENABLE_GET(carrier_config) \ WMI_GET_BITS(carrier_config, 0, 1) @@ -39568,9 +39584,10 @@ typedef struct { A_UINT32 num_6g_reg_rules_client_lpi[WMI_REG_CLIENT_MAX]; A_UINT32 num_6g_reg_rules_client_vlp[WMI_REG_CLIENT_MAX]; /* - * NOTE: no further fields can be added into this struct, due to - * message buffer size limitations in certain targets for the - * WMI_REG_CHAN_LIST_CC_EXT_EVENT message. + * NOTE: We cannot add new parameters to the fixed param TLV though + * we have enough buffer size (WMI_SVC_MSG_SIZE) for the given WMI event. + * This is due to a crash seen in the host parsing logic of this fixed param. + * New params can be added in the same message but in other TLVs. */ /* * This fixed_param TLV is followed by the following TLVs: @@ -39586,6 +39603,10 @@ typedef struct { * - wmi_regulatory_rule_meta_data reg_meta_data[] * struct used to fill meta information specific to new reg rules * getting added(i.e. from C2C onwards). + * - wmi_hw_blacklist_chan_fixed_param hw_blacklist_chan_fixed_param[0 or 1] + * optional TLV for reporting HW channel blacklist meta-data. + * - wmi_hw_blacklist_chan_data, hw_blacklist_chan_data[] + * optional TLV for reporting HW channel blacklist information. */ } wmi_reg_chan_list_cc_event_ext_fixed_param; @@ -39738,6 +39759,10 @@ typedef struct { * This TLV array contains zero or more TLVs of channel CFI and * EIRP power values for each of the total number of channels * per global operating class. + * 6. wmi_hw_blacklist_chan_fixed_param hw_blacklist_chan_fixed_param[] + * optional meta-data for HW channel blacklist + * 7. wmi_hw_blacklist_chan_data hw_blacklist_chan_data[] + * optional HW channel blacklist information */ } wmi_afc_event_fixed_param; @@ -39830,6 +39855,233 @@ typedef struct { A_UINT32 eirp_pwr; /* maximum permissible EIRP available for above CFI in dBm, value is stored in 0.01 dBm steps */ } wmi_afc_chan_eirp_power_info; + +typedef enum { + WMI_11BE_PUNCTURE_PATTERN_80MHZ_MINUS_20MHZ_0x1 = 0, + WMI_11BE_PUNCTURE_PATTERN_80MHZ_MINUS_20MHZ_0x2 = 1, + WMI_11BE_PUNCTURE_PATTERN_80MHZ_MINUS_20MHZ_0x4 = 2, + WMI_11BE_PUNCTURE_PATTERN_80MHZ_MINUS_20MHZ_0x8 = 3, + WMI_11BE_PUNCTURE_PATTERN_80MHZ_MAX, +} WMI_11BE_PUNCTURE_PATTERNS_80MHZ; + +typedef enum { + WMI_11BE_PUNCTURE_PATTERN_160MHZ_MINUS_20MHZ_0x1 = 0, + WMI_11BE_PUNCTURE_PATTERN_160MHZ_MINUS_20MHZ_0x2 = 1, + WMI_11BE_PUNCTURE_PATTERN_160MHZ_MINUS_20MHZ_0x4 = 2, + WMI_11BE_PUNCTURE_PATTERN_160MHZ_MINUS_20MHZ_0x8 = 3, + WMI_11BE_PUNCTURE_PATTERN_160MHZ_MINUS_20MHZ_0x10 = 4, + WMI_11BE_PUNCTURE_PATTERN_160MHZ_MINUS_20MHZ_0x20 = 5, + WMI_11BE_PUNCTURE_PATTERN_160MHZ_MINUS_20MHZ_0x40 = 6, + WMI_11BE_PUNCTURE_PATTERN_160MHZ_MINUS_20MHZ_0x80 = 7, + + WMI_11BE_PUNCTURE_PATTERN_160MHZ_MINUS_40MHZ_0x0C = 8, + WMI_11BE_PUNCTURE_PATTERN_160MHZ_MINUS_40MHZ_0x03 = 9, + WMI_11BE_PUNCTURE_PATTERN_160MHZ_MINUS_40MHZ_0xC0 = 10, + WMI_11BE_PUNCTURE_PATTERN_160MHZ_MINUS_40MHZ_0x30 = 11, + + WMI_11BE_PUNCTURE_PATTERN_160MHZ_MAX, +} WMI_11BE_PUNCTURE_PATTERNS_160MHZ; + +typedef enum { + WMI_11BE_PUNCTURE_PATTERN_320MHZ_MINUS_40MHZ_0xC = 0, + WMI_11BE_PUNCTURE_PATTERN_320MHZ_MINUS_40MHZ_0x3 = 1, + WMI_11BE_PUNCTURE_PATTERN_320MHZ_MINUS_40MHZ_0xC0 = 2, + WMI_11BE_PUNCTURE_PATTERN_320MHZ_MINUS_40MHZ_0x30 = 3, + WMI_11BE_PUNCTURE_PATTERN_320MHZ_MINUS_40MHZ_0xC00 = 4, + WMI_11BE_PUNCTURE_PATTERN_320MHZ_MINUS_40MHZ_0x300 = 5, + WMI_11BE_PUNCTURE_PATTERN_320MHZ_MINUS_40MHZ_0xC000 = 6, + WMI_11BE_PUNCTURE_PATTERN_320MHZ_MINUS_40MHZ_0x3000 = 7, + + WMI_11BE_PUNCTURE_PATTERN_320MHZ_MINUS_80MHZ_0xF = 8, + WMI_11BE_PUNCTURE_PATTERN_320MHZ_MINUS_80MHZ_0xF0 = 9, + WMI_11BE_PUNCTURE_PATTERN_320MHZ_MINUS_80MHZ_0xF00 = 10, + WMI_11BE_PUNCTURE_PATTERN_320MHZ_MINUS_80MHZ_0xF000 = 11, + + WMI_11BE_PUNCTURE_PATTERN_320MHZ_MINUS_120MHZ_0xF003 = 12, + WMI_11BE_PUNCTURE_PATTERN_320MHZ_MINUS_120MHZ_0xF00C = 13, + WMI_11BE_PUNCTURE_PATTERN_320MHZ_MINUS_120MHZ_0xF030 = 14, + WMI_11BE_PUNCTURE_PATTERN_320MHZ_MINUS_120MHZ_0xF0C0 = 15, + WMI_11BE_PUNCTURE_PATTERN_320MHZ_MINUS_120MHZ_0xF300 = 16, + WMI_11BE_PUNCTURE_PATTERN_320MHZ_MINUS_120MHZ_0xFC00 = 17, + WMI_11BE_PUNCTURE_PATTERN_320MHZ_MINUS_120MHZ_0x003F = 18, + WMI_11BE_PUNCTURE_PATTERN_320MHZ_MINUS_120MHZ_0x00CF = 19, + WMI_11BE_PUNCTURE_PATTERN_320MHZ_MINUS_120MHZ_0x030F = 20, + WMI_11BE_PUNCTURE_PATTERN_320MHZ_MINUS_120MHZ_0x0C0F = 21, + WMI_11BE_PUNCTURE_PATTERN_320MHZ_MINUS_120MHZ_0x300F = 22, + WMI_11BE_PUNCTURE_PATTERN_320MHZ_MINUS_120MHZ_0xC00F = 23, + + WMI_11BE_PUNCTURE_PATTERN_320MHZ_MAX, +} WMI_11BE_PUNCTURE_PATTERNS_320MHZ; + +typedef enum { + /* + * bits 16-19 of "blacklist_msg_info" in wmi_hw_blacklist_chan_fixed_param. + * This status code intimates host whether the TLV sent by + * Halphy is to update the master channel list or clear it. + */ + WMI_HW_BLACKLIST_CHAN_SP_UPDATE = 0, + WMI_HW_BLACKLIST_CHAN_VLP_UPDATE, + /* the below enums are added for future scope */ + WMI_HW_BLACKLIST_CHAN_SP_CLEAR, + WMI_HW_BLACKLIST_CHAN_VLP_CLEAR, + WMI_HW_BLACKLIST_CHAN_UPDATE_ALL, + WMI_HW_BLACKLIST_CHAN_CLEAR_ALL, + WMI_HW_BLACKLIST_CHAN_INVALID = 15, +} WMI_HW_BLACKLIST_CHAN_RESP_CMD_CODE; + +typedef enum { + /* + * bit 20, "blacklist_msg_info" flag in wmi_hw_blacklist_chan_fixed_param + * This bit field informs the host whether all the blacklist channel + * information has been sent, or if further messages will follow to + * deliver the remaining information. + */ + WMI_HW_BLACKLIST_CHAN_EVENT_DONE = 0, /* Indicates it is the last event */ + WMI_HW_BLACKLIST_CHAN_EVENT_MORE = 1, /* Indicates more evts will follow */ +} WMI_HW_BLACKLIST_CHAN_DATA_EVENT_FLAG; + +#define WMI_GET_BLACKLIST_MSG_INFO_WMI_EVT_SEQ_NUM(flag) \ + WMI_GET_BITS(flag, 0, 8) +#define WMI_SET_BLACKLIST_MSG_INFO_WMI_EVT_SEQ_NUM(flag, val) \ + WMI_SET_BITS(flag, 0, 8, val) + +#define WMI_GET_BLACKLIST_MSG_INFO_TOTAL_WMI_EVT_NUM(flag) \ + WMI_GET_BITS(flag, 8, 8) +#define WMI_SET_BLACKLIST_MSG_INFO_TOTAL_WMI_EVT_NUM(flag, val) \ + WMI_SET_BITS(flag, 8, 8, val) + +#define WMI_GET_BLACKLIST_MSG_INFO_RESP_CODE(flag) \ + WMI_GET_BITS(flag, 16, 4) +#define WMI_SET_BLACKLIST_MSG_INFO_RESP_CODE(flag, val) \ + WMI_SET_BITS(flag, 16, 4, val) + +#define WMI_GET_BLACKLIST_MSG_INFO_EVT_FLAG(flag) \ + WMI_GET_BITS(flag, 20, 1) +#define WMI_SET_BLACKLIST_MSG_INFO_EVT_FLAG(flag, val) \ + WMI_SET_BITS(flag, 20, 1, val) + +#define WMI_GET_BLACKLIST_CHANNELS_TOTAL_NUM_CHAN(flag) \ + WMI_GET_BITS(flag, 0, 16) +#define WMI_SET_BLACKLIST_CHANNELS_TOTAL_NUM_CHAN(flag, val) \ + WMI_SET_BITS(flag, 0, 16, val) + +#define WMI_GET_BLACKLIST_CHANNELS_CURRENT_NUM_CHAN(flag) \ + WMI_GET_BITS(flag, 16, 16) +#define WMI_SET_BLACKLIST_CHANNELS_CURRENT_NUM_CHAN(flag, val) \ + WMI_SET_BITS(flag, 16, 16, val) + +typedef struct { + /** TLV tag and len; + * tag equals WMITLV_TAG_STRUC_wmi_hw_blacklist_chan_fixed_param*/ + A_UINT32 tlv_header; + A_UINT32 phy_id; + union { + A_UINT32 blacklist_msg_info; + /* + * bit 7 - 0 -> Current WMI event sequence number + * bit 15 - 8 -> Total number of WMI events [For debugging only] + * bit 19 - 16 -> ENUM "WMI_HW_BLACKLIST_CHAN_RESP_CMD_CODE" + * bit 20 -> ENUM "WMI_HW_BLACKLIST_CHAN_DATA_EVENT_FLAG" + * bit 31 - 21 -> Reserved + */ + struct { + A_UINT32 + blacklist_wmi_seq_num: 8, + blacklist_wmi_total_num: 8, + blacklist_resp_code: 4, + blacklist_event_flag:1, + reserved: 11; + }; + }; + /* + * bit 15 - 0 -> Total number of HW blacklist channels + * bit 31 - 16 -> number of HW blacklist channels in current WMI + */ + union { + A_UINT32 num_hw_blacklist_channels; + struct { + A_UINT32 + total_num_chan: 16, + current_num_chan: 16; + }; + }; +} wmi_hw_blacklist_chan_fixed_param; + +#define WMI_GET_FREQ_INFO_PRI20_BITMAP(flag) \ + WMI_GET_BITS(flag, 0, 16) +#define WMI_SET_FREQ_INFO_PRI20_BITMAP(flag, val) \ + WMI_SET_BITS(flag, 0, 16, val) + +#define WMI_GET_FREQ_INFO_CHAN_CENTER_FREQ(flag) \ + WMI_GET_BITS(flag, 16, 16) +#define WMI_SET_FREQ_INFO_CHAN_CENTER_FREQ(flag, val) \ + WMI_SET_BITS(flag, 16, 16, val) + +#define WMI_GET_CHAN_LIST_META_DATA_POWER_MODE(flag) \ + WMI_GET_BITS(flag, 0, 4) +#define WMI_SET_CHAN_LIST_META_DATA_POWER_MODE(flag, val) \ + WMI_SET_BITS(flag, 0, 4, val) + +#define WMI_GET_CHAN_LIST_META_DATA_MAX_BW(flag) \ + WMI_GET_BITS(flag, 4, 8) +#define WMI_SET_CHAN_LIST_META_DATA_MAX_BW(flag, val) \ + WMI_SET_BITS(flag, 4, 8, val) + +#define WMI_GET_PUNCTURE_PATTERN_BITMAP(flag) \ + WMI_GET_BITS(flag, 0, 24) +#define WMI_SET_PUNCTURE_PATTERN_BITMAP(flag, val) \ + WMI_SET_BITS(flag, 0, 24, val) + +typedef struct { + /** TLV tag and len; + * tag equals WMITLV_TAG_STRUC_wmi_hw_blacklist_chan_data */ + A_UINT32 tlv_header; + /* + * bit 15 - 0 -> bitmap representing a set of 20MHz primary channels + * bit 31 - 16 -> channel center frequency in MHz for the given Max BW + * in "chan_list_meta_data" + */ + union { + A_UINT32 freq_info; + struct { + A_UINT32 + pri20_bitmap: 16, + chan_center_freq: 16; + }; + }; + /* + * bit 3 - 0 -> Power mode "WMI_6GHZ_REG_PWRMODE_TYPE" + * bit 11 - 4 -> Max BW with enum "wmi_channel_width" + * bit 31 - 12 -> reserved + */ + union { + A_UINT32 chan_list_meta_data; + struct { + A_UINT32 + power_mode: 4, + max_bw: 8, + reserved1: 20; + }; + }; + /* + * bit represents blacklisted puncture pattern based on enums + * WMI_11BE_PUNCTURE_PATTERNS_320MHZ, WMI_11BE_PUNCTURE_PATTERNS_160MHZ, + * WMI_11BE_PUNCTURE_PATTERNS_80MHZ + * bit 23 - 0 -> bitmap representing a set of puncture patterns of the + * given bandwidth. The bandwidth is represented by + * bits 8-15 of A_UINT32 chan_list_meta_data + * bit 31 - 24 -> reserved for future puncture patterns + */ + union { + A_UINT32 puncture_pattern_bitmap_info; + struct { + A_UINT32 + puncture_pattern_bitmap: 24, + reserved2: 8; + }; + }; +} wmi_hw_blacklist_chan_data; + typedef struct { A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_11d_scan_start_cmd_fixed_param */ A_UINT32 vdev_id; diff --git a/fw/wmi_version.h b/fw/wmi_version.h index eacac7fbc2fb..a510a9740412 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_ 1616 +#define __WMI_REVISION_ 1617 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work