瀏覽代碼

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 年之前
父節點
當前提交
3208c162ba
共有 1 個文件被更改,包括 13 次插入5 次删除
  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);