diff --git a/target/inc/wmi_tlv_defs.h b/target/inc/wmi_tlv_defs.h index a5ceb36a3e..3172cc0eb9 100644 --- a/target/inc/wmi_tlv_defs.h +++ b/target/inc/wmi_tlv_defs.h @@ -2567,7 +2567,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_ROAM_EVENTID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, reassoc_rsp_frame, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_channel, wmi_channel, chan, WMITLV_SIZE_FIX) \ WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, wmi_key_material, key, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, status, WMITLV_SIZE_FIX) + WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, status, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, reassoc_req_frame, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_ROAM_SYNCH_EVENTID); /* WOW Wakeup Host Event */ diff --git a/target/inc/wmi_unified.h b/target/inc/wmi_unified.h index 61d6939ed4..b3ef039624 100644 --- a/target/inc/wmi_unified.h +++ b/target/inc/wmi_unified.h @@ -1985,8 +1985,29 @@ typedef struct { * @brief num_ocb_schedules - The supported number of OCB schedule segments */ A_UINT32 num_ocb_schedules; + /** + * @brief specific configuration from host, such as per platform configuration + */ + #define WMI_RSRC_CFG_FLAG_WOW_IGN_PCIE_RST_S 0 + #define WMI_RSRC_CFG_FLAG_WOW_IGN_PCIE_RST_M 0x1 + A_UINT32 flag1; } wmi_resource_config; +#define WMI_RSRC_CFG_FLAG_SET(word32, flag, value) \ + do { \ + (word32) &= ~WMI_RSRC_CFG_FLAG_ ## flag ## _M; \ + (word32) |= ((value) << WMI_RSRC_CFG_FLAG_ ## flag ## _S) & \ + WMI_RSRC_CFG_FLAG_ ## flag ## _M; \ + } while (0) +#define WMI_RSRC_CFG_FLAG_GET(word32, flag) \ + (((word32) & WMI_RSRC_CFG_FLAG_ ## flag ## _M) >> \ + WMI_RSRC_CFG_FLAG_ ## flag ## _S) + +#define WMI_RSRC_CFG_FLAG_WOW_IGN_PCIE_RST_SET(word32, value) \ + WMI_RSRC_CFG_FLAG_SET((word32), WOW_IGN_PCIE_RST, (value)) +#define WMI_RSRC_CFG_FLAG_WOW_IGN_PCIE_RST_GET(word32) \ + WMI_RSRC_CFG_FLAG_GET((word32), WOW_IGN_PCIE_RST) + typedef struct { A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_init_cmd_fixed_param */ @@ -9689,6 +9710,8 @@ typedef struct { A_UINT32 bcn_probe_rsp_len; /** the length of reassoc rsp */ A_UINT32 reassoc_rsp_len; + /** the length of reassoc req */ + A_UINT32 reassoc_req_len; /** * TLV (tag length value ) parameters follows roam_synch_event * The TLV's are: @@ -9698,6 +9721,7 @@ typedef struct { * wmi_key_material key; * A_UINT32 status; subnet changed status not being used * currently. will pass the information using roam_status. + * A_UINT8 reassoc_req_frame[]; length identified by reassoc_req_len **/ } wmi_roam_synch_event_fixed_param; diff --git a/target/inc/wmi_version.h b/target/inc/wmi_version.h index 1a2386c3b7..68f1b40a3b 100644 --- a/target/inc/wmi_version.h +++ b/target/inc/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_ 185 +#define __WMI_REVISION_ 187 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work