Browse Source

qcacld-3.0: Disable unsupported EHT capability for SAP/GO

SAP/GO doesn’t support below EHT capabilities, So the driver
should not advertise it in beacon, probe rsp and assoc rsp.
It can cause IOT issues if capabilities are advertised
without support.

1. tx_1024_4096_qam_lt_242_tone_ru
2. rx_1024_4096_qam_lt_242_tone_ru
3. non_ofdma_ul_mu_mimo_le_80mhz
4. non_ofdma_ul_mu_mimo_160mhz
5. non_ofdma_ul_mu_mimo_320mhz

Fix is to disable the above unsupported EHT capabilities
for SAP/GO's beacon, probe rsp and assoc rsp.

Change-Id: Ia958e2f3de7454eb5eff34a347e65f7510f433bc
CRs-Fixed: 3340585
abhinav kumar 2 years ago
parent
commit
ce9bc69f08
1 changed files with 31 additions and 0 deletions
  1. 31 0
      core/mac/src/pe/lim/lim_utils.c

+ 31 - 0
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));
 }