diff options
| author | vinothkumar <c_vvarat@qti.qualcomm.com> | 2013-11-28 17:21:58 +0530 |
|---|---|---|
| committer | Prakash Dhavali <pdhavali@qca.qualcomm.com> | 2013-12-03 14:39:39 -0800 |
| commit | 33f06a70f9efa0ff1831ff968560fa8db33edbd8 (patch) | |
| tree | 55e0600fda1454908c5eef5b2dcb245c18546e62 | |
| parent | 9cf28a74f309eb8ba2ee53c9dccf2de06fe353d9 (diff) | |
cld: Send BMISS notification to UMAC while WOW_REASON_AP_ASSOC_LOST
Send Beacon miss notification to UMAC if wma_wow_wakeup_host_event
received with reason code of WOW_REASON_AP_ASSOC_LOST. So that the
connected reference AP will be removed from the GUI AP list when
disconnected because of BMISS.
Change-Id: If2dcf4e1b58825ce82fb7db1c4b77c70ea1dec1a
CRs-Fixed: 582967
| -rw-r--r-- | CORE/SERVICES/WMA/wma.c | 30 |
1 files changed, 17 insertions, 13 deletions
diff --git a/CORE/SERVICES/WMA/wma.c b/CORE/SERVICES/WMA/wma.c index 070a98703d2d..44d287512c3b 100644 --- a/CORE/SERVICES/WMA/wma.c +++ b/CORE/SERVICES/WMA/wma.c @@ -7030,6 +7030,20 @@ static const u8 *wma_wow_wake_reason_str(A_INT32 wake_reason) return "unknown"; } +static void wma_beacon_miss_handler(tp_wma_handle wma, u_int32_t vdev_id) +{ + tSirSmeMissedBeaconInd *beacon_miss_ind; + + beacon_miss_ind = (tSirSmeMissedBeaconInd *) vos_mem_malloc + (sizeof(tSirSmeMissedBeaconInd)); + beacon_miss_ind->messageType = WDA_MISSED_BEACON_IND; + beacon_miss_ind->length = sizeof(tSirSmeMissedBeaconInd); + beacon_miss_ind->bssIdx = vdev_id; + + wma_send_msg(wma, WDA_MISSED_BEACON_IND, + (void *)beacon_miss_ind, 0); +} + /* * Handler to catch wow wakeup host event. This event will have * reason why the firmware has woken the host. @@ -7054,6 +7068,9 @@ static int wma_wow_wakeup_host_event(void *handle, u_int8_t *event, wma_wow_wake_reason_str(wake_info->wake_reason), wake_info->vdev_id); + if(wake_info->wake_reason == WOW_REASON_AP_ASSOC_LOST) + wma_beacon_miss_handler(wma, wake_info->vdev_id); + if (wake_info->wake_reason == WOW_REASON_NLOD) { node = &wma->interfaces[wake_info->vdev_id]; if (node) { @@ -9840,19 +9857,6 @@ static VOS_STATUS wma_tx_detach(tp_wma_handle wma_handle) return VOS_STATUS_SUCCESS; } -static void wma_beacon_miss_handler(tp_wma_handle wma, u_int32_t vdev_id) -{ - tSirSmeMissedBeaconInd *beacon_miss_ind; - - beacon_miss_ind = (tSirSmeMissedBeaconInd *) vos_mem_malloc - (sizeof(tSirSmeMissedBeaconInd)); - beacon_miss_ind->messageType = WDA_MISSED_BEACON_IND; - beacon_miss_ind->length = sizeof(tSirSmeMissedBeaconInd); - beacon_miss_ind->bssIdx = vdev_id; - - wma_send_msg(wma, WDA_MISSED_BEACON_IND, - (void *)beacon_miss_ind, 0); -} /* function : wma_roam_better_ap_handler * Descriptin : Handler for WMI_ROAM_REASON_BETTER_AP event from roam firmware in Rome. * : This event means roam algorithm in Rome has found a better matching |
