summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorvinothkumar <c_vvarat@qti.qualcomm.com>2013-11-28 17:21:58 +0530
committerPrakash Dhavali <pdhavali@qca.qualcomm.com>2013-12-03 14:39:39 -0800
commit33f06a70f9efa0ff1831ff968560fa8db33edbd8 (patch)
tree55e0600fda1454908c5eef5b2dcb245c18546e62
parent9cf28a74f309eb8ba2ee53c9dccf2de06fe353d9 (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.c30
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