qcacld-3.0: Disable 11be when not supported by target

Disable 11be when not supported by target

Change-Id: Iecf9ab3eab5a9e69b01fb03b30b028b57019b10d
CRs-Fixed: 3291961
This commit is contained in:
Aditya Kodukula
2022-09-14 00:45:01 -07:00
committed by Madan Koyyalamudi
parent b5256983ff
commit 1472d9ad6d
11 changed files with 82 additions and 20 deletions

2
Kbuild
View File

@@ -1510,6 +1510,7 @@ UMAC_MLME_INC := -I$(WLAN_COMMON_INC)/umac/mlme \
-I$(WLAN_COMMON_INC)/umac/mlme/psoc_mgr/dispatcher/inc \ -I$(WLAN_COMMON_INC)/umac/mlme/psoc_mgr/dispatcher/inc \
-I$(WLAN_COMMON_INC)/umac/mlme/connection_mgr/dispatcher/inc \ -I$(WLAN_COMMON_INC)/umac/mlme/connection_mgr/dispatcher/inc \
-I$(WLAN_COMMON_INC)/umac/mlme/connection_mgr/utf/inc \ -I$(WLAN_COMMON_INC)/umac/mlme/connection_mgr/utf/inc \
-I$(WLAN_COMMON_INC)/umac/mlme/include \
-I$(WLAN_COMMON_INC)/umac/mlme/mlme_utils/ -I$(WLAN_COMMON_INC)/umac/mlme/mlme_utils/
UMAC_MLME_OBJS := $(WLAN_COMMON_ROOT)/umac/mlme/mlme_objmgr/dispatcher/src/wlan_vdev_mlme_main.o \ UMAC_MLME_OBJS := $(WLAN_COMMON_ROOT)/umac/mlme/mlme_objmgr/dispatcher/src/wlan_vdev_mlme_main.o \
@@ -1525,6 +1526,7 @@ UMAC_MLME_OBJS := $(WLAN_COMMON_ROOT)/umac/mlme/mlme_objmgr/dispatcher/src/wlan_
$(WLAN_COMMON_ROOT)/umac/mlme/pdev_mgr/dispatcher/src/wlan_pdev_mlme_api.o \ $(WLAN_COMMON_ROOT)/umac/mlme/pdev_mgr/dispatcher/src/wlan_pdev_mlme_api.o \
$(WLAN_COMMON_ROOT)/umac/mlme/mlme_objmgr/dispatcher/src/wlan_psoc_mlme_main.o \ $(WLAN_COMMON_ROOT)/umac/mlme/mlme_objmgr/dispatcher/src/wlan_psoc_mlme_main.o \
$(WLAN_COMMON_ROOT)/umac/mlme/psoc_mgr/dispatcher/src/wlan_psoc_mlme_api.o \ $(WLAN_COMMON_ROOT)/umac/mlme/psoc_mgr/dispatcher/src/wlan_psoc_mlme_api.o \
$(WLAN_COMMON_ROOT)/umac/mlme/psoc_mgr/dispatcher/src/wlan_psoc_mlme_ucfg_api.o \
$(WLAN_COMMON_ROOT)/umac/mlme/connection_mgr/core/src/wlan_cm_bss_scoring.o \ $(WLAN_COMMON_ROOT)/umac/mlme/connection_mgr/core/src/wlan_cm_bss_scoring.o \
$(WLAN_COMMON_ROOT)/umac/mlme/connection_mgr/core/src/wlan_cm_main.o \ $(WLAN_COMMON_ROOT)/umac/mlme/connection_mgr/core/src/wlan_cm_main.o \
$(WLAN_COMMON_ROOT)/umac/mlme/connection_mgr/core/src/wlan_cm_sm.o \ $(WLAN_COMMON_ROOT)/umac/mlme/connection_mgr/core/src/wlan_cm_sm.o \

View File

