diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h index f7de49414d93..3daa12d12af6 100644 --- a/fw/wmi_tlv_defs.h +++ b/fw/wmi_tlv_defs.h @@ -1089,6 +1089,9 @@ typedef enum { WMITLV_TAG_STRUC_wmi_tpc_rates_array, WMITLV_TAG_STRUC_wmi_tpc_ctl_pwr_table, WMITLV_TAG_STRUC_wmi_vdev_bcn_latency_fixed_param, + WMITLV_TAG_STRUC_wmi_audio_aggr_set_sched_method, + WMITLV_TAG_STRUC_wmi_audio_aggr_get_sched_method, + WMITLV_TAG_STRUC_wmi_audio_aggr_sched_method_event_fixed_param, } WMITLV_TAG_ID; /* @@ -1535,6 +1538,8 @@ typedef enum { OP(WMI_PDEV_SET_NON_SRG_OBSS_BSSID_ENABLE_BITMAP_CMDID) \ OP(WMI_REQUEST_CTRL_PATH_STATS_CMDID) \ OP(WMI_PDEV_GET_TPC_STATS_CMDID) \ + OP(WMI_AUDIO_AGGR_SET_SCHED_METHOD_CMDID) \ + OP(WMI_AUDIO_AGGR_GET_SCHED_METHOD_CMDID) \ /* add new CMD_LIST elements above this line */ @@ -1788,6 +1793,7 @@ typedef enum { OP(WMI_CTRL_PATH_STATS_EVENTID) \ OP(WMI_PDEV_GET_TPC_STATS_EVENTID) \ OP(WMI_VDEV_BCN_LATENCY_EVENTID) \ + OP(WMI_AUDIO_AGGR_SCHED_METHOD_EVENTID) \ /* add new EVT_LIST elements above this line */ @@ -4351,6 +4357,14 @@ WMITLV_CREATE_PARAM_STRUC(WMI_AUDIO_AGGR_RESET_STATISTICS_CMDID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_audio_aggr_set_rtscts_config, wmi_audio_aggr_set_rtscts_config_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_AUDIO_AGGR_SET_RTSCTS_CONFIG_CMDID); +#define WMITLV_TABLE_WMI_AUDIO_AGGR_SET_SCHED_METHOD_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_audio_aggr_set_sched_method,wmi_audio_aggr_set_sched_method_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_AUDIO_AGGR_SET_SCHED_METHOD_CMDID); + +#define WMITLV_TABLE_WMI_AUDIO_AGGR_GET_SCHED_METHOD_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_audio_aggr_get_sched_method,wmi_audio_aggr_get_sched_method_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_AUDIO_AGGR_GET_SCHED_METHOD_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) \ @@ -5968,6 +5982,10 @@ WMITLV_CREATE_PARAM_STRUC(WMI_NAN_DMESG_EVENTID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_audio_aggr_peer_stats, peer_stats, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_AUDIO_AGGR_REPORT_STATISTICS_EVENTID); +#define WMITLV_TABLE_WMI_AUDIO_AGGR_SCHED_METHOD_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_audio_aggr_sched_method_event_fixed_param, wmi_audio_aggr_sched_method_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_AUDIO_AGGR_SCHED_METHOD_EVENTID); + /* Send sscan fw params to host */ #define WMITLV_TABLE_WMI_PDEV_SSCAN_FW_PARAM_EVENTID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_sscan_fw_cmd_fixed_param, wmi_pdev_sscan_fw_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index 9c2c77b153d4..5377e5272d19 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -1315,6 +1315,8 @@ typedef enum { WMI_AUDIO_AGGR_GET_STATISTICS_CMDID, WMI_AUDIO_AGGR_RESET_STATISTICS_CMDID, WMI_AUDIO_AGGR_SET_RTSCTS_CONFIG_CMDID, + WMI_AUDIO_AGGR_SET_SCHED_METHOD_CMDID, + WMI_AUDIO_AGGR_GET_SCHED_METHOD_CMDID, /** WMI commands related to Channel Frequency Response Capture **/ WMI_CFR_CAPTURE_FILTER_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_CFR_CAPTURE), @@ -2009,6 +2011,7 @@ typedef enum { /** WMI events related to Audio Frame aggregation feature **/ WMI_AUDIO_AGGR_REPORT_STATISTICS_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_AUDIO), + WMI_AUDIO_AGGR_SCHED_METHOD_EVENTID, } WMI_EVT_ID; @@ -26545,6 +26548,8 @@ static INLINE A_UINT8 *wmi_id_to_name(A_UINT32 wmi_command) WMI_RETURN_STRING(WMI_AUDIO_AGGR_SET_RTSCTS_CONFIG_CMDID); WMI_RETURN_STRING(WMI_REQUEST_CTRL_PATH_STATS_CMDID); WMI_RETURN_STRING(WMI_PDEV_GET_TPC_STATS_CMDID); + WMI_RETURN_STRING(WMI_AUDIO_AGGR_SET_SCHED_METHOD_CMDID); + WMI_RETURN_STRING(WMI_AUDIO_AGGR_GET_SCHED_METHOD_CMDID); } return "Invalid WMI cmd"; @@ -30229,6 +30234,49 @@ typedef struct { A_UINT32 user_profile; } wmi_audio_aggr_set_rtscts_config_cmd_fixed_param; +typedef enum { + /* audio aggr scheduler method list */ + WMI_AUDIO_AGGR_SCHED_METHOD_HOST_CONTROL = 1, + WMI_AUDIO_AGGR_SCHED_METHOD_HOST_CONTROL_PER_CYCLE = 2, + + WMI_AUDIO_AGGR_SCHED_METHOD_MAX, +} WMI_AUDIO_AGGR_SCHED_METHOD_TYPE; + +typedef enum { + /* audio aggr RTS-CTS Config */ + WMI_AUDIO_AGGR_RTS_CTS_CONFIG_DISABLED = 0, + WMI_AUDIO_AGGR_RTS_CTS_CONFIG_PPDU = 1, + WMI_AUDIO_AGGR_RTS_CTS_CONFIG_CYCLE = 2, + + WMI_AUDIO_AGGR_RTS_CTS_MAX, +} WMI_AUDIO_AGGR_RTS_CTS_CONFIG_TYPE; + +typedef struct { + /* TLV tag and len */ + A_UINT32 tlv_header; + + /* VDEV identifier */ + A_UINT32 vdev_id; + + /* selected audio aggr scheduler method + * valid methods can be found in WMI_AUDIO_AGGR_SCHED_METHOD_TYPE + */ + A_UINT32 sched_method; + + /* rts-cts config + * valid config can be found in WMI_AUDIO_AGGR_RTS_CTS_CONFIG_TYPE + */ + A_UINT32 rtscts_config; +} wmi_audio_aggr_set_sched_method_cmd_fixed_param; + +typedef struct { + /* TLV tag and len */ + A_UINT32 tlv_header; + + /* VDEV identifier */ + A_UINT32 vdev_id; +} wmi_audio_aggr_get_sched_method_cmd_fixed_param; + typedef struct { /** TLV tag and len; tag equals * WMITLV_TAG_STRUC_wmi_set_ocl_cmd_fixed_param */ @@ -30838,6 +30886,24 @@ typedef struct { A_UINT32 null_frame_tx_lost; } wmi_audio_aggr_peer_stats; +typedef struct { + /** TLV tag and len **/ + A_UINT32 tlv_header; + + /* ID of the vdev this response belongs to */ + A_UINT32 vdev_id; + + /* selected audio aggr scheduler method + * valid methods can be found in WMI_AUDIO_AGGR_SCHED_METHOD_TYPE + */ + A_UINT32 sched_method; + + /* rts-cts config + * valid config can be found in WMI_AUDIO_AGGR_RTS_CTS_CONFIG_TYPE + */ + A_UINT32 rtscts_config; +} wmi_audio_aggr_sched_method_event_fixed_param; + typedef struct { /** TLV tag and len; tag equals *WMITLV_TAG_STRUC_wmi_pdev_srg_bss_color_bitmap_cmd_fixed_param */ diff --git a/fw/wmi_version.h b/fw/wmi_version.h index 5a1cecb6233e..5c237eb77854 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_ 849 +#define __WMI_REVISION_ 850 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work