diff options
| author | Rajeev Kumar <rajekuma@qca.qualcomm.com> | 2014-01-15 21:13:53 -0800 |
|---|---|---|
| committer | Prakash Dhavali <pdhavali@qca.qualcomm.com> | 2014-01-26 00:53:51 -0800 |
| commit | 6ca04dffef970f837c39d5a156a31e2a5dcd1f86 (patch) | |
| tree | 1bc521b21ec63ee0c34a9c646518a25122f7af3b | |
| parent | f686886ffa2e86572f7825a5f721389c2f435162 (diff) | |
Batch scan fixes on CLD.
Fixing batch scan result fromat and RSSI issue
Change-Id: Ie504913bcb8a052f425d8b45d44c0fde376db4f6
CRs-fixed: 596356
| -rw-r--r-- | CORE/SERVICES/WMA/wma.c | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/CORE/SERVICES/WMA/wma.c b/CORE/SERVICES/WMA/wma.c index 28db336a217c..afa0b86ad540 100644 --- a/CORE/SERVICES/WMA/wma.c +++ b/CORE/SERVICES/WMA/wma.c @@ -13294,6 +13294,7 @@ wma_batch_scan_result_event_handler tSirBatchScanResultIndParam *pHddResult; tSirBatchScanNetworkInfo *pHddApMetaInfo; tp_wma_handle wma = (tp_wma_handle) handle; + u_int32_t nextScanListOffset, nextApMetaInfoOffset; u_int8_t bssid[IEEE80211_ADDR_LEN], ssid[32], *ssid_temp; u_int32_t temp, count1, count2, scan_num, netinfo_num, total_size; WMI_BATCH_SCAN_RESULT_EVENTID_param_tlvs *param_tlvs; @@ -13360,18 +13361,25 @@ wma_batch_scan_result_event_handler pHddResult->timestamp = fix_param->timestamp; pHddResult->numScanLists = fix_param->numScanLists; pHddResult->isLastResult = fix_param->isLastResult; - pHddScanList = (tSirBatchScanList *)pHddResult->scanResults; scan_list = param_tlvs->scan_list; network_info = param_tlvs->network_list; + nextScanListOffset = 0; + nextApMetaInfoOffset = 0; for(count1 = 0; count1 < scan_num; count1++) { + pHddScanList = (tSirBatchScanList *)(pHddResult->scanResults + + nextScanListOffset); pHddScanList->scanId = scan_list->scanId; pHddScanList->numNetworksInScanList = scan_list->numNetworksInScanList; - pHddApMetaInfo = - (tSirBatchScanNetworkInfo *)(pHddScanList->scanList); for (count2 = 0; count2 < scan_list->numNetworksInScanList; count2++) { + int8_t raw_rssi; + + pHddApMetaInfo = + (tSirBatchScanNetworkInfo *)(pHddScanList->scanList + + nextApMetaInfoOffset); + WMI_MAC_ADDR_TO_CHAR_ARRAY(&network_info->bssid, &bssid[0]); vos_mem_copy(pHddApMetaInfo->bssid, bssid, IEEE80211_ADDR_LEN); if (network_info->ssid.ssid_len <= 32) @@ -13393,18 +13401,20 @@ wma_batch_scan_result_event_handler pHddApMetaInfo->ssid[0] = '\0'; } pHddApMetaInfo->ch = network_info->ch; - pHddApMetaInfo->rssi = ((network_info->rssi + 100) - - WMI_DEFAULT_NOISE_FLOOR_DBM); + raw_rssi = ((int32_t)network_info->rssi + WMA_TGT_NOISE_FLOOR_DBM); + if (raw_rssi < 0) + raw_rssi = raw_rssi * (-1); + pHddApMetaInfo->rssi = raw_rssi; pHddApMetaInfo->timestamp = network_info->timestamp; WMA_LOGD("ch %d rssi %d timestamp %d",pHddApMetaInfo->ch, pHddApMetaInfo->rssi, pHddApMetaInfo->timestamp); - pHddApMetaInfo++; + nextApMetaInfoOffset += sizeof(tSirBatchScanNetworkInfo); network_info++; } - pHddScanList = (tSirBatchScanList*)pHddApMetaInfo; + nextScanListOffset += (sizeof(tSirBatchScanList) - (sizeof(tANI_U8))); scan_list++; } |
