summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRyan Hsu <ryanhsu@qca.qualcomm.com>2015-09-02 11:46:36 -0700
committerAnjaneedevi Kapparapu <akappa@codeaurora.org>2015-09-04 15:33:28 +0530
commitd2dabbe6ad37ae96062c804cc4313acb08488fc5 (patch)
tree4ac21b07ac4585f2bfa3b3fd05132ec8e8b01b91
parent7756c3634c4d1c4d2b75abe5b11e42bbd7f1b615 (diff)
qcacld-2.0: CL 1375055 - update fw common interface files
This change is for WMI interface changes for Mgmt TX Change-Id: I490bac35de7aa66eb2a0776ff3fb00feb384f679 CRs-Fixed: 865207
-rw-r--r--CORE/SERVICES/COMMON/wmi_services.h3
-rw-r--r--CORE/SERVICES/COMMON/wmi_tlv_defs.h19
-rw-r--r--CORE/SERVICES/COMMON/wmi_unified.h33
-rw-r--r--CORE/SERVICES/COMMON/wmi_version.h2
-rw-r--r--CORE/SERVICES/WMI/wmi_unified.c1
5 files changed, 55 insertions, 3 deletions
diff --git a/CORE/SERVICES/COMMON/wmi_services.h b/CORE/SERVICES/COMMON/wmi_services.h
index 6180c32e5424..7d87b41c009e 100644
--- a/CORE/SERVICES/COMMON/wmi_services.h
+++ b/CORE/SERVICES/COMMON/wmi_services.h
@@ -120,6 +120,9 @@ typedef enum {
WMI_SERVICE_AP_ARPNS_OFFLOAD, /* arp offload support for ap mode vdev */
WMI_SERVICE_PER_BAND_CHAINMASK_SUPPORT, /* Per band chainmask support */
WMI_SERVICE_PACKET_FILTER_OFFLOAD, /* Per vdev packet filters */
+ WMI_SERVICE_MGMT_TX_HTT, /* Mgmt Tx via HTT interface */
+ WMI_SERVICE_MGMT_TX_WMI, /* Mgmt Tx via WMI interface */
+
WMI_MAX_SERVICE=128 /* max service */
} WMI_SERVICE;
diff --git a/CORE/SERVICES/COMMON/wmi_tlv_defs.h b/CORE/SERVICES/COMMON/wmi_tlv_defs.h
index eb6d9978d4b0..4388db77fe02 100644
--- a/CORE/SERVICES/COMMON/wmi_tlv_defs.h
+++ b/CORE/SERVICES/COMMON/wmi_tlv_defs.h
@@ -583,6 +583,8 @@ typedef enum {
WMITLV_TAG_STRUC_wmi_packet_filter_config_fixed_param,
WMITLV_TAG_STRUC_wmi_packet_filter_enable_fixed_param,
WMITLV_TAG_STRUC_wmi_sap_set_blacklist_param_cmd_fixed_param,
+ WMITLV_TAG_STRUC_wmi_mgmt_tx_send_cmd_fixed_param,
+ WMITLV_TAG_STRUC_wmi_mgmt_tx_compl_event_fixed_param,
} WMITLV_TAG_ID;
/*
@@ -809,7 +811,8 @@ typedef enum {
OP(WMI_DIAG_EVENT_LOG_CONFIG_CMDID) \
OP(WMI_PACKET_FILTER_CONFIG_CMDID) \
OP(WMI_PACKET_FILTER_ENABLE_CMDID) \
- OP(WMI_SAP_SET_BLACKLIST_PARAM_CMDID)
+ OP(WMI_SAP_SET_BLACKLIST_PARAM_CMDID) \
+ OP(WMI_MGMT_TX_SEND_CMDID)
/*
* IMPORTANT: Please add _ALL_ WMI Events Here.
* Otherwise, these WMI TLV Functions will be process them.
@@ -919,7 +922,8 @@ typedef enum {
OP(WMI_SOC_SET_HW_MODE_RESP_EVENTID) \
OP(WMI_SOC_HW_MODE_TRANSITION_EVENTID) \
OP(WMI_SOC_SET_DUAL_MAC_CONFIG_RESP_EVENTID) \
- OP(WMI_DIAG_EVENT_LOG_SUPPORTED_EVENTID)
+ OP(WMI_DIAG_EVENT_LOG_SUPPORTED_EVENTID) \
+ OP(WMI_MGMT_TX_COMPLETION_EVENTID)
/* TLV definitions of WMI commands */
@@ -1538,6 +1542,12 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_SEND_BCN_CMDID);
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, bufp, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_MGMT_TX_CMDID);
+/* Management tx send cmd */
+#define WMITLV_TABLE_WMI_MGMT_TX_SEND_CMDID(id,op,buf,len) \
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mgmt_tx_send_cmd_fixed_param, wmi_mgmt_tx_send_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, bufp, WMITLV_SIZE_VAR)
+WMITLV_CREATE_PARAM_STRUC(WMI_MGMT_TX_SEND_CMDID);
+
/* ADD clear response Cmd */
#define WMITLV_TABLE_WMI_ADDBA_CLEAR_RESP_CMDID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_addba_clear_resp_cmd_fixed_param, wmi_addba_clear_resp_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
@@ -2389,6 +2399,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PHYERR_EVENTID);
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_tx_pause_event_fixed_param, wmi_tx_pause_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_TX_PAUSE_EVENTID);
+/* Mgmt TX completion event */
+#define WMITLV_TABLE_WMI_MGMT_TX_COMPLETION_EVENTID(id,op,buf,len) \
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mgmt_tx_compl_event_fixed_param, wmi_mgmt_tx_compl_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)
+WMITLV_CREATE_PARAM_STRUC(WMI_MGMT_TX_COMPLETION_EVENTID);
+
/* VDEV Start response Event */
#define WMITLV_TABLE_WMI_VDEV_START_RESP_EVENTID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_start_response_event_fixed_param, wmi_vdev_start_response_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)
diff --git a/CORE/SERVICES/COMMON/wmi_unified.h b/CORE/SERVICES/COMMON/wmi_unified.h
index 31c9ef786256..0d2a58269a16 100644
--- a/CORE/SERVICES/COMMON/wmi_unified.h
+++ b/CORE/SERVICES/COMMON/wmi_unified.h
@@ -387,6 +387,9 @@ typedef enum {
* probe responses */
WMI_PRB_TMPL_CMDID,
+ /** Transmit Mgmt frame by reference */
+ WMI_MGMT_TX_SEND_CMDID,
+
/** commands to directly control ba negotiation directly from host. only used in test mode */
/** turn off FW Auto addba mode and let host control addba */
@@ -904,6 +907,8 @@ typedef enum {
/** event after the first probe response is transmitted following
a change in the template.*/
WMI_OFFLOAD_PROB_RESP_TX_STATUS_EVENTID,
+ /** Event for Mgmt TX completion event */
+ WMI_MGMT_TX_COMPLETION_EVENTID,
/*ADDBA Related WMI Events*/
/** Indication the completion of the prior
@@ -2497,6 +2502,20 @@ typedef struct {
} wmi_mgmt_tx_hdr;
typedef struct {
+ A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_mgmt_tx_send_cmd_fixed_param */
+ A_UINT32 vdev_id;
+ A_UINT32 desc_id; /* echoed in tx_compl_event */
+ A_UINT32 chanfreq; /* MHz units */
+ A_UINT32 paddr_lo;
+ A_UINT32 paddr_hi;
+ A_UINT32 frame_len;
+ A_UINT32 buf_len; /** Buffer length in bytes */
+/* This TLV is followed by array of bytes: First 64 bytes of management frame
+ * A_UINT8 bufp[];
+ */
+} wmi_mgmt_tx_send_cmd_fixed_param;
+
+typedef struct {
A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_echo_event_fixed_param */
A_UINT32 value;
} wmi_echo_event_fixed_param;
@@ -2905,6 +2924,20 @@ typedef struct {
A_UINT32 tid_map;
} wmi_tx_pause_event_fixed_param;
+typedef enum {
+ WMI_MGMT_TX_COMP_TYPE_COMPLETE_OK = 0,
+ WMI_MGMT_TX_COMP_TYPE_DISCARD,
+ WMI_MGMT_TX_COMP_TYPE_INSPECT,
+ WMI_MGMT_TX_COMP_TYPE_COMPLETE_NO_ACK,
+ WMI_MGMT_TX_COMP_TYPE_MAX,
+} WMI_MGMT_TX_COMP_STATUS_TYPE;
+
+typedef struct {
+ A_UINT32 tlv_header;
+ A_UINT32 desc_id; /* from tx_send_cmd */
+ A_UINT32 status; /* WMI_MGMT_TX_COMP_STATUS_TYPE */
+} wmi_mgmt_tx_compl_event_fixed_param;
+
#define WMI_TPC_RATE_MAX 160
/* WMI_TPC_TX_NUM_CHAIN macro can't be changed without breaking the WMI compatibility */
#define WMI_TPC_TX_NUM_CHAIN 4
diff --git a/CORE/SERVICES/COMMON/wmi_version.h b/CORE/SERVICES/COMMON/wmi_version.h
index 921b74630b54..5a5ccbef2ded 100644
--- a/CORE/SERVICES/COMMON/wmi_version.h
+++ b/CORE/SERVICES/COMMON/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_ 147
+#define __WMI_REVISION_ 148
/** The Version Namespace should not be normally changed. Only
* host and firmware of the same WMI namespace will work
diff --git a/CORE/SERVICES/WMI/wmi_unified.c b/CORE/SERVICES/WMI/wmi_unified.c
index e90faa530fc1..41a786b921e5 100644
--- a/CORE/SERVICES/WMI/wmi_unified.c
+++ b/CORE/SERVICES/WMI/wmi_unified.c
@@ -642,6 +642,7 @@ static u_int8_t* get_wmi_cmd_string(WMI_CMD_ID wmi_command)
CASE_RETURN_STRING(WMI_PACKET_FILTER_ENABLE_CMDID);
CASE_RETURN_STRING(WMI_SAP_SET_BLACKLIST_PARAM_CMDID);
CASE_RETURN_STRING(WMI_WOW_UDP_SVC_OFLD_CMDID);
+ CASE_RETURN_STRING(WMI_MGMT_TX_SEND_CMDID);
}
return "Invalid WMI cmd";
}