diff options
| author | Ryan Hsu <ryanhsu@qca.qualcomm.com> | 2015-09-02 11:46:36 -0700 |
|---|---|---|
| committer | Anjaneedevi Kapparapu <akappa@codeaurora.org> | 2015-09-04 15:33:28 +0530 |
| commit | d2dabbe6ad37ae96062c804cc4313acb08488fc5 (patch) | |
| tree | 4ac21b07ac4585f2bfa3b3fd05132ec8e8b01b91 | |
| parent | 7756c3634c4d1c4d2b75abe5b11e42bbd7f1b615 (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.h | 3 | ||||
| -rw-r--r-- | CORE/SERVICES/COMMON/wmi_tlv_defs.h | 19 | ||||
| -rw-r--r-- | CORE/SERVICES/COMMON/wmi_unified.h | 33 | ||||
| -rw-r--r-- | CORE/SERVICES/COMMON/wmi_version.h | 2 | ||||
| -rw-r--r-- | CORE/SERVICES/WMI/wmi_unified.c | 1 |
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"; } |
