ソースを参照

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

Propagation from qcacld-2.0 to qcacld-3.0

Define WMI messages for per-AC rx reorder timeouts
and A-MPDU aggregation limits.

Change-Id: I19d96379a93e2d860cce249704834f06f271efb0
CRs-fixed: 865207
Nitesh Shah 8 年 前
コミット
5de1cf8de2
3 ファイル変更62 行追加2 行削除
  1. 14 0
      target/inc/wmi_tlv_defs.h
  2. 47 1
      target/inc/wmi_unified.h
  3. 1 1
      target/inc/wmi_version.h

+ 14 - 0
target/inc/wmi_tlv_defs.h

@@ -720,6 +720,8 @@ typedef enum {
 	WMITLV_TAG_STRUC_wmi_mgmt_tx_compl_bundle_event_fixed_param,
 	WMITLV_TAG_STRUC_wmi_read_data_from_flash_cmd_fixed_param,
 	WMITLV_TAG_STRUC_wmi_read_data_from_flash_event_fixed_param,
+	WMITLV_TAG_STRUC_wmi_pdev_set_reorder_timeout_val_cmd_fixed_param,
+	WMITLV_TAG_STRUC_wmi_peer_set_rx_blocksize_cmd_fixed_param,
 } WMITLV_TAG_ID;
 
 /*
@@ -1013,6 +1015,8 @@ typedef enum {
 	OP(WMI_PEER_REORDER_QUEUE_REMOVE_CMDID) \
 	OP(WMI_SET_MULTIPLE_MCAST_FILTER_CMDID) \
 	OP(WMI_READ_DATA_FROM_FLASH_CMDID) \
+	OP(WMI_PDEV_SET_REORDER_TIMEOUT_VAL_CMDID) \
+	OP(WMI_PEER_SET_RX_BLOCKSIZE_CMDID) \
 	/* add new CMD_LIST elements above this line */
 
 /*
@@ -2894,6 +2898,16 @@ WMITLV_CREATE_PARAM_STRUC(WMI_SET_PERIODIC_CHANNEL_STATS_CONFIG_CMDID);
 	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);
 
+/* pdev set reorder timeout val */
+#define WMITLV_TABLE_WMI_PDEV_SET_REORDER_TIMEOUT_VAL_CMDID(id, op, buf, len) \
+	WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_pdev_set_reorder_timeout_val_cmd_fixed_param, wmi_pdev_set_reorder_timeout_val_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
+WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_SET_REORDER_TIMEOUT_VAL_CMDID);
+
+/* peer set rx blocksize cmd */
+#define WMITLV_TABLE_WMI_PEER_SET_RX_BLOCKSIZE_CMDID(id, op, buf, len) \
+	WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_peer_set_rx_blocksize_cmd_fixed_param, wmi_peer_set_rx_blocksize_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
+WMITLV_CREATE_PARAM_STRUC(WMI_PEER_SET_RX_BLOCKSIZE_CMDID);
+
 /* Bandwidth Fairness (BWF) peer configure commands */
 #define WMITLV_TABLE_WMI_PEER_BWF_REQUEST_CMDID(id, op, buf, len) \
 	WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_peer_bwf_request_fixed_param, wmi_peer_bwf_request_fixed_param, fixed_param, WMITLV_SIZE_FIX) \

+ 47 - 1
target/inc/wmi_unified.h

@@ -345,8 +345,10 @@ typedef enum {
 	WMI_SET_PERIODIC_CHANNEL_STATS_CONFIG_CMDID,
 	/** WMI command for power debug framework */
 	WMI_PDEV_WAL_POWER_DEBUG_CMDID,
+	/** set per-AC rx reorder timeouts */
+	WMI_PDEV_SET_REORDER_TIMEOUT_VAL_CMDID,
 
-	/* VDEV(virtual device) specific commands */
+	/* VDEV (virtual device) specific commands */
 	/** vdev create */
 	WMI_VDEV_CREATE_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_VDEV),
 	/** vdev delete */
@@ -447,6 +449,8 @@ typedef enum {
 	WMI_PEER_REORDER_QUEUE_SETUP_CMDID,
 	/** rx reorder queue remove for peer/tid */
 	WMI_PEER_REORDER_QUEUE_REMOVE_CMDID,
+	/** specify a limit for rx A-MPDU block size */
+	WMI_PEER_SET_RX_BLOCKSIZE_CMDID,
 
 
 	/* beacon/management specific commands */
@@ -6577,6 +6581,24 @@ typedef struct {
 	wmi_mac_addr peer_macaddr;
 } wmi_peer_delete_cmd_fixed_param;
 
+typedef struct {
+	/**
+	 * TLV tag and len; tag equals
+	 * WMITLV_TAG_STRUC_wmi_peer_set_rx_blocksize_cmd_fixed_param
+	 */
+	A_UINT32 tlv_header;
+	/** unique id identifying the VDEV, generated by the caller */
+	A_UINT32 vdev_id;
+	/** peer MAC address */
+	wmi_mac_addr peer_macaddr;
+	/**
+	 * maximum block ack window size to use during a rx block ack
+	 * negotiation, i.e. the maximum number of MPDUs per A-MPDU
+	 * that will be received
+	 */
+	A_UINT32  rx_block_ack_win_limit;
+} wmi_peer_set_rx_blocksize_cmd_fixed_param;
+
 typedef struct {
 	A_UINT32 tlv_header;         /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_flush_tids_cmd_fixed_param */
 	/** unique id identifying the VDEV, generated by the caller */
@@ -15843,6 +15865,30 @@ typedef struct {
  **/
 } wmi_pdev_wal_power_debug_cmd_fixed_param;
 
+typedef struct {
+	/*
+	 * TLV tag and len; tag equals
+	 * WMITLV_TAG_STRUC_wmi_pdev_set_reorder_timeout_val_cmd_fixed_param
+	 */
+	A_UINT32 tlv_header;
+	/**
+	 * @brief rx_timeout_pri - what rx reorder timeout (ms) to use
+	 * for the AC
+	 * @details
+	 *     Each WMM access category (voice, video, best-effort,
+	 *     background) will have its own timeout value to dictate
+	 *     how long to wait for missing rx MPDUs to arrive before
+	 *     releasing subsequent MPDUs that have already been
+	 *     received.
+	 *     This parameter specifies the timeout in milliseconds
+	 *     for each access category.
+	 *     The array elements are indexed by the WMI_AC enum to
+	 *     identify which array element corresponds to which AC /
+	 *     traffic type.
+	 */
+	A_UINT32 rx_timeout_pri[WMI_AC_MAX];
+} wmi_pdev_set_reorder_timeout_val_cmd_fixed_param;
+
 typedef enum {
 	    WLAN_2G_CAPABILITY = 0x1,
 	    WLAN_5G_CAPABILITY = 0x2,

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