summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEdhar, Mahesh Kumar <c_medhar@qti.qualcomm.com>2013-12-02 15:23:09 +0530
committerPrakash Dhavali <pdhavali@qca.qualcomm.com>2013-12-06 03:17:26 -0800
commit66c34b1bc4803d7e9b2f9c5259f6173cafd3f024 (patch)
treecb904aca8969fd0cae59e3f472ba8584a1b15786
parent745f2908e7bdbdda3fea852e301447a8e4c87adf (diff)
CLD:Changes to set DFS flag while updating the channel list to FW
While updating the channel list to firmware we should indicate the DFS channels by setting DFS flag on the channel info field. Change-Id: I2cfb9a7eefb6ddb1ae2f8467bff9566745c25675 CRs-Fixed: 583092
-rw-r--r--CORE/MAC/inc/sirApi.h1
-rw-r--r--CORE/SERVICES/WMA/wma.c6
-rw-r--r--CORE/SME/src/csr/csrApiRoam.c6
3 files changed, 13 insertions, 0 deletions
diff --git a/CORE/MAC/inc/sirApi.h b/CORE/MAC/inc/sirApi.h
index ab51322a069e..52d9caafe495 100644
--- a/CORE/MAC/inc/sirApi.h
+++ b/CORE/MAC/inc/sirApi.h
@@ -4220,6 +4220,7 @@ typedef struct sSirUpdateChanParam
{
tANI_U8 chanId;
tANI_U8 pwr;
+ tANI_BOOLEAN dfsSet;
} tSirUpdateChanParam, *tpSirUpdateChanParam;
typedef struct sSirUpdateChan
diff --git a/CORE/SERVICES/WMA/wma.c b/CORE/SERVICES/WMA/wma.c
index 1b64fd515fb3..d92865076b90 100644
--- a/CORE/SERVICES/WMA/wma.c
+++ b/CORE/SERVICES/WMA/wma.c
@@ -2679,6 +2679,12 @@ VOS_STATUS wma_update_channel_list(WMA_HANDLE handle,
chan_info->band_center_freq2 = 0;
WMA_LOGD("chan[%d] = %u", i, chan_info->mhz);
+ if (chan_list->chanParam[i].dfsSet) {
+ WMI_SET_CHANNEL_FLAG(chan_info, WMI_CHAN_FLAG_PASSIVE);
+ WMA_LOGI("chan[%d] DFS[%d]\n",
+ chan_list->chanParam[i].chanId,
+ chan_list->chanParam[i].dfsSet);
+ }
if (chan_info->mhz < WMA_2_4_GHZ_MAX_FREQ) {
WMI_SET_CHANNEL_MODE(chan_info, MODE_11G);
diff --git a/CORE/SME/src/csr/csrApiRoam.c b/CORE/SME/src/csr/csrApiRoam.c
index b457aa716dad..c6dfcd6dc708 100644
--- a/CORE/SME/src/csr/csrApiRoam.c
+++ b/CORE/SME/src/csr/csrApiRoam.c
@@ -505,6 +505,12 @@ eHalStatus csrUpdateChannelList(tCsrScanStruct *pScan)
{
pChanList->chanParam[i].chanId = pScan->defaultPowerTable[i].chanId;
pChanList->chanParam[i].pwr = pScan->defaultPowerTable[i].pwr;
+ /*Set DFS flag for DFS channel*/
+ if (vos_nv_getChannelEnabledState(pChanList->chanParam[i].chanId) ==
+ NV_CHANNEL_DFS)
+ pChanList->chanParam[i].dfsSet = VOS_TRUE;
+ else
+ pChanList->chanParam[i].dfsSet = VOS_FALSE;
}
if(VOS_STATUS_SUCCESS != vos_mq_post_message(VOS_MODULE_ID_WDA, &msg))