import PULS_20160108
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / drivers / misc / mediatek / connectivity / combo / drv_wlan / mt6630 / wlan / include / pwr_mgt.h
1 /*
2 ** Id: //Department/DaVinci/BRANCHES/MT6620_WIFI_DRIVER_V2_3/include/pwr_mgt.h#1
3 */
4
5 /*! \file "pwr_mgt.h"
6 \brief In this file we define the STATE and EVENT for Power Management FSM.
7
8 The SCAN FSM is responsible for performing SCAN behavior when the Arbiter enter
9 ARB_STATE_SCAN. The STATE and EVENT for SCAN FSM are defined here with detail
10 description.
11 */
12
13
14 #ifndef _PWR_MGT_H
15 #define _PWR_MGT_H
16 /*******************************************************************************
17 * C O M P I L E R F L A G S
18 ********************************************************************************
19 */
20
21 /*******************************************************************************
22 * E X T E R N A L R E F E R E N C E S
23 ********************************************************************************
24 */
25
26 /*******************************************************************************
27 * C O N S T A N T S
28 ********************************************************************************
29 */
30 #define PM_UAPSD_AC0 (BIT(0))
31 #define PM_UAPSD_AC1 (BIT(1))
32 #define PM_UAPSD_AC2 (BIT(2))
33 #define PM_UAPSD_AC3 (BIT(3))
34
35 #define PM_UAPSD_ALL (PM_UAPSD_AC0 | PM_UAPSD_AC1 | PM_UAPSD_AC2 | PM_UAPSD_AC3)
36 #define PM_UAPSD_NONE 0
37
38
39 /*******************************************************************************
40 * D A T A T Y P E S
41 ********************************************************************************
42 */
43 typedef struct _PM_PROFILE_SETUP_INFO_T {
44 /* Profile setup */
45 UINT_8 ucBmpDeliveryAC; /* 0: AC_BE, 1: AC_BK, 2: AC_VI, 3: AC_VO */
46 UINT_8 ucBmpTriggerAC; /* 0: AC_BE, 1: AC_BK, 2: AC_VI, 3: AC_VO */
47
48 UINT_8 ucUapsdSp; /* Number of triggered packets in UAPSD */
49
50 } PM_PROFILE_SETUP_INFO_T, *P_PM_PROFILE_SETUP_INFO_T;
51
52
53 /*******************************************************************************
54 * P U B L I C D A T A
55 ********************************************************************************
56 */
57
58 /*******************************************************************************
59 * P R I V A T E D A T A
60 ********************************************************************************
61 */
62
63 /*******************************************************************************
64 * M A C R O S
65 ********************************************************************************
66 */
67
68 #if !CFG_ENABLE_FULL_PM
69 #define ACQUIRE_POWER_CONTROL_FROM_PM(_prAdapter)
70 #define RECLAIM_POWER_CONTROL_TO_PM(_prAdapter, _fgEnableGINT_in_IST)
71 #else
72 #define ACQUIRE_POWER_CONTROL_FROM_PM(_prAdapter) \
73 { \
74 if (_prAdapter->fgIsFwOwn) { \
75 nicpmSetDriverOwn(_prAdapter); \
76 } \
77 /* Increase Block to Enter Low Power Semaphore count */ \
78 GLUE_INC_REF_CNT(_prAdapter->u4PwrCtrlBlockCnt); \
79 }
80
81 #define RECLAIM_POWER_CONTROL_TO_PM(_prAdapter, _fgEnableGINT_in_IST) \
82 { \
83 ASSERT(_prAdapter->u4PwrCtrlBlockCnt != 0); \
84 /* Decrease Block to Enter Low Power Semaphore count */ \
85 GLUE_DEC_REF_CNT(_prAdapter->u4PwrCtrlBlockCnt); \
86 if (_prAdapter->fgWiFiInSleepyState && (_prAdapter->u4PwrCtrlBlockCnt == 0)) { \
87 nicpmSetFWOwn(_prAdapter, _fgEnableGINT_in_IST); \
88 } \
89 }
90 #endif
91
92
93 /*******************************************************************************
94 * F U N C T I O N D E C L A R A T I O N S
95 ********************************************************************************
96 */
97
98 /*******************************************************************************
99 * F U N C T I O N S
100 ********************************************************************************
101 */
102
103 #endif /* _PWR_MGT_H */