Loading fw/wmi_tlv_defs.h +9 −1 Original line number Diff line number Diff line Loading @@ -1189,6 +1189,7 @@ typedef enum { 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_STRUC_wmi_roam_mlo_config_cmd_fixed_param, } WMITLV_TAG_ID; /* Loading Loading @@ -3462,6 +3463,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_IDLE_TRIGGER_MONITOR_CMDID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_configure_roam_trigger_parameters, config_roam_trigger_param, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_ROAM_ENABLE_DISABLE_TRIGGER_REASON_CMDID); /* Configure roam MLO parameters */ #define WMITLV_TABLE_WMI_ROAM_MLO_CONFIG_CMDID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_roam_mlo_config_cmd_fixed_param, wmi_roam_mlo_config_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_ROAM_MLO_CONFIG_CMDID); /* DSM filter parameters */ #define WMITLV_TABLE_WMI_PDEV_DSM_FILTER_CMDID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_dsm_filter_fixed_param, wmi_pdev_dsm_filter_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ Loading Loading @@ -5082,7 +5088,9 @@ WMITLV_CREATE_PARAM_STRUC(WMI_ROAM_EVENTID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_pdev_set_hw_mode_response_vdev_mac_entry, wmi_pdev_set_hw_mode_response_vdev_mac_mapping, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_roam_fils_synch_tlv_param, roam_fils_synch_info, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_key_material_ext, key_ext, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_roam_pmk_cache_synch_tlv_param, roam_pmk_cache_synch_info, WMITLV_SIZE_VAR) WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_roam_pmk_cache_synch_tlv_param, roam_pmk_cache_synch_info, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_roam_ml_setup_links_param, setup_links_param, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_roam_ml_key_material_param, ml_key_material, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_ROAM_SYNCH_EVENTID); /* Roam Synch frame Event */ Loading fw/wmi_unified.h +80 −5 Original line number Diff line number Diff line Loading @@ -800,6 +800,8 @@ typedef enum { WMI_ROAM_PREAUTH_STATUS_CMDID, /** Command to get roam scan channels list */ WMI_ROAM_GET_SCAN_CHANNEL_LIST_CMDID, /** configure MLO parameters for roaming */ WMI_ROAM_MLO_CONFIG_CMDID, /** offload scan specific commands */ /** set offload scan AP profile */ Loading Loading @@ -5091,6 +5093,22 @@ typedef struct { A_UINT8 pmkid[WMI_MAX_PMKID_LEN]; } wmi_roam_pmk_cache_synch_tlv_param; /** * WMI_ROAM_LINK_FLAG_XXX definition: */ #define WMI_ROAM_LINK_FLAG_DISABLE 0x1 /* link is disabled, host can overwrite it later. */ typedef struct { A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_roam_ml_setup_links_param */ A_UINT32 vdev_id; /* when vdev_id is 0xffffffff, means the link_id hasn't attached to vdev */ A_UINT32 link_id; /* link id defined as in 802.11 BE spec. */ wmi_channel channel; /* link primary channel */ /** * link flags: refer WMI_ROAM_LINK_FLAG_XXX. */ A_UINT32 flags; } wmi_roam_ml_setup_links_param; /* * If FW has multiple active channels due to MCC(multi channel concurrency), * then these stats are combined stats for all the active channels. Loading Loading @@ -15403,6 +15421,9 @@ typedef struct { #define WLAN_ROAM_SCORING_PCL_DISABLE 0x00000100 #define WLAN_ROAM_SCORING_HE_DISABLE 0x00000200 #define WLAN_ROAM_SCORING_OCE_WAN_DISABLE 0x00000400 #define WLAN_ROAM_SCORING_ETH_DISABLE 0x00000800 #define WLAN_ROAM_SCORING_MLO_DISABLE 0x00001000 #define WLAN_ROAM_SCORING_DISABLE_ALL 0xFFFFFFFF #define WLAN_ROAM_SCORING_DEFAULT_PARAM_ALLOW 0x0 Loading Loading @@ -15438,6 +15459,17 @@ typedef struct { #define WLAN_ROAM_SCORE_MAX_OCE_WAN_SLOT 16 #define WLAN_ROAM_SCORE_DEFAULT_OCE_WAN_SLOT 0 #define WLAN_ROAM_SCORE_320MHZ_BW_EXT_INDEX 0 #define WLAN_ROAM_SCORE_MAX_BW_EXT_INDEX 4 #define WLAN_ROAM_SCORE_MLSR_INDEX 0 #define WLAN_ROAM_SCORE_MLMR_INDEX 1 #define WLAN_ROAM_SCORE_EMLSR_INDEX 2 #define WLAN_ROAM_SCORE_EMLMR_INDEX 3 #define WLAN_ROAM_SCORE_MLO_INDEX 4 #define WMI_ROAM_GET_MLO_SCORE_PERCENTAGE(value32, mlo_index) WMI_GET_BITS(value32, (8 * (mlo_index)), 8) #define WMI_ROAM_SET_MLO_SCORE_PERCENTAGE(value32, score_pcnt, mlo_index) WMI_SET_BITS(value32, (8 * (mlo_index)), 8, score_pcnt) /** best_rssi_threshold: Roamable AP RSSI equal or better than this threshold, full rssi score 100. Units in dBm. good_rssi_threshold: Below this threshold, scoring linear percentage between rssi_good_pcnt and 100. Units in dBm. Loading Loading @@ -15496,11 +15528,19 @@ typedef struct { } wmi_roam_cnd_rssi_scoring; /** Use macro WMI_ROAM_CND_GET/SET_BW_SCORE_PERCENTAGE to get and set the value respectively. Use macro WMI_ROAM_CND_GET/SET_BW_SCORE_PERCENTAGE to get and set the value respectively of bw_scoring BITS 0-7 :- It contains scoring percentage of 20MHz BW BITS 8-15 :- It contains scoring percentage of 40MHz BW BITS 16-23 :- It contains scoring percentage of 80MHz BW BITS 24-31 :- It contains scoring percentage of 1600MHz BW BITS 24-31 :- It contains scoring percentage of 160MHz BW Use macro WMI_ROAM_CND_GET/SET_BW_SCORE_PERCENTAGE to get and set the value respectively of ext_bw_scoring: BITS 0-7 :- It contains scoring percentage of 320MHz BW BITS 8-15 :- reserved BITS 16-23 :- reserved BITS 24-31 :- reserved The value of each index must be 0-100 */ Loading Loading @@ -15646,6 +15686,18 @@ typedef struct { * Only used if sae_pk_ap_weightage_pcnt != 0. */ A_UINT32 sae_pk_ap_weightage_pcnt; /* * Give weightage to bandwidth which is greater than 160Mhz. */ wmi_roam_cnd_bw_scoring ext_bw_scoring; /* * eht_weightage_pcnt :- 11be weightage out of total score in percentage. */ A_UINT32 eht_weightage_pcnt; /* * mlo_weightage_pcnt :- give weightage to candidate based on MLO support. */ A_UINT32 mlo_weightage_pcnt; } wmi_roam_cnd_scoring_param; typedef struct { Loading Loading @@ -18200,6 +18252,23 @@ typedef struct { #define WMI_MAX_KEY_LEN 32 #define IGTK_PN_SIZE 6 #define WMI_MAX_PN_LEN 8 typedef struct { /** * WMITLV_TAG_STRUC_wmi_roam_ml_key_material_param will exist when link is not created by fw. */ A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_roam_ml_link_key_material_param */ A_UINT32 link_id; /* The key is for which link, when link_id is 0xf, means the key is used for all links, like PTK */ /** key index */ A_UINT32 key_ix; /** key cipher, defined as WMI_CIPHER_ */ A_UINT32 key_cipher; A_UINT8 pn[WMI_MAX_PN_LEN]; A_UINT8 key_buff[WMI_MAX_KEY_LEN]; } wmi_roam_ml_key_material_param; typedef struct { A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_GTK_OFFLOAD_STATUS_EVENT_fixed_param */ A_UINT32 vdev_id; /** unique id identifying the VDEV */ Loading Loading @@ -28964,6 +29033,7 @@ static INLINE A_UINT8 *wmi_id_to_name(A_UINT32 wmi_command) WMI_RETURN_STRING(WMI_PEER_CONFIG_PPE_DS_CMDID); WMI_RETURN_STRING(WMI_VDEV_ENABLE_DISABLE_INTRA_BSS_CMDID); WMI_RETURN_STRING(WMI_PEER_ENABLE_DISABLE_INTRA_BSS_CMDID); WMI_RETURN_STRING(WMI_ROAM_MLO_CONFIG_CMDID); } return "Invalid WMI cmd"; Loading Loading @@ -31559,6 +31629,11 @@ typedef struct { 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_roam_mlo_config_cmd_fixed_param */ wmi_mac_addr partner_link_addr; /* Assigned link address which can be used as self link addr when vdev is not created */ } wmi_roam_mlo_config_cmd_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; fw/wmi_version.h +1 −1 Original line number Diff line number Diff line Loading @@ -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_ 1027 #define __WMI_REVISION_ 1028 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work Loading Loading
fw/wmi_tlv_defs.h +9 −1 Original line number Diff line number Diff line Loading @@ -1189,6 +1189,7 @@ typedef enum { 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_STRUC_wmi_roam_mlo_config_cmd_fixed_param, } WMITLV_TAG_ID; /* Loading Loading @@ -3462,6 +3463,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_IDLE_TRIGGER_MONITOR_CMDID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_configure_roam_trigger_parameters, config_roam_trigger_param, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_ROAM_ENABLE_DISABLE_TRIGGER_REASON_CMDID); /* Configure roam MLO parameters */ #define WMITLV_TABLE_WMI_ROAM_MLO_CONFIG_CMDID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_roam_mlo_config_cmd_fixed_param, wmi_roam_mlo_config_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_ROAM_MLO_CONFIG_CMDID); /* DSM filter parameters */ #define WMITLV_TABLE_WMI_PDEV_DSM_FILTER_CMDID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_dsm_filter_fixed_param, wmi_pdev_dsm_filter_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ Loading Loading @@ -5082,7 +5088,9 @@ WMITLV_CREATE_PARAM_STRUC(WMI_ROAM_EVENTID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_pdev_set_hw_mode_response_vdev_mac_entry, wmi_pdev_set_hw_mode_response_vdev_mac_mapping, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_roam_fils_synch_tlv_param, roam_fils_synch_info, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_key_material_ext, key_ext, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_roam_pmk_cache_synch_tlv_param, roam_pmk_cache_synch_info, WMITLV_SIZE_VAR) WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_roam_pmk_cache_synch_tlv_param, roam_pmk_cache_synch_info, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_roam_ml_setup_links_param, setup_links_param, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_roam_ml_key_material_param, ml_key_material, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_ROAM_SYNCH_EVENTID); /* Roam Synch frame Event */ Loading
fw/wmi_unified.h +80 −5 Original line number Diff line number Diff line Loading @@ -800,6 +800,8 @@ typedef enum { WMI_ROAM_PREAUTH_STATUS_CMDID, /** Command to get roam scan channels list */ WMI_ROAM_GET_SCAN_CHANNEL_LIST_CMDID, /** configure MLO parameters for roaming */ WMI_ROAM_MLO_CONFIG_CMDID, /** offload scan specific commands */ /** set offload scan AP profile */ Loading Loading @@ -5091,6 +5093,22 @@ typedef struct { A_UINT8 pmkid[WMI_MAX_PMKID_LEN]; } wmi_roam_pmk_cache_synch_tlv_param; /** * WMI_ROAM_LINK_FLAG_XXX definition: */ #define WMI_ROAM_LINK_FLAG_DISABLE 0x1 /* link is disabled, host can overwrite it later. */ typedef struct { A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_roam_ml_setup_links_param */ A_UINT32 vdev_id; /* when vdev_id is 0xffffffff, means the link_id hasn't attached to vdev */ A_UINT32 link_id; /* link id defined as in 802.11 BE spec. */ wmi_channel channel; /* link primary channel */ /** * link flags: refer WMI_ROAM_LINK_FLAG_XXX. */ A_UINT32 flags; } wmi_roam_ml_setup_links_param; /* * If FW has multiple active channels due to MCC(multi channel concurrency), * then these stats are combined stats for all the active channels. Loading Loading @@ -15403,6 +15421,9 @@ typedef struct { #define WLAN_ROAM_SCORING_PCL_DISABLE 0x00000100 #define WLAN_ROAM_SCORING_HE_DISABLE 0x00000200 #define WLAN_ROAM_SCORING_OCE_WAN_DISABLE 0x00000400 #define WLAN_ROAM_SCORING_ETH_DISABLE 0x00000800 #define WLAN_ROAM_SCORING_MLO_DISABLE 0x00001000 #define WLAN_ROAM_SCORING_DISABLE_ALL 0xFFFFFFFF #define WLAN_ROAM_SCORING_DEFAULT_PARAM_ALLOW 0x0 Loading Loading @@ -15438,6 +15459,17 @@ typedef struct { #define WLAN_ROAM_SCORE_MAX_OCE_WAN_SLOT 16 #define WLAN_ROAM_SCORE_DEFAULT_OCE_WAN_SLOT 0 #define WLAN_ROAM_SCORE_320MHZ_BW_EXT_INDEX 0 #define WLAN_ROAM_SCORE_MAX_BW_EXT_INDEX 4 #define WLAN_ROAM_SCORE_MLSR_INDEX 0 #define WLAN_ROAM_SCORE_MLMR_INDEX 1 #define WLAN_ROAM_SCORE_EMLSR_INDEX 2 #define WLAN_ROAM_SCORE_EMLMR_INDEX 3 #define WLAN_ROAM_SCORE_MLO_INDEX 4 #define WMI_ROAM_GET_MLO_SCORE_PERCENTAGE(value32, mlo_index) WMI_GET_BITS(value32, (8 * (mlo_index)), 8) #define WMI_ROAM_SET_MLO_SCORE_PERCENTAGE(value32, score_pcnt, mlo_index) WMI_SET_BITS(value32, (8 * (mlo_index)), 8, score_pcnt) /** best_rssi_threshold: Roamable AP RSSI equal or better than this threshold, full rssi score 100. Units in dBm. good_rssi_threshold: Below this threshold, scoring linear percentage between rssi_good_pcnt and 100. Units in dBm. Loading Loading @@ -15496,11 +15528,19 @@ typedef struct { } wmi_roam_cnd_rssi_scoring; /** Use macro WMI_ROAM_CND_GET/SET_BW_SCORE_PERCENTAGE to get and set the value respectively. Use macro WMI_ROAM_CND_GET/SET_BW_SCORE_PERCENTAGE to get and set the value respectively of bw_scoring BITS 0-7 :- It contains scoring percentage of 20MHz BW BITS 8-15 :- It contains scoring percentage of 40MHz BW BITS 16-23 :- It contains scoring percentage of 80MHz BW BITS 24-31 :- It contains scoring percentage of 1600MHz BW BITS 24-31 :- It contains scoring percentage of 160MHz BW Use macro WMI_ROAM_CND_GET/SET_BW_SCORE_PERCENTAGE to get and set the value respectively of ext_bw_scoring: BITS 0-7 :- It contains scoring percentage of 320MHz BW BITS 8-15 :- reserved BITS 16-23 :- reserved BITS 24-31 :- reserved The value of each index must be 0-100 */ Loading Loading @@ -15646,6 +15686,18 @@ typedef struct { * Only used if sae_pk_ap_weightage_pcnt != 0. */ A_UINT32 sae_pk_ap_weightage_pcnt; /* * Give weightage to bandwidth which is greater than 160Mhz. */ wmi_roam_cnd_bw_scoring ext_bw_scoring; /* * eht_weightage_pcnt :- 11be weightage out of total score in percentage. */ A_UINT32 eht_weightage_pcnt; /* * mlo_weightage_pcnt :- give weightage to candidate based on MLO support. */ A_UINT32 mlo_weightage_pcnt; } wmi_roam_cnd_scoring_param; typedef struct { Loading Loading @@ -18200,6 +18252,23 @@ typedef struct { #define WMI_MAX_KEY_LEN 32 #define IGTK_PN_SIZE 6 #define WMI_MAX_PN_LEN 8 typedef struct { /** * WMITLV_TAG_STRUC_wmi_roam_ml_key_material_param will exist when link is not created by fw. */ A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_roam_ml_link_key_material_param */ A_UINT32 link_id; /* The key is for which link, when link_id is 0xf, means the key is used for all links, like PTK */ /** key index */ A_UINT32 key_ix; /** key cipher, defined as WMI_CIPHER_ */ A_UINT32 key_cipher; A_UINT8 pn[WMI_MAX_PN_LEN]; A_UINT8 key_buff[WMI_MAX_KEY_LEN]; } wmi_roam_ml_key_material_param; typedef struct { A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_GTK_OFFLOAD_STATUS_EVENT_fixed_param */ A_UINT32 vdev_id; /** unique id identifying the VDEV */ Loading Loading @@ -28964,6 +29033,7 @@ static INLINE A_UINT8 *wmi_id_to_name(A_UINT32 wmi_command) WMI_RETURN_STRING(WMI_PEER_CONFIG_PPE_DS_CMDID); WMI_RETURN_STRING(WMI_VDEV_ENABLE_DISABLE_INTRA_BSS_CMDID); WMI_RETURN_STRING(WMI_PEER_ENABLE_DISABLE_INTRA_BSS_CMDID); WMI_RETURN_STRING(WMI_ROAM_MLO_CONFIG_CMDID); } return "Invalid WMI cmd"; Loading Loading @@ -31559,6 +31629,11 @@ typedef struct { 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_roam_mlo_config_cmd_fixed_param */ wmi_mac_addr partner_link_addr; /* Assigned link address which can be used as self link addr when vdev is not created */ } wmi_roam_mlo_config_cmd_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;
fw/wmi_version.h +1 −1 Original line number Diff line number Diff line Loading @@ -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_ 1027 #define __WMI_REVISION_ 1028 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work Loading