diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h index 35c3db289d5d..28cb810c2b1d 100644 --- a/fw/wmi_tlv_defs.h +++ b/fw/wmi_tlv_defs.h @@ -1561,6 +1561,8 @@ typedef enum { WMITLV_TAG_STRUC_wmi_pdev_uhr_cu_cmd_fixed_param, WMITLV_TAG_STRUC_wmi_vdev_uhr_cu_status, WMITLV_TAG_STRUC_wmi_pdev_uhr_cu_event_fixed_param, + WMITLV_TAG_STRUC_wmi_cfr_capture_fix_agc_gain_config, + WMITLV_TAG_STRUC_wmi_cfr_capture_fix_agc_gain_info, } WMITLV_TAG_ID; /* * IMPORTANT: Please add _ALL_ WMI Commands Here. @@ -5476,7 +5478,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_AUDIO_AGGR_GET_SCHED_METHOD_CMDID); /* CFR Capture Filter cmd */ #define WMITLV_TABLE_WMI_CFR_CAPTURE_FILTER_CMDID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_cfr_capture_filter_cmd_fixed_param, wmi_cfr_capture_filter_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_cfr_filter_group_config, filter_group_config, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_cfr_filter_group_config, filter_group_config, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_cfr_capture_fix_agc_gain_config, fix_agc_gain_config, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_CFR_CAPTURE_FILTER_CMDID); /* VLAN config */ @@ -8431,7 +8434,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_WLAN_MODE_RESP_EVENTID); /* CFR capture filter response event */ #define WMITLV_TABLE_WMI_CFR_CAPTURE_FILTER_RESP_EVENTID(id,op,buf,len) \ -WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_cfr_capture_filter_resp_event_fixed_param, wmi_cfr_capture_filter_resp_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_cfr_capture_filter_resp_event_fixed_param, wmi_cfr_capture_filter_resp_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_cfr_capture_fix_agc_gain_info, fix_agc_gain_info, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_CFR_CAPTURE_FILTER_RESP_EVENTID); diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index eae73b284fe2..d07b82a8f873 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -47591,6 +47591,44 @@ typedef struct { #define WMI_CFR_FRAME_SEQ_NUM_SET(frame_seq_ctrl, value) \ WMI_SET_BITS(frame_seq_ctrl, 4, 12, value) +/** + * CFR capture fix agc gain status codes + * These values are sent to host in wmi_cfr_capture_filter_resp_event + */ +typedef enum { + /** Configuration successful */ + WMI_CFR_CAPTURE_FIX_AGC_GAIN_STATUS_SUCCESS = 0, + + /** RX AGC Gain index out of range */ + WMI_CFR_CAPTURE_FIX_AGC_GAIN_REASON_INDEX_OUT_OF_RANGE = 1, + + /** Fixed AGC not supported in current PHY mode */ + WMI_CFR_CAPTURE_FIX_AGC_GAIN_REASON_PHYMODE_REJECT = 2, + + /** Failed to disable Scan */ + WMI_CFR_CAPTURE_FIX_AGC_GAIN_REASON_SCAN_DISABLE_FAILED = 3, + + /** Failed to disable ANI */ + WMI_CFR_CAPTURE_FIX_AGC_GAIN_REASON_ANI_DISABLE_FAILED = 4, + + /** AGC control is already owned by another module */ + WMI_CFR_CAPTURE_FIX_AGC_GAIN_REASON_AGC_CONFLICT = 5, + + /** Another CFR/AGC session is in progress */ + WMI_CFR_CAPTURE_FIX_AGC_GAIN_REASON_SESSION_BUSY = 6, +} wmi_cfr_capture_fix_agc_gain_status_t; + +typedef struct { + /* Info of the CFR capture fix AGC gain configuration based on wmi_cfr_capture_fix_agc_gain_status_t */ + A_UINT32 tlv_header; + + /* wmi_cfr_capture_fix_agc_gain_status_t */ + A_UINT32 status; + + /* RX agc gain index for cfr capture in HW */ + A_UINT32 cfr_agc_gain_index; +} wmi_cfr_capture_fix_agc_gain_info; + /** * CFR capture filter command response status codes * These values are sent to host in wmi_cfr_capture_filter_resp_event @@ -48488,6 +48526,21 @@ typedef struct { A_UINT32 data_subtype_filter; } wmi_cfr_filter_group_config; + +typedef struct { + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_cfr_fix_agc_gain_config */ + + /* + * 0 - disable CFR fix agc gain feature + * 1 - enable CFR fix agc gain feature + */ + A_UINT32 cfr_fix_agc_gain_enable; + + /* Forced RX agc gain index for cfr capture, which is set by user in host */ + A_UINT32 force_cfr_agc_gain_index; +} wmi_cfr_capture_fix_agc_gain_config; + + #define WMI_CFR_DIRECTED_FTM_ACK_EN_BIT_POS 0 #define WMI_CFR_ALL_FTM_ACK_EN_BIT_POS 1 #define WMI_CFR_NDPA_NDP_DIRECTED_EN_BIT_POS 2 diff --git a/fw/wmi_version.h b/fw/wmi_version.h index b04895d91adc..1c4aad0cca49 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_ 1696 +#define __WMI_REVISION_ 1697 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work