diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h index 5c74c14933..85245e103c 100644 --- a/fw/wmi_tlv_defs.h +++ b/fw/wmi_tlv_defs.h @@ -865,6 +865,7 @@ typedef enum { WMITLV_TAG_STRUC_wmi_enable_fils_cmd_fixed_param, WMITLV_TAG_STRUC_wmi_host_swfda_event_fixed_param, 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_ID; /* @@ -1213,6 +1214,7 @@ typedef enum { OP(WMI_PDEV_SEND_FD_CMDID) \ OP(WMI_ENABLE_FILS_CMDID) \ OP(WMI_BCN_OFFLOAD_CTRL_CMDID) \ + OP(WMI_PDEV_SET_AC_TX_QUEUE_OPTIMIZED_CMDID) \ /* add new CMD_LIST elements above this line */ @@ -3485,6 +3487,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_ROAM_BTM_CONFIG_CMDID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_wlm_config_cmd_fixed_param, wmi_wlm_config_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_WLM_CONFIG_CMDID); +/* Pdev Set AC TX Queue Optimized Cmd */ +#define WMITLV_TABLE_WMI_PDEV_SET_AC_TX_QUEUE_OPTIMIZED_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_set_ac_tx_queue_optimized_cmd_fixed_param, wmi_pdev_set_ac_tx_queue_optimized_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_SET_AC_TX_QUEUE_OPTIMIZED_CMDID); + /************************** TLV definitions of WMI events *******************************/ diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index 103fa3514f..180924e8f8 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -379,6 +379,8 @@ typedef enum { WMI_PDEV_UPDATE_CTLTABLE_REQUEST_CMDID, /** Command to set beacon OUI **/ WMI_PDEV_CONFIG_VENDOR_OUI_ACTION_CMDID, + /** enable/disable per-AC tx queue optimizations */ + WMI_PDEV_SET_AC_TX_QUEUE_OPTIMIZED_CMDID, /* VDEV (virtual device) specific commands */ /** vdev create */ @@ -12656,6 +12658,21 @@ typedef struct { */ } wmi_pdev_config_vendor_oui_action_fixed_param; +typedef struct { + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_set_ac_tx_queue_optimized_cmd_fixed_param */ + /** pdev_id for identifying the MAC + * See macros starting with WMI_PDEV_ID_ for values. + */ + A_UINT32 pdev_id; + /** AC number */ + A_UINT32 ac; /* refer to wmi_traffic_ac */ + /** + * Enable/disable tx queue optimizations (such as dropping stale tx frms) + * for the specified AC. + */ + A_UINT32 ac_tx_queue_optimize_enable; +} wmi_pdev_set_ac_tx_queue_optimized_cmd_fixed_param; + typedef enum { WMI_BEACON_INFO_PRESENCE_OUI_EXT = 1 << 0, WMI_BEACON_INFO_PRESENCE_MAC_ADDRESS = 1 << 1, @@ -20665,6 +20682,7 @@ static INLINE A_UINT8 *wmi_id_to_name(A_UINT32 wmi_command) WMI_RETURN_STRING(WMI_PDEV_CONFIG_VENDOR_OUI_ACTION_CMDID); WMI_RETURN_STRING(WMI_PDEV_SEND_FD_CMDID); WMI_RETURN_STRING(WMI_ENABLE_FILS_CMDID); + WMI_RETURN_STRING(WMI_PDEV_SET_AC_TX_QUEUE_OPTIMIZED_CMDID); } return "Invalid WMI cmd"; diff --git a/fw/wmi_version.h b/fw/wmi_version.h index e4083a4e87..dda9b603e9 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_ 467 +#define __WMI_REVISION_ 468 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work