Browse Source

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

Propagation from qcacld-2.0 to qcacld-3.0

Add 11s mesh subtype and service, add TSF in beacon.

Change-Id: I1f03072d6ad5c493f2ef2d2f7dc47f47be98a042
CRs-Fixed: 865207
Sandeep Puligilla 9 years ago
parent
commit
62f7ca0750
3 changed files with 32 additions and 2 deletions
  1. 4 1
      target/inc/wmi_services.h
  2. 27 0
      target/inc/wmi_unified.h
  3. 1 1
      target/inc/wmi_version.h

+ 4 - 1
target/inc/wmi_services.h

@@ -162,7 +162,10 @@ typedef enum {
 	WMI_SERVICE_DEPRECATED_REPLACE,
 	WMI_SERVICE_TDLS_CONN_TRACKER_IN_HOST_MODE, /* FW supports a new mode that allows to run connection tracker in host */
 	WMI_SERVICE_ENHANCED_MCAST_FILTER,/* FW supports enhanced multicast filtering (of mcast IP inside ucast WLAN) */
-	WMI_SERVICE_PERIODIC_CHAN_STAT_SUPPORT, /* periodic channel stats service */
+	/* periodic channel stats service */
+	WMI_SERVICE_PERIODIC_CHAN_STAT_SUPPORT,
+	WMI_SERVICE_MESH_11S,             /* 11s mesh service support */
+
 	WMI_MAX_SERVICE = 128             /* max service */
 } WMI_SERVICE;
 

+ 27 - 0
target/inc/wmi_unified.h

@@ -2765,6 +2765,17 @@ typedef struct {
 	* larger than 32 bits.
 	*/
 	A_UINT32 tsf_delta;
+	/*
+	 * The lower 32 bits of the TSF (rx_tsf_l32) is copied by FW from
+	 * TSF timestamp in the RX MAC descriptor provided by HW.
+	 */
+	A_UINT32 rx_tsf_l32;
+
+	/*
+	 *The Upper 32 bits (rx_tsf_u32) is filled by reading the TSF register
+	 * after the packet is received.
+	 */
+	A_UINT32 rx_tsf_u32;
 	/* This TLV is followed by array of bytes:
 	 * // management frame buffer
 	 *   A_UINT8 bufp[];
@@ -4793,6 +4804,15 @@ typedef struct {
 #define WMI_UNIFIED_VDEV_SUBTYPE_P2P_GO     0x3
 #define WMI_UNIFIED_VDEV_SUBTYPE_PROXY_STA  0x4
 #define WMI_UNIFIED_VDEV_SUBTYPE_MESH       0x5
+/*
+ * new subtype for 11S mesh is required as 11S functionality differs
+ * in many ways from proprietary mesh
+ * 11S uses 6-addr frame format and supports peering between mesh
+ * stations and dynamic best path selection between mesh stations.
+ * While in proprietary mesh, neighboring mesh station MAC is manually
+ * added to AST table for traffic flow between mesh stations
+ */
+#define WMI_UNIFIED_VDEV_SUBTYPE_MESH_11S   0x6
 
 /** values for vdev_start_request flags */
 /** Indicates that AP VDEV uses hidden ssid. only valid for
@@ -5293,6 +5313,13 @@ typedef enum {
 
 	/* VDEV capabilities */
 	WMI_VDEV_PARAM_CAPABILITIES, /* see capabilities defs below */
+	/*
+	 * Increment TSF in micro seconds to avoid beacon collision on mesh VAP
+	 * The host must ensure that either no other vdevs share the TSF with
+	 * this vdev, or else that it is acceptable to apply this TSF adjustment
+	 * to all vdevs sharing the TSF
+	 */
+	WMI_VDEV_PARAM_TSF_INCREMENT,
 } WMI_VDEV_PARAM;
 
 /* vdev capabilities bit mask */

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