summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPradeep Reddy POTTETI <ppotte@codeaurora.org>2016-06-09 17:11:12 +0530
committerNandini Suresh <snandini@codeaurora.org>2016-07-12 22:57:28 -0700
commitdead2bd976594c3753914ec34a23fdc2d6c41720 (patch)
tree96aea0ef120721f5158bff87ff4d8f765d7cf39f
parent4d2ec9a8b8589a1a0c8fc24368966613acf102ff (diff)
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
-rw-r--r--target/inc/wmi_tlv_defs.h15
-rw-r--r--target/inc/wmi_unified.h71
-rw-r--r--target/inc/wmi_version.h2
3 files changed, 87 insertions, 1 deletions
diff --git a/target/inc/wmi_tlv_defs.h b/target/inc/wmi_tlv_defs.h
index 6d59985cb899..bdc8d0564ac5 100644
--- a/target/inc/wmi_tlv_defs.h
+++ b/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 *******************************/
diff --git a/target/inc/wmi_unified.h b/target/inc/wmi_unified.h
index 81927b12fdbe..246b8b6a40ad 100644
--- a/target/inc/wmi_unified.h
+++ b/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
*/
diff --git a/target/inc/wmi_version.h b/target/inc/wmi_version.h
index 039ae77ffc5e..82188ccece53 100644
--- a/target/inc/wmi_version.h
+++ b/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