pwr_mgt.h 3.8 KB

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