diff options
| -rwxr-xr-x | fw/wmi_services.h | 1 | ||||
| -rwxr-xr-x | fw/wmi_tlv_defs.h | 9 | ||||
| -rwxr-xr-x | fw/wmi_unified.h | 333 | ||||
| -rwxr-xr-x | fw/wmi_version.h | 2 |
4 files changed, 344 insertions, 1 deletions
diff --git a/fw/wmi_services.h b/fw/wmi_services.h index 09cac446565b..31f225c93bdd 100755 --- a/fw/wmi_services.h +++ b/fw/wmi_services.h @@ -413,6 +413,7 @@ typedef enum { * runtime PM suspend. */ WMI_SERVICE_QMI_STATS_SUPPORT = 225, + WMI_SERVICE_CFR_CAPTURE_FILTER_SUPPORT = 226, /* Indicate FW Supports Channel Frequency Response (CFR) via WMI_CFR_CAPTURE_FILTER_CMDID */ /******* ADD NEW SERVICES HERE *******/ diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h index bd4e8c2275a2..bd0054936257 100755 --- a/fw/wmi_tlv_defs.h +++ b/fw/wmi_tlv_defs.h @@ -1008,6 +1008,8 @@ typedef enum { WMITLV_TAG_STRUC_wmi_audio_aggr_del_group, WMITLV_TAG_STRUC_wmi_audio_aggr_set_group_rate, WMITLV_TAG_STRUC_wmi_audio_aggr_set_group_retry, + WMITLV_TAG_STRUC_wmi_cfr_capture_filter_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_cfr_filter_group_config, } WMITLV_TAG_ID; /* @@ -1420,6 +1422,7 @@ typedef enum { OP(WMI_AUDIO_AGGR_DEL_GROUP_CMDID) \ OP(WMI_AUDIO_AGGR_SET_GROUP_RATE_CMDID) \ OP(WMI_AUDIO_AGGR_SET_GROUP_RETRY_CMDID) \ + OP(WMI_CFR_CAPTURE_FILTER_CMDID) \ /* add new CMD_LIST elements above this line */ @@ -4121,6 +4124,12 @@ WMITLV_CREATE_PARAM_STRUC(WMI_AUDIO_AGGR_SET_GROUP_RATE_CMDID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_audio_aggr_set_group_retry, wmi_audio_aggr_set_group_retry_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_AUDIO_AGGR_SET_GROUP_RETRY_CMDID); +/* CFR Capture Filter cmd */ +#define WMITLV_TABLE_WMI_CFR_CAPTURE_FILTER_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_cfr_capture_filter_cmd_fixed_param, wmi_cfr_capture_filter_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_cfr_filter_group_config, filter_group_config, WMITLV_SIZE_VAR) +WMITLV_CREATE_PARAM_STRUC(WMI_CFR_CAPTURE_FILTER_CMDID); + /************************** TLV definitions of WMI events *******************************/ diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index 7f64ba954404..1bda1e83a736 100755 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -258,6 +258,7 @@ typedef enum { WMI_GRP_ESP, /* 0x41 Estimate Service Parameters (802.11mc) */ WMI_GRP_HPCS_PULSE, /* 0x42 */ WMI_GRP_AUDIO, /* 0x43 */ + WMI_GRP_CFR_CAPTURE, /* 0x44 */ } WMI_GRP_ID; #define WMI_CMD_GRP_START_ID(grp_id) (((grp_id) << 12) | 0x1) @@ -1249,6 +1250,9 @@ typedef enum { WMI_AUDIO_AGGR_DEL_GROUP_CMDID, WMI_AUDIO_AGGR_SET_GROUP_RATE_CMDID, WMI_AUDIO_AGGR_SET_GROUP_RETRY_CMDID, + + /** WMI commands related to Channel Frequency Response Capture **/ + WMI_CFR_CAPTURE_FILTER_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_CFR_CAPTURE), } WMI_CMD_ID; typedef enum { @@ -24594,6 +24598,7 @@ static INLINE A_UINT8 *wmi_id_to_name(A_UINT32 wmi_command) WMI_RETURN_STRING(WMI_AUDIO_AGGR_DEL_GROUP_CMDID); WMI_RETURN_STRING(WMI_AUDIO_AGGR_SET_GROUP_RATE_CMDID); WMI_RETURN_STRING(WMI_AUDIO_AGGR_SET_GROUP_RETRY_CMDID); + WMI_RETURN_STRING(WMI_CFR_CAPTURE_FILTER_CMDID); } return "Invalid WMI cmd"; @@ -27713,6 +27718,334 @@ typedef struct { } wmi_audio_aggr_set_group_retry_cmd_fixed_param; +#define WMI_CFR_GROUP_TA_ADDR_VALID_BIT_POS 0 +#define WMI_CFR_GROUP_TA_ADDR_MASK_VALID_BIT_POS 1 +#define WMI_CFR_GROUP_RA_ADDR_VALID_BIT_POS 2 +#define WMI_CFR_GROUP_RA_ADDR_MASK_VALID_BIT_POS 3 +#define WMI_CFR_GROUP_BW_VALID_BIT_POS 4 +#define WMI_CFR_GROUP_NSS_VALID_BIT_POS 5 +#define WMI_CFR_GROUP_MGMT_SUBTYPE_VALID_BIT_POS 6 +#define WMI_CFR_GROUP_CTRL_SUBTYPE_VALID_BIT_POS 7 +#define WMI_CFR_GROUP_DATA_SUBTYPE_VALID_BIT_POS 8 + +/* The bits in this mask mapped to WMI_PEER_CFR_CAPTURE_BW enum */ +#define WMI_CFR_GROUP_BW_MASK_NUM_BITS 5 +#define WMI_CFR_GROUP_BW_BIT_POS 0 + +/* The bits in this mask correspond to the values as below + * bit 0 -> Nss 1 + * bit 1 -> Nss 2 + * ... + * bit 7 -> Nss 8 + */ +#define WMI_CFR_GROUP_NSS_MASK_NUM_BITS 8 +#define WMI_CFR_GROUP_NSS_BIT_POS 16 + +#define WMI_CFR_GROUP_TA_ADDR_VALID_SET(param, value) \ + WMI_SET_BITS(param, WMI_CFR_GROUP_TA_ADDR_VALID_BIT_POS, 1, value) + +#define WMI_CFR_GROUP_TA_ADDR_VALID_GET(param) \ + WMI_GET_BITS(param, WMI_CFR_GROUP_TA_ADDR_VALID_BIT_POS, 1) + +#define WMI_CFR_GROUP_TA_ADDR_MASK_VALID_SET(param, value) \ + WMI_SET_BITS(param, WMI_CFR_GROUP_TA_ADDR_MASK_VALID_BIT_POS, 1, value) + +#define WMI_CFR_GROUP_TA_ADDR_MASK_VALID_GET(param) \ + WMI_GET_BITS(param, WMI_CFR_GROUP_TA_ADDR_MASK_VALID_BIT_POS, 1) + +#define WMI_CFR_GROUP_RA_ADDR_VALID_SET(param, value) \ + WMI_SET_BITS(param, WMI_CFR_GROUP_RA_ADDR_VALID_BIT_POS, 1, value) + +#define WMI_CFR_GROUP_RA_ADDR_VALID_GET(param) \ + WMI_GET_BITS(param, WMI_CFR_GROUP_RA_ADDR_VALID_BIT_POS, 1) + +#define WMI_CFR_GROUP_RA_ADDR_MASK_VALID_SET(param, value) \ + WMI_SET_BITS(param, WMI_CFR_GROUP_RA_ADDR_MASK_VALID_BIT_POS, 1, value) + +#define WMI_CFR_GROUP_RA_ADDR_MASK_VALID_GET(param) \ + WMI_GET_BITS(param, WMI_CFR_GROUP_RA_ADDR_MASK_VALID_BIT_POS, 1) + +#define WMI_CFR_GROUP_BW_VALID_SET(param, value) \ + WMI_SET_BITS(param, WMI_CFR_GROUP_BW_VALID_BIT_POS, 1, value) + +#define WMI_CFR_GROUP_BW_VALID_GET(param) \ + WMI_GET_BITS(param, WMI_CFR_GROUP_BW_VALID_BIT_POS, 1) + +#define WMI_CFR_GROUP_NSS_VALID_SET(param, value) \ + WMI_SET_BITS(param, WMI_CFR_GROUP_NSS_VALID_BIT_POS, 1, value) + +#define WMI_CFR_GROUP_NSS_VALID_GET(param) \ + WMI_GET_BITS(param, WMI_CFR_GROUP_NSS_VALID_BIT_POS, 1) + +#define WMI_CFR_GROUP_MGMT_SUBTYPE_VALID_SET(param, value) \ + WMI_SET_BITS(param, WMI_CFR_GROUP_MGMT_SUBTYPE_VALID_BIT_POS, 1, value) + +#define WMI_CFR_GROUP_MGMT_SUBTYPE_VALID_GET(param) \ + WMI_GET_BITS(param, WMI_CFR_GROUP_MGMT_SUBTYPE_VALID_BIT_POS, 1) + +#define WMI_CFR_GROUP_CTRL_SUBTYPE_VALID_SET(param, value) \ + WMI_SET_BITS(param, WMI_CFR_GROUP_CTRL_SUBTYPE_VALID_BIT_POS, 1, value) + +#define WMI_CFR_GROUP_CTRL_SUBTYPE_VALID_GET(param) \ + WMI_GET_BITS(param, WMI_CFR_GROUP_CTRL_SUBTYPE_VALID_BIT_POS, 1) + +#define WMI_CFR_GROUP_DATA_SUBTYPE_VALID_SET(param, value) \ + WMI_SET_BITS(param, WMI_CFR_GROUP_DATA_SUBTYPE_VALID_BIT_POS, 1, value) + +#define WMI_CFR_GROUP_DATA_SUBTYPE_VALID_GET(param) \ + WMI_GET_BITS(param, WMI_CFR_GROUP_DATA_SUBTYPE_VALID_BIT_POS, 1) + +#define WMI_CFR_GROUP_BW_SET(param, value) \ + WMI_SET_BITS(param, WMI_CFR_GROUP_BW_BIT_POS, WMI_CFR_GROUP_BW_MASK_NUM_BITS, value) + +#define WMI_CFR_GROUP_BW_GET(param) \ + WMI_GET_BITS(param, WMI_CFR_GROUP_BW_BIT_POS, WMI_CFR_GROUP_BW_MASK_NUM_BITS) + +#define WMI_CFR_GROUP_NSS_SET(param, value) \ + WMI_SET_BITS(param, WMI_CFR_GROUP_NSS_BIT_POS, WMI_CFR_GROUP_NSS_MASK_NUM_BITS, value) + +#define WMI_CFR_GROUP_NSS_GET(param) \ + WMI_GET_BITS(param, WMI_CFR_GROUP_NSS_BIT_POS, WMI_CFR_GROUP_NSS_MASK_NUM_BITS) + +typedef struct { + /* Filter group number for which the below filters needs to be applied */ + A_UINT32 filter_group_id; + /* Indicates which of the below filter's value is valid + * Bit 0: Ta_addr is valid if set + * Bit 1: Ta_addr_mask is valid if set + * Bit 2: Ra_addr is valid if set + * Bit 3: Ra_addr_mask is valid if set + * Bit 4: Bandwidth is valid if set + * Bit 5: NSS is valid if set + * Bit 6: Mgmt_subtype is valid if set + * Bit 7: Ctrl_subtype is valid if set + * Bit 8: Data_subtype is valid if set + * Bits 31:9 Reserved for future use + */ + A_UINT32 filter_set_valid_mask; + /* ta_addr: + * Packets matching the TA_mac addr will be filtered in by MAC + * for CFR capture. + */ + wmi_mac_addr ta_addr; + /* ta_addr_mask: + * Packets matching the TA_mac addr Mask will be filtered in by MAC + * for CFR capture. + */ + wmi_mac_addr ta_addr_mask; + /* ra_addr: + * Packets matching the RA_mac addr will be filtered in by MAC + * for CFR capture. + */ + wmi_mac_addr ra_addr; + /* ra_addr_mask: + * Packets matching the RA_mac addr Mask will be filtered in by MAC + * for CFR capture. + */ + wmi_mac_addr ra_addr_mask; + /* bw_nss_filter: + * Indicates which bw and nss packets will be filtered for CFR capture + * Bits 4:0 CFR capture will be done for packets matching the bandwidths + * specified within this bitmask + * Bits 15:5 Reserved for future + * Bits 23:16 CFR capture will be done for packets matching the Nss + * specified within this bitmask + * Bits 31:24 Reserved for future + */ + A_UINT32 bw_nss_filter; + /* mgmt_subtype_filter: + * Managments Packets matching the subtype filter categories will be + * filtered in by MAC for CFR capture. + * This is a bitmask, in which each bit represents the corresponding + * mgmt subtype value as per ieee80211_defs.h + */ + A_UINT32 mgmt_subtype_filter; + /* ctrl_subtype_filter: + * Control Packets matching the subtype filter category will be + * filtered in by MAC for CFR capture. + * This is a bitmask, in which each bit represents the corresponding + * ctrl subtype value as per ieee80211_defs.h + */ + A_UINT32 ctrl_subtype_filter; + /* data_subtype_filter: + * Data Packets matching the subtype filter category will be + * filtered in by MAC for CFR capture. + * This is a bitmask, in which each bit represents the corresponding + * data subtype value as per ieee80211_defs.h + */ + A_UINT32 data_subtype_filter; +} wmi_cfr_filter_group_config; + +#define WMI_CFR_DIRECTED_FTM_ACK_EN_BIT_POS 0 +#define WMI_CFR_ALL_FTM_ACK_EN_BIT_POS 1 +#define WMI_CFR_NDPA_NDP_DIRECTED_EN_BIT_POS 2 +#define WMI_CFR_NDPA_NDP_ALL_EN_BIT_POS 3 +#define WMI_CFR_TA_RA_TYPE_FILTER_EN_BIT_POS 4 +#define WMI_CFR_ALL_PACKET_EN_BIT_POS 5 + +#define WMI_CFR_CAPTURE_INTERVAL_NUM_BITS 24 +#define WMI_CFR_CAPTURE_INTERVAL_BIT_POS 0 + +#define WMI_CFR_CAPTURE_DURATION_NUM_BITS 24 +#define WMI_CFR_CAPTURE_DURATION_BIT_POS 0 + +#define WMI_CFR_FILTER_GROUP_BITMAP_NUM_BITS 16 +#define WMI_CFR_FILTER_GROUP_BITMAP_BIT_POS 0 + +#define WMI_CFR_UL_MU_USER_UPPER_NUM_BITS 5 +#define WMI_CFR_UL_MU_USER_UPPER_BIT_POS 0 + +#define WMI_CFR_FREEZE_DELAY_CNT_EN_MASK 1 +#define WMI_CFR_FREEZE_DELAY_CNT_EN_BIT_POS 0 + +#define WMI_CFR_FREEZE_DELAY_CNT_THR_NUM_BITS 8 +#define WMI_CFR_FREEZE_DELAY_CNT_THR_BIT_POS 1 + +#define WMI_CFR_DIRECTED_FTM_ACK_EN_SET(param, value) \ + WMI_SET_BITS(param, WMI_CFR_DIRECTED_FTM_ACK_EN_BIT_POS, 1, value) + +#define WMI_CFR_DIRECTED_FTM_ACK_EN_GET(param) \ + WMI_GET_BITS(param, WMI_CFR_DIRECTED_FTM_ACK_EN_BIT_POS, 1) + +#define WMI_CFR_ALL_FTM_ACK_EN_SET(param, value) \ + WMI_SET_BITS(param, WMI_CFR_ALL_FTM_ACK_EN_BIT_POS, 1, value) + +#define WMI_CFR_ALL_FTM_ACK_EN_GET(param) \ + WMI_GET_BITS(param, WMI_CFR_ALL_FTM_ACK_EN_BIT_POS, 1) + +#define WMI_CFR_NDPA_NDP_DIRECTED_EN_SET(param, value) \ + WMI_SET_BITS(param, WMI_CFR_NDPA_NDP_DIRECTED_EN_BIT_POS, 1, value) + +#define WMI_CFR_NDPA_NDP_DIRECTED_EN_GET(param) \ + WMI_GET_BITS(param, WMI_CFR_NDPA_NDP_DIRECTED_EN_BIT_POS, 1) + +#define WMI_CFR_NDPA_NDP_ALL_EN_SET(param, value) \ + WMI_SET_BITS(param, WMI_CFR_NDPA_NDP_ALL_EN_BIT_POS, 1, value) + +#define WWMI_CFR_NDPA_NDP_ALL_EN_GET(param) \ + WMI_GET_BITS(param, WMI_CFR_NDPA_NDP_ALL_EN_BIT_POS, 1) + +#define WMI_CFR_TA_RA_TYPE_FILTER_EN_SET(param, value) \ + WMI_SET_BITS(param, WMI_CFR_TA_RA_TYPE_FILTER_EN_BIT_POS, 1, value) + +#define WMI_CFR_TA_RA_TYPE_FILTER_EN_GET(param) \ + WMI_GET_BITS(param, WMI_CFR_TA_RA_TYPE_FILTER_EN_BIT_POS, 1) + +#define WWMI_CFR_ALL_PACKET_EN_SET(param, value) \ + WMI_SET_BITS(param, WMI_CFR_ALL_PACKET_EN_BIT_POS, 1, value) + +#define WMI_CFR_ALL_PACKET_EN_GET(param) \ + WMI_GET_BITS(param, WMI_CFR_ALL_PACKET_EN_BIT_POS, 1) + +#define WMI_CFR_CAPTURE_INTERVAL_SET(param, value) \ + WMI_SET_BITS(param, WMI_CFR_CAPTURE_INTERVAL_BIT_POS, WMI_CFR_CAPTURE_INTERVAL_NUM_BITS, value) + +#define WMI_CFR_CAPTURE_INTERVAL_GET(param) \ + WMI_GET_BITS(param, WMI_CFR_CAPTURE_INTERVAL_BIT_POS, WMI_CFR_CAPTURE_INTERVAL_NUM_BITS) + +#define WMI_CFR_CAPTURE_DURATION_SET(param, value) \ + WMI_SET_BITS(param, WMI_CFR_CAPTURE_DURATION_BIT_POS, WMI_CFR_CAPTURE_DURATION_NUM_BITS, value) + +#define WMI_CFR_CAPTURE_DURATION_GET(param) \ + WMI_GET_BITS(param, WMI_CFR_CAPTURE_DURATION_BIT_POS, WMI_CFR_CAPTURE_DURATION_NUM_BITS) + +#define WMI_CFR_FILTER_GROUP_BITMAP_SET(param, value) \ + WMI_SET_BITS(param, WMI_CFR_FILTER_GROUP_BITMAP_BIT_POS, WMI_CFR_FILTER_GROUP_BITMAP_NUM_BITS, value) + +#define WMI_CFR_FILTER_GROUP_BITMAP_GET(param) \ + WMI_GET_BITS(param, WMI_CFR_FILTER_GROUP_BITMAP_BIT_POS, WMI_CFR_FILTER_GROUP_BITMAP_NUM_BITS) + +#define WMI_CFR_UL_MU_USER_UPPER_SET(param, value) \ + WMI_SET_BITS(param, WMI_CFR_UL_MU_USER_UPPER_BIT_POS, WMI_CFR_UL_MU_USER_UPPER_NUM_BITS, value) + +#define WMI_CFR_UL_MU_USER_UPPER_GET(param) \ + WMI_GET_BITS(param, WMI_CFR_UL_MU_USER_UPPER_BIT_POS, WMI_CFR_UL_MU_USER_UPPER_NUM_BITS) + +#define WMI_CFR_FREEZE_DELAY_CNT_EN_SET(param, value) \ + WMI_SET_BITS(param, WMI_CFR_FREEZE_DELAY_CNT_EN_BIT_POS, WMI_CFR_FREEZE_DELAY_CNT_EN_MASK, value) + +#define WMI_CFR_FREEZE_DELAY_CNT_EN_GET(param) \ + WMI_GET_BITS(param, WMI_CFR_FREEZE_DELAY_CNT_EN_BIT_POS, WMI_CFR_FREEZE_DELAY_CNT_EN_MASK) + +#define WMI_CFR_FREEZE_DELAY_CNT_THR_SET(param, value) \ + WMI_SET_BITS(param, WMI_CFR_FREEZE_DELAY_CNT_THR_BIT_POS, WMI_CFR_FREEZE_DELAY_CNT_THR_NUM_BITS, value) + +#define WMI_CFR_FREEZE_DELAY_CNT_THR_GET(param) \ + WMI_GET_BITS(param, WMI_CFR_FREEZE_DELAY_CNT_THR_BIT_POS, WMI_CFR_FREEZE_DELAY_CNT_THR_NUM_BITS) + +typedef struct { + /** TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_peer_cfr_capture_filter_cmd_fixed_param */ + A_UINT32 tlv_header; + /** pdev_id for identifying the MAC + * See macros starting with WMI_PDEV_ID_ for values. + * In non-DBDC case host should set it to 0 + */ + A_UINT32 pdev_id; + /* filter_type: + * Indicates the type of filter to be enabled + * Bit 0: Filter Directed FTM ACK frames for CFR capture + * Bit 1: Filter All FTM ACK frames for CFR capture + * Bit 2: Filter NDPA NDP Directed Frames for CFR capture + * Bit 3: Filter Frames based on TA/RA/Subtype as provided + * in CFR Group config + * Bit 4: Filter in All packets for CFR Capture + * Bits 31:5 Reserved for future use + */ + A_UINT32 filter_type; + /* capture_interval: + * Capture interval field which is time in between consecutive + * CFR capture, in microsecond units + * Bits 23:0 Capture interval + * Bits 31:24 Reserved for future use + */ + A_UINT32 capture_interval; + /* capture_duration: + * Capture Duration field for which CFR capture has to happen, + * in microsecond units + * Bits 23:0 Capture Duration + * Bits 31:24 Reserved for future use + */ + A_UINT32 capture_duration; + /* Bitfields set indicates which of the CFR group config is enabled + * Bits 15:0 Filter Group enable Bits + * Bits 31:16 Reserved for future use + * If Bit 0 is set, then CFR filter group 0 alone is enabled and so on + */ + A_UINT32 filter_group_bitmap; + /* ul_mu_user_mask_lower: + * Bitfields indicates which of the users in the current UL MU + * tranmission are enabled for CFR capture. + * Bits 31 to 0 indicates user indexes for 32 users in a UL MU transmission. + * If bit 0 is set, then the CFR capture will happen for user index 0 + * in the current UL MU Transmission. + * If bits 0,2 are set, then CFR capture for UL MU TX corresponds to + * user indices 0 and 2. + */ + A_UINT32 ul_mu_user_mask_lower; + /* ul_mu_user_mask_upper: + * This is contiuation of the above lower mask. + * Bits 4:0 Bitfields indicates user indices from 33 to 37 users. + * Bits 31:5 Reserved for future use + * If bit 0 is set, then CFR capture is enabled for user index 33 + * in a UL MU transmission. + */ + A_UINT32 ul_mu_user_mask_upper; + /* freeze_tlv_delay_cnt + * Indicates the number of consecutive Rx packets to be skipped + * before CFR capture is enabled again. + * Bits 8:0 Freeze Delay Count value + * Bits 31:9 Reserved for future use + */ + A_UINT32 freeze_tlv_delay_cnt; +/* + * A variable-length TLV array of wmi_cfr_filter_group_config will + * follow this fixed_param TLV + * wmi_cfr_filter_group_config filter_group_config[]; + */ +} wmi_cfr_capture_filter_cmd_fixed_param; + + /* ADD NEW DEFS HERE */ diff --git a/fw/wmi_version.h b/fw/wmi_version.h index eecd2dd3f2bc..897698cc8202 100755 --- a/fw/wmi_version.h +++ b/fw/wmi_version.h @@ -36,7 +36,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_ 717 +#define __WMI_REVISION_ 718 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work |
