diff --git a/components/mlme/dispatcher/src/wlan_mlme_api.c b/components/mlme/dispatcher/src/wlan_mlme_api.c index 6b47cd65eb..bba64551a5 100644 --- a/components/mlme/dispatcher/src/wlan_mlme_api.c +++ b/components/mlme/dispatcher/src/wlan_mlme_api.c @@ -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) diff --git a/core/mac/src/sys/legacy/src/utils/src/parser_api.c b/core/mac/src/sys/legacy/src/utils/src/parser_api.c index 55d0c57fb8..0fb671c40d 100644 --- a/core/mac/src/sys/legacy/src/utils/src/parser_api.c +++ b/core/mac/src/sys/legacy/src/utils/src/parser_api.c @@ -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) ||