Merge d46056dd98 on remote branch

Change-Id: Id45f462ca8d119bf56e27d01f392c45efd1983ef
This commit is contained in:
Linux Build Service Account 2024-01-10 04:01:18 -08:00
commit 750e0870cd
5 changed files with 43 additions and 17 deletions

View file

@ -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 */

View file

@ -1873,20 +1873,16 @@ static void __lim_process_channel_switch_timeout(struct pe_session *pe_session)
}
/*
* If the channel-list that AP is asking us to switch is invalid
* then we cannot switch the channel. Just disassociate from AP.
* We will find a better AP !!!
* The channel switch request received from AP is carrying
* invalid channel. It's ok to ignore this channel switch
* request as it might be from spoof AP. If it's from genuine
* AP, it may lead to heart beat failure and result in
* disconnection. DUT can go ahead and reconnect to it/any
* other AP once it disconnects.
*/
if ((pe_session->limMlmState ==
eLIM_MLM_LINK_ESTABLISHED_STATE) &&
(pe_session->limSmeState != eLIM_SME_WT_DISASSOC_STATE) &&
(pe_session->limSmeState != eLIM_SME_WT_DEAUTH_STATE)) {
pe_err("Invalid channel! Disconnect");
lim_tear_down_link_with_ap(mac, pe_session->peSessionId,
REASON_UNSUPPORTED_CHANNEL_CSA,
eLIM_LINK_MONITORING_DISASSOC);
return;
}
pe_err("Invalid channel freq %u Ignore CSA request",
channel_freq);
return;
}
switch (pe_session->gLimChannelSwitch.state) {
case eLIM_CHANNEL_SWITCH_PRIMARY_ONLY:

View file

@ -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);

View file

@ -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;
}

View file

@ -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