|
@@ -2353,6 +2353,7 @@ static int __wlan_hdd_cfg80211_do_acs(struct wiphy *wiphy,
|
|
|
uint8_t ch_width;
|
|
|
enum qca_wlan_vendor_acs_hw_mode hw_mode;
|
|
|
QDF_STATUS qdf_status;
|
|
|
+ uint8_t conc_channel;
|
|
|
|
|
|
/* ***Note*** Donot set SME config related to ACS operation here because
|
|
|
* ACS operation is not synchronouse and ACS for Second AP may come when
|
|
@@ -2607,6 +2608,37 @@ static int __wlan_hdd_cfg80211_do_acs(struct wiphy *wiphy,
|
|
|
for (i = 0; i < sap_config->acs_cfg.ch_list_count; i++)
|
|
|
hdd_debug("%d ", sap_config->acs_cfg.ch_list[i]);
|
|
|
}
|
|
|
+
|
|
|
+ conc_channel = policy_mgr_mode_specific_get_channel(hdd_ctx->hdd_psoc,
|
|
|
+ PM_STA_MODE);
|
|
|
+ if (hdd_ctx->config->external_acs_policy ==
|
|
|
+ HDD_EXTERNAL_ACS_PCL_MANDATORY) {
|
|
|
+ if ((conc_channel >= WLAN_REG_CH_NUM(CHAN_ENUM_36) &&
|
|
|
+ sap_config->acs_cfg.band == QCA_ACS_MODE_IEEE80211A) ||
|
|
|
+ (conc_channel <= WLAN_REG_CH_NUM(CHAN_ENUM_14) &&
|
|
|
+ (sap_config->acs_cfg.band == QCA_ACS_MODE_IEEE80211B ||
|
|
|
+ sap_config->acs_cfg.band == QCA_ACS_MODE_IEEE80211A))) {
|
|
|
+ sap_config->acs_cfg.pri_ch = conc_channel;
|
|
|
+ wlan_sap_set_sap_ctx_acs_cfg(
|
|
|
+ WLAN_HDD_GET_SAP_CTX_PTR(adapter), sap_config);
|
|
|
+ sap_config_acs_result(hdd_ctx->hHal,
|
|
|
+ WLAN_HDD_GET_SAP_CTX_PTR(adapter),
|
|
|
+ sap_config->acs_cfg.ht_sec_ch);
|
|
|
+ sap_config->ch_params.ch_width =
|
|
|
+ sap_config->acs_cfg.ch_width;
|
|
|
+ sap_config->ch_params.sec_ch_offset =
|
|
|
+ sap_config->acs_cfg.ht_sec_ch;
|
|
|
+ sap_config->ch_params.center_freq_seg0 =
|
|
|
+ sap_config->acs_cfg.vht_seg0_center_ch;
|
|
|
+ sap_config->ch_params.center_freq_seg1 =
|
|
|
+ sap_config->acs_cfg.vht_seg1_center_ch;
|
|
|
+ /*notify hostapd about channel override */
|
|
|
+ wlan_hdd_cfg80211_acs_ch_select_evt(adapter);
|
|
|
+ ret = 0;
|
|
|
+ goto out;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
sap_config->acs_cfg.acs_mode = true;
|
|
|
if (test_bit(ACS_IN_PROGRESS, &hdd_ctx->g_event_flags)) {
|
|
|
/* ***Note*** Completion variable usage is not allowed
|