qcacld-3.0: Update for 3port channel overlap

Update to find channel overlap in case of 3-port concurrency.
The changes are made as mentioned below:
1. Find active session on same band channel
2. If found, then set same channel to achieve SCC

Change-Id: I87ba2121608c789814b1213dc807fed82fd0f882
CRs-Fixed: 2127091
This commit is contained in:
Rachit Kankane 2017-09-18 19:58:07 +05:30 • committed by snandini
commit 11ac4bc61c
2 changed files with 11 additions and 3 deletions

View file

@ -495,7 +495,8 @@ uint16_t wlansap_check_cc_intf(struct sap_context *sap_ctx)
"%s: Invalid MAC context from p_cds_gctx", __func__);
return 0;
}
intf_ch = sme_check_concurrent_channel_overlap(hHal, 0, 0,
intf_ch = sme_check_concurrent_channel_overlap(hHal, sap_ctx->channel,
sap_ctx->csr_roamProfile.phyMode,
sap_ctx->cc_switch_mode);
return intf_ch;
}

View file

@ -1235,6 +1235,9 @@ uint16_t csr_check_concurrent_channel_overlap(tpAniSirGlobal mac_ctx,
i, sap_ch, sap_hbw, sap_cfreq,
intf_ch, intf_hbw, intf_cfreq);
}
if (intf_ch && ((intf_ch > 14 && sap_ch > 14) ||
(intf_ch <= 14 && sap_ch <= 14)))
break;
}
sme_debug("intf_ch:%d sap_ch:%d cc_switch_mode:%d, dbs:%d",
@ -1246,7 +1249,9 @@ uint16_t csr_check_concurrent_channel_overlap(tpAniSirGlobal mac_ctx,
cc_switch_mode !=
QDF_MCC_TO_SCC_SWITCH_FORCE_WITHOUT_DISCONNECTION &&
cc_switch_mode !=
QDF_MCC_TO_SCC_SWITCH_WITH_FAVORITE_CHANNEL) {
QDF_MCC_TO_SCC_SWITCH_WITH_FAVORITE_CHANNEL &&
cc_switch_mode !=
QDF_MCC_TO_SCC_SWITCH_FORCE_PREFERRED_WITHOUT_DISCONNECTION) {
sap_lfreq = sap_cfreq - sap_hbw;
sap_hfreq = sap_cfreq + sap_hbw;
intf_lfreq = intf_cfreq - intf_hbw;
@ -1269,7 +1274,9 @@ uint16_t csr_check_concurrent_channel_overlap(tpAniSirGlobal mac_ctx,
(cc_switch_mode ==
QDF_MCC_TO_SCC_SWITCH_FORCE_WITHOUT_DISCONNECTION) ||
(cc_switch_mode ==
QDF_MCC_TO_SCC_SWITCH_WITH_FAVORITE_CHANNEL))) {
QDF_MCC_TO_SCC_SWITCH_WITH_FAVORITE_CHANNEL) ||
(cc_switch_mode ==
QDF_MCC_TO_SCC_SWITCH_FORCE_PREFERRED_WITHOUT_DISCONNECTION))) {
if (!((intf_ch <= 14 && sap_ch <= 14) ||
(intf_ch > 14 && sap_ch > 14))) {
if (policy_mgr_is_dbs_enable(mac_ctx->psoc))