summaryrefslogtreecommitdiff
path: root/CORE/SAP/src/sapModule.c
diff options
context:
space:
mode:
Diffstat (limited to 'CORE/SAP/src/sapModule.c')
-rw-r--r--CORE/SAP/src/sapModule.c29
1 files changed, 9 insertions, 20 deletions
diff --git a/CORE/SAP/src/sapModule.c b/CORE/SAP/src/sapModule.c
index 6a6c0f01fb45..973a96573843 100644
--- a/CORE/SAP/src/sapModule.c
+++ b/CORE/SAP/src/sapModule.c
@@ -1742,28 +1742,14 @@ WLANSAP_SetChannelChangeWithCsa(v_PVOID_t pvosGCtx, v_U32_t targetChannel)
pMac = PMAC_STRUCT( hHal );
/*
- * Validate if the new target channel is a valid
- * 5 Ghz Channel. We prefer to move to another
- * channel in 5 Ghz band.
- */
- if ( (targetChannel < rfChannels[RF_CHAN_36].channelNum)
- ||
- (targetChannel > rfChannels[RF_CHAN_165].channelNum) )
- {
- VOS_TRACE( VOS_MODULE_ID_SAP, VOS_TRACE_LEVEL_ERROR,
- "%s: Invalid Channel = %d passed,Channel not in 5GHz band",
- __func__, targetChannel);
-
- return VOS_STATUS_E_FAULT;
- }
-
- /*
* Now, validate if the passed channel is valid in the
* current regulatory domain.
*/
- if ( (vos_nv_getChannelEnabledState(targetChannel) == NV_CHANNEL_ENABLE)
+ if ( sapContext->channel != targetChannel &&
+ ((vos_nv_getChannelEnabledState(targetChannel) == NV_CHANNEL_ENABLE)
||
- (vos_nv_getChannelEnabledState(targetChannel) == NV_CHANNEL_DFS) )
+ (vos_nv_getChannelEnabledState(targetChannel) == NV_CHANNEL_DFS &&
+ !vos_concurrent_open_sessions_running())) )
{
/*
* Post a CSA IE request to SAP state machine with
@@ -1778,6 +1764,8 @@ WLANSAP_SetChannelChangeWithCsa(v_PVOID_t pvosGCtx, v_U32_t targetChannel)
* to sap context.
*/
pMac->sap.SapDfsInfo.target_channel = targetChannel;
+ pMac->sap.SapDfsInfo.new_chanWidth =
+ sapContext->vht_ch_width_orig;
/*
* Set the CSA IE required flag.
@@ -3030,6 +3018,7 @@ WLANSAP_ChannelChangeRequest(v_PVOID_t pSapCtx, tANI_U8 tArgetChannel)
}
pMac = PMAC_STRUCT( hHal );
phyMode = sapContext->csrRoamProfile.phyMode;
+ sapContext->csrRoamProfile.ChannelInfo.ChannelList[0] = tArgetChannel;
/*
* We are getting channel bonding mode from sapDfsInfor structure
* because we've implemented channel width fallback mechanism for DFS
@@ -3038,10 +3027,10 @@ WLANSAP_ChannelChangeRequest(v_PVOID_t pSapCtx, tANI_U8 tArgetChannel)
cbMode = pMac->sap.SapDfsInfo.new_cbMode;
vhtChannelWidth = pMac->sap.SapDfsInfo.new_chanWidth;
sme_SelectCBMode(hHal, phyMode, tArgetChannel, &vhtChannelWidth);
+ sapContext->csrRoamProfile.vht_channel_width = vhtChannelWidth;
sapContext->vht_channel_width = vhtChannelWidth;
halStatus = sme_RoamChannelChangeReq(hHal, sapContext->bssid,
- tArgetChannel,
- phyMode, cbMode, vhtChannelWidth);
+ cbMode, &sapContext->csrRoamProfile);
if (halStatus == eHAL_STATUS_SUCCESS)
{