Forráskód Böngészése

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

Propagation from qcacld-2.0 to qcacld-3.0.

New WMI command for reorder queue setup/removal

Change-Id: I31ad0432a0d5f49eed55603ae7d9eeedbdd19876
CRs-Fixed: 865207
Pradeep Reddy POTTETI 9 éve
szülő
commit
dead2bd976
3 módosított fájl, 87 hozzáadás és 1 törlés
  1. 15 0
      target/inc/wmi_tlv_defs.h
  2. 71 0
      target/inc/wmi_unified.h
  3. 1 1
      target/inc/wmi_version.h

+ 15 - 0
target/inc/wmi_tlv_defs.h

@@ -714,6 +714,8 @@ typedef enum {
 	WMITLV_TAG_STRUC_wmi_p2p_lo_start_cmd_fixed_param,
 	WMITLV_TAG_STRUC_wmi_p2p_lo_stop_cmd_fixed_param,
 	WMITLV_TAG_STRUC_wmi_p2p_lo_stopped_event_fixed_param,
+	WMITLV_TAG_STRUC_wmi_peer_reorder_queue_setup_cmd_fixed_param,
+	WMITLV_TAG_STRUC_wmi_peer_reorder_queue_remove_cmd_fixed_param,
 } WMITLV_TAG_ID;
 
 /*
@@ -1003,6 +1005,9 @@ typedef enum {
 	OP(WMI_DBGLOG_TIME_STAMP_SYNC_CMDID) \
 	OP(WMI_P2P_LISTEN_OFFLOAD_START_CMDID) \
 	OP(WMI_P2P_LISTEN_OFFLOAD_STOP_CMDID) \
+	OP(WMI_IPA_OFFLOAD_ENABLE_DISABLE_CMDID) \
+	OP(WMI_PEER_REORDER_QUEUE_SETUP_CMDID) \
+	OP(WMI_PEER_REORDER_QUEUE_REMOVE_CMDID) \
 	/* add new CMD_LIST elements above this line */
 
 /*
@@ -2877,6 +2882,16 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_WAL_POWER_DEBUG_CMDID);
 	WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, wmi_bwf_peer_info, peer_info, WMITLV_SIZE_VAR)
 WMITLV_CREATE_PARAM_STRUC(WMI_PEER_BWF_REQUEST_CMDID);
 
+/* peer reorder queue setup cmd */
+#define WMITLV_TABLE_WMI_PEER_REORDER_QUEUE_SETUP_CMDID(id, op, buf, len) \
+	WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_peer_reorder_queue_setup_cmd_fixed_param, wmi_peer_reorder_queue_setup_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
+WMITLV_CREATE_PARAM_STRUC(WMI_PEER_REORDER_QUEUE_SETUP_CMDID);
+
+/* peer reorder queue remove cmd */
+#define WMITLV_TABLE_WMI_PEER_REORDER_QUEUE_REMOVE_CMDID(id, op, buf, len) \
+	WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_peer_reorder_queue_remove_cmd_fixed_param, wmi_peer_reorder_queue_remove_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
+WMITLV_CREATE_PARAM_STRUC(WMI_PEER_REORDER_QUEUE_REMOVE_CMDID);
+
 
 /************************** TLV definitions of WMI events *******************************/
 

+ 71 - 0
target/inc/wmi_unified.h

@@ -443,6 +443,11 @@ typedef enum {
 	WMI_PEER_ATF_REQUEST_CMDID,
 	/** bandwidth fairness (BWF) peer configuration request command */
 	WMI_PEER_BWF_REQUEST_CMDID,
+	/** rx reorder queue setup for peer/tid */
+	WMI_PEER_REORDER_QUEUE_SETUP_CMDID,
+	/** rx reorder queue remove for peer/tid */
+	WMI_PEER_REORDER_QUEUE_REMOVE_CMDID,
+
 
 	/* beacon/management specific commands */
 
@@ -6775,6 +6780,14 @@ typedef struct {
 #define WMI_PEER_SET_MAX_TX_RATE                        0x11
 /** Set peer minimal tx rate (MCS) in adaptive rate ctrl */
 #define WMI_PEER_SET_MIN_TX_RATE                        0x12
+/**
+ * default ring routing for peer data packets,
+ * param_value = bit 0 for hash based routing enabled or not
+ * (value 1 is enabled, value 0 is disabled)
+ * bits 1:5 are for ring 32 (i.e. ring id value
+ * selected from 0 to 31 values)
+ */
+#define WMI_PEER_SET_DEFAULT_ROUTING                    0x13
 
 /** mimo ps values for the parameter WMI_PEER_MIMO_PS_STATE  */
 #define WMI_PEER_MIMO_PS_NONE                          0x0
@@ -14376,6 +14389,64 @@ typedef struct {
 	 */
 } wmi_pdev_hw_mode_transition_event_fixed_param;
 
+/**
+ * This command is sent from WLAN host driver to firmware for
+ * plugging in reorder queue desc to lithium hw.
+ *
+ * Example: plug-in queue desc for TID 5
+ * host->target: WMI_PEER_REORDER_QUEUE_SETUP_CMDID,
+ *               (vdev_id = PEER vdev id,
+ *                peer_macaddr = PEER mac addr,
+ *                tid = 5,
+ *                queue_ptr_lo = queue desc addr lower 32 bits,
+ *                queue_ptr_hi = queue desc addr higher 32 bits,
+ *                queue_no = 16-bit number assigned by host for queue,
+ *                              stored in bits 15:0 of queue_no field)
+ */
+typedef struct {
+	/* TLV tag and len; tag equals
+	 * WMITLV_TAG_STRUC_wmi_peer_reorder_queue_setup_cmd_fixed_param
+	 */
+	A_UINT32 tlv_header;
+	A_UINT32 vdev_id;
+	/* peer mac address */
+	wmi_mac_addr peer_macaddr;
+	/* 0 to 15 = QoS TIDs, 16 = non-qos TID */
+	A_UINT32 tid;
+	/* lower 32 bits of queue desc adddress */
+	A_UINT32 queue_ptr_lo;
+	/* upper 32 bits of queue desc adddress */
+	A_UINT32 queue_ptr_hi;
+	/* 16-bit number assigned by host for queue,
+	 * stored in bits 15:0 of queue_no field
+	 */
+	A_UINT32 queue_no;
+} wmi_peer_reorder_queue_setup_cmd_fixed_param;
+
+/**
+ * This command is sent from WLAN host driver to firmware for
+ * removing one or more reorder queue desc to lithium hw.
+ *
+ * Example: remove queue desc for all TIDs
+ * host->target: WMI_PEER_REORDER_REMOVE_CMDID,
+ *               (vdev_id = PEER vdev id,
+ *                peer_macaddr = PEER mac addr,
+ *                tid = 0x1FFFF,
+ */
+typedef struct {
+	/* TLV tag and len;
+	 * tag equals
+	 * WMITLV_TAG_STRUC_wmi_peer_reorder_queue_remove_cmd_fixed_param
+	 */
+	A_UINT32 tlv_header;
+	A_UINT32 vdev_id;
+	/* peer mac address */
+	wmi_mac_addr peer_macaddr;
+	/* bits 0 to 15 = QoS TIDs, bit 16 = non-qos TID */
+	A_UINT32 tid_mask;
+} wmi_peer_reorder_queue_remove_cmd_fixed_param;
+
+
 /* DEPRECATED - use wmi_pdev_set_mac_config_response_event_fixed_param
  * instead
  */

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