From bd5ede1acb3763ece47871a0ff51930e9d3a9607 Mon Sep 17 00:00:00 2001 From: spuligil Date: Thu, 4 Oct 2018 12:03:52 -0700 Subject: [PATCH] fw-api: CL 5538220 - update fw common interface files add WMI_HPCS_PULSE_START_CMD def Change-Id: Ic5c9c2721eeed7db549f9f42136e16cddcdfd408 CRs-Fixed: 2262693 --- fw/wmi_services.h | 1 + fw/wmi_tlv_defs.h | 6 ++++++ fw/wmi_unified.h | 21 +++++++++++++++++++++ fw/wmi_version.h | 2 +- 4 files changed, 29 insertions(+), 1 deletion(-) diff --git a/fw/wmi_services.h b/fw/wmi_services.h index 65477dc9920b..ecf6dea1a76d 100644 --- a/fw/wmi_services.h +++ b/fw/wmi_services.h @@ -265,6 +265,7 @@ typedef enum { WMI_SERVICE_CFR_CAPTURE_IND_MSG_TYPE_1=169, /* Message type HTT_PEER_CFR_CAPTURE_MSG_TYPE_1 in HTT_T2H_MSG_TYPE_CFR_DUMP_COMPL_IND */ WMI_SERVICE_ESP_SUPPORT=170, /* Support for Estimated Service Params IE */ WMI_SERVICE_PEER_CHWIDTH_CHANGE = 171, /* Support for host to update/re-intersect the node capability */ + WMI_SERVICE_WLAN_HPCS_PULSE=172, /* Support for High Precision Clock Synchronization feature */ /******* ADD NEW SERVICES HERE *******/ diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h index 8171d14284ca..5e6381dfbf3f 100644 --- a/fw/wmi_tlv_defs.h +++ b/fw/wmi_tlv_defs.h @@ -933,6 +933,7 @@ typedef enum { WMITLV_TAG_STRUC_wmi_obss_spatial_reuse_set_def_obss_thresh_cmd_fixed_param, WMITLV_TAG_STRUC_wmi_pdev_he_tb_action_frm_cmd_fixed_param, WMITLV_TAG_STRUC_wmi_peer_extd2_stats, + WMITLV_TAG_STRUC_wmi_hpcs_pulse_start_cmd_fixed_param, } WMITLV_TAG_ID; /* @@ -1315,6 +1316,7 @@ typedef enum { OP(WMI_PEER_CHAN_WIDTH_SWITCH_CMDID) \ OP(WMI_PDEV_OBSS_PD_SPATIAL_REUSE_SET_DEF_OBSS_THRESH_CMDID) \ OP(WMI_PDEV_HE_TB_ACTION_FRM_CMDID) \ + OP(WMI_HPCS_PULSE_START_CMDID) \ /* add new CMD_LIST elements above this line */ @@ -3791,6 +3793,10 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_OBSS_PD_SPATIAL_REUSE_SET_DEF_OBSS_THRESH_CMD WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_HE_TB_ACTION_FRM_CMDID); +/* HPCS Pulse cmd */ +#define WMITLV_TABLE_WMI_HPCS_PULSE_START_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_hpcs_pulse_start_cmd_fixed_param, wmi_hpcs_pulse_start_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_HPCS_PULSE_START_CMDID); /************************** TLV definitions of WMI events *******************************/ diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index 7ad3232470de..8bddb2f050c0 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -256,6 +256,7 @@ typedef enum { WMI_GRP_MOTION_DET, /* 0x3f */ WMI_GRP_SPATIAL_REUSE, /* 0x40 */ WMI_GRP_ESP, /* 0x41 Estimate Service Parameters (802.11mc) */ + WMI_GRP_HPCS_PULSE, /* 0x42 */ } WMI_GRP_ID; #define WMI_CMD_GRP_START_ID(grp_id) (((grp_id) << 12) | 0x1) @@ -1166,6 +1167,9 @@ typedef enum { /** WMI commands related to OBSS PD Spatial Reuse **/ WMI_PDEV_OBSS_PD_SPATIAL_REUSE_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_SPATIAL_REUSE), WMI_PDEV_OBSS_PD_SPATIAL_REUSE_SET_DEF_OBSS_THRESH_CMDID, + + /** WMI commands related to High Precision Clock Synchronization feature **/ + WMI_HPCS_PULSE_START_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_HPCS_PULSE), } WMI_CMD_ID; typedef enum { @@ -22345,6 +22349,7 @@ static INLINE A_UINT8 *wmi_id_to_name(A_UINT32 wmi_command) WMI_RETURN_STRING(WMI_PEER_CHAN_WIDTH_SWITCH_CMDID); WMI_RETURN_STRING(WMI_PDEV_OBSS_PD_SPATIAL_REUSE_SET_DEF_OBSS_THRESH_CMDID); WMI_RETURN_STRING(WMI_PDEV_HE_TB_ACTION_FRM_CMDID); + WMI_RETURN_STRING(WMI_HPCS_PULSE_START_CMDID); } return "Invalid WMI cmd"; @@ -23630,6 +23635,22 @@ typedef struct { */ } wmi_pdev_he_tb_action_frm_cmd_fixed_param; +typedef struct { + /** TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_hpcs_pulse_start_cmd_fixed_param */ + A_UINT32 tlv_header; /** TLV Header */ + A_UINT32 vdev_id; /** Vdev ID */ + A_UINT32 start; /** Start/Stop */ + A_UINT32 sync_time; /** Lower 32-bit of the TSF at which the + * pulse should be synced. */ + A_UINT32 pulse_interval; /** Periodicity of pulses in micro seconds */ + A_UINT32 active_sync_period; /** Number of beacons to sync before generating + * pulse in units of beacon interval. + * Valid for clock slaves only. */ + A_UINT32 gpio_pin; /** GPIO Pin number to be used */ + A_UINT32 pulse_width; /** Duration of pulse in micro seconds */ +} wmi_hpcs_pulse_start_cmd_fixed_param; + /* Default PE Duration subfield indicates the PE duration in units of 4 us */ #define WMI_HEOPS_DEFPE_GET_D3(he_ops) WMI_GET_BITS(he_ops, 0, 3) #define WMI_HEOPS_DEFPE_SET_D3(he_ops, value) WMI_SET_BITS(he_ops, 0, 3, value) diff --git a/fw/wmi_version.h b/fw/wmi_version.h index 7d918fd58b70..a7dd02c7efff 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_ 580 +#define __WMI_REVISION_ 581 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work