From 903accac1fb4c80d9f4930b087bc02294d11ff53 Mon Sep 17 00:00:00 2001 From: Naveen Rawat Date: Fri, 15 Sep 2017 17:32:13 -0700 Subject: [PATCH] qcacld-3.0: Remove LTE ant sharing dependency on HT connection's NSS While DUT is in SAP or GO mode, due to LTE antenna sharing mechanism, DUT is associating in 2x1 chains to HT clients. As per new requirement, remove dependency of number of chains on antenna sharing. If HT client supports 2 chains, and due to DBS/LTE antenna sharing SAP/GO drops down a chain then rate adaptation at peer takes care of dropping down chains at peer side Change-Id: Iafd5666179d079c7bcc950277092cef3046356bf CRs-Fixed: 2108484 --- core/mac/inc/ani_global.h | 1 - core/mac/src/pe/lim/lim_assoc_utils.c | 12 ++++-------- core/mac/src/pe/lim/lim_prop_exts_utils.c | 5 ++--- core/mac/src/pe/lim/lim_send_management_frames.c | 14 +------------- core/mac/src/pe/lim/lim_send_sme_rsp_messages.c | 3 +-- core/sme/src/common/sme_api.c | 1 - core/wma/inc/wma_tgt_cfg.h | 2 -- core/wma/src/wma_main.c | 3 +-- 8 files changed, 9 insertions(+), 32 deletions(-) diff --git a/core/mac/inc/ani_global.h b/core/mac/inc/ani_global.h index 359cea70f857..a2394e219946 100644 --- a/core/mac/inc/ani_global.h +++ b/core/mac/inc/ani_global.h @@ -933,7 +933,6 @@ typedef struct sAniSirGlobal { csr_readyToSuspendCallback readyToSuspendCallback; void *readyToSuspendContext; - uint8_t lteCoexAntShare; uint8_t beacon_offload; bool pmf_offload; uint32_t fEnableDebugLog; diff --git a/core/mac/src/pe/lim/lim_assoc_utils.c b/core/mac/src/pe/lim/lim_assoc_utils.c index 2970687b35ef..e372045eb394 100644 --- a/core/mac/src/pe/lim/lim_assoc_utils.c +++ b/core/mac/src/pe/lim/lim_assoc_utils.c @@ -2209,11 +2209,9 @@ lim_add_sta(tpAniSirGlobal mac_ctx, add_sta_params->htCapable, add_sta_params->vhtCapable); /* - * 2G-AS platform: SAP associates with HT (11n)clients as 2x1 in 2G and - * 2X2 in 5G - * Non-2G-AS platform: SAP associates with HT (11n) clients as 2X2 in 2G - * and 5G; and disable async dbs scan when HT client connects - * 5G-AS: Don't care + * If HT client is connected to SAP DUT and self cap is NSS = 2 then + * disable ASYNC DBS scan by sending WMI_VDEV_PARAM_SMPS_INTOLERANT + * to FW, because HT client's can't drop down chain using SMPS frames. */ if (!policy_mgr_is_hw_dbs_2x2_capable(mac_ctx->psoc) && LIM_IS_AP_ROLE(session_entry) && @@ -2221,9 +2219,7 @@ lim_add_sta(tpAniSirGlobal mac_ctx, !add_sta_params->vhtCapable && (session_entry->nss == 2)) { session_entry->ht_client_cnt++; - if ((session_entry->ht_client_cnt == 1) && - !(mac_ctx->lteCoexAntShare && - IS_24G_CH(session_entry->currentOperChannel))) { + if (session_entry->ht_client_cnt == 1) { pe_debug("setting SMPS intolrent vdev_param"); wma_cli_set_command(session_entry->smeSessionId, (int)WMI_VDEV_PARAM_SMPS_INTOLERANT, diff --git a/core/mac/src/pe/lim/lim_prop_exts_utils.c b/core/mac/src/pe/lim/lim_prop_exts_utils.c index d97af76d3dbb..67fef7dc89a7 100644 --- a/core/mac/src/pe/lim/lim_prop_exts_utils.c +++ b/core/mac/src/pe/lim/lim_prop_exts_utils.c @@ -292,9 +292,8 @@ lim_extract_ap_capability(tpAniSirGlobal mac_ctx, uint8_t *p_ie, session); if (mac_ctx->roam.configParam.is_force_1x1 && - is_vendor_ap_present && - mac_ctx->lteCoexAntShare && - IS_24G_CH(session->currentOperChannel)) { + is_vendor_ap_present && + IS_24G_CH(session->currentOperChannel)) { session->supported_nss_1x1 = true; session->vdev_nss = 1; session->nss = 1; diff --git a/core/mac/src/pe/lim/lim_send_management_frames.c b/core/mac/src/pe/lim/lim_send_management_frames.c index 6156fa10fb5e..971265e154a6 100644 --- a/core/mac/src/pe/lim/lim_send_management_frames.c +++ b/core/mac/src/pe/lim/lim_send_management_frames.c @@ -1238,20 +1238,8 @@ lim_send_assoc_rsp_mgmt_frame(tpAniSirGlobal mac_ctx, populate_dot11f_vht_operation(mac_ctx, pe_session, &frm.VHTOperation); is_vht = true; - } else { - /* - * 2G-AS platform: SAP associates with HT (11n)clients - * as 2x1 in 2G and 2X2 in 5G - * Non-2G-AS platform: SAP associates with HT (11n) - * clients as 2X2 in 2G and 5G - * 5G-AS: Don’t care - */ - if (!policy_mgr_is_hw_dbs_2x2_capable(mac_ctx->psoc) && - frm.HTCaps.present && mac_ctx->hw_dbs_capable && - mac_ctx->lteCoexAntShare && - IS_24G_CH(pe_session->currentOperChannel)) - frm.HTCaps.supportedMCSSet[1] = 0; } + if (pe_session->vhtCapability && pe_session->vendor_vht_sap && (assoc_req != NULL) && diff --git a/core/mac/src/pe/lim/lim_send_sme_rsp_messages.c b/core/mac/src/pe/lim/lim_send_sme_rsp_messages.c index 234e890b0a1e..82f7459820c6 100644 --- a/core/mac/src/pe/lim/lim_send_sme_rsp_messages.c +++ b/core/mac/src/pe/lim/lim_send_sme_rsp_messages.c @@ -390,8 +390,7 @@ static void lim_handle_join_rsp_status(tpAniSirGlobal mac_ctx, if (mac_ctx->roam.configParam.is_force_1x1 && is_vendor_ap_1_present && (session_entry->nss == 2) && - (mac_ctx->lteCoexAntShare == 0 || - IS_5G_CH(session_entry->currentOperChannel))) { + IS_5G_CH(session_entry->currentOperChannel)) { /* SET vdev param */ pe_debug("sending SMPS intolrent vdev_param"); wma_cli_set_command(session_entry->smeSessionId, diff --git a/core/sme/src/common/sme_api.c b/core/sme/src/common/sme_api.c index 6d18b740b6fe..f371ed29206a 100644 --- a/core/sme/src/common/sme_api.c +++ b/core/sme/src/common/sme_api.c @@ -14251,7 +14251,6 @@ void sme_update_tgt_services(tHalHandle hal, struct wma_tgt_services *cfg) { tpAniSirGlobal mac_ctx = PMAC_STRUCT(hal); - mac_ctx->lteCoexAntShare = cfg->lte_coex_ant_share; mac_ctx->beacon_offload = cfg->beacon_offload; mac_ctx->pmf_offload = cfg->pmf_offload; QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG, diff --git a/core/wma/inc/wma_tgt_cfg.h b/core/wma/inc/wma_tgt_cfg.h index 2b07ae21dc5a..dbb35af65884 100644 --- a/core/wma/inc/wma_tgt_cfg.h +++ b/core/wma/inc/wma_tgt_cfg.h @@ -38,7 +38,6 @@ * @early_rx: early rx * @pno_offload: pno offload * @beacon_offload: beacon offload - * @lte_coex_ant_share: LTE coex ant share * @en_tdls: enable tdls * @en_tdls_offchan: enable tdls offchan * @en_tdls_uapsd_buf_sta: enable sta tdls uapsd buf @@ -58,7 +57,6 @@ struct wma_tgt_services { #endif /* FEATURE_WLAN_SCAN_PNO */ bool beacon_offload; bool pmf_offload; - uint32_t lte_coex_ant_share; #ifdef FEATURE_WLAN_TDLS bool en_tdls; bool en_tdls_offchan; diff --git a/core/wma/src/wma_main.c b/core/wma/src/wma_main.c index 431179ea02a6..03ec6aa9b7a1 100644 --- a/core/wma/src/wma_main.c +++ b/core/wma/src/wma_main.c @@ -4074,8 +4074,7 @@ static inline void wma_update_target_services(tp_wma_handle wh, if (WMI_SERVICE_IS_ENABLED(wh->wmi_service_bitmap, WMI_SERVICE_EXTSCAN)) g_fw_wlan_feat_caps |= (1 << EXTENDED_SCAN); #endif /* FEATURE_WLAN_EXTSCAN */ - cfg->lte_coex_ant_share = WMI_SERVICE_IS_ENABLED(wh->wmi_service_bitmap, - WMI_SERVICE_LTE_ANT_SHARE_SUPPORT); + #ifdef FEATURE_WLAN_TDLS /* Enable TDLS */ if (WMI_SERVICE_IS_ENABLED(wh->wmi_service_bitmap, WMI_SERVICE_TDLS)) {