Prechádzať zdrojové kódy

qcacld-3.0: Pass appropriate channel list in vendor ACS event

If vendor acs support is enabled, driver sends a list of channels
through a vendor event when it receives do_acs. Currently it sends
list of all valid channels even if hostapd or INI has specified
specific channels which is not expected.
If available send list of channels specified by hostapd or INI.

Change-Id: I9b931c69ce72a18c7e1ec603143091da6abca70c
CRs-Fixed: 2100742
Nachiket Kukade 7 rokov pred
rodič
commit
3208c162ba
1 zmenil súbory, kde vykonal 13 pridanie a 5 odobranie
  1. 13 5
      core/hdd/src/wlan_hdd_cfg80211.c

+ 13 - 5
core/hdd/src/wlan_hdd_cfg80211.c

@@ -2002,11 +2002,19 @@ void hdd_cfg80211_update_acs_config(hdd_adapter_t *adapter,
 	sap_config = &adapter->sessionCtx.ap.sapConfig;
 
 	hdd_get_scan_band(hdd_ctx, &adapter->sessionCtx.ap.sapConfig, &band);
-	/* Get valid channels for SAP */
-	wlan_hdd_sap_get_valid_channellist(adapter,
-								&channel_count,
-								channel_list,
-								band);
+
+	if (sap_config->acs_cfg.ch_list) {
+		/* Copy INI or hostapd provided ACS channel range*/
+		qdf_mem_copy(channel_list, sap_config->acs_cfg.ch_list,
+				sap_config->acs_cfg.ch_list_count);
+		channel_count = sap_config->acs_cfg.ch_list_count;
+	} else {
+		/* No channel list provided, copy all valid channels */
+		wlan_hdd_sap_get_valid_channellist(adapter,
+			&channel_count,
+			channel_list,
+			band);
+	}
 
 	hdd_update_reg_chan_info(adapter, channel_count, channel_list);
 	hdd_get_freq_list(channel_list, freq_list, channel_count);