diff --git a/target/inc/dbglog_id.h b/target/inc/dbglog_id.h index 1e860bca64b5..03bd4b6a8795 100644 --- a/target/inc/dbglog_id.h +++ b/target/inc/dbglog_id.h @@ -1671,7 +1671,7 @@ extern "C" { #define DCC_DBGID_RX_PATH 269 #define DCC_DBGID_TX_PATH 270 -/* RSSI Threshold Monitor DBGIDs*/ +/* RSSI Threshold Monitor DBGIDs */ #define RSSI_MONITOR_DBGID_DEFINITION_START 0 #define RSSI_MONITOR_VDEV_INIT 1 #define RSSI_MONITOR_VDEV_FREE 2 @@ -1688,6 +1688,12 @@ extern "C" { #define RSSI_MONITOR_UPDATE_BEACON_RSSI 13 #define RSSI_MONITOR_DBGID_DEFINITION_END 14 +/* QBOOST DBGIDs */ +#define WLAN_MODULE_QBOOST_DEFINITION_START 0 +#define WLAN_MODULE_QBOOST_DBGID_WLAN_PEER_NOT_FOUND 1 +#define WLAN_MODULE_QBOOST_DEFINITION_END 2 + + #ifdef __cplusplus } #endif diff --git a/target/inc/wlan_module_ids.h b/target/inc/wlan_module_ids.h index 4439d6613f7f..29cf8c4b3e3e 100644 --- a/target/inc/wlan_module_ids.h +++ b/target/inc/wlan_module_ids.h @@ -96,6 +96,7 @@ typedef enum { WLAN_MODULE_CMC_QMIC, WLAN_MODULE_EGAP, /* 0x3f */ WLAN_MODULE_NAN20, + WLAN_MODULE_QBOOST, WLAN_MODULE_ID_MAX, WLAN_MODULE_ID_INVALID = WLAN_MODULE_ID_MAX, diff --git a/target/inc/wmi_tlv_defs.h b/target/inc/wmi_tlv_defs.h index ef4f34a40da5..9b5a559ce298 100644 --- a/target/inc/wmi_tlv_defs.h +++ b/target/inc/wmi_tlv_defs.h @@ -692,6 +692,7 @@ typedef enum { WMITLV_TAG_STRUC_WMI_CHAN_AVOID_RPT_ALLOW_CMD_fixed_param, WMITLV_TAG_STRUC_wmi_set_periodic_channel_stats_config_fixed_param, WMITLV_TAG_STRUC_wmi_vdev_set_custom_aggr_size_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_pdev_wal_power_debug_cmd_fixed_param, } WMITLV_TAG_ID; /* @@ -972,7 +973,8 @@ typedef enum { OP(WMI_CONFIG_ENHANCED_MCAST_FILTER_CMDID) \ OP(WMI_CHAN_AVOID_RPT_ALLOW_CMDID) \ OP(WMI_SET_PERIODIC_CHANNEL_STATS_CONFIG_CMDID) \ - OP(WMI_VDEV_SET_CUSTOM_AGGR_SIZE_CMDID) + OP(WMI_VDEV_SET_CUSTOM_AGGR_SIZE_CMDID) \ + OP(WMI_PDEV_WAL_POWER_DEBUG_CMDID) /* * IMPORTANT: Please add _ALL_ WMI Events Here. @@ -2792,6 +2794,13 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_SET_ANTENNA_MODE_CMDID); WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_set_periodic_channel_stats_config_fixed_param, wmi_set_periodic_channel_stats_config_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_SET_PERIODIC_CHANNEL_STATS_CONFIG_CMDID); +/* wal power debug command per pdev */ +#define WMITLV_TABLE_WMI_PDEV_WAL_POWER_DEBUG_CMDID(id, op, buf, len) \ + WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_pdev_wal_power_debug_cmd_fixed_param, wmi_pdev_wal_power_debug_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, args, WMITLV_SIZE_VAR) +WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_WAL_POWER_DEBUG_CMDID); + + /************************** TLV definitions of WMI events *******************************/ /* Service Ready event */ diff --git a/target/inc/wmi_unified.h b/target/inc/wmi_unified.h index 97ac346eadc2..c5a2716051ea 100644 --- a/target/inc/wmi_unified.h +++ b/target/inc/wmi_unified.h @@ -339,6 +339,8 @@ typedef enum { WMI_PDEV_SET_ANTENNA_MODE_CMDID, /** Periodic channel stats request command */ WMI_SET_PERIODIC_CHANNEL_STATS_CONFIG_CMDID, + /** WMI command for power debug framework */ + WMI_PDEV_WAL_POWER_DEBUG_CMDID, /* VDEV(virtual device) specific commands */ /** vdev create */ @@ -1872,6 +1874,11 @@ typedef struct { * within the time limit described in the MPDU maximum density field. */ A_UINT32 mpdu_density; /* units are microseconds */ + /* + * Maximum no of BSSID based RX filters host can program + * Value 0 means FW hasn't given any limit to host. + */ + A_UINT32 max_bssid_rx_filters; } wmi_service_ready_ext_event_fixed_param; typedef enum { @@ -2302,6 +2309,11 @@ typedef struct { * packet filtering instructions */ A_UINT32 bpf_instruction_size; + /** + * Maximum no of BSSID based RX filters host would program + * Value 0 means host doesn't given any limit to FW. + */ + A_UINT32 max_bssid_rx_filters; } wmi_resource_config; #define WMI_RSRC_CFG_FLAG_SET(word32, flag, value) \ @@ -3161,9 +3173,16 @@ typedef struct { /*Command to set/unset chip in quiet mode*/ typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_set_quiet_cmd_fixed_param */ - A_UINT32 reserved0; - /** placeholder for pdev_id of future multiple MAC products. Init. to 0. */ + /* + * TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_pdev_set_quiet_cmd_fixed_param + */ + A_UINT32 tlv_header; + /* + * pdev_id for identifying the MAC, See macros + * starting with WMI_PDEV_ID_ for values. + */ + A_UINT32 pdev_id; A_UINT32 period; /*period in TUs */ A_UINT32 duration; /*duration in TUs */ A_UINT32 next_start; /*offset in TUs */ @@ -4598,14 +4617,21 @@ enum { typedef struct { A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_suspend_cmd_fixed_param */ /* suspend option sent to target */ - A_UINT32 reserved0; /** placeholder for pdev_id of future multiple MAC products. Init. to 0. */ + /* + * pdev_id for identifying the MAC, See macros + * starting with WMI_PDEV_ID_ for values. + */ + A_UINT32 pdev_id; A_UINT32 suspend_opt; } wmi_pdev_suspend_cmd_fixed_param; typedef struct { A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_resume_cmd_fixed_param */ - /** Reserved for future use */ - A_UINT32 reserved0; + /* + * pdev_id for identifying the MAC, See macros + * starting with WMI_PDEV_ID_ for values. + */ + A_UINT32 pdev_id; } wmi_pdev_resume_cmd_fixed_param; typedef struct { @@ -4802,8 +4828,13 @@ typedef struct { A_UINT32 vdev_subtype; /** VDEV MAC address */ wmi_mac_addr vdev_macaddr; - /* Number of configured txrx streams */ + /** Number of configured txrx streams */ A_UINT32 num_cfg_txrx_streams; + /* + * pdev_id for identifying the MAC, + * See macros starting with WMI_PDEV_ID_ for values. + */ + A_UINT32 pdev_id; /* * This TLV is followed by another TLV of array of structures * wmi_vdev_txrx_streams cfg_txrx_streams[]; @@ -5869,6 +5900,15 @@ enum wmi_ap_ps_peer_param_max_sp { MAX_WMI_AP_PS_PEER_PARAM_MAX_SP, }; +/** param values for WMI_AP_PS_PEER_PARAM_SIFS_RESP_FRMTYPE */ +enum wmi_ap_ps_param_sifs_resp_frmtype { + WMI_SIFS_RESP_PSPOLL = (1 << 0), + WMI_SIFS_RESP_UAPSD = (1 << 1), + WMI_SIFS_RESP_QBST_EXP = (1 << 2), + WMI_SIFS_RESP_QBST_DATA = (1 << 3), + WMI_SIFS_RESP_QBST_BAR = (1 << 4), +}; + /** * AP power save parameter * Set a power save specific parameter for a peer station @@ -5898,7 +5938,10 @@ enum wmi_ap_ps_peer_param { /** Time in seconds for aging out buffered frames for STA in power save */ WMI_AP_PS_PEER_PARAM_AGEOUT_TIME = 2, - /** Specify frame types that are considered SIFS RESP trigger frame */ + /** + * Specify frame types that are considered SIFS RESP trigger frame + * (see enum wmi_ap_ps_param_sifs_resp_frmtype) + */ WMI_AP_PS_PEER_PARAM_SIFS_RESP_FRMTYPE = 3, /* @@ -5919,7 +5962,7 @@ typedef struct { wmi_mac_addr peer_macaddr; /** AP powersave param (see enum wmi_ap_ps_peer_param) */ A_UINT32 param; - /** AP powersave param value */ + /** AP powersave param value (see defines) */ A_UINT32 value; } wmi_ap_ps_peer_cmd_fixed_param; @@ -6907,6 +6950,10 @@ typedef struct { * Type of the event present, either the cw interference event, or the wlan_im stats */ A_UINT32 interference_type; /* type of interference, wlan or cw */ + /** pdev_id for identifying the MAC + * See macros starting with WMI_PDEV_ID_ for values. + */ + A_UINT32 pdev_id; /* * Following this struct are these TLVs. Note that they are both array of structures * but can have at most one element. Which TLV is empty or has one element depends @@ -9521,8 +9568,10 @@ typedef struct { * WMITLV_TAG_STRUC_wmi_dfs_phyerr_filter_dis_cmd_fixed_param */ A_UINT32 tlv_header; - /** Reserved for future use */ - A_UINT32 reserved0; + /** pdev_id for identifying the MAC + * See macros starting with WMI_PDEV_ID_ for values. + */ + A_UINT32 pdev_id; } wmi_dfs_phyerr_filter_dis_cmd_fixed_param; /** TDLS COMMANDS */ @@ -15188,6 +15237,27 @@ typedef struct { A_UINT32 stats_period; } wmi_set_periodic_channel_stats_config_fixed_param; +typedef struct { + /* + * TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_pdev_wal_power_debug_cmd_fixed_param + */ + A_UINT32 tlv_header; + /* + * pdev_id for identifying the MAC + * See macros starting with WMI_PDEV_ID_ for values. + */ + A_UINT32 pdev_id; + /* Identify the wlan module */ + A_UINT32 module_id; + /* Num of elements in the following args[] array */ + A_UINT32 num_args; +/** + * Following this structure are the TLVs: + * A_UINT32 args[]; + **/ +} wmi_pdev_wal_power_debug_cmd_fixed_param; + /* ADD NEW DEFS HERE */ /***************************************************************************** diff --git a/target/inc/wmi_version.h b/target/inc/wmi_version.h index d8d07c70b0e2..e50a15a22722 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_ 226 +#define __WMI_REVISION_ 228 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work