swcr.h 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196
  1. /*
  2. ** Id: //Department/DaVinci/BRANCHES/MT6620_WIFI_DRIVER_V2_3/include/mgmt/swcr.h#1
  3. */
  4. /*! \file "swcr.h"
  5. \brief
  6. */
  7. /*
  8. *
  9. */
  10. #ifndef _SWCR_H
  11. #define _SWCR_H
  12. #include "nic_cmd_event.h"
  13. /*******************************************************************************
  14. * C O M P I L E R F L A G S
  15. ********************************************************************************
  16. */
  17. /*******************************************************************************
  18. * E X T E R N A L R E F E R E N C E S
  19. ********************************************************************************
  20. */
  21. /*******************************************************************************
  22. * C O N S T A N T S
  23. ********************************************************************************
  24. */
  25. #define TEST_PS 1
  26. #define SWCR_VAR(x) ((VOID *)&x)
  27. #define SWCR_FUNC(x) ((VOID *)x)
  28. #define SWCR_T_FUNC BIT(7)
  29. #define SWCR_L_32 3
  30. #define SWCR_L_16 2
  31. #define SWCR_L_8 1
  32. #define SWCR_READ 0
  33. #define SWCR_WRITE 1
  34. #define SWCR_MAP_NUM(x) (sizeof(x)/sizeof(x[0]))
  35. #define SWCR_CR_NUM 7
  36. #define SWCR_GET_RW_INDEX(action, rw, index) \
  37. do { \
  38. index = action & 0x7F; \
  39. rw = action >> 7; \
  40. } while (0)
  41. extern UINT_32 g_au4SwCr[]; /*: 0: command other: data */
  42. typedef VOID(*PFN_SWCR_RW_T) (P_ADAPTER_T prAdapter, UINT_8 ucRead, UINT_16 u2Addr, UINT_32 *pu4Data);
  43. typedef VOID(*PFN_CMD_RW_T) (P_ADAPTER_T prAdapter, UINT_8 ucCate, UINT_8 ucAction, UINT_8 ucOpt0, UINT_8 ucOpt1);
  44. typedef struct _SWCR_MAP_ENTRY_T {
  45. UINT_16 u2Type;
  46. PVOID u4Addr;
  47. } SWCR_MAP_ENTRY_T, *P_SWCR_MAP_ENTRY_T;
  48. typedef struct _SWCR_MOD_MAP_ENTRY_T {
  49. UINT_8 ucMapNum;
  50. P_SWCR_MAP_ENTRY_T prSwCrMap;
  51. } SWCR_MOD_MAP_ENTRY_T, *P_SWCR_MOD_MAP_ENTRY_T;
  52. typedef enum _ENUM_SWCR_DBG_TYPE_T {
  53. SWCR_DBG_TYPE_ALL = 0,
  54. SWCR_DBG_TYPE_TXRX,
  55. SWCR_DBG_TYPE_RX_RATES,
  56. SWCR_DBG_TYPE_PS,
  57. SWCR_DBG_TYPE_NUM
  58. } ENUM_SWCR_DBG_TYPE_T;
  59. typedef enum _ENUM_SWCR_DBG_ALL_T {
  60. SWCR_DBG_ALL_TX_CNT = 0,
  61. SWCR_DBG_ALL_TX_BCN_CNT,
  62. SWCR_DBG_ALL_TX_FAILED_CNT,
  63. SWCR_DBG_ALL_TX_RETRY_CNT,
  64. SWCR_DBG_ALL_TX_AGING_TIMEOUT_CNT,
  65. SWCR_DBG_ALL_TX_PS_OVERFLOW_CNT,
  66. SWCR_DBG_ALL_TX_MGNT_DROP_CNT,
  67. SWCR_DBG_ALL_TX_ERROR_CNT,
  68. SWCR_DBG_ALL_RX_CNT,
  69. SWCR_DBG_ALL_RX_DROP_CNT,
  70. SWCR_DBG_ALL_RX_DUP_DROP_CNT,
  71. SWCR_DBG_ALL_RX_TYPE_ERROR_DROP_CNT,
  72. SWCR_DBG_ALL_RX_CLASS_ERROR_DROP_CNT,
  73. SWCR_DBG_ALL_RX_AMPDU_ERROR_DROP_CNT,
  74. SWCR_DBG_ALL_RX_STATUS_ERROR_DROP_CNT,
  75. SWCR_DBG_ALL_RX_FORMAT_ERROR_DROP_CNT,
  76. SWCR_DBG_ALL_RX_ICV_ERROR_DROP_CNT,
  77. SWCR_DBG_ALL_RX_KEY_ERROR_DROP_CNT,
  78. SWCR_DBG_ALL_RX_TKIP_ERROR_DROP_CNT,
  79. SWCR_DBG_ALL_RX_MIC_ERROR_DROP_CNT,
  80. SWCR_DBG_ALL_RX_BIP_ERROR_DROP_CNT,
  81. SWCR_DBG_ALL_RX_FCSERR_CNT,
  82. SWCR_DBG_ALL_RX_FIFOFULL_CNT,
  83. SWCR_DBG_ALL_RX_PFDROP_CNT,
  84. SWCR_DBG_ALL_PWR_PS_POLL_CNT,
  85. SWCR_DBG_ALL_PWR_TRIGGER_NULL_CNT,
  86. SWCR_DBG_ALL_PWR_BCN_IND_CNT,
  87. SWCR_DBG_ALL_PWR_BCN_TIMEOUT_CNT,
  88. SWCR_DBG_ALL_PWR_PM_STATE0,
  89. SWCR_DBG_ALL_PWR_PM_STATE1,
  90. SWCR_DBG_ALL_PWR_CUR_PS_PROF0,
  91. SWCR_DBG_ALL_PWR_CUR_PS_PROF1,
  92. SWCR_DBG_ALL_AR_STA0_RATE,
  93. SWCR_DBG_ALL_AR_STA0_BWGI,
  94. SWCR_DBG_ALL_AR_STA0_RX_RATE_RCPI,
  95. SWCR_DBG_ALL_ROAMING_ENABLE,
  96. SWCR_DBG_ALL_ROAMING_ROAM_CNT,
  97. SWCR_DBG_ALL_ROAMING_INT_CNT,
  98. SWCR_DBG_ALL_BB_RX_MDRDY_CNT,
  99. SWCR_DBG_ALL_BB_RX_FCSERR_CNT,
  100. SWCR_DBG_ALL_BB_CCK_PD_CNT,
  101. SWCR_DBG_ALL_BB_OFDM_PD_CNT,
  102. SWCR_DBG_ALL_BB_CCK_SFDERR_CNT,
  103. SWCR_DBG_ALL_BB_CCK_SIGERR_CNT,
  104. SWCR_DBG_ALL_BB_OFDM_TAGERR_CNT,
  105. SWCR_DBG_ALL_BB_OFDM_SIGERR_CNT,
  106. SWCR_DBG_ALL_NUM
  107. } ENUM_SWCR_DBG_ALL_T;
  108. /*******************************************************************************
  109. * D A T A T Y P E S
  110. ********************************************************************************
  111. */
  112. /*******************************************************************************
  113. * P U B L I C D A T A
  114. ********************************************************************************
  115. */
  116. /*******************************************************************************
  117. * P R I V A T E D A T A
  118. ********************************************************************************
  119. */
  120. /*******************************************************************************
  121. * M A C R O S
  122. ********************************************************************************
  123. */
  124. /*******************************************************************************
  125. * F U N C T I O N D E C L A R A T I O N S
  126. ********************************************************************************
  127. */
  128. /*******************************************************************************
  129. * F U N C T I O N S
  130. ********************************************************************************
  131. */
  132. VOID swCrReadWriteCmd(P_ADAPTER_T prAdapter, UINT_8 ucRead, UINT_16 u2Addr, UINT_32 *pu4Data);
  133. /* Debug Support */
  134. VOID swCrFrameCheckEnable(P_ADAPTER_T prAdapter, UINT_32 u4DumpType);
  135. VOID swCrDebugInit(P_ADAPTER_T prAdapter);
  136. VOID swCrDebugCheckEnable(P_ADAPTER_T prAdapter, BOOLEAN fgIsEnable, UINT_8 ucType, UINT_32 u4Timeout);
  137. VOID swCrDebugUninit(P_ADAPTER_T prAdapter);
  138. #if CFG_SUPPORT_SWCR
  139. VOID swCtrlCmdCategory0(P_ADAPTER_T prAdapter, UINT_8 ucCate, UINT_8 ucAction, UINT_8 ucOpt0, UINT_8 ucOpt1);
  140. VOID swCtrlCmdCategory1(P_ADAPTER_T prAdapter, UINT_8 ucCate, UINT_8 ucAction, UINT_8 ucOpt0, UINT_8 ucOpt1);
  141. #if TEST_PS
  142. VOID testPsCmdCategory0(P_ADAPTER_T prAdapter, UINT_8 ucCate, UINT_8 ucAction, UINT_8 ucOpt0, UINT_8 ucOpt1);
  143. VOID testPsCmdCategory1(P_ADAPTER_T prAdapter, UINT_8 ucCate, UINT_8 ucAction, UINT_8 ucOpt0, UINT_8 ucOpt1);
  144. #endif
  145. #if CFG_SUPPORT_802_11V
  146. #if (CFG_SUPPORT_802_11V_TIMING_MEASUREMENT == 1) && (WNM_UNIT_TEST == 1)
  147. void testWNMCmdCategory0(P_ADAPTER_T prAdapter, UINT_8 ucCate, UINT_8 ucAction, UINT_8 ucOpt0, UINT_8 ucOpt1);
  148. #endif
  149. #endif
  150. VOID swCtrlSwCr(P_ADAPTER_T prAdapter, UINT_8 ucRead, UINT_16 u2Addr, UINT_32 *pu4Data);
  151. /* Support Debug */
  152. VOID swCrDebugCheck(P_ADAPTER_T prAdapter, P_CMD_SW_DBG_CTRL_T prCmdSwCtrl);
  153. VOID swCrDebugCheckTimeout(IN P_ADAPTER_T prAdapter, ULONG ulParamPtr);
  154. VOID swCrDebugQuery(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo, IN PUINT_8 pucEventBuf);
  155. VOID swCrDebugQueryTimeout(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo);
  156. #endif
  157. #endif