diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h index 1a8ea2273f..8553675e16 100644 --- a/fw/wmi_tlv_defs.h +++ b/fw/wmi_tlv_defs.h @@ -1100,6 +1100,7 @@ typedef enum { WMITLV_TAG_STRUC_wmi_configure_roam_trigger_parameters, WMITLV_TAG_STRUC_wmi_vdev_extd_stats, WMITLV_TAG_STRUC_wmi_twt_add_dialog_additional_params, + WMITLV_TAG_STRUC_WMI_SCAN_RADIO_CAPABILITIES_EXT2, } WMITLV_TAG_ID; /* @@ -4517,7 +4518,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_SERVICE_READY_EXT_EVENTID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_spectral_bin_scaling_params, wmi_bin_scaling_params, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, WMI_MAC_PHY_CAPABILITIES_EXT, mac_phy_caps, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, WMI_HAL_REG_CAPABILITIES_EXT2, hal_reg_caps, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_nan_capabilities, wmi_nan_capabilities, nan_cap, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_nan_capabilities, wmi_nan_capabilities, nan_cap, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, WMI_SCAN_RADIO_CAPABILITIES_EXT2, wmi_scan_radio_caps, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_SERVICE_READY_EXT2_EVENTID); #define WMITLV_TABLE_WMI_CHAN_RF_CHARACTERIZATION_INFO_EVENTID(id,op,buf,len) \ diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index 6a2134127a..a692226793 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -9521,6 +9521,11 @@ typedef struct { * VDEV_FLAGS_NON_TRANSMIT_AP classify it as either Tx vap * or non Tx vap. */ +#define VDEV_FLAGS_SCAN_MODE_VAP 0x00000010 /* for Scan Radio vdev will be special vap. + * There will not be WMI_VDEV_UP_CMD, there will be only WMI_VDEV_CREATE_CMD + * and WMI_VDEV_START_REQUEST_CMD. Based on this parameter need to make decision like + * vdev Pause/Unpause at WMI_VDEV_START_REQUEST_CMD. + */ typedef struct { A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_create_cmd_fixed_param */ @@ -25923,6 +25928,39 @@ typedef struct { A_UINT32 wireless_modes_ext; } WMI_HAL_REG_CAPABILITIES_EXT2; +/* + * This TLV used for Scan Radio RDP + * We have an RDP which supports Multiband-Frequency (2Ghz, 5Ghz and 6Ghz) + * on a single radio. + * The AP acts as a special VAP. There will not be WMI_VDEV_UP_CMD. + * This radio is used only for scanning purpose and to send few MGMT frames. + * The DFS feature is disabled on this scan radio, since there will not be + * much TX traffic. + * The Host has to disable CAC timer because DFS feature not supported here. + * In order to know about the scan radio RDP and DFS disabled case, + * the target has to send this information to Host per pdev via + * WMI_SERVICE_READY_EXT2_EVENT. + * The target is notified of the special scan VAP by the flags variable + * in the WMI_CREATE_CMD. + */ +typedef struct { + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_SCAN_RADIO_CAPABILITIES_EXT2 */ + /* pdev id */ + A_UINT32 pdev_id; + /* + * [0] 1 - SCAN_RADIO supported 0 - SCAN_RADIO not supported + * [1] 1 - DFS enabled 0 - DFS disabled + * [2:31] reserved + */ + A_UINT32 flags; +} WMI_SCAN_RADIO_CAPABILITIES_EXT2; + +#define WMI_SCAN_RADIO_CAP_SCAN_RADIO_FLAG_GET(flag) WMI_GET_BITS(flag, 0, 1) +#define WMI_SCAN_RADIO_CAP_SCAN_RADIO_FLAG_SET(flag, val) WMI_SET_BITS(flag, 0, 1, val) + +#define WMI_SCAN_RADIO_CAP_DFS_FLAG_GET(flag) WMI_GET_BITS(flag, 1, 1) +#define WMI_SCAN_RADIO_CAP_DFS_FLAG_SET(flag, val) WMI_SET_BITS(flag, 1, 1, val) + typedef struct { A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_SOC_HAL_REG_CAPABILITIES */ A_UINT32 num_phy; diff --git a/fw/wmi_version.h b/fw/wmi_version.h index d0a5c4857e..8494762fa1 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_ 874 +#define __WMI_REVISION_ 875 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work