Explorar o código

qcacld-3.0: CL 1479065 - update fw common interface files

qcacld-2.0 to qcacld-3.0 propagation.

Add Qboost dbglog IDs and module ID, add pdev_id to WMI cmds,
wal_power_debug framework to handle WMI cmd for LP features.

Change-Id: I815e29284ab21086f75197c2ce1319e13074e00f
CRs-Fixed: 865207
Krishna Kumaar Natarajan %!s(int64=9) %!d(string=hai) anos
pai
achega
4bed4ec79b

+ 7 - 1
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

+ 1 - 0
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,

+ 10 - 1
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 */

+ 81 - 11
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 */
 
 /*****************************************************************************

+ 1 - 1
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