diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h index 5753fc9c9d..9d3a5a270f 100644 --- a/fw/wmi_tlv_defs.h +++ b/fw/wmi_tlv_defs.h @@ -1075,6 +1075,7 @@ typedef enum { WMITLV_TAG_STRUC_wmi_pdev_srg_obss_bssid_enable_bitmap_cmd_fixed_param, WMITLV_TAG_STRUC_wmi_pdev_non_srg_obss_color_enable_bitmap_cmd_fixed_param, WMITLV_TAG_STRUC_wmi_pdev_non_srg_obss_bssid_enable_bitmap_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_roam_capability_report_event_fixed_param, } WMITLV_TAG_ID; /* @@ -1768,6 +1769,7 @@ typedef enum { OP(WMI_VDEV_SEND_BIG_DATA_P2_EVENTID) \ OP(WMI_AUDIO_AGGR_REPORT_STATISTICS_EVENTID) \ OP(WMI_PDEV_SSCAN_FW_PARAM_EVENTID) \ + OP(WMI_ROAM_CAPABILITY_REPORT_EVENTID) \ /* add new EVT_LIST elements above this line */ @@ -5933,6 +5935,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_AUDIO_AGGR_REPORT_STATISTICS_EVENTID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_pdev_sscan_fft_bin_index, fft_bin_index, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_SSCAN_FW_PARAM_EVENTID); +/* Roam capability report event */ +#define WMITLV_TABLE_WMI_ROAM_CAPABILITY_REPORT_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_roam_capability_report_event_fixed_param, wmi_roam_capability_report_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_ROAM_CAPABILITY_REPORT_EVENTID); + #ifdef __cplusplus } diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index 1f3b8f96de..99cb716932 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -1649,6 +1649,8 @@ typedef enum { WMI_ROAM_STATS_EVENTID, /** Roam scan channels list */ WMI_ROAM_SCAN_CHANNEL_LIST_EVENTID, + /** Firmware roam capability information */ + WMI_ROAM_CAPABILITY_REPORT_EVENTID, /** P2P disc found */ WMI_P2P_DISC_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_P2P), @@ -27846,6 +27848,35 @@ typedef struct { */ } wmi_roam_scan_channel_list_event_fixed_param; +typedef enum { + WMI_ROAM_CND_RSSI_SCORING = 0x00000001, /* FW considers RSSI scoring */ + WMI_ROAM_CND_HT_SCORING = 0x00000002, /* FW considers HT scoring */ + WMI_ROAM_CND_VHT_SCORING = 0x00000004, /* FW considers VHT scoring */ + WMI_ROAM_CND_HE_SCORING = 0x00000008, /* FW considers 11ax scoring */ + WMI_ROAM_CND_BW_SCORING = 0x00000010, /* FW considers Bandwidth scoring */ + WMI_ROAM_CND_BAND_SCORING = 0x00000020, /* FW considers Band(2G/5G) scoring */ + WMI_ROAM_CND_NSS_SCORING = 0x00000040, /* FW considers NSS(1x1 / 2x2) scoring */ + WMI_ROAM_CND_CHAN_CONGESTION_SCORING = 0x00000080, /* FW considers ESP/QBSS scoring */ + WMI_ROAM_CND_BEAMFORMING_SCORING = 0x00000100, /* FW considers Beamforming scoring */ + WMI_ROAM_CND_PCL_SCORING = 0x00000200, /* FW considers PCL scoring */ + WMI_ROAM_CND_OCE_WAN_SCORING = 0x00000400, /* FW considers OCE WAN metrics scoring */ + WMI_ROAM_CND_OCE_AP_TX_PWR_SCORING = 0x00000800, /* FW considers OCE AP Tx power scoring */ + WMI_ROAM_CND_OCE_AP_SUBNET_ID_SCORING = 0x00001000, /* FW considers OCE AP subnet id scoring */ +} WMI_ROAM_CND_SCORING_PARAMS; + +typedef struct { + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_roam_capability_report_event_fixed_param */ + /* + * This event is sent asynchronously during FW init. + * It indicates FW roam related capabilites to host. + * + * scoring_capability_bitmap = Indicates firmware candidate scoring + * capabilities. It's a bitmap of values + * from enum WMI_ROAM_CND_SCORING_PARAMS. + */ + A_UINT32 scoring_capability_bitmap; +} wmi_roam_capability_report_event_fixed_param; + typedef struct { A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_get_big_data_cmd_fixed_param */ A_UINT32 vdev_id; diff --git a/fw/wmi_version.h b/fw/wmi_version.h index a7741e59f5..815789dfa3 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_ 830 +#define __WMI_REVISION_ 831 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work