From f9d60b0c6b22d5907de75a90c520bfc962aeea5f Mon Sep 17 00:00:00 2001 From: spuligil Date: Thu, 10 Aug 2023 06:02:15 -0700 Subject: [PATCH] fw-api: CL 24140579 - update fw common interface files Change-Id: Iab6d61dd4d9db60128a9cd32ab883693d9b7d01a WMI: add radar_flags TLV in PDEV_DFS_RADAR_DETECTION_EVENT msg CRs-Fixed: 2262693 --- fw/wmi_services.h | 1 + fw/wmi_tlv_defs.h | 4 +++- fw/wmi_unified.h | 39 ++++++++++++++++++++++++++++++++++++++- fw/wmi_version.h | 2 +- 4 files changed, 43 insertions(+), 3 deletions(-) diff --git a/fw/wmi_services.h b/fw/wmi_services.h index 3b2f28904763..9344ceb1fdd1 100644 --- a/fw/wmi_services.h +++ b/fw/wmi_services.h @@ -640,6 +640,7 @@ typedef enum { WMI_SERVICE_DISABLE_WDS_PEER_MAP_UNMAP_EVENT_SUPPORT = 387, /* Indicate FW support to disable wds peer map/unmap events */ WMI_SERVICE_PDEV_WSI_STATS_INFO_SUPPORT = 388, /* Support for WSI Stats Info. */ WMI_SERVICE_MULTIPLE_RF_PATH_SOC_SUPPORT = 389, /* Indicates FW supports Multiple RF Path on SOC Level */ + WMI_SERVICE_RADAR_FLAGS_SUPPORT = 390, /* Indicates FW supports radar flags, such as full bandwidth need put to NOL */ WMI_MAX_EXT2_SERVICE diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h index 50be005e9af5..06ae0217a8a7 100644 --- a/fw/wmi_tlv_defs.h +++ b/fw/wmi_tlv_defs.h @@ -1398,6 +1398,7 @@ typedef enum { WMITLV_TAG_STRUC_wmi_pdev_wsi_stats_info_cmd_fixed_param, WMITLV_TAG_STRUC_wmi_enhanced_aoa_caps_param, WMITLV_TAG_STRUC_wmi_enhanced_aoa_per_band_caps_param, + WMITLV_TAG_STRUC_WMI_RADAR_FLAGS, } WMITLV_TAG_ID; /* * IMPORTANT: Please add _ALL_ WMI Commands Here. @@ -6255,7 +6256,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PEER_OPER_MODE_CHANGE_EVENTID); WMITLV_CREATE_PARAM_STRUC(WMI_DFS_RADAR_EVENTID); #define WMITLV_TABLE_WMI_PDEV_DFS_RADAR_DETECTION_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_dfs_radar_detection_event_fixed_param, wmi_pdev_dfs_radar_detection_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_dfs_radar_detection_event_fixed_param, wmi_pdev_dfs_radar_detection_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, WMI_RADAR_FLAGS, radar_flags, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_DFS_RADAR_DETECTION_EVENTID); #define WMITLV_TABLE_WMI_VDEV_ADFS_OCAC_COMPLETE_EVENTID(id,op,buf,len) \ diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index eba35f664307..30395b42f660 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -4591,7 +4591,15 @@ typedef struct { * Refer to the below definitions of the * WMI_RSRC_CFG_HOST_SERVICE_FLAG_BANG_RADAR_320M_SUPPORT_GET * and _SET macros. - * Bits 31:14 - Reserved + * Bit 14 + * This bit will be set when host wants to enable/disable + * full BW NOL feature. + * When set to 1: Enable full BW NOL feature. + * When set to 0: Disable the full BW NOL feature. + * Refer to the below definitions of the + * WMI_RSRC_CFG_HOST_SERVICE_FLAG_RADAR_FLAGS_FULL_BW_NOL_GET + * and _SET macros. + * Bits 31:15 - Reserved */ A_UINT32 host_service_flags; @@ -5034,6 +5042,11 @@ typedef struct { #define WMI_RSRC_CFG_HOST_SERVICE_FLAG_BANG_RADAR_320M_SUPPORT_SET(host_service_flags, val) \ WMI_SET_BITS(host_service_flags, 13, 1, val) +#define WMI_RSRC_CFG_HOST_SERVICE_FLAG_RADAR_FLAGS_FULL_BW_NOL_GET(host_service_flags) \ + WMI_GET_BITS(host_service_flags, 14, 1) +#define WMI_RSRC_CFG_HOST_SERVICE_FLAG_RADAR_FLAGS_FULL_BW_NOL_SET(host_service_flags, val) \ + WMI_SET_BITS(host_service_flags, 14, 1, val) + #define WMI_RSRC_CFG_CARRIER_CFG_CHARTER_ENABLE_GET(carrier_config) \ WMI_GET_BITS(carrier_config, 0, 1) @@ -25558,6 +25571,30 @@ typedef struct { A_INT32 sidx; /* segment index (where was the radar within the channel) */ } wmi_pdev_dfs_radar_detection_event_fixed_param; +typedef struct { + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_RADAR_FLAGS */ + /* + * Bit 0: + * 0 - need check sub channel marking + * 1 - full bandwidth need put to NOL + * Refer to WMI_RADAR_FLAGS_FULL_BW_NOL_GET and _SET macros + * [1:31] reserved + */ + A_UINT32 flags; +} WMI_RADAR_FLAGS; + +#define WMI_RADAR_FLAGS_FULL_BW_NOL_BITPOS 0 +#define WMI_RADAR_FLAGS_FULL_BW_NOL_NUM_BITS 1 + +#define WMI_RADAR_FLAGS_FULL_BW_NOL_GET(flag) \ + WMI_GET_BITS(flag, \ + WMI_RADAR_FLAGS_FULL_BW_NOL_BITPOS, \ + WMI_RADAR_FLAGS_FULL_BW_NOL_NUM_BITS) +#define WMI_RADAR_FLAGS_FULL_BW_NOL_SET(flag, val) \ + WMI_GET_BITS(flag, \ + WMI_RADAR_FLAGS_FULL_BW_NOL_BITPOS, \ + WMI_RADAR_FLAGS_FULL_BW_NOL_NUM_BITS, val) + typedef enum { OCAC_COMPLETE = 0, OCAC_ABORT, diff --git a/fw/wmi_version.h b/fw/wmi_version.h index 482019a67908..0b8e8d130c23 100644 --- a/fw/wmi_version.h +++ b/fw/wmi_version.h @@ -37,7 +37,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_ 1378 +#define __WMI_REVISION_ 1379 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work