Procházet zdrojové kódy

qcacld-3.0: Do sap channel switch with 20MHz width in 11a mode

Bring up SAP(2.4G)+SAP(161 channel with 11a mode)+STA mode, when STA
is connected to ref-ap on channel 36, 11a mode SAP will also switch
channel to STA's connected channel due to force scc, it will set
channel width to CH_WIDTH_40MHZ for 11a mode SAP channel switch,
actually 11a mode SAP doesn't support CH_WIDTH_40MHZ, it's wrong and
issue is introduced by
'Change-Id: I709dd35575866b7ec9fddcfb94078f114a78d1a2'.

Fix is to set channel width with 20MHz for 11a mode in function
wlansap_update_csa_channel_params().

Change-Id: I90fea788ff30ef0897c1ba98ad5b4d3c8eec3695
CRs-Fixed: 2623617
hqu před 5 roky
rodič
revize
74dd2a91bf
1 změnil soubory, kde provedl 14 přidání a 2 odebrání
  1. 14 2
      core/sap/src/sap_module.c

+ 14 - 2
core/sap/src/sap_module.c

@@ -1230,10 +1230,22 @@ wlansap_update_csa_channel_params(struct sap_context *sap_context,
 		if (sap_context->csr_roamProfile.phyMode ==
 		    eCSR_DOT11_MODE_11ac ||
 		    sap_context->csr_roamProfile.phyMode ==
-		    eCSR_DOT11_MODE_11ac_ONLY)
+		    eCSR_DOT11_MODE_11ac_ONLY ||
+		    sap_context->csr_roamProfile.phyMode ==
+		    eCSR_DOT11_MODE_11ax ||
+		    sap_context->csr_roamProfile.phyMode ==
+		    eCSR_DOT11_MODE_11ax_ONLY) {
 			bw = BW80;
-		else
+		} else if (sap_context->csr_roamProfile.phyMode ==
+			   eCSR_DOT11_MODE_11n ||
+			   sap_context->csr_roamProfile.phyMode ==
+			   eCSR_DOT11_MODE_11n_ONLY) {
 			bw = BW40_HIGH_PRIMARY;
+		} else {
+			/* For legacy 11a mode return 20MHz */
+			mac_ctx->sap.SapDfsInfo.new_chanWidth = CH_WIDTH_20MHZ;
+			return QDF_STATUS_SUCCESS;
+		}
 
 		for (; bw >= BW20; bw--) {
 			uint16_t op_class;