diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h index 34ef9cd1fe29..14fbb0286c26 100644 --- a/fw/wmi_tlv_defs.h +++ b/fw/wmi_tlv_defs.h @@ -984,6 +984,7 @@ typedef enum { WMITLV_TAG_STRUC_wmi_pdev_dsm_filter_fixed_param, WMITLV_TAG_STRUC_wmi_pdev_bssid_disallow_list_config_param, WMITLV_TAG_STRUC_wmi_mgmt_hdr, + WMITLV_TAG_STRUC_wmi_muedca_params_config_event_fixed_param, } WMITLV_TAG_ID; /* @@ -1610,6 +1611,7 @@ typedef enum { OP(WMI_PDEV_RAP_INFO_EVENTID) \ OP(WMI_IFACE_COMBINATION_IND_EVENTID) \ OP(WMI_VDEV_MGMT_OFFLOAD_EVENTID) \ + OP(WMI_MUEDCA_PARAMS_CONFIG_EVENTID) \ /* add new EVT_LIST elements above this line */ @@ -4301,6 +4303,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_GET_KEEPALIVE_EVENTID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_get_tpc_power_evt_fixed_param, wmi_get_tpc_power_evt_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_GET_TPC_POWER_EVENTID); +/** Get MU EDCA report param event */ +#define WMITLV_TABLE_WMI_MUEDCA_PARAMS_CONFIG_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_muedca_params_config_event_fixed_param, wmi_muedca_params_config_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_MUEDCA_PARAMS_CONFIG_EVENTID); + /* GPIO Input Event */ #define WMITLV_TABLE_WMI_GPIO_INPUT_EVENTID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_gpio_input_event_fixed_param, wmi_gpio_input_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index 74eb7c765ad5..77ba92db0896 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -1713,6 +1713,9 @@ typedef enum { /** event to get TX power per input HALPHY parameters */ WMI_GET_TPC_POWER_EVENTID, + /** event to provide MU-EDCA Parameters (to update host's beacon config) */ + WMI_MUEDCA_PARAMS_CONFIG_EVENTID, + /* GPIO Event */ WMI_GPIO_INPUT_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_GPIO), /** upload H_CV info WMI event @@ -25649,6 +25652,37 @@ typedef struct { A_UINT32 pulse_width; /** Duration of pulse in micro seconds */ } wmi_hpcs_pulse_start_cmd_fixed_param; +typedef struct { + /* TLV tag and len; tag equals wmi_muedca_params_config_event_fixed_param */ + A_UINT32 tlv_header; /** TLV Header */ + A_UINT32 pdev_id; + /* + * The following per-AC arrays are indexed using the + * WMI_AC_xxx / wmi_traffic_ac enum values. + */ + /* aifsn + * Arbitration inter frame spacing number (AIFSN) + * Values are integers used for back off computation. + */ + A_UINT32 aifsn[WMI_AC_MAX]; + /* ecwmin + * Exponent form of ContentionWindow min (ECWmin) + * Values are integers used for back off computation. + */ + A_UINT32 ecwmin[WMI_AC_MAX]; + /* ecwmax + * Exponent form of ContentionWindow max (ECWmax) + * Values are integers used for back off computation. + */ + A_UINT32 ecwmax[WMI_AC_MAX]; + /* muedca_expiration_time + * MU EDCA Expiration time refers to the length of time after the most + * recent UL trigger time. The MU EDCA Timer field indicates the time + * limit, in units of 8 TUs + */ + A_UINT32 muedca_expiration_time[WMI_AC_MAX]; + } wmi_muedca_params_config_event_fixed_param; + /* Default PE Duration subfield indicates the PE duration in units of 4 us */ #define WMI_HEOPS_DEFPE_GET_D3(he_ops) WMI_GET_BITS(he_ops, 0, 3) #define WMI_HEOPS_DEFPE_SET_D3(he_ops, value) WMI_SET_BITS(he_ops, 0, 3, value) diff --git a/fw/wmi_version.h b/fw/wmi_version.h index 9acb3024954f..40015a5caf65 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_ 679 +#define __WMI_REVISION_ 680 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work