blob: 80a69bc56497b74d839ebdb68b3dff62d7f48140 [file] [log] [blame]
Jeff Johnson295189b2012-06-20 16:38:30 -07001/*
Kiet Lamaa8e15a2014-02-11 23:30:06 -08002 * Copyright (c) 2012-2013 Qualcomm Atheros, Inc.
3 * All Rights Reserved.
4 * Qualcomm Atheros Confidential and Proprietary.
Gopichand Nakkala92f07d82013-01-08 21:16:34 -08005 */
6/*
Jeff Johnson295189b2012-06-20 16:38:30 -07007 *
8 * Airgo Networks, Inc proprietary. All rights reserved.
9 * Author: Sandesh Goel
10 * Date: 02/25/02
11 * History:-
12 * Date Modified by Modification Information
13 * --------------------------------------------------------------------
14 *
15 */
16
17#ifndef __PMM_API_H__
18#define __PMM_API_H__
19
20#include "sirCommon.h"
21#include "schApi.h"
22#include "halMsgApi.h"
23
24
25/// Initialize PMM
26extern tSirRetStatus pmmInitialize(tpAniSirGlobal pMac);
27
28/// Post a message to PMM module
29extern tSirRetStatus pmmPostMessage(tpAniSirGlobal pMac, tpSirMsgQ pMsg);
30
31/// Reset PMM beacon mode power save statistics
32extern void pmmResetStats(void *pvMac);
33
34/// Process the next PM message
35extern void pmmProcessMessage(tpAniSirGlobal, tpSirMsgQ);
36
Jeff Johnson295189b2012-06-20 16:38:30 -070037extern void pmmProcessPSPoll(tpAniSirGlobal, tANI_U8 *);
38extern void pmmUpdatePSPollState(tpAniSirGlobal);
39extern void pmmProcessRxActivity(tpAniSirGlobal, tANI_U16, tANI_U8);
40
Jeff Johnson295189b2012-06-20 16:38:30 -070041extern void pmmGenerateTIM(tpAniSirGlobal, tANI_U8 **, tANI_U16 *, tANI_U8);
Jeff Johnson295189b2012-06-20 16:38:30 -070042
43
44void pmmUpdateTIM(tpAniSirGlobal pMac, tpBeaconGenParams pBeaconGenParams);
45
46/// Update the PM mode
47extern void pmmUpdatePMMode(tpAniSirGlobal pMac, tANI_U16 staId, tANI_U8 pmMode);
48
49/// Update Power Mode
50extern void pmmUpdatePollablePMMode(tpAniSirGlobal, tANI_U16, tANI_U8, tANI_U16);
51extern void pmmUpdateNonPollablePMMode(tpAniSirGlobal, tANI_U16, tANI_U8, tANI_U16);
52
53/** Monitor the STA in PS*/
54void pmmHandleTimBasedDisassociation(tpAniSirGlobal pMac, tpPESession psessionEntry);
55
56//go into sleep state
57void pmmInitBmpsPwrSave(tpAniSirGlobal pMac);
58tSirRetStatus pmmSendInitPowerSaveMsg(tpAniSirGlobal pMac,tpPESession);
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -070059void pmmInitBmpsResponseHandler(tpAniSirGlobal pMac, tpSirMsgQ limMsg);
Jeff Johnson295189b2012-06-20 16:38:30 -070060tSirRetStatus pmmSendChangePowerSaveMsg(tpAniSirGlobal pMac);
61tSirRetStatus pmmSendSleepIndicationToHal(tpAniSirGlobal pMac);
62
63//go into wakeup state
64void pmmExitBmpsRequestHandler(tpAniSirGlobal pMac, tpExitBmpsInfo pExitBmpsInfo);
65void pmmExitBmpsResponseHandler(tpAniSirGlobal pMac, tpSirMsgQ limMsg) ;
66void pmmMissedBeaconHandler(tpAniSirGlobal pMac);
67
68//handlling all UAPSD messages
69void pmmEnterUapsdRequestHandler (tpAniSirGlobal pMac);
70void pmmEnterUapsdResponseHandler(tpAniSirGlobal pMac, tpSirMsgQ limMsg);
71void pmmExitUapsdRequestHandler (tpAniSirGlobal pMac);
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -070072void pmmExitUapsdResponseHandler(tpAniSirGlobal pMac, tpSirMsgQ limMsg);
Jeff Johnson295189b2012-06-20 16:38:30 -070073tSirRetStatus pmmUapsdSendChangePwrSaveMsg (tpAniSirGlobal pMac, tANI_U8 mode);
74
75// handling of all idle mode power save messages
76void pmmEnterImpsRequestHandler(tpAniSirGlobal pMac);
77void pmmEnterImpsResponseHandler(tpAniSirGlobal pMac, eHalStatus rspStatus);
78void pmmExitImpsRequestHandler(tpAniSirGlobal pMac);
79void pmmExitImpsResponseHandler(tpAniSirGlobal pMac, eHalStatus rspStatus);
80
81// handling WOWLAN messages
82void pmmSendWowlAddBcastPtrn(tpAniSirGlobal pMac, tpSirMsgQ pMsg);
83void pmmSendWowlDelBcastPtrn(tpAniSirGlobal pMac, tpSirMsgQ pMsg);
84void pmmEnterWowlRequestHandler(tpAniSirGlobal pMac, tpSirMsgQ pMsg);
85tSirRetStatus pmmSendWowlEnterRequest(tpAniSirGlobal pMac, tpSirHalWowlEnterParams pHalWowlParams);
86void pmmEnterWowlanResponseHandler(tpAniSirGlobal pMac, tpSirMsgQ limMsg);
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -070087tSirRetStatus pmmSendExitWowlReq(tpAniSirGlobal pMac, tpSirHalWowlExitParams pHalWowlParams);
Jeff Johnson295189b2012-06-20 16:38:30 -070088void pmmExitWowlanRequestHandler(tpAniSirGlobal pMac);
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -070089void pmmExitWowlanResponseHandler(tpAniSirGlobal pMac, tpSirMsgQ limMsg);
Jeff Johnson295189b2012-06-20 16:38:30 -070090
91// update idle mode statistics
92void pmmImpsUpdatePwrSaveStats(tpAniSirGlobal pMac);
93void pmmImpsUpdateWakeupStats(tpAniSirGlobal pMac);
94tSirRetStatus pmmImpsSendChangePwrSaveMsg(tpAniSirGlobal pMac, tANI_U8 mode);
95void pmmImpsUpdateSleepErrStats(tpAniSirGlobal pMac, tSirRetStatus retStatus);
96void pmmImpsUpdateWakeupErrStats(tpAniSirGlobal pMac, tSirRetStatus retStatus);
97void pmmImpsUpdateErrStateStats(tpAniSirGlobal pMac);
98void pmmImpsUpdatePktDropStats(tpAniSirGlobal pMac);
99
100void pmmUpdatePwrSaveStats(tpAniSirGlobal pMac);
101void pmmUpdateWakeupStats(tpAniSirGlobal pMac);
102void pmmBmpsUpdatePktDropStats(tpAniSirGlobal pMac);
103void pmmBmpsUpdateHalReqFailureCnt(tpAniSirGlobal pMac);
104void pmmBmpsUpdateInitFailureCnt(tpAniSirGlobal pMac);
105void pmmBmpsUpdateInvalidStateCnt(tpAniSirGlobal pMac);
106void pmmBmpsUpdatePktDropStats(tpAniSirGlobal pMac);
107void pmmBmpsUpdateReqInInvalidRoleCnt(tpAniSirGlobal pMac);
108void pmmBmpsUpdateSleepReqFailureCnt(tpAniSirGlobal pMac);
109void pmmBmpsUpdateWakeupIndCnt(tpAniSirGlobal pMac);
110void pmmBmpsUpdateWakeupReqFailureCnt(tpAniSirGlobal pMac);
111void pmmResetPmmState(tpAniSirGlobal pMac);
112void pmmSendMessageToLim(tpAniSirGlobal pMac, tANI_U32 msgId);
113
114//Power Save CFG
115tSirRetStatus pmmSendPowerSaveCfg(tpAniSirGlobal pMac, tpSirPowerSaveCfg pUpdatedPwrSaveCfg);
116
117//Handle Low RSSI Indication
118void pmmLowRssiHandler(tpAniSirGlobal pMac);
119
120#ifdef WLAN_FEATURE_PACKET_FILTERING
121void pmmFilterMatchCountResponseHandler(tpAniSirGlobal pMac, tpSirMsgQ limMsg);
122#endif // WLAN_FEATURE_PACKET_FILTERING
123
124#ifdef WLAN_FEATURE_GTK_OFFLOAD
125void pmmGTKOffloadGetInfoResponseHandler(tpAniSirGlobal pMac, tpSirMsgQ limMsg);
126#endif // WLAN_FEATURE_GTK_OFFLOAD
127
128#endif