qcacld-3.0: Advertise emlsr capability based on new hw modes
-Add check for new hw modes, while advertising emlsr capability in mlo ie and assoc request. -Add new config emlsr feature flag for ganges. CRs-Fixed: 3636676 Change-Id: I13038efe4d5001d480ae24fe7da135474eb8a3f1
This commit is contained in:
parent
c4344f829f
commit
28a296b921
7
Kbuild
7
Kbuild
@ -4699,6 +4699,13 @@ CONFIG_WLAN_MAX_ML_BSS_LINKS ?= 1
|
||||
endif
|
||||
ccflags-y += -DWLAN_MAX_ML_BSS_LINKS=$(CONFIG_WLAN_MAX_ML_BSS_LINKS)
|
||||
|
||||
ifdef CONFIG_WLAN_FEATURE_EMLSR
|
||||
CONFIG_WLAN_EMLSR_ENABLE ?= 1
|
||||
else
|
||||
CONFIG_WLAN_EMLSR_ENABLE ?= 0
|
||||
endif
|
||||
ccflags-y += -DWLAN_EMLSR_ENABLE=$(CONFIG_WLAN_EMLSR_ENABLE)
|
||||
|
||||
#Maximum pending commands for a vdev is calculated in vdev create handler
|
||||
#by WLAN_SER_MAX_PENDING_CMDS/WLAN_SER_MAX_VDEVS. For SAP case, we will need
|
||||
#to accommodate 32 Pending commands to handle multiple STA sending
|
||||
|
4
Kconfig
4
Kconfig
@ -2035,6 +2035,10 @@ config CNSS_ADRASTEA
|
||||
bool "Enable CNSS_ADRASTEA"
|
||||
default n
|
||||
|
||||
config WLAN_FEATURE_EMLSR
|
||||
bool "Enable EMLSR feature"
|
||||
default n
|
||||
|
||||
if CNSS_KIWI_V2
|
||||
config CFG_BMISS_OFFLOAD_MAX_VDEV
|
||||
int "Enable CFG_BMISS_OFFLOAD_MAX_VDEV"
|
||||
|
@ -2936,6 +2936,20 @@
|
||||
#define WLAN_MAX_ML_BSS_LINKS CONFIG_WLAN_MAX_ML_BSS_LINKS
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_WLAN_FEATURE_11BE_MLO) && defined(CONFIG_WLAN_FEATURE_EMLSR)
|
||||
#ifndef CONFIG_WLAN_EMLSR_ENABLE
|
||||
#define CONFIG_WLAN_EMLSR_ENABLE (1)
|
||||
#endif
|
||||
#else
|
||||
#ifndef CONFIG_WLAN_EMLSR_ENABLE
|
||||
#define CONFIG_WLAN_EMLSR_ENABLE (0)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_WLAN_EMLSR_ENABLE
|
||||
#define WLAN_EMLSR_ENABLE CONFIG_WLAN_EMLSR_ENABLE
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_WALT_GET_CPU_TAKEN_SUPPORT
|
||||
#define WALT_GET_CPU_TAKEN_SUPPORT (1)
|
||||
#endif
|
||||
|
@ -395,3 +395,4 @@ CONFIG_BCN_RATECODE_ENABLE=y
|
||||
CONFIG_4_BYTES_TLV_TAG=y
|
||||
CONFIG_WLAN_FEATURE_MARK_FIRST_WAKEUP_PACKET=y
|
||||
CONFIG_WLAN_MULTI_CHIP_SUPPORT=y
|
||||
CONFIG_WLAN_FEATURE_EMLSR=y
|
||||
|
@ -4502,6 +4502,7 @@ static void lim_copy_ml_partner_info_to_session(struct pe_session *session,
|
||||
void lim_set_emlsr_caps(struct mac_context *mac_ctx, struct pe_session *session)
|
||||
{
|
||||
bool emlsr_cap, emlsr_allowed, emlsr_band_check, emlsr_enabled = false;
|
||||
bool emlsr_aux_support = false;
|
||||
|
||||
/* Check if HW supports eMLSR mode */
|
||||
emlsr_cap = policy_mgr_is_hw_emlsr_capable(mac_ctx->psoc);
|
||||
@ -4515,8 +4516,11 @@ void lim_set_emlsr_caps(struct mac_context *mac_ctx, struct pe_session *session)
|
||||
emlsr_band_check = lim_is_emlsr_band_supported(session);
|
||||
|
||||
emlsr_allowed = emlsr_cap && emlsr_enabled && emlsr_band_check;
|
||||
emlsr_aux_support = emlsr_enabled && WLAN_EMLSR_ENABLE &&
|
||||
wlan_mlme_is_aux_emlsr_support(mac_ctx->psoc,
|
||||
WLAN_MLME_HW_MODE_MAX);
|
||||
|
||||
if (emlsr_allowed) {
|
||||
if (emlsr_allowed || emlsr_aux_support) {
|
||||
wlan_vdev_obj_lock(session->vdev);
|
||||
wlan_vdev_mlme_cap_set(session->vdev, WLAN_VDEV_C_EMLSR_CAP);
|
||||
wlan_vdev_obj_unlock(session->vdev);
|
||||
@ -4525,6 +4529,9 @@ void lim_set_emlsr_caps(struct mac_context *mac_ctx, struct pe_session *session)
|
||||
wlan_vdev_mlme_cap_clear(session->vdev, WLAN_VDEV_C_EMLSR_CAP);
|
||||
wlan_vdev_obj_unlock(session->vdev);
|
||||
}
|
||||
|
||||
pe_debug("eMLSR vdev cap: %d", emlsr_allowed);
|
||||
pe_debug("eMLSR aux support: %d", emlsr_aux_support);
|
||||
}
|
||||
#else
|
||||
static void lim_fill_ml_info(struct cm_vdev_join_req *req,
|
||||
|
@ -12895,6 +12895,7 @@ QDF_STATUS populate_dot11f_mlo_ie(struct mac_context *mac_ctx,
|
||||
struct wlan_mlo_eml_cap eml_cap = {0};
|
||||
uint16_t presence_bitmap = 0;
|
||||
bool emlsr_cap, emlsr_enabled = false;
|
||||
bool aux_emlsr_support = false;
|
||||
|
||||
if (!mac_ctx || !mlo_ie)
|
||||
return QDF_STATUS_E_NULL_VALUE;
|
||||
@ -12938,8 +12939,13 @@ QDF_STATUS populate_dot11f_mlo_ie(struct mac_context *mac_ctx,
|
||||
/* Check if vendor command chooses eMLSR mode */
|
||||
wlan_mlme_get_emlsr_mode_enabled(mac_ctx->psoc, &emlsr_enabled);
|
||||
|
||||
/* check if aux elmsr capable */
|
||||
aux_emlsr_support = wlan_mlme_is_aux_emlsr_support(mac_ctx->psoc,
|
||||
WLAN_MLME_HW_MODE_MAX);
|
||||
|
||||
/* Check if STA supports EMLSR and vendor command prefers EMLSR mode */
|
||||
if (emlsr_cap && emlsr_enabled) {
|
||||
if ((emlsr_cap && emlsr_enabled) ||
|
||||
aux_emlsr_support) {
|
||||
wlan_mlme_get_eml_params(psoc, &eml_cap);
|
||||
mlo_ie->eml_capab_present = 1;
|
||||
presence_bitmap |= WLAN_ML_BV_CTRL_PBM_EMLCAP_P;
|
||||
|
Loading…
Reference in New Issue
Block a user