diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h index 064b02bc732a..c3b553a33fdc 100644 --- a/fw/wmi_tlv_defs.h +++ b/fw/wmi_tlv_defs.h @@ -867,6 +867,7 @@ typedef enum { WMITLV_TAG_STRUC_wmi_bcn_offload_ctrl_cmd_fixed_param, WMITLV_TAG_STRUC_wmi_pdev_set_ac_tx_queue_optimized_cmd_fixed_param, WMITLV_TAG_STRUC_wmi_stats_period, + WMITLV_TAG_STRUC_wmi_ndl_schedule_update_fixed_param, } WMITLV_TAG_ID; /* @@ -1407,6 +1408,7 @@ typedef enum { OP(WMI_UNIT_TEST_EVENTID) \ OP(WMI_PDEV_UPDATE_CTLTABLE_EVENTID) \ OP(WMI_HOST_SWFDA_EVENTID) \ + OP(WMI_NDL_SCHEDULE_UPDATE_EVENTID) \ /* add new EVT_LIST elements above this line */ @@ -4184,11 +4186,13 @@ WMITLV_CREATE_PARAM_STRUC(WMI_NDP_INDICATION_EVENTID); * structure. The TLV's are: * A_UINT8 ndp_cfg[]; * A_UINT8 ndp_app_info[]; + * wmi_channel ndp_channel_list[]; */ #define WMITLV_TABLE_WMI_NDP_CONFIRM_EVENTID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_ndp_confirm_event_fixed_param, wmi_ndp_confirm_event_fixed_param_PROTOTYPE, fixed_param, WMITLV_SIZE_FIX) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, ndp_cfg, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, ndp_app_info, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, ndp_app_info, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_channel, ndp_channel_list, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_NDP_CONFIRM_EVENTID); /** NDP end indication event @@ -4201,6 +4205,18 @@ WMITLV_CREATE_PARAM_STRUC(WMI_NDP_CONFIRM_EVENTID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_ndp_end_indication_PROTOTYPE, ndp_end_indication_list, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_NDP_END_INDICATION_EVENTID); +/** NDL schedule update event + * TLV (tag lenght value ) parameters follow the ndl_schedule_update + * structure. The TLV's are: + * A_UINT32 ndp_instance_list[]; + * wmi_channel ndl_channel_list[]; + */ +#define WMITLV_TABLE_WMI_NDL_SCHEDULE_UPDATE_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_ndl_schedule_update_fixed_param, wmi_ndl_schedule_update_fixed_param_PROTOTYPE, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, ndp_instance_list, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_channel, ndl_channel_list, WMITLV_SIZE_VAR) +WMITLV_CREATE_PARAM_STRUC(WMI_NDL_SCHEDULE_UPDATE_EVENTID); + /* Update RCPI Info Event */ #define WMITLV_TABLE_WMI_UPDATE_RCPI_EVENTID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_update_rcpi_event_fixed_param, wmi_update_rcpi_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index e86592d57a68..5dfb33d4adfd 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -1581,6 +1581,7 @@ typedef enum { WMI_NDP_CONFIRM_EVENTID, WMI_NDP_END_INDICATION_EVENTID, WMI_WLAN_COEX_BT_ACTIVITY_EVENTID, + WMI_NDL_SCHEDULE_UPDATE_EVENTID, } WMI_EVT_ID; /* defines for OEM message sub-types */ @@ -15363,11 +15364,17 @@ typedef struct { A_UINT32 reason_code; /** Number of active ndps on this peer */ A_UINT32 num_active_ndps_on_peer; + /** Number of channels on this peer */ + A_UINT32 num_ndp_channels; + /** Number of spatial streams associated */ + A_UINT32 nss_2g; + A_UINT32 nss_5g; /** * TLV (tag length value) parameters follow the ndp_confirm * structure. The TLV's are: * A_UINT8 ndp_cfg[]; * A_UINT8 ndp_app_info[]; + * wmi_channel ndp_channel_list[]; */ } wmi_ndp_confirm_event_fixed_param_PROTOTYPE; @@ -15395,6 +15402,36 @@ typedef struct { #define wmi_ndp_end_indication wmi_ndp_end_indication_PROTOTYPE +typedef struct +{ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_ndl_schedule_update_fixed_param */ + /** Unique id identifying the VDEV */ + A_UINT32 vdev_id; + /** peer MAC address */ + wmi_mac_addr peer_macaddr; + /** Flags: + * Bit 0 -> Nss updated + * Bit 1 -> channel list updated + * Bits 2-31 -> Reserved + */ + A_UINT32 flags; + /** num spatial streams associated */ + A_UINT32 nss_2g; + A_UINT32 nss_5g; + /** num of channels */ + A_UINT32 num_channels; + /** num of ndp instances */ + A_UINT32 num_ndp_instances; + /** + * TLV (tag length value) parameters follow the ndl_schedule_update + * structure. The TLV's are: + * A_UINT32 ndp_instance_list[]; + * wmi_channel ndl_channel_list[]; + */ +} wmi_ndl_schedule_update_fixed_param_PROTOTYPE; + +#define wmi_ndl_schedule_update_fixed_param wmi_ndl_schedule_update_fixed_param_PROTOTYPE + typedef struct { A_UINT32 tlv_header; A_UINT32 num_data; diff --git a/fw/wmi_version.h b/fw/wmi_version.h index b9cc5e948899..aaff9450ddb9 100644 --- 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_ 473 +#define __WMI_REVISION_ 474 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work