diff --git a/drivers/staging/qcacld-3.0/core/mac/inc/qwlan_version.h b/drivers/staging/qcacld-3.0/core/mac/inc/qwlan_version.h index 2c3d3538966a..5298ed90b3d1 100644 --- a/drivers/staging/qcacld-3.0/core/mac/inc/qwlan_version.h +++ b/drivers/staging/qcacld-3.0/core/mac/inc/qwlan_version.h @@ -32,9 +32,9 @@ #define QWLAN_VERSION_MAJOR 2 #define QWLAN_VERSION_MINOR 0 #define QWLAN_VERSION_PATCH 8 -#define QWLAN_VERSION_EXTRA "F" +#define QWLAN_VERSION_EXTRA "I" #define QWLAN_VERSION_BUILD 34 -#define QWLAN_VERSIONSTR "2.0.8.34F" +#define QWLAN_VERSIONSTR "2.0.8.34I" #endif /* QWLAN_VERSION_H */ diff --git a/drivers/staging/qcacld-3.0/core/mac/src/pe/sch/sch_beacon_process.c b/drivers/staging/qcacld-3.0/core/mac/src/pe/sch/sch_beacon_process.c index 5adda9196469..eb536e160a3e 100644 --- a/drivers/staging/qcacld-3.0/core/mac/src/pe/sch/sch_beacon_process.c +++ b/drivers/staging/qcacld-3.0/core/mac/src/pe/sch/sch_beacon_process.c @@ -654,6 +654,7 @@ static void __sch_beacon_process_for_session(struct mac_context *mac_ctx, wlan_reg_read_current_country(mac_ctx->psoc, programmed_country); status = wlan_reg_get_6g_power_type_for_ctry(mac_ctx->psoc, + mac_ctx->pdev, bcn->countryInfoParam.countryString, programmed_country, &pwr_type_6g, &ctry_code_match, REG_MAX_AP_TYPE); diff --git a/drivers/staging/qcacld-3.0/core/mac/src/sys/legacy/src/utils/src/parser_api.c b/drivers/staging/qcacld-3.0/core/mac/src/sys/legacy/src/utils/src/parser_api.c index e3ca6b58473e..dd19ac8e217c 100644 --- a/drivers/staging/qcacld-3.0/core/mac/src/sys/legacy/src/utils/src/parser_api.c +++ b/drivers/staging/qcacld-3.0/core/mac/src/sys/legacy/src/utils/src/parser_api.c @@ -1195,6 +1195,13 @@ populate_dot11f_vht_caps(struct mac_context *mac, return QDF_STATUS_SUCCESS; } + if (wlan_reg_is_24ghz_ch_freq(pe_session->curr_op_freq)) { + pDot11f->supportedChannelWidthSet = 0; + } else { + if (pe_session->ch_width <= CH_WIDTH_80MHZ) + pDot11f->supportedChannelWidthSet = 0; + } + if (pe_session->ht_config.ht_rx_ldpc) pDot11f->ldpcCodingCap = pe_session->vht_config.ldpc_coding; @@ -6401,6 +6408,16 @@ QDF_STATUS populate_dot11f_he_caps(struct mac_context *mac_ctx, struct pe_sessio } populate_dot11f_twt_he_cap(mac_ctx, session, he_cap); + if (wlan_reg_is_5ghz_ch_freq(session->curr_op_freq) || + wlan_reg_is_6ghz_chan_freq(session->curr_op_freq)) { + if (session->ch_width <= CH_WIDTH_80MHZ) { + he_cap->chan_width_2 = 0; + he_cap->chan_width_3 = 0; + } else if (session->ch_width == CH_WIDTH_160MHZ) { + he_cap->chan_width_3 = 0; + } + } + return QDF_STATUS_SUCCESS; } diff --git a/drivers/staging/qcacld-3.0/core/sme/src/csr/csr_api_roam.c b/drivers/staging/qcacld-3.0/core/sme/src/csr/csr_api_roam.c index 341758495b38..e3565fbbd7ff 100644 --- a/drivers/staging/qcacld-3.0/core/sme/src/csr/csr_api_roam.c +++ b/drivers/staging/qcacld-3.0/core/sme/src/csr/csr_api_roam.c @@ -14999,6 +14999,7 @@ QDF_STATUS csr_send_join_req_msg(struct mac_context *mac, uint32_t sessionId, { QDF_STATUS status = QDF_STATUS_SUCCESS; uint8_t acm_mask = 0, uapsd_mask; + enum reg_6g_ap_type ap_6g_power_type = REG_INDOOR_AP; uint32_t bss_freq; uint16_t msgLen, ieLen; tSirMacRateSet OpRateSet; @@ -15831,16 +15832,21 @@ QDF_STATUS csr_send_join_req_msg(struct mac_context *mac, uint32_t sessionId, else csr_join_req->isQosEnabled = false; + if (pIes->he_op.oper_info_6g_present) { + ap_6g_power_type = pIes->he_op.oper_info_6g.info.reg_info; + } + if (wlan_reg_is_6ghz_chan_freq(pBssDescription->chan_freq)) { if (!pIes->Country.present) sme_debug("Channel is 6G but country IE not present"); wlan_reg_read_current_country(mac->psoc, programmed_country); status = wlan_reg_get_6g_power_type_for_ctry(mac->psoc, + mac->pdev, pIes->Country.country, programmed_country, &power_type_6g, &ctry_code_match, - pSession->ap_power_type); + ap_6g_power_type); if (QDF_IS_STATUS_ERROR(status)) break; csr_join_req->ap_power_type_6g = power_type_6g; @@ -16402,8 +16408,14 @@ QDF_STATUS csr_send_mb_start_bss_req_msg(struct mac_context *mac, uint32_t value = MLME_VHT_CSN_BEAMFORMEE_ANT_SUPPORTED_FW_DEF; pMsg->vht_config.csnof_beamformer_antSup = (uint8_t)value; pMsg->vht_config.mu_beam_formee = 0; + /* Disable shortgi160 and 80 for 2.4Ghz BSS*/ + if (wlan_reg_is_24ghz_ch_freq(pParam->operation_chan_freq)) { + pMsg->vht_config.shortgi160and80plus80 = 0; + pMsg->vht_config.shortgi80 = 0; + } - sme_debug("ht capability 0x%x VHT capability 0x%x", + sme_debug("cur_op_freq %d ht capability 0x%x VHT capability 0x%x", + pParam->operation_chan_freq, (*(uint32_t *) &pMsg->ht_config), (*(uint32_t *) &pMsg->vht_config)); #ifdef WLAN_FEATURE_11W