Răsfoiți Sursa

Merge "qcacld-3.0: Fix QDF ASSERT in wma_chan_phy_mode during driver load" into wlan-cld3.driver.lnx.2.0-dev

Service qcabuildsw 8 ani în urmă
părinte
comite
3337bc47e6
1 a modificat fișierele cu 15 adăugiri și 3 ștergeri
  1. 15 3
      core/hdd/src/wlan_hdd_oemdata.c

+ 15 - 3
core/hdd/src/wlan_hdd_oemdata.c

@@ -429,15 +429,27 @@ static void hdd_update_channel_bw_info(hdd_context_t *hdd_ctx,
 	ch_params.ch_width = CH_WIDTH_MAX;
 
 	cds_set_channel_params(chan, sec_ch_2g, &ch_params);
+
 	if (ch_params.center_freq_seg0)
 		hdd_chan_info->band_center_freq1 =
 			cds_chan_to_freq(ch_params.center_freq_seg0);
 
-	hdd_info("chan %d dot11_mode %d ch_width %d sec offset %d freq_seg0 %d",
+	if (ch_params.ch_width < CH_WIDTH_INVALID)
+		phy_mode = wma_chan_phy_mode(chan,
+				ch_params.ch_width, wni_dot11_mode);
+	else
+		/*
+		 * If channel width is CH_WIDTH_INVALID, It mean channel is
+		 * invalid and should not have been received in channel info
+		 * req. Set invalid phymode in this case.
+		 */
+		phy_mode = MODE_UNKNOWN;
+
+	hdd_info("chan %d dot11_mode %d ch_width %d sec offset %d freq_seg0 %d phy_mode %d",
 		chan, wni_dot11_mode, ch_params.ch_width,
-		ch_params.sec_ch_offset, hdd_chan_info->band_center_freq1);
+		ch_params.sec_ch_offset,
+		hdd_chan_info->band_center_freq1, phy_mode);
 
-	phy_mode = wma_chan_phy_mode(chan, ch_params.ch_width, wni_dot11_mode);
 	WMI_SET_CHANNEL_MODE(hdd_chan_info, phy_mode);
 }