qcacld-3.0: Force P2PGO to SCC only if other beacon entity is active
In case SAP+P2PGO+STA interface are present, with SAP in down state and STA in conencted state and P2PGO is started, it uses API policy_mgr_concurrent_beaconing_sessions_running checks if multiple beaconing interface are present to force the P2PGO to SCC or DBS channel and as SAP and P2PGO interface are present it returns true. Now the API to get concurrent channel get the channel of STA which is active and thus P2PGO moves to STA channel. Thus use the api to get channel for concurrent beaconing interface instead of any interface to take care of beaconing interface concurrency scenareos. With this concurrent channel will be non 0 only if any other beaconing entity is present and in up state and thus P2PGO will move to SCC or DBS only in case any other beaconing interface is actually up and beaconing on a channel. Change-Id: Ic4bacc8cc45386499c11e09e79d095e926318400 CRs-Fixed: 2395530
This commit is contained in:

committed by
nshrivas

orang tua
83a2dd231a
melakukan
b1954c63bc
@@ -541,7 +541,9 @@ void sap_dfs_set_current_channel(void *ctx)
|
||||
uint16_t con_ch;
|
||||
mac_handle_t handle = MAC_HANDLE(mac_ctx);
|
||||
|
||||
con_ch = sme_get_concurrent_operation_channel(handle);
|
||||
con_ch =
|
||||
sme_get_beaconing_concurrent_operation_channel(
|
||||
handle, sap_ctx->sessionId);
|
||||
if (!con_ch || !wlan_reg_is_dfs_ch(pdev, con_ch))
|
||||
tgt_dfs_get_radars(pdev);
|
||||
} else {
|
||||
@@ -758,7 +760,8 @@ sap_validate_chan(struct sap_context *sap_context,
|
||||
policy_mgr_mode_specific_connection_count(mac_ctx->psoc,
|
||||
PM_P2P_GO_MODE, NULL)))) {
|
||||
con_ch =
|
||||
sme_get_concurrent_operation_channel(mac_handle);
|
||||
sme_get_beaconing_concurrent_operation_channel(
|
||||
mac_handle, sap_context->sessionId);
|
||||
#ifdef FEATURE_WLAN_STA_AP_MODE_DFS_DISABLE
|
||||
if (con_ch && sap_context->channel != con_ch &&
|
||||
wlan_reg_is_dfs_ch(mac_ctx->pdev,
|
||||
@@ -769,8 +772,8 @@ sap_validate_chan(struct sap_context *sap_context,
|
||||
}
|
||||
#endif
|
||||
#ifdef FEATURE_WLAN_MCC_TO_SCC_SWITCH
|
||||
if (sap_context->cc_switch_mode !=
|
||||
QDF_MCC_TO_SCC_SWITCH_DISABLE) {
|
||||
if (con_ch && (sap_context->cc_switch_mode !=
|
||||
QDF_MCC_TO_SCC_SWITCH_DISABLE)) {
|
||||
/*
|
||||
* For ACS request ,the sapContext->channel is 0,
|
||||
* we skip below overlap checking. When the ACS
|
||||
@@ -956,7 +959,8 @@ QDF_STATUS sap_channel_sel(struct sap_context *sap_context)
|
||||
policy_mgr_mode_specific_connection_count(mac_ctx->psoc,
|
||||
PM_P2P_GO_MODE,
|
||||
NULL)))) {
|
||||
con_ch = sme_get_concurrent_operation_channel(mac_handle);
|
||||
con_ch = sme_get_beaconing_concurrent_operation_channel(
|
||||
mac_handle, sap_context->sessionId);
|
||||
#ifdef FEATURE_WLAN_STA_AP_MODE_DFS_DISABLE
|
||||
if (con_ch)
|
||||
sap_context->dfs_ch_disable = true;
|
||||
@@ -2087,7 +2091,8 @@ sap_goto_starting(struct sap_context *sap_ctx,
|
||||
if (policy_mgr_concurrent_beaconing_sessions_running(mac_ctx->psoc)) {
|
||||
uint16_t con_ch;
|
||||
|
||||
con_ch = sme_get_concurrent_operation_channel(mac_handle);
|
||||
con_ch = sme_get_beaconing_concurrent_operation_channel(
|
||||
mac_handle, sap_ctx->sessionId);
|
||||
if (con_ch && wlan_reg_is_dfs_ch(mac_ctx->pdev, con_ch)) {
|
||||
sap_ctx->channel = con_ch;
|
||||
wlan_reg_set_channel_params(mac_ctx->pdev,
|
||||
|
Reference in New Issue
Block a user