wlan: Enable wow before going to suspend state.
When WoWL is enabled, remember whether device is exiting from
WoWL because of wake-up indication or user explicitly disabling
WoWL. If device is coming out of WoWL because of wake-up indication
then re-enable it while going to suspend state.
Change-Id: I629993364413d0d4132b806452b42fdeb68c22ca
CRs-Fixed: 685406
diff --git a/CORE/SME/inc/pmc.h b/CORE/SME/inc/pmc.h
index e6164ef..0afe567 100644
--- a/CORE/SME/inc/pmc.h
+++ b/CORE/SME/inc/pmc.h
@@ -177,6 +177,7 @@
tANI_BOOLEAN pmcReady; /*whether eWNI_SME_SYS_READY_IND has been sent to PE or not */
tANI_BOOLEAN wowlEnabled; /* TRUE if WoWL is enabled */
tANI_BOOLEAN wowlModeRequired; /* TRUE if device should go to WOWL on entering BMPS */
+ tWowlExitSource wowlExitSrc; /*WoWl exiting because of wakeup pkt or user explicitly disabling WoWL*/
void (*enterWowlCallbackRoutine) (void *callbackContext, eHalStatus status); /* routine to call for wowl request */
void *enterWowlCallbackContext;/* value to be passed as parameter to routine specified above */
tSirSmeWowlEnterParams wowlEnterParams; /* WOWL mode configuration */
diff --git a/CORE/SME/inc/pmcApi.h b/CORE/SME/inc/pmcApi.h
index d0d965b..e085be2 100644
--- a/CORE/SME/inc/pmcApi.h
+++ b/CORE/SME/inc/pmcApi.h
@@ -214,8 +214,11 @@
} tPmcSmpsMode;
-
-
+typedef enum
+{
+ eWOWL_EXIT_USER,
+ eWOWL_EXIT_WAKEIND
+}tWowlExitSource;
/* Configuration parameters for Idle Mode Power Save (IMPS). */
@@ -418,7 +421,7 @@
#endif // WLAN_WAKEUP_EVENTS
tpSirSmeWowlEnterParams wowlEnterParams, tANI_U8 sessionId);
-extern eHalStatus pmcExitWowl (tHalHandle hHal);
+extern eHalStatus pmcExitWowl (tHalHandle hHal, tWowlExitSource wowlExitSrc);
extern eHalStatus pmcSetHostOffload (tHalHandle hHal, tpSirHostOffloadReq pRequest,
diff --git a/CORE/SME/inc/sme_Api.h b/CORE/SME/inc/sme_Api.h
index 32433c2..e93d6cc 100644
--- a/CORE/SME/inc/sme_Api.h
+++ b/CORE/SME/inc/sme_Api.h
@@ -1499,7 +1499,7 @@
not even completed.
eHAL_STATUS_SUCCESS Request accepted to exit WoWLAN mode.
---------------------------------------------------------------------------*/
-extern eHalStatus sme_ExitWowl (tHalHandle hHal);
+extern eHalStatus sme_ExitWowl (tHalHandle hHal, tWowlExitSource wowlExitSrc);
/* ---------------------------------------------------------------------------