From fad6d7f5b34b6a84e88da367a3f6d12e67081fdf Mon Sep 17 00:00:00 2001 From: Manjeet Singh Date: Wed, 7 Dec 2016 15:09:36 +0530 Subject: [PATCH] fw-api: CL 2710751 - update fw common interface files WMI Changes for RCPI feature (and whitespace cleanup) Change-Id: I8118ff09e89991c0b2ff3ac950547c2ee74c16b6 CRs-Fixed: 865207 --- fw/wmi_services.h | 1 + fw/wmi_tlv_defs.h | 15 ++++++++++++++- fw/wmi_unified.h | 43 +++++++++++++++++++++++++++++++++++++++++++ fw/wmi_version.h | 2 +- 4 files changed, 59 insertions(+), 2 deletions(-) diff --git a/fw/wmi_services.h b/fw/wmi_services.h index 64cda28e1ab5..6d1129776cc0 100644 --- a/fw/wmi_services.h +++ b/fw/wmi_services.h @@ -271,6 +271,7 @@ typedef enum { */ WMI_SERVICE_TX_MSDU_ID_NEW_PARTITION_SUPPORT = 112, WMI_SERVICE_DFS_PHYERR_OFFLOAD = 113, + WMI_SERVICE_RCPI_SUPPORT=114, /*** ADD NEW SERVICES HERE UNTIL ALL VALUES UP TO 128 ARE USED ***/ diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h index 9bf7f871ed0f..392e0aaae754 100644 --- a/fw/wmi_tlv_defs.h +++ b/fw/wmi_tlv_defs.h @@ -765,7 +765,8 @@ typedef enum { WMITLV_TAG_STRUC_wmi_vdev_adfs_ocac_complete_event_fixed_param, WMITLV_TAG_STRUC_wmi_vdev_dfs_cac_complete_event_fixed_param, WMITLV_TAG_STRUC_wmi_vendor_oui, - + WMITLV_TAG_STRUC_wmi_request_rcpi_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_update_rcpi_event_fixed_param, } WMITLV_TAG_ID; /* @@ -1075,6 +1076,7 @@ typedef enum { OP(WMI_PDEV_DFS_PHYERR_OFFLOAD_DISABLE_CMDID) \ OP(WMI_VDEV_ADFS_CH_CFG_CMDID) \ OP(WMI_VDEV_ADFS_OCAC_ABORT_CMDID) \ + OP(WMI_REQUEST_RCPI_CMDID) \ /* add new CMD_LIST elements above this line */ /* @@ -1240,6 +1242,7 @@ typedef enum { OP(WMI_PDEV_DFS_RADAR_DETECTION_EVENTID) \ OP(WMI_VDEV_DFS_CAC_COMPLETE_EVENTID) \ OP(WMI_VDEV_ADFS_OCAC_COMPLETE_EVENTID) \ + OP(WMI_UPDATE_RCPI_EVENTID) \ /* add new EVT_LIST elements above this line */ /* TLV definitions of WMI commands */ @@ -2570,6 +2573,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_NDP_RESPONDER_REQ_CMDID); WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, wmi_ndp_end_req_PROTOTYPE, ndp_end_req_list, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_NDP_END_REQ_CMDID); +/* RCPI Info Request Cmd */ +#define WMITLV_TABLE_WMI_REQUEST_RCPI_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_request_rcpi_cmd_fixed_param, wmi_request_rcpi_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_REQUEST_RCPI_CMDID); + /* Modem power state cmd */ #define WMITLV_TABLE_WMI_MODEM_POWER_STATE_CMDID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_modem_power_state_cmd_param, wmi_modem_power_state_cmd_param, fixed_param, WMITLV_SIZE_FIX) @@ -3729,6 +3737,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_NDP_CONFIRM_EVENTID); WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, wmi_ndp_end_indication_PROTOTYPE, ndp_end_indication_list, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_NDP_END_INDICATION_EVENTID); +/* Update RCPI Info Event */ +#define WMITLV_TABLE_WMI_UPDATE_RCPI_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_update_rcpi_event_fixed_param, wmi_update_rcpi_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_UPDATE_RCPI_EVENTID); + /* L1SS track Event */ #define WMITLV_TABLE_WMI_PDEV_L1SS_TRACK_EVENTID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_l1ss_track_event_fixed_param, wmi_pdev_l1ss_track_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index f807cc5416a8..7ff04c842cf2 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -718,6 +718,9 @@ typedef enum { /** One time request for wlan stats */ WMI_REQUEST_WLAN_STATS_CMDID, + /** Request for getting RCPI of peer */ + WMI_REQUEST_RCPI_CMDID, + /** ARP OFFLOAD REQUEST*/ WMI_SET_ARP_NS_OFFLOAD_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_ARP_NS_OFL), @@ -1277,6 +1280,10 @@ typedef enum { */ WMI_REPORT_STATS_EVENTID, + /** Event indicating RCPI of the peer requested by host in the + * WMI_REQUEST_RCPI_CMDID */ + WMI_UPDATE_RCPI_EVENTID, + /** NLO specific events */ /** NLO match event after the first match */ WMI_NLO_MATCH_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_NLO_OFL), @@ -17815,6 +17822,42 @@ typedef struct { isolation_chain3:8; /* [31:24], isolation value for chain 3 */ } wmi_coex_report_isolation_event_fixed_param; +typedef enum { + WMI_RCPI_MEASUREMENT_TYPE_AVG_MGMT = 1, + WMI_RCPI_MEASUREMENT_TYPE_AVG_DATA = 2, + WMI_RCPI_MEASUREMENT_TYPE_LAST_MGMT = 3, + WMI_RCPI_MEASUREMENT_TYPE_LAST_DATA = 4, +} wmi_rcpi_measurement_type; + +typedef struct { + /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_request_rcpi_cmd_fixed_param */ + A_UINT32 tlv_header; + /* VDEV identifier */ + A_UINT32 vdev_id; + /* peer MAC address */ + wmi_mac_addr peer_macaddr; + /* measurement type - defined in enum wmi_rcpi_measurement_type */ + A_UINT32 measurement_type; +} wmi_request_rcpi_cmd_fixed_param; + +typedef struct { + /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_update_rcpi_event_fixed_param */ + A_UINT32 tlv_header; + /* VDEV identifier */ + A_UINT32 vdev_id; + /* peer MAC address */ + wmi_mac_addr peer_macaddr; + /* measurement type - defined in enum wmi_rcpi_measurement_type */ + A_UINT32 measurement_type; + /* Measured RCPI in dBm of the peer requested by host */ + A_INT32 rcpi; + /** status + * 0 - Requested peer RCPI available + * 1 - Requested peer RCPI not available + */ + A_UINT32 status; +} wmi_update_rcpi_event_fixed_param; + /* ADD NEW DEFS HERE */ /***************************************************************************** diff --git a/fw/wmi_version.h b/fw/wmi_version.h index 6e1b88304e18..50757861f497 100644 --- a/fw/wmi_version.h +++ b/fw/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_ 318 +#define __WMI_REVISION_ 319 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work