@@ -32,6 +32,7 @@
#include "wlan_policy_mgr_ucfg.h" #include "wlan_policy_mgr_ucfg.h"
#include "wlan_vdev_mgr_utils_api.h" #include "wlan_vdev_mgr_utils_api.h"
#include <../../core/src/wlan_cm_vdev_api.h> #include <../../core/src/wlan_cm_vdev_api.h>
#include "wlan_psoc_mlme_api.h"
/* quota in milliseconds */ /* quota in milliseconds */
#define MCC_DUTY_CYCLE 70 #define MCC_DUTY_CYCLE 70
@@ -993,10 +994,15 @@ QDF_STATUS mlme_update_tgt_eht_caps_in_cfg(struct wlan_objmgr_psoc *psoc,
struct wlan_mlme_psoc_ext_obj *mlme_obj = mlme_get_psoc_ext_obj(psoc); struct wlan_mlme_psoc_ext_obj *mlme_obj = mlme_get_psoc_ext_obj(psoc);
tDot11fIEeht_cap *eht_cap = &wma_cfg->eht_cap; tDot11fIEeht_cap *eht_cap = &wma_cfg->eht_cap;
tDot11fIEeht_cap *mlme_eht_cap; tDot11fIEeht_cap *mlme_eht_cap;
bool eht_capab;
if (!mlme_obj) if (!mlme_obj)
return QDF_STATUS_E_FAILURE; return QDF_STATUS_E_FAILURE;
wlan_psoc_mlme_get_11be_capab(psoc, &eht_capab);
if (!eht_capab)
return QDF_STATUS_SUCCESS;
mlme_obj->cfg.eht_caps.dot11_eht_cap.present = 1; mlme_obj->cfg.eht_caps.dot11_eht_cap.present = 1;
qdf_mem_copy(&mlme_obj->cfg.eht_caps.dot11_eht_cap, eht_cap, qdf_mem_copy(&mlme_obj->cfg.eht_caps.dot11_eht_cap, eht_cap,
sizeof(tDot11fIEeht_cap)); sizeof(tDot11fIEeht_cap));

View File

@@ -39,6 +39,7 @@
#include "wlan_reg_ucfg_api.h" #include "wlan_reg_ucfg_api.h"
#include "wlan_mlme_api.h" #include "wlan_mlme_api.h"
#include "wlan_reg_services_api.h" #include "wlan_reg_services_api.h"
#include "wlan_psoc_mlme_api.h"
#ifdef WLAN_FEATURE_FILS_SK #ifdef WLAN_FEATURE_FILS_SK
void cm_update_hlp_info(struct wlan_objmgr_vdev *vdev, void cm_update_hlp_info(struct wlan_objmgr_vdev *vdev,
@@ -1362,6 +1363,7 @@ cm_send_bss_peer_create_req(struct wlan_objmgr_vdev *vdev,
struct scheduler_msg msg; struct scheduler_msg msg;
QDF_STATUS status; QDF_STATUS status;
struct cm_peer_create_req *req; struct cm_peer_create_req *req;
bool eht_capab;
if (!vdev || !peer_mac) if (!vdev || !peer_mac)
return QDF_STATUS_E_FAILURE; return QDF_STATUS_E_FAILURE;
@@ -1372,9 +1374,12 @@ cm_send_bss_peer_create_req(struct wlan_objmgr_vdev *vdev,
if (!req) if (!req)
return QDF_STATUS_E_NOMEM; return QDF_STATUS_E_NOMEM;
wlan_psoc_mlme_get_11be_capab(wlan_vdev_get_psoc(vdev), &eht_capab);
if (eht_capab)
cm_set_peer_mld_info(req, mld_mac, is_assoc_peer);
req->vdev_id = wlan_vdev_get_id(vdev); req->vdev_id = wlan_vdev_get_id(vdev);
qdf_copy_macaddr(&req->peer_mac, peer_mac); qdf_copy_macaddr(&req->peer_mac, peer_mac);
cm_set_peer_mld_info(req, mld_mac, is_assoc_peer);
msg.bodyptr = req; msg.bodyptr = req;
msg.type = CM_BSS_PEER_CREATE_REQ; msg.type = CM_BSS_PEER_CREATE_REQ;

View File

@@ -54,6 +54,7 @@
#include "wlan_osif_features.h" #include "wlan_osif_features.h"
#include "wlan_osif_request_manager.h" #include "wlan_osif_request_manager.h"
#include <wlan_dp_ucfg_api.h> #include <wlan_dp_ucfg_api.h>
#include "wlan_psoc_mlme_ucfg_api.h"
bool hdd_cm_is_vdev_associated(struct hdd_adapter *adapter) bool hdd_cm_is_vdev_associated(struct hdd_adapter *adapter)
{ {
@@ -1141,6 +1142,12 @@ static
struct hdd_adapter *hdd_get_assoc_link_adapter(struct hdd_adapter *ml_adapter) struct hdd_adapter *hdd_get_assoc_link_adapter(struct hdd_adapter *ml_adapter)
{ {
int i; int i;
bool eht_capab;
struct hdd_context *hdd_ctx = WLAN_HDD_GET_CTX(ml_adapter);
ucfg_psoc_mlme_get_11be_capab(hdd_ctx->psoc, &eht_capab);
if (!eht_capab)
return ml_adapter;
for (i = 0; i < WLAN_MAX_MLD; i++) { for (i = 0; i < WLAN_MAX_MLD; i++) {
if (hdd_adapter_is_associated_with_ml_adapter( if (hdd_adapter_is_associated_with_ml_adapter(

View File

@@ -32,6 +32,7 @@
#include "wma_api.h" #include "wma_api.h"
#include "wlan_hdd_sysfs.h" #include "wlan_hdd_sysfs.h"
#include "wlan_osif_features.h" #include "wlan_osif_features.h"
#include "wlan_psoc_mlme_ucfg_api.h"
#if defined(WLAN_FEATURE_11BE) && defined(CFG80211_11BE_BASIC) #if defined(WLAN_FEATURE_11BE) && defined(CFG80211_11BE_BASIC)
#define CHAN_WIDTH_SET_40MHZ_IN_2G \ #define CHAN_WIDTH_SET_40MHZ_IN_2G \
@@ -172,9 +173,14 @@ void hdd_update_wiphy_eht_cap(struct hdd_context *hdd_ctx)
uint32_t channel_bonding_mode_2g; uint32_t channel_bonding_mode_2g;
uint8_t *phy_info_2g = uint8_t *phy_info_2g =
hdd_ctx->iftype_data_2g->eht_cap.eht_cap_elem.phy_cap_info; hdd_ctx->iftype_data_2g->eht_cap.eht_cap_elem.phy_cap_info;
bool eht_capab;
hdd_enter(); hdd_enter();
ucfg_psoc_mlme_get_11be_capab(hdd_ctx->psoc, &eht_capab);
if (!eht_capab)
return;
status = ucfg_mlme_cfg_get_eht_caps(hdd_ctx->psoc, &eht_cap_cfg); status = ucfg_mlme_cfg_get_eht_caps(hdd_ctx->psoc, &eht_cap_cfg);
if (QDF_IS_STATUS_ERROR(status)) if (QDF_IS_STATUS_ERROR(status))
return; return;

View File

@@ -234,6 +234,7 @@
#include "wlan_dp_public_struct.h" #include "wlan_dp_public_struct.h"
#include "os_if_dp.h" #include "os_if_dp.h"
#include <wlan_dp_ucfg_api.h> #include <wlan_dp_ucfg_api.h>
#include "wlan_psoc_mlme_ucfg_api.h"
#ifdef MULTI_CLIENT_LL_SUPPORT #ifdef MULTI_CLIENT_LL_SUPPORT
#define WLAM_WLM_HOST_DRIVER_PORT_ID 0xFFFFFF #define WLAM_WLM_HOST_DRIVER_PORT_ID 0xFFFFFF
@@ -1638,6 +1639,7 @@ static void hdd_update_tgt_services(struct hdd_context *hdd_ctx,
hdd_set_dynamic_macaddr_update_capability(hdd_ctx, cfg); hdd_set_dynamic_macaddr_update_capability(hdd_ctx, cfg);
hdd_update_fw_tdls_6g_capability(hdd_ctx, cfg); hdd_update_fw_tdls_6g_capability(hdd_ctx, cfg);
hdd_update_fw_tdls_wideband_capability(hdd_ctx, cfg); hdd_update_fw_tdls_wideband_capability(hdd_ctx, cfg);
ucfg_psoc_mlme_set_11be_capab(hdd_ctx->psoc, cfg->en_11be);
} }
/** /**
@@ -2625,6 +2627,7 @@ int hdd_update_tgt_cfg(hdd_handle_t hdd_handle, struct wma_tgt_cfg *cfg)
hdd_update_score_config(hdd_ctx); hdd_update_score_config(hdd_ctx);
hdd_update_multi_client_thermal_support(hdd_ctx); hdd_update_multi_client_thermal_support(hdd_ctx);
ucfg_psoc_mlme_set_11be_capab(hdd_ctx->psoc, cfg->services.en_11be);
return 0; return 0;
dispatcher_close: dispatcher_close:
@@ -4834,8 +4837,11 @@ static void
hdd_set_mld_address(struct hdd_adapter *adapter, struct hdd_context *hdd_ctx, hdd_set_mld_address(struct hdd_adapter *adapter, struct hdd_context *hdd_ctx,
struct qdf_mac_addr *mac_addr) struct qdf_mac_addr *mac_addr)
{ {
bool eht_capab;
ucfg_psoc_mlme_get_11be_capab(hdd_ctx->psoc, &eht_capab);
if (adapter->device_mode == QDF_STA_MODE && if (adapter->device_mode == QDF_STA_MODE &&
adapter->mlo_adapter_info.is_ml_adapter) { adapter->mlo_adapter_info.is_ml_adapter && eht_capab) {
hdd_update_dynamic_mld_mac_addr(hdd_ctx, &adapter->mld_addr, hdd_update_dynamic_mld_mac_addr(hdd_ctx, &adapter->mld_addr,
mac_addr, mac_addr,
adapter->device_mode); adapter->device_mode);
@@ -5122,6 +5128,7 @@ static int __hdd_set_mac_address(struct net_device *dev, void *addr)
int ret; int ret;
struct qdf_mac_addr mac_addr; struct qdf_mac_addr mac_addr;
bool net_if_running = netif_running(dev); bool net_if_running = netif_running(dev);
bool eht_capab;
hdd_enter_dev(dev); hdd_enter_dev(dev);
@@ -5159,7 +5166,8 @@ static int __hdd_set_mac_address(struct net_device *dev, void *addr)
return ret; return ret;
} }
if (hdd_adapter_is_ml_adapter(adapter)) ucfg_psoc_mlme_get_11be_capab(hdd_ctx->psoc, &eht_capab);
if (hdd_adapter_is_ml_adapter(adapter) && eht_capab)
hdd_set_mld_address(adapter, hdd_ctx, &mac_addr); hdd_set_mld_address(adapter, hdd_ctx, &mac_addr);
else else
hdd_update_dynamic_mac(hdd_ctx, &adapter->mac_addr, &mac_addr); hdd_update_dynamic_mac(hdd_ctx, &adapter->mac_addr, &mac_addr);
@@ -6224,12 +6232,15 @@ hdd_populate_vdev_create_params(struct hdd_adapter *adapter,
int i; int i;
struct hdd_mlo_adapter_info *mlo_adapter_info, *link_mlo_adapter_info; struct hdd_mlo_adapter_info *mlo_adapter_info, *link_mlo_adapter_info;
struct hdd_adapter *link_adapter; struct hdd_adapter *link_adapter;
struct hdd_context *hdd_ctx = WLAN_HDD_GET_CTX(adapter);
bool eht_capab;
hdd_enter_dev(adapter->dev); hdd_enter_dev(adapter->dev);
mlo_adapter_info = &adapter->mlo_adapter_info; mlo_adapter_info = &adapter->mlo_adapter_info;
ucfg_psoc_mlme_get_11be_capab(hdd_ctx->psoc, &eht_capab);
if (mlo_adapter_info->is_ml_adapter && if (mlo_adapter_info->is_ml_adapter &&
adapter->device_mode == QDF_STA_MODE) { adapter->device_mode == QDF_STA_MODE && eht_capab) {
for (i = 0; i < WLAN_MAX_MLD; i++) { for (i = 0; i < WLAN_MAX_MLD; i++) {
link_adapter = mlo_adapter_info->link_adapter[i]; link_adapter = mlo_adapter_info->link_adapter[i];
if (!link_adapter) if (!link_adapter)
@@ -6249,7 +6260,9 @@ hdd_populate_vdev_create_params(struct hdd_adapter *adapter,
vdev_params->opmode = adapter->device_mode; vdev_params->opmode = adapter->device_mode;
hdd_populate_mld_vdev_params(adapter, vdev_params); if (eht_capab)
hdd_populate_mld_vdev_params(adapter, vdev_params);
vdev_params->size_vdev_priv = sizeof(struct vdev_osif_priv); vdev_params->size_vdev_priv = sizeof(struct vdev_osif_priv);
hdd_exit(); hdd_exit();
} }
@@ -7334,6 +7347,7 @@ struct hdd_adapter *hdd_open_adapter(struct hdd_context *hdd_ctx,
struct hdd_adapter *adapter = NULL, *sta_adapter = NULL; struct hdd_adapter *adapter = NULL, *sta_adapter = NULL;
QDF_STATUS status = QDF_STATUS_E_FAILURE; QDF_STATUS status = QDF_STATUS_E_FAILURE;
uint32_t i; uint32_t i;
bool eht_capab;
status = wlan_hdd_validate_mac_address((struct qdf_mac_addr *)mac_addr); status = wlan_hdd_validate_mac_address((struct qdf_mac_addr *)mac_addr);
if (QDF_IS_STATUS_ERROR(status)) { if (QDF_IS_STATUS_ERROR(status)) {
@@ -7531,8 +7545,11 @@ struct hdd_adapter *hdd_open_adapter(struct hdd_context *hdd_ctx,
if (params->is_ml_adapter) { if (params->is_ml_adapter) {
hdd_adapter_set_ml_adapter(adapter); hdd_adapter_set_ml_adapter(adapter);
qdf_mem_copy(adapter->mld_addr.bytes, adapter->mac_addr.bytes, ucfg_psoc_mlme_get_11be_capab(hdd_ctx->psoc, &eht_capab);
QDF_MAC_ADDR_SIZE); if (eht_capab)
qdf_mem_copy(adapter->mld_addr.bytes,
adapter->mac_addr.bytes,
QDF_MAC_ADDR_SIZE);
} }
status = hdd_adapter_feature_update_work_init(adapter); status = hdd_adapter_feature_update_work_init(adapter);
if (QDF_IS_STATUS_ERROR(status)) if (QDF_IS_STATUS_ERROR(status))
@@ -15122,7 +15139,13 @@ static
uint8_t *wlan_hdd_get_mlo_intf_addr(struct hdd_context *hdd_ctx, uint8_t *wlan_hdd_get_mlo_intf_addr(struct hdd_context *hdd_ctx,
enum QDF_OPMODE interface_type) enum QDF_OPMODE interface_type)
{ {
return wlan_hdd_get_mld_addr(hdd_ctx, QDF_STA_MODE); bool eht_capab;
ucfg_psoc_mlme_get_11be_capab(hdd_ctx->psoc, &eht_capab);
if (eht_capab)
return wlan_hdd_get_mld_addr(hdd_ctx, QDF_STA_MODE);
else
return wlan_hdd_get_intf_addr(hdd_ctx, QDF_STA_MODE);
} }
#else #else
static inline static inline
@@ -15264,8 +15287,10 @@ hdd_open_adapters_for_mission_mode(struct hdd_context *hdd_ctx)
QDF_STATUS status; QDF_STATUS status;
uint8_t *mac_addr; uint8_t *mac_addr;
struct hdd_adapter_create_param params = {0}; struct hdd_adapter_create_param params = {0};
bool eht_capab;
ucfg_mlme_get_dot11p_mode(hdd_ctx->psoc, &dot11p_mode); ucfg_mlme_get_dot11p_mode(hdd_ctx->psoc, &dot11p_mode);
ucfg_psoc_mlme_get_11be_capab(hdd_ctx->psoc, &eht_capab);
/* Create only 802.11p interface? */ /* Create only 802.11p interface? */
if (dot11p_mode == CFG_11P_STANDALONE) if (dot11p_mode == CFG_11P_STANDALONE)
@@ -15315,7 +15340,9 @@ hdd_open_adapters_for_mission_mode(struct hdd_context *hdd_ctx)
goto err_close_adapters; goto err_close_adapters;
} }
hdd_wlan_register_mlo_interfaces(hdd_ctx); if (eht_capab)
hdd_wlan_register_mlo_interfaces(hdd_ctx);
return QDF_STATUS_SUCCESS; return QDF_STATUS_SUCCESS;
err_close_adapters: err_close_adapters:

View File

@@ -27,6 +27,7 @@
#include "osif_vdev_sync.h" #include "osif_vdev_sync.h"
#include "wlan_osif_features.h" #include "wlan_osif_features.h"
#include "wlan_dp_ucfg_api.h" #include "wlan_dp_ucfg_api.h"
#include "wlan_psoc_mlme_ucfg_api.h"
#if defined(CFG80211_11BE_BASIC) #if defined(CFG80211_11BE_BASIC)
void hdd_update_mld_mac_addr(struct hdd_context *hdd_ctx, void hdd_update_mld_mac_addr(struct hdd_context *hdd_ctx,
@@ -379,8 +380,10 @@ int hdd_update_vdev_mac_address(struct hdd_context *hdd_ctx,
int i, ret = 0; int i, ret = 0;
struct hdd_mlo_adapter_info *mlo_adapter_info; struct hdd_mlo_adapter_info *mlo_adapter_info;
struct hdd_adapter *link_adapter; struct hdd_adapter *link_adapter;
bool eht_capab;
if (hdd_adapter_is_ml_adapter(adapter)) { ucfg_psoc_mlme_get_11be_capab(hdd_ctx->psoc, &eht_capab);
if (hdd_adapter_is_ml_adapter(adapter) && eht_capab) {
mlo_adapter_info = &adapter->mlo_adapter_info; mlo_adapter_info = &adapter->mlo_adapter_info;
for (i = 0; i < WLAN_MAX_MLD; i++) { for (i = 0; i < WLAN_MAX_MLD; i++) {

View File

@@ -57,6 +57,7 @@
#include "wlan_hdd_pre_cac.h" #include "wlan_hdd_pre_cac.h"
#include "wlan_pre_cac_ucfg_api.h" #include "wlan_pre_cac_ucfg_api.h"
#include "wlan_dp_ucfg_api.h" #include "wlan_dp_ucfg_api.h"
#include "wlan_psoc_mlme_ucfg_api.h"
/* Ms to Time Unit Micro Sec */ /* Ms to Time Unit Micro Sec */
#define MS_TO_TU_MUS(x) ((x) * 1024) #define MS_TO_TU_MUS(x) ((x) * 1024)
@@ -1062,6 +1063,7 @@ __hdd_indicate_mgmt_frame_to_user(struct hdd_adapter *adapter,
enum nl80211_rxmgmt_flags nl80211_flag = 0; enum nl80211_rxmgmt_flags nl80211_flag = 0;
bool is_pasn_auth_frame = false; bool is_pasn_auth_frame = false;
struct hdd_adapter *assoc_adapter; struct hdd_adapter *assoc_adapter;
bool eht_capab;
hdd_debug("Frame Type = %d Frame Length = %d freq = %d", hdd_debug("Frame Type = %d Frame Length = %d freq = %d",
frame_type, frm_len, rx_freq); frame_type, frm_len, rx_freq);
@@ -1151,8 +1153,8 @@ __hdd_indicate_mgmt_frame_to_user(struct hdd_adapter *adapter,
adapter->vdev_id); adapter->vdev_id);
assoc_adapter = adapter; assoc_adapter = adapter;
ucfg_psoc_mlme_get_11be_capab(hdd_ctx->psoc, &eht_capab);
if (hdd_adapter_is_link_adapter(adapter)) { if (hdd_adapter_is_link_adapter(adapter) && eht_capab) {
hdd_debug("adapter is not ml adapter move to ml adapter"); hdd_debug("adapter is not ml adapter move to ml adapter");
assoc_adapter = hdd_adapter_get_mlo_adapter_from_link(adapter); assoc_adapter = hdd_adapter_get_mlo_adapter_from_link(adapter);
if (!assoc_adapter) { if (!assoc_adapter) {

View File

@@ -70,6 +70,7 @@
#include "cfg_ucfg_api.h" #include "cfg_ucfg_api.h"
#include "wlan_twt_cfg_ext_api.h" #include "wlan_twt_cfg_ext_api.h"
#include <spatial_reuse_api.h> #include <spatial_reuse_api.h>
#include "wlan_psoc_mlme_api.h"
/* SME REQ processing function templates */ /* SME REQ processing function templates */
static bool __lim_process_sme_sys_ready_ind(struct mac_context *, uint32_t *); static bool __lim_process_sme_sys_ready_ind(struct mac_context *, uint32_t *);
@@ -4059,6 +4060,7 @@ lim_fill_session_params(struct mac_context *mac_ctx,
int32_t akm; int32_t akm;
struct mlme_legacy_priv *mlme_priv; struct mlme_legacy_priv *mlme_priv;
uint32_t assoc_ie_len; uint32_t assoc_ie_len;
bool eht_capab;
ie_len = util_scan_entry_ie_len(req->entry); ie_len = util_scan_entry_ie_len(req->entry);
bss_len = (uint16_t)(offsetof(struct bss_description, bss_len = (uint16_t)(offsetof(struct bss_description,
@@ -4189,7 +4191,9 @@ lim_fill_session_params(struct mac_context *mac_ctx,
} }
} }
lim_fill_ml_info(req, pe_join_req); wlan_psoc_mlme_get_11be_capab(mac_ctx->psoc, &eht_capab);
if (eht_capab)
lim_fill_ml_info(req, pe_join_req);
return QDF_STATUS_SUCCESS; return QDF_STATUS_SUCCESS;
} }
@@ -4529,7 +4533,7 @@ static void wma_get_mld_info_sta(struct cm_peer_create_req *req,
uint8_t **peer_mld_addr, uint8_t **peer_mld_addr,
bool *is_assoc_peer) bool *is_assoc_peer)
{ {
if (req) { if (!qdf_is_macaddr_zero(&req->mld_mac)) {
*peer_mld_addr = req->mld_mac.bytes; *peer_mld_addr = req->mld_mac.bytes;
*is_assoc_peer = req->is_assoc_peer; *is_assoc_peer = req->is_assoc_peer;
} else { } else {

View File

@@ -83,6 +83,7 @@
#include "wlan_policy_mgr_ucfg.h" #include "wlan_policy_mgr_ucfg.h"
#include "wlan_wifi_pos_interface.h" #include "wlan_wifi_pos_interface.h"
#include "wlan_cp_stats_mc_ucfg_api.h" #include "wlan_cp_stats_mc_ucfg_api.h"
#include "wlan_psoc_mlme_ucfg_api.h"
static QDF_STATUS init_sme_cmd_list(struct mac_context *mac); static QDF_STATUS init_sme_cmd_list(struct mac_context *mac);
@@ -15293,6 +15294,10 @@ void sme_update_score_config(mac_handle_t mac_handle, eCsrPhyMode phy_mode,
uint32_t channel_bonding_mode; uint32_t channel_bonding_mode;
QDF_STATUS status; QDF_STATUS status;
struct psoc_phy_config config = {0}; struct psoc_phy_config config = {0};
bool eht_cap;
ucfg_psoc_mlme_get_11be_capab(mac_ctx->psoc, &eht_cap);
config.eht_cap = eht_cap;
qdf_mem_zero(&vdev_ini_cfg, sizeof(struct wlan_mlme_nss_chains)); qdf_mem_zero(&vdev_ini_cfg, sizeof(struct wlan_mlme_nss_chains));
/* Populate the nss chain params from ini for this vdev type */ /* Populate the nss chain params from ini for this vdev type */
@@ -15302,9 +15307,6 @@ void sme_update_score_config(mac_handle_t mac_handle, eCsrPhyMode phy_mode,
config.vdev_nss_24g = vdev_ini_cfg.rx_nss[NSS_CHAINS_BAND_2GHZ]; config.vdev_nss_24g = vdev_ini_cfg.rx_nss[NSS_CHAINS_BAND_2GHZ];
config.vdev_nss_5g = vdev_ini_cfg.rx_nss[NSS_CHAINS_BAND_5GHZ]; config.vdev_nss_5g = vdev_ini_cfg.rx_nss[NSS_CHAINS_BAND_5GHZ];
if (sme_is_phy_mode_11be(phy_mode))
config.eht_cap = 1;
if (config.eht_cap || if (config.eht_cap ||
phy_mode == eCSR_DOT11_MODE_AUTO || phy_mode == eCSR_DOT11_MODE_AUTO ||
phy_mode == eCSR_DOT11_MODE_11ax || phy_mode == eCSR_DOT11_MODE_11ax ||
@@ -15320,9 +15322,6 @@ void sme_update_score_config(mac_handle_t mac_handle, eCsrPhyMode phy_mode,
phy_mode == eCSR_DOT11_MODE_11n_ONLY) phy_mode == eCSR_DOT11_MODE_11n_ONLY)
config.ht_cap = 1; config.ht_cap = 1;
if (!IS_FEATURE_11BE_SUPPORTED_BY_FW)
config.eht_cap = 0;
if (!IS_FEATURE_SUPPORTED_BY_FW(DOT11AX)) if (!IS_FEATURE_SUPPORTED_BY_FW(DOT11AX))
config.he_cap = 0; config.he_cap = 0;

View File

@@ -290,6 +290,7 @@ void wma_eht_update_tgt_services(struct wmi_unified *wmi_handle,
wma_set_fw_wlan_feat_caps(DOT11BE); wma_set_fw_wlan_feat_caps(DOT11BE);
wma_debug("11be is enabled"); wma_debug("11be is enabled");
} else { } else {
cfg->en_11be = false;
wma_debug("11be is not enabled"); wma_debug("11be is not enabled");
} }
} }