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:

committed by
Madan Koyyalamudi

parent
b5256983ff
commit
1472d9ad6d
2
Kbuild
2
Kbuild
@@ -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 \
|
||||||
|
@@ -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));
|
||||||
|
@@ -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;
|
||||||
|
|
||||||
|
@@ -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(
|
||||||
|
@@ -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;
|
||||||
|
@@ -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:
|
||||||
|
@@ -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++) {
|
||||||
|
@@ -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) {
|
||||||
|
@@ -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 {
|
||||||
|
@@ -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;
|
||||||
|
|
||||||
|
@@ -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");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user