diff --git a/core/mac/src/pe/lim/lim_utils.c b/core/mac/src/pe/lim/lim_utils.c index f26b5adf0c..4bc3c1ab06 100644 --- a/core/mac/src/pe/lim/lim_utils.c +++ b/core/mac/src/pe/lim/lim_utils.c @@ -8579,6 +8579,27 @@ lim_revise_req_eht_cap_per_band(struct mlme_legacy_priv *mlme_priv, } } +/** + * lim_revise_req_eht_cap_per_mode() - revise eht capabilities per device mode + * @mlme_legacy_priv: vdev mlme legacy priv object + * @session: pointer to session entry. + * + * Return: None + */ +static void lim_revise_req_eht_cap_per_mode(struct mlme_legacy_priv *mlme_priv, + struct pe_session *session) +{ + if (session->opmode == QDF_SAP_MODE || + session->opmode == QDF_P2P_GO_MODE) { + pe_debug("Disable eht cap for SAP/GO"); + mlme_priv->eht_config.tx_1024_4096_qam_lt_242_tone_ru = 0; + mlme_priv->eht_config.rx_1024_4096_qam_lt_242_tone_ru = 0; + mlme_priv->eht_config.non_ofdma_ul_mu_mimo_le_80mhz = 0; + mlme_priv->eht_config.non_ofdma_ul_mu_mimo_160mhz = 0; + mlme_priv->eht_config.non_ofdma_ul_mu_mimo_320mhz = 0; + } +} + void lim_copy_bss_eht_cap(struct pe_session *session) { struct mlme_legacy_priv *mlme_priv; @@ -8586,7 +8607,17 @@ void lim_copy_bss_eht_cap(struct pe_session *session) mlme_priv = wlan_vdev_mlme_get_ext_hdl(session->vdev); if (!mlme_priv) return; + lim_revise_req_eht_cap_per_band(mlme_priv, session); + + /* + * As per firmware, SAP/GO doesn’t support some EHT capabilities. So if + * unsupported capabilities are advertised in beacon, probe rsp and + * assoc rsp can cause IOT issues. + * Disable unsupported capabilities per mode. + */ + lim_revise_req_eht_cap_per_mode(mlme_priv, session); + qdf_mem_copy(&session->eht_config, &mlme_priv->eht_config, sizeof(session->eht_config)); }