qcacld-3.0: Fix no 320M when connect 2 + 6 MLO AP
When connect 2 + 6 GHz MLO AP, 2 GHz is assoc link, when populate per sta profile of 6 GHz in assoc req, use BW of current 2 GHz session wrongly, so 320M is disabled wrongly in EHT cap. To fix it, when populate per sta profile for assoc req, pass pe_session as NULL since partner link pe session isn't created at that time, don't clear 320M cap for 6 GHz link. When config EPCS, update eht cap at same time. Change-Id: I7422f0353cc087a24575f9be1d5b30a032cc7b8e CRs-Fixed: 3821390
This commit is contained in:

committed by
Ravindra Konda

parent
5f25ad55af
commit
aae35f82a8
@@ -1411,13 +1411,23 @@ bool wlan_mlme_get_epcs_capability(struct wlan_objmgr_psoc *psoc)
|
||||
void wlan_mlme_set_epcs_capability(struct wlan_objmgr_psoc *psoc, bool flag)
|
||||
{
|
||||
struct wlan_mlme_psoc_ext_obj *mlme_obj = mlme_get_psoc_ext_obj(psoc);
|
||||
struct mac_context *mac_ctx = cds_get_context(QDF_MODULE_ID_PE);
|
||||
|
||||
if (!mlme_obj)
|
||||
if (!mlme_obj || !mac_ctx)
|
||||
return;
|
||||
|
||||
mlme_debug("set mlme epcs capability from %d to %d",
|
||||
mlme_obj->cfg.sta.epcs_capability, flag);
|
||||
mlme_obj->cfg.sta.epcs_capability = flag;
|
||||
if (flag) {
|
||||
mlme_obj->cfg.eht_caps.dot11_eht_cap.epcs_pri_access = 1;
|
||||
mac_ctx->eht_cap_2g.epcs_pri_access = 1;
|
||||
mac_ctx->eht_cap_5g.epcs_pri_access = 1;
|
||||
} else {
|
||||
mlme_obj->cfg.eht_caps.dot11_eht_cap.epcs_pri_access = 0;
|
||||
mac_ctx->eht_cap_2g.epcs_pri_access = 0;
|
||||
mac_ctx->eht_cap_5g.epcs_pri_access = 0;
|
||||
}
|
||||
}
|
||||
|
||||
bool wlan_mlme_get_eht_disable_punct_in_us_lpi(struct wlan_objmgr_psoc *psoc)
|
||||
|
@@ -12831,7 +12831,10 @@ QDF_STATUS populate_dot11f_assoc_req_mlo_ie(struct mac_context *mac_ctx,
|
||||
WLAN_EXTN_ELEMID_HE_6G_CAP;
|
||||
}
|
||||
populate_dot11f_eht_caps_by_band(mac_ctx, is_2g, &eht_caps,
|
||||
pe_session);
|
||||
NULL);
|
||||
if (!WLAN_REG_IS_6GHZ_CHAN_FREQ(chan_freq))
|
||||
eht_caps.support_320mhz_6ghz = 0;
|
||||
|
||||
if ((eht_caps.present && frm->eht_cap.present &&
|
||||
qdf_mem_cmp(&eht_caps, &frm->eht_cap, sizeof(eht_caps))) ||
|
||||
(eht_caps.present && !frm->eht_cap.present) ||
|
||||
|
Reference in New Issue
Block a user