qcacld-3.0: Add support for DCS channel switch from DFS to DFS
Bring up SAP+SAP with acs mode on 5G and set chanlist only with DFS channel, run heavy traffic to make noisy on SAP beacon channel, then DCS will be triggered to do ACS again for choosing better channel to switch, new DFS channel will be choosed, but channel switch is failed. DCS policy is SAP do channel switch one by one with the same target channel, ignore three fail point concurrency check in wlan_hdd_cfg80211_start_acs/wlansap_set_channel_change_with_csa/ wlansap_roam_process_dfs_chansw_update, furthermore need to add DFS channel to acs channel list in sap_get_freq_list. Change-Id: I7360792105cd1fdd4f4c75040c510cc620c3d5c5 CRs-Fixed: 2648641
This commit is contained in:
@@ -575,10 +575,13 @@ wlansap_roam_process_dfs_chansw_update(mac_handle_t mac_handle,
|
||||
* second SAP's channel change due to some previous platform's single
|
||||
* radio limitation.
|
||||
*
|
||||
* For DCS case, SAP will do channel switch one by one.
|
||||
*
|
||||
*/
|
||||
sap_scc_dfs = sap_is_conc_sap_doing_scc_dfs(mac_handle, sap_ctx);
|
||||
if (sap_get_total_number_sap_intf(mac_handle) <= 1 ||
|
||||
policy_mgr_is_current_hwmode_dbs(mac_ctx->psoc) ||
|
||||
sap_ctx->csa_reason == CSA_REASON_DCS ||
|
||||
!sap_scc_dfs) {
|
||||
sap_get_cac_dur_dfs_region(sap_ctx,
|
||||
&sap_ctx->csr_roamProfile.cac_duration_ms,
|
||||
|
@@ -3387,12 +3387,19 @@ static QDF_STATUS sap_get_freq_list(struct sap_context *sap_ctx,
|
||||
* resulting MCC on DFS channel
|
||||
*/
|
||||
if (wlan_reg_is_dfs_for_freq(
|
||||
mac_ctx->pdev,
|
||||
WLAN_REG_CH_TO_FREQ(loop_count)) &&
|
||||
(policy_mgr_disallow_mcc(mac_ctx->psoc,
|
||||
WLAN_REG_CH_TO_FREQ(loop_count)) ||
|
||||
!dfs_master_enable))
|
||||
continue;
|
||||
mac_ctx->pdev,
|
||||
WLAN_REG_CH_TO_FREQ(loop_count))) {
|
||||
if (!dfs_master_enable)
|
||||
continue;
|
||||
if (wlansap_dcs_is_wlan_interference_mitigation_enabled(
|
||||
sap_ctx))
|
||||
sap_debug("dfs chan_freq %d added when dcs enabled",
|
||||
WLAN_REG_CH_TO_FREQ(loop_count));
|
||||
else if (policy_mgr_disallow_mcc(
|
||||
mac_ctx->psoc,
|
||||
WLAN_REG_CH_TO_FREQ(loop_count)))
|
||||
continue;
|
||||
}
|
||||
|
||||
/* Dont scan ETSI13 SRD channels if the ETSI13 SRD channels
|
||||
* are not enabled in master mode
|
||||
|
@@ -1374,7 +1374,8 @@ QDF_STATUS wlansap_set_channel_change_with_csa(struct sap_context *sap_ctx,
|
||||
(!policy_mgr_is_any_mode_active_on_band_along_with_session(
|
||||
mac->psoc, sap_ctx->sessionId,
|
||||
POLICY_MGR_BAND_5) ||
|
||||
sta_sap_scc_on_dfs_chan)))) {
|
||||
sta_sap_scc_on_dfs_chan ||
|
||||
sap_ctx->csa_reason == CSA_REASON_DCS)))) {
|
||||
/*
|
||||
* validate target channel switch w.r.t various concurrency
|
||||
* rules set.
|
||||
|
Reference in New Issue
Block a user