diff options
| author | Ganesh Kondabattini <ganeshk@qti.qualcomm.com> | 2013-10-02 11:12:53 +0530 |
|---|---|---|
| committer | Madan Mohan Koyyalamudi <mkoyyala@qca.qualcomm.com> | 2013-10-23 20:05:00 -0700 |
| commit | d395614d38d1145980a97c35fe96461fbca6e9bb (patch) | |
| tree | eefa51d2f8530a8f70f90fe2fe4a93f3118f7646 | |
| parent | 261ea7a9839eef6fde4d01b8c6e8ce3aadbd1943 (diff) | |
SCAN-OFFLOAD: Update the list of scanned channels.
Update the list of scanned channels in the lim when it receives
foriegn channel event on that particular channel. This
information is given to SME and SME uses this information to
ageout the scan results.
Change-Id: I2b629531213773d16237126c0f91ab280c9e6b93
CRs-Fixed: 550165
| -rw-r--r-- | CORE/MAC/src/pe/lim/limProcessMlmRspMessages.c | 5 | ||||
| -rw-r--r-- | CORE/SERVICES/WMA/wma.c | 1 | ||||
| -rw-r--r-- | CORE/VOSS/inc/vos_utils.h | 1 | ||||
| -rw-r--r-- | CORE/VOSS/src/vos_utils.c | 16 |
4 files changed, 23 insertions, 0 deletions
diff --git a/CORE/MAC/src/pe/lim/limProcessMlmRspMessages.c b/CORE/MAC/src/pe/lim/limProcessMlmRspMessages.c index 9231fa161741..95fa6b395637 100644 --- a/CORE/MAC/src/pe/lim/limProcessMlmRspMessages.c +++ b/CORE/MAC/src/pe/lim/limProcessMlmRspMessages.c @@ -60,6 +60,7 @@ #include <limFT.h> #endif #include "wlan_qct_wda.h" +#include "vos_utils.h" static void limHandleSmeJoinResult(tpAniSirGlobal, tSirResultCodes, tANI_U16,tpPESession); static void limHandleSmeReaasocResult(tpAniSirGlobal, tSirResultCodes, tANI_U16, tpPESession); @@ -4912,6 +4913,10 @@ void limProcessRxScanEvent(tpAniSirGlobal pMac, void *buf) FL(" NULL pointer of gpLimRemainOnChanReq")); } } + else + { + limAddScanChannelInfo(pMac, vos_freq_to_chan(pScanEvent->chanFreq)); + } break; case SCAN_EVENT_BSS_CHANNEL: case SCAN_EVENT_DEQUEUED: diff --git a/CORE/SERVICES/WMA/wma.c b/CORE/SERVICES/WMA/wma.c index 1e59e18791a4..a6bc51d5d1a1 100644 --- a/CORE/SERVICES/WMA/wma.c +++ b/CORE/SERVICES/WMA/wma.c @@ -2000,6 +2000,7 @@ VOS_STATUS wma_get_buf_start_scan_cmd(tp_wma_handle wma_handle, /* TODO: handle all the other flags also */ cmd->notify_scan_events = WMI_SCAN_EVENT_STARTED | WMI_SCAN_EVENT_START_FAILED | + WMI_SCAN_EVENT_FOREIGN_CHANNEL | WMI_SCAN_EVENT_COMPLETED; cmd->dwell_time_active = scan_req->maxChannelTime; diff --git a/CORE/VOSS/inc/vos_utils.h b/CORE/VOSS/inc/vos_utils.h index 48414751237a..123f5d7fe742 100644 --- a/CORE/VOSS/inc/vos_utils.h +++ b/CORE/VOSS/inc/vos_utils.h @@ -170,4 +170,5 @@ VOS_STATUS vos_decrypt_AES(v_U32_t cryptHandle, /* Handle */ v_U8_t *pKey); /* pointer to authentication key */ v_U32_t vos_chan_to_freq(v_U8_t chan); +v_U8_t vos_freq_to_chan(v_U32_t freq); #endif // #if !defined __VOSS_UTILS_H diff --git a/CORE/VOSS/src/vos_utils.c b/CORE/VOSS/src/vos_utils.c index b78aab21d6a9..8a43a429935b 100644 --- a/CORE/VOSS/src/vos_utils.c +++ b/CORE/VOSS/src/vos_utils.c @@ -714,3 +714,19 @@ v_U32_t vos_chan_to_freq(v_U8_t chan) else return VOS_5_GHZ_BASE_FREQ + chan * VOS_CHAN_SPACING_5MHZ; } + +v_U8_t vos_freq_to_chan(v_U32_t freq) +{ + v_U8_t chan; + + if (freq > VOS_24_GHZ_BASE_FREQ && freq < VOS_CHAN_14_FREQ) + chan = ((freq - VOS_24_GHZ_BASE_FREQ)/VOS_CHAN_SPACING_5MHZ); + else if (freq == VOS_CHAN_14_FREQ) + chan = VOS_24_GHZ_CHANNEL_14; + else if ((freq > VOS_24_GHZ_BASE_FREQ) && (freq < VOS_5_GHZ_BASE_FREQ)) + chan = (((freq - VOS_CHAN_15_FREQ)/VOS_CHAN_SPACING_20MHZ) + + VOS_24_GHZ_CHANNEL_15); + else + chan = (freq - VOS_5_GHZ_BASE_FREQ)/VOS_CHAN_SPACING_5MHZ; + return chan; +} |
