Ver Fonte

qcacld-3.0: Set peer_flags for connected lower bandwidths also

Currently for STA case host driver set only connected bandwidth
in peer_flags.

If STA is connected in 320 MHz bandwidth, suppose AP send CSA,
STA downgraded to 160 MHz bandwidth but host sent only 320 MHz
flag set in peer_flags, this leads FW to unexpected behavior.

So, set all supported ch_width in peer_flags, if STA is connected in
320 MHz ch_width, set 160 MHz, 80P80 MHz and 40 MHz ch_width bits
also to solve this type of scenario.

Change-Id: I43328ac85c25913ad808abf6ab906827a9672b51
CRs-Fixed: 3557108
Vinod Kumar Myadam há 1 ano atrás
pai
commit
2638bde913
1 ficheiros alterados com 16 adições e 8 exclusões
  1. 16 8
      core/wma/src/wma_mgmt.c

+ 16 - 8
core/wma/src/wma_mgmt.c

@@ -1581,7 +1581,6 @@ QDF_STATUS wma_send_peer_assoc(tp_wma_handle wma,
 	}
 
 	if (params->ch_width) {
-		cmd->bw_40 = 1;
 		cmd->peer_rate_caps |= WMI_RC_CW40_FLAG;
 		if (params->fShortGI40Mhz)
 			cmd->peer_rate_caps |= WMI_RC_SGI_FLAG;
@@ -1589,14 +1588,23 @@ QDF_STATUS wma_send_peer_assoc(tp_wma_handle wma,
 		cmd->peer_rate_caps |= WMI_RC_SGI_FLAG;
 	}
 
-	if (params->ch_width == CH_WIDTH_80MHZ)
-		cmd->bw_80 = 1;
-	else if (params->ch_width == CH_WIDTH_160MHZ)
-		cmd->bw_160 = 1;
-	else if (params->ch_width == CH_WIDTH_80P80MHZ)
+	switch (params->ch_width) {
+	case CH_WIDTH_320MHZ:
+		wma_set_peer_assoc_params_bw_320(cmd, params->ch_width);
+		fallthrough;
+	case CH_WIDTH_80P80MHZ:
+	case CH_WIDTH_160MHZ:
 		cmd->bw_160 = 1;
-
-	wma_set_peer_assoc_params_bw_320(cmd, params->ch_width);
+		fallthrough;
+	case CH_WIDTH_80MHZ:
+		cmd->bw_80 = 1;
+		fallthrough;
+	case CH_WIDTH_40MHZ:
+		cmd->bw_40 = 1;
+		fallthrough;
+	default:
+		break;
+	}
 
 	cmd->peer_vht_caps = params->vht_caps;
 	if (params->p2pCapableSta) {