From 92167fed0576fe539d07550003eb944fe4b028bd Mon Sep 17 00:00:00 2001 From: spuligil Date: Sun, 11 Jul 2021 06:00:42 -0700 Subject: [PATCH] fw-api: CL 14712230 - update fw common interface files Change-Id: I3c61d8c8ff7756e8ecd0d42929a90c96764957f9 WMI: add PDEV_AOA_PHASEDELTA_EVENT msg def CRs-Fixed: 2262693 --- fw/wmi_services.h | 1 + fw/wmi_tlv_defs.h | 7 +++++++ fw/wmi_unified.h | 29 +++++++++++++++++++++++++++++ fw/wmi_version.h | 2 +- 4 files changed, 38 insertions(+), 1 deletion(-) diff --git a/fw/wmi_services.h b/fw/wmi_services.h index 6310e54581b4..833091a4e5ee 100644 --- a/fw/wmi_services.h +++ b/fw/wmi_services.h @@ -544,6 +544,7 @@ typedef enum { WMI_SERVICE_MGMT_RX_REO_SUPPORTED = 299, /* Indicates FW supports Management RX Reorder */ WMI_SERVICE_EMA_MULTIPLE_GROUP_SUPPORT = 300, /* FW support for EMA multi group support */ WMI_SERVICE_LARGE_BEACON_SUPPORT = 301, /* FW support for Large beacon support greater then 1.5K */ + WMI_SERVICE_AOA_FOR_RCC_SUPPORTED = 302, WMI_MAX_EXT2_SERVICE diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h index 49f2280d053f..a0933b9b6452 100644 --- a/fw/wmi_tlv_defs.h +++ b/fw/wmi_tlv_defs.h @@ -1188,6 +1188,7 @@ typedef enum { WMITLV_TAG_STRUC_wmi_twt_caps_param, WMITLV_TAG_STRUC_wmi_vdev_enable_disable_intra_bss_cmd_fixed_param, WMITLV_TAG_STRUC_wmi_peer_enable_disable_intra_bss_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_pdev_aoa_phasedelta_evt_fixed_param, } WMITLV_TAG_ID; /* @@ -1932,6 +1933,7 @@ typedef enum { OP(WMI_PDEV_SET_HALPHY_CAL_BMAP_EVENTID) \ OP(WMI_AFC_EVENTID) \ OP(WMI_TWT_ACK_EVENTID) \ + OP(WMI_PDEV_AOA_PHASEDELTA_EVENTID) \ /* add new EVT_LIST elements above this line */ @@ -6409,6 +6411,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_MLO_LINK_SET_ACTIVE_RESP_EVENTID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_get_dpd_status_evt_fixed_param, wmi_pdev_get_dpd_status_evt_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_GET_DPD_STATUS_EVENTID); +/* AOA phase delta Event */ +#define WMITLV_TABLE_WMI_PDEV_AOA_PHASEDELTA_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_aoa_phasedelta_evt_fixed_param, wmi_pdev_aoa_phasedelta_evt_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_AOA_PHASEDELTA_EVENTID); + /* Response event for MLO setup cmd */ #define WMITLV_TABLE_WMI_MLO_SETUP_COMPLETE_EVENTID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mlo_setup_complete_event_fixed_param, wmi_mlo_setup_complete_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index 3018efd4c93f..04ad034c90b2 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -84,6 +84,8 @@ extern "C" { #define MAX_RSSI_VALUES 10 /*Max Rssi values*/ #define WMI_MAX_CHAINS 8 +#define MAX_AOA_PHASEDELTA 31 /* 62 gain values */ + /* The WLAN_MAX_AC macro cannot be changed without breaking WMI compatibility. */ /* The maximum value of access category */ @@ -1535,6 +1537,8 @@ typedef enum { /* Event to set halphy cal bitmap */ WMI_PDEV_SET_HALPHY_CAL_BMAP_EVENTID, + /* Event to get AOA phasedelta values from HALPHY */ + WMI_PDEV_AOA_PHASEDELTA_EVENTID, /* VDEV specific events */ /** VDEV started event in response to VDEV_START request */ @@ -31761,6 +31765,31 @@ typedef struct { A_UINT32 pdev_id; /* PDEV ID set by the command */ } wmi_pdev_get_halphy_cal_status_cmd_fixed_param; +typedef struct { + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_aoa_phasedelta_evt_fixed_param */ + A_UINT32 pdev_id; /* PDEV Id set by the command */ + A_UINT32 freq; /* Current channel in MHz */ + + /* + * Phase Delta values: + * Two phase delta values are packed into each A_UINT32 word + * LSB 16-bit is 1st value and MSB 16-bit is 2nd value + * Phasedelta values will be 0-1023 (mapped to 0-360 degree) + * Each gain from 0 to 61 has a phasedelta value, e.g. + * gain 0's phase delta occupies bits 15:0 of phasedelta[chain][0], + * gain 1's phase delta occupies bits 31:16 of phasedelta[chain][0], + * gain 2's phase delta occupies bits 15:0 of phasedelta[chain][1], etc. + */ + A_UINT32 phasedelta[WMI_MAX_CHAINS][MAX_AOA_PHASEDELTA]; + + /* + * IBF cal values: + * Used for final AoA calculation + * [AoAPhase = ( PhaseDeltaValue + IBFcalValue ) % 1024] + */ + A_UINT32 perChainIbfCalVal[WMI_MAX_CHAINS]; +} wmi_pdev_aoa_phasedelta_evt_fixed_param; + /* WMI_HALPHY_CAL_LIST: * * Below is the list of HALPHY online CAL currently enabled in diff --git a/fw/wmi_version.h b/fw/wmi_version.h index 06ae1659fffd..07dc46211987 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_ 1025 +#define __WMI_REVISION_ 1026 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work