Ver código fonte

qcacld-3.0: CL 1430888 update fw common interface files

qcacld-2.0 to qcacld-3.0 propagation

Update common WMI commands to merge firmware init of MCL and
WIN SWOL update

Change-Id: I732a70be17d451654f3fbbe6db84f62de6438862
CRs-fixed: 865207
Manikandan Mohan 9 anos atrás
pai
commit
7a32f7e9b1

+ 8 - 2
target/inc/wlan_defs.h

@@ -192,6 +192,9 @@ enum {
 	REGDMN_MODE_11AC_VHT40_2G    = 0x000400000, /* 2Ghz, VHT40 */
 	REGDMN_MODE_11AC_VHT80_2G    = 0x000800000, /* 2Ghz, VHT80 */
 	REGDMN_MODE_11AC_VHT160      = 0x001000000, /* 5Ghz, VHT160 */
+	REGDMN_MODE_11AC_VHT40_2GPLUS  = 0x002000000, /* 2Ghz, VHT40+ */
+	REGDMN_MODE_11AC_VHT40_2GMINUS = 0x004000000, /* 2Ghz, VHT40- */
+	REGDMN_MODE_11AC_VHT80_80      = 0x008000000, /* 5GHz, VHT80+80 */
 };
 
 #define REGDMN_MODE_ALL (0xFFFFFFFF)	/* REGDMN_MODE_ALL is defined out of the enum
@@ -408,8 +411,11 @@ typedef struct {
 	A_UINT32 size;
 } wlan_host_memory_chunk;
 
-#define NUM_UNITS_IS_NUM_VDEVS   0x1
-#define NUM_UNITS_IS_NUM_PEERS   0x2
+#define NUM_UNITS_IS_NUM_VDEVS        0x1
+#define NUM_UNITS_IS_NUM_PEERS        0x2
+#define NUM_UNITS_IS_NUM_ACTIVE_PEERS 0x4
+/* request host to allocate memory contiguously */
+#define REQ_TO_HOST_FOR_CONT_MEMORY   0x8
 
 /**
  * structure used by FW for requesting host memory

+ 9 - 1
target/inc/wmi_services.h

@@ -89,7 +89,7 @@ typedef enum {
 	WMI_SERVICE_BATCH_SCAN,         /*Service to support batch scan */
 	WMI_SERVICE_QPOWER,             /* QPower service */
 	WMI_SERVICE_PLMREQ,
-	WMI_SERVICE_THERMAL_MGMT,
+	WMI_SERVICE_THERMAL_MGMT,       /* thermal throttling support */
 	WMI_SERVICE_RMC,                /* RMC support */
 	WMI_SERVICE_MHF_OFFLOAD,                /* multi-hop forwarding offload */
 	WMI_SERVICE_COEX_SAR,           /* target support SAR tx limit from WMI_PDEV_PARAM_TXPOWER_LIMITxG */
@@ -131,6 +131,14 @@ typedef enum {
 	WMI_SERVICE_STA_PMF_OFFLOAD,
 	/* FW supports unified D0 and D3 wow */
 	WMI_SERVICE_UNIFIED_WOW_CAPABILITY,
+	WMI_SERVICE_ENHANCED_PROXY_STA,   /* Enhanced ProxySTA mode support */
+	WMI_SERVICE_ATF,                  /* Air Time Fairness support */
+	WMI_SERVICE_COEX_GPIO,            /* BTCOEX GPIO support */
+	WMI_SERVICE_AUX_SPECTRAL_INTF,    /* Aux Radio enhancement support for ignoring spectral scan intf from main radios */
+	WMI_SERVICE_AUX_CHAN_LOAD_INTF,   /* Aux Radio enhancement support for ignoring chan load intf from main radios*/
+	WMI_SERVICE_BSS_CHANNEL_INFO_64,  /* BSS channel info (freq, noise floor, 64-bit counters) event support */
+	WMI_SERVICE_ENTERPRISE_MESH,      /* Enterprise MESH Service Support */
+	WMI_SERVICE_RESTRT_CHNL_SUPPORT,  /* Restricted Channel Support */
 
 	WMI_MAX_SERVICE = 128             /* max service */
 } WMI_SERVICE;

+ 123 - 0
target/inc/wmi_unified.h

@@ -1990,7 +1990,59 @@ typedef struct {
 	 */
 	#define WMI_RSRC_CFG_FLAG_WOW_IGN_PCIE_RST_S 0
 	#define WMI_RSRC_CFG_FLAG_WOW_IGN_PCIE_RST_M 0x1
+
+	#define WMI_RSRC_CFG_FLAG_LTEU_SUPPORT_S 1
+	#define WMI_RSRC_CFG_FLAG_LTEU_SUPPORT_M 0x2
+
+	#define WMI_RSRC_CFG_FLAG_COEX_GPIO_SUPPORT_S 2
+	#define WMI_RSRC_CFG_FLAG_COEX_GPIO_SUPPORT_M 0x4
+
+	#define WMI_RSRC_CFG_FLAG_AUX_RADIO_SPECTRAL_INTF_S 3
+	#define WMI_RSRC_CFG_FLAG_AUX_RADIO_SPECTRAL_INTF_M 0x8
+
+	#define WMI_RSRC_CFG_FLAG_AUX_RADIO_CHAN_LOAD_INTF_S 4
+	#define WMI_RSRC_CFG_FLAG_AUX_RADIO_CHAN_LOAD_INTF_M 0x10
+
+	#define WMI_RSRC_CFG_FLAG_BSS_CHANNEL_INFO_64_S 5
+	#define WMI_RSRC_CFG_FLAG_BSS_CHANNEL_INFO_64_M 0x20
+
+	#define WMI_RSRC_CFG_FLAG_ATF_CONFIG_ENABLE_S 6
+	#define WMI_RSRC_CFG_FLAG_ATF_CONFIG_ENABLE_M 0x40
+
+	#define WMI_RSRC_CFG_FLAG_IPHR_PAD_CONFIG_ENABLE_S 7
+	#define WMI_RSRC_CFG_FLAG_IPHR_PAD_CONFIG_ENABLE_M 0x80
+
+	#define WMI_RSRC_CFG_FLAG_QWRAP_MODE_ENABLE_S 8
+	#define WMI_RSRC_CFG_FLAG_QWRAP_MODE_ENABLE_M 0x100
+
 	A_UINT32 flag1;
+
+	/** @brief smart_ant_cap - Smart Antenna capabilities information
+	* @details
+	*        1 - Smart antenna is enabled.
+	*        0 - Smart antenna is disabled.
+	* In future this can contain smart antenna specifc capabilities.
+	*/
+	A_UINT32 smart_ant_cap;
+
+	/**
+	* User can configure the buffers allocated for each AC (BE, BK, VI, VO)
+	* during init
+	*/
+	A_UINT32 BK_Minfree;
+	A_UINT32 BE_Minfree;
+	A_UINT32 VI_Minfree;
+	A_UINT32 VO_Minfree;
+
+	/**
+	* @brief alloc_frag_desc_for_data_pkt . Controls data packet fragment
+	* descriptor memory allocation.
+	*   1 - Allocate fragment descriptor memory for data packet in firmware.
+	*       If host wants to transmit data packet at its desired rate,
+	*       this field must be set.
+	*   0 - Don't allocate fragment descriptor for data packet.
+	*/
+	A_UINT32 alloc_frag_desc_for_data_pkt;
 } wmi_resource_config;
 
 #define WMI_RSRC_CFG_FLAG_SET(word32, flag, value) \
@@ -2008,6 +2060,46 @@ typedef struct {
 #define WMI_RSRC_CFG_FLAG_WOW_IGN_PCIE_RST_GET(word32) \
 		WMI_RSRC_CFG_FLAG_GET((word32), WOW_IGN_PCIE_RST)
 
+#define WMI_RSRC_CFG_FLAG_LTEU_SUPPORT_SET(word32, value) \
+		WMI_RSRC_CFG_FLAG_SET((word32), LTEU_SUPPORT, (value))
+#define WMI_RSRC_CFG_FLAG_LTEU_SUPPORT_GET(word32) \
+		WMI_RSRC_CFG_FLAG_GET((word32), LTEU_SUPPORT)
+
+#define WMI_RSRC_CFG_FLAG_COEX_GPIO_SUPPORT_SET(word32, value) \
+		WMI_RSRC_CFG_FLAG_SET((word32), COEX_GPIO_SUPPORT, (value))
+#define WMI_RSRC_CFG_FLAG_COEX_GPIO_SUPPORT_GET(word32) \
+		WMI_RSRC_CFG_FLAG_GET((word32), COEX_GPIO_SUPPORT)
+
+#define WMI_RSRC_CFG_FLAG_AUX_RADIO_SPECTRAL_INTF_SET(word32, value) \
+	WMI_RSRC_CFG_FLAG_SET((word32), AUX_RADIO_SPECTRAL_INTF, (value))
+#define WMI_RSRC_CFG_FLAG_AUX_RADIO_SPECTRAL_INTF_GET(word32) \
+		WMI_RSRC_CFG_FLAG_GET((word32), AUX_RADIO_SPECTRAL_INTF)
+
+#define WMI_RSRC_CFG_FLAG_AUX_RADIO_CHAN_LOAD_INTF_SET(word32, value) \
+	WMI_RSRC_CFG_FLAG_SET((word32), AUX_RADIO_CHAN_LOAD_INTF, (value))
+#define WMI_RSRC_CFG_FLAG_AUX_RADIO_CHAN_LOAD_INTF_GET(word32) \
+		WMI_RSRC_CFG_FLAG_GET((word32), AUX_RADIO_CHAN_LOAD_INTF)
+
+#define WMI_RSRC_CFG_FLAG_BSS_CHANNEL_INFO_64_SET(word32, value) \
+		WMI_RSRC_CFG_FLAG_SET((word32), BSS_CHANNEL_INFO_64, (value))
+#define WMI_RSRC_CFG_FLAG_BSS_CHANNEL_INFO_64_GET(word32) \
+		WMI_RSRC_CFG_FLAG_GET((word32), BSS_CHANNEL_INFO_64)
+
+#define WMI_RSRC_CFG_FLAG_ATF_CONFIG_ENABLE_SET(word32, value) \
+		WMI_RSRC_CFG_FLAG_SET((word32), ATF_CONFIG_ENABLE, (value))
+#define WMI_RSRC_CFG_FLAG_ATF_CONFIG_ENABLE_GET(word32) \
+		WMI_RSRC_CFG_FLAG_GET((word32), ATF_CONFIG_ENABLE)
+
+#define WMI_RSRC_CFG_FLAG_IPHR_PAD_CONFIG_ENABLE_SET(word32, value) \
+		WMI_RSRC_CFG_FLAG_SET((word32), IPHR_PAD_CONFIG_ENABLE, (value))
+#define WMI_RSRC_CFG_FLAG_IPHR_PAD_CONFIG_ENABLE_GET(word32) \
+		WMI_RSRC_CFG_FLAG_GET((word32), IPHR_PAD_CONFIG_ENABLE)
+
+#define WMI_RSRC_CFG_FLAG_QWRAP_MODE_ENABLE_SET(word32, value) \
+		WMI_RSRC_CFG_FLAG_SET((word32), QWRAP_MODE_ENABLE, (value))
+#define WMI_RSRC_CFG_FLAG_QWRAP_MODE_ENABLE_GET(word32) \
+		WMI_RSRC_CFG_FLAG_GET((word32), QWRAP_MODE_ENABLE)
+
 typedef struct {
 	A_UINT32 tlv_header;            /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_init_cmd_fixed_param */
 
@@ -7206,6 +7298,7 @@ typedef enum extend_wow_type_e {
 	EXTWOW_TYPE_APP_TYPE1,          /* extend wow type: only enable wakeup for app type1 */
 	EXTWOW_TYPE_APP_TYPE2,          /* extend wow type: only enable wakeup for app type2 */
 	EXTWOW_TYPE_APP_TYPE1_2,                /* extend wow type: enable wakeup for app type1&2 */
+	EXTWOW_TYPE_APP_PULSETEST,
 	EXTWOW_DISABLED = 255,
 } EXTWOW_TYPE;
 
@@ -7214,8 +7307,13 @@ typedef struct {
 	A_UINT32 vdev_id;
 	A_UINT32 type;
 	A_UINT32 wakeup_pin_num;
+	A_UINT32 swol_pulsetest_type;
+	A_UINT32 swol_pulsetest_application;
 } wmi_extwow_enable_cmd_fixed_param;
 
+#define SWOL_INDOOR_MAC_ADDRESS_INDEX_MAX 8
+#define SWOL_INDOOR_KEY_LEN 16
+
 typedef struct {
 	A_UINT32 tlv_header;            /* TLV tag and len; tag equals wmi_extwow_set_app_type1_params_cmd_fixed_param  */
 	A_UINT32 vdev_id;
@@ -7224,6 +7322,31 @@ typedef struct {
 	A_UINT8 passwd[16];
 	A_UINT32 ident_len;
 	A_UINT32 passwd_len;
+
+	/* indoor check parameters */
+	/* key for mac addresses specified in swol_indoor_key_mac
+	 * Big-endian hosts need to byte-swap the bytes within each 4-byte
+	 * segment of this array, so the bytes will return to their original
+	 * order when the entire WMI message contents are byte-swapped to
+	 * convert from big-endian to little-endian format.
+	 */
+	A_UINT8 swol_indoor_key[SWOL_INDOOR_MAC_ADDRESS_INDEX_MAX][SWOL_INDOOR_KEY_LEN];
+	/* key length for specified mac address index
+	 * Big-endian hosts need to byte-swap the bytes within each 4-byte
+	 * segment of this array, so the bytes will return to their original
+	 * order when the entire WMI message contents are byte-swapped to
+	 * convert from big-endian to little-endian format.
+	 */
+	A_UINT8 swol_indoor_key_len[SWOL_INDOOR_MAC_ADDRESS_INDEX_MAX];
+	/* mac address array allowed to wakeup host*/
+	wmi_mac_addr swol_indoor_key_mac[SWOL_INDOOR_MAC_ADDRESS_INDEX_MAX];
+	/* app mask for the mac addresses specified in swol_indoor_key_mac */
+	A_UINT32 swol_indoor_app_mask[SWOL_INDOOR_MAC_ADDRESS_INDEX_MAX];
+	A_UINT32 swol_indoor_waker_check; /* whether to do indoor waker check */
+	A_UINT32 swol_indoor_pw_check;    /* whether to check password */
+	A_UINT32 swol_indoor_pattern;     /* wakeup pattern */
+	A_UINT32 swol_indoor_exception;   /* wakeup when exception happens */
+	A_UINT32 swol_indoor_exception_app;
 } wmi_extwow_set_app_type1_params_cmd_fixed_param;
 
 typedef struct {

+ 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_ 187
+#define __WMI_REVISION_ 189
 
 /** The Version Namespace should not be normally changed. Only
  *  host and firmware of the same WMI namespace will work