1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
|
#ifndef __DBG_MON_H__
#define __DBG_MON_H__
#define RT_SPRINTF rsprintf
#define RT_PRINT(_MSG_) EXdbgmon_Print(_MSG_)
#define DBGM_CLI_BUF_SIZE 100
// OUTPUT DIRECTION
#define DBGM_OUT_WPP BIT0
#define DBGM_OUT_CLI BIT1
#define DBGM_COMP_WIFI_BASIC BIT0
#define DBGM_COMP_NDIS BIT1
#define DBGM_COMP_TX_INFO BIT2
#define DBGM_COMP_RX_INFO BIT3
#define DBGM_COMP_RX_RATE BIT4
#define DBGM_COMP_BT_COEX BIT5
#define DBGM_COMP_BT_HS BIT6
#define DBGM_COMP_BT_HCI BIT7
#define DBGM_COMP_WOL BIT8
#define DBGM_COMP_PWR_SVG BIT9
#define DBGM_COMP_ANTDET_INFO BIT10
#define DBGM_COMP_SKU BIT11
#define DBGM_COMP_DYN_TXPWR_LOAD BIT12
#define DBGM_COMP_CHANNELPLAN BIT13
#define DBGM_COMP_TX_RATE BIT14
#define DBGM_COMP_TXPWR_DUMP BIT15
#define MAX_WOL_DBG_REG_NUM 20
typedef enum _DBGM_CALLER_{
DBGM_CALLER_DBG_CMD = 0x0,
DBGM_CALLER_AUTO = 0x1,
DBGM_CALLER_MAX
}DBGM_CALLER,*PDBGM_CALLER;
typedef enum _DBGM_WIFI_BW_MODE{
DBGM_WIFI_BW_LEGACY = 0x0,
DBGM_WIFI_BW_HT20 = 0x1,
DBGM_WIFI_BW_HT40 = 0x2,
DBGM_WIFI_BW_HT80 = 0x3,
DBGM_WIFI_BW_HT160 = 0x4,
DBGM_WIFI_BW_MAX
}DBGM_WIFI_BW_MODE,*PDBGM_WIFI_BW_MODE;
typedef enum _DBGM_WIFI_TRAFFIC_DIR{
DBGM_WIFI_TRAFFIC_TX = 0x0,
DBGM_WIFI_TRAFFIC_RX = 0x1,
DBGM_WIFI_TRAFFIC_MAX
}DBGM_WIFI_TRAFFIC_DIR,*PDBGM_WIFI_TRAFFIC_DIR;
typedef enum _DBGM_PWR_MODE_{
DBGM_PWR_DC_MODE = 0x0,
DBGM_PWR_AC_MODE = 0x1,
DBGM_PWR_MODE_MAX
}DBGM_PWR_MODE,*PDBGM_PWR_MODE;
typedef enum _DBGM_WIFI_FREQ_{
DBGM_WIFI_FREQ_24G = 0x0,
DBGM_WIFI_FREQ_5G = 0x1,
DBGM_WIFI_FREQ_MAX
}DBGM_WIFI_FREQ,*PDBGM_WIFI_FREQ;
typedef struct _DBGM_BASIC_WIFI_INFO_{
u2Byte vid;
u2Byte did;
u2Byte svid;
u2Byte smid;
u1Byte customerId;
u1Byte macAddr[6];
u2Byte apNum;
u1Byte chnl;
u4Byte bandwidth;
u1Byte freq;
s4Byte rssi;
u1Byte channelPlan;
u1Byte regulation_24G;
u1Byte regulation_5G;
u4Byte odmAbility;
u1Byte regAdaptivity;
BOOLEAN bScanProcess;
BOOLEAN bLinkProcess;
BOOLEAN bRoamProcess;
BOOLEAN bStaConnected;
BOOLEAN bApConnected;
BOOLEAN bBtHsConnected;
BOOLEAN bP2pConnected;
u1Byte portActivated[5];
BOOLEAN bWifiFwLoaded;
u4Byte wifiFwVer;
u1Byte wifiFwLoadType;
// traffic
BOOLEAN bWifiBusy;
u1Byte wifiTrafficDir;
BOOLEAN bBtExist;
BOOLEAN bBtStackNotified;
u2Byte hciVer;
// power save related
BOOLEAN powerMode; //AC/DC mode
u1Byte regIpsMode;
u1Byte regLpsMode;
BOOLEAN bRegLowPowerEnable;
BOOLEAN bInactivePs;
BOOLEAN bLeisurePs;
BOOLEAN bLowPowerEnable;
BOOLEAN bUnderIps;
BOOLEAN bUnderLps;
BOOLEAN bLowPower; // 32k low power
BOOLEAN bWowlanLPS;
BOOLEAN bWowlan32k;
// ap type info
u1Byte apType;
u4Byte numTxBcnOk;
u4Byte numTxBcnErr;
u4Byte numTxBcnUpdate;
// connection debug control
BOOLEAN bFixBssid;
u1Byte fixedBssid[6];
} DBGM_BASIC_WIFI_INFO, *PDBGM_BASIC_WIFI_INFO;
typedef struct _DBGM_TX_INFO_{
u4Byte numTxInterrupt;
u4Byte wrongrwTxpointerCnt;
u4Byte numIdleTcb;
} DBGM_TX_INFO, *PDBGM_TX_INFO;
typedef struct _DBGM_RX_INFO_{
u4Byte numRxInterrupt;
u1Byte rxReorderPendTime;
u2Byte regRxReorderPendTime;
u4Byte rxBeaconNum;
u4Byte cntOfdmCca;
u4Byte cntCckCca;
u4Byte cntOfdmFail;
u4Byte cntCckFail;
u4Byte rxReorderIndEnterCnt;
u4Byte rxReorderIndAllowCnt;
u4Byte rxReorderIndRejectCnt[3];
} DBGM_RX_INFO, *PDBGM_RX_INFO;
typedef struct _DBGM_WOL_INFO_{
BOOLEAN bPowerOn;
BOOLEAN bWolFWReady;
u2Byte WolFwVer;
u2Byte WolFwSubVer;
BOOLEAN bARPOffload;
BOOLEAN bNSOffload;
BOOLEAN bGTKOffload;
BOOLEAN bRegARPOffload;
BOOLEAN bRegNSOffload;
BOOLEAN bRegGTKOffload;
BOOLEAN bPtlOffload;
u1Byte WoLPatternNum;
u1Byte WoLPktNoPtnNum;
BOOLEAN bDownloadWoWLANFWOK;
BOOLEAN bEnterWoWLANLPS;
BOOLEAN bEnterDxIPS;
BOOLEAN bRegPnpKeepLink;
BOOLEAN bPerformPnpReconnect;
// Security info
u4Byte GroupEnAlgo;
u8Byte PreTxIV;
u8Byte PreKeyRelayCounter;
// NLO related info
BOOLEAN bDxNLOEnable;
u1Byte NLONumberSetToFw;
u4Byte NLOFastScanPeriod;
u4Byte NLOFastScanIterations;
u4Byte NLOSlowScanPeriod;
RT_OFFLOAD_NETWORK OffloadNetworkList[NATIVE_802_11_MAX_NETWORKOFFLOAD_SIZE];
// Wake up reason and counter
u1Byte cntRxDescPtn;
u1Byte cntRxDescMgc;
u1Byte cntRxDescUct;
u1Byte wakeUpReason[25];
u4Byte WakeByWoLEventCnt;
u4Byte WakeByUnknownReasonCnt;
// PNP sleep/wake related info.
u4Byte PnpSleepEnterD2Cnt;
u4Byte PnpSleepEnterD3Cnt;
u4Byte PnpSleepEnterUnknownDxCnt;
u4Byte PnpSleepDxTotalCnt;
u4Byte PnpWakeD0Cnt;
u8Byte LastPnpSleepTime;
u8Byte LastPnpWakeTime;
// AOAC report
RT_AOAC_REPORT AOACReport;
// HW debug registers
HW_REG_VALUE WoLMacReg[MAX_WOL_DBG_REG_NUM];
} DBGM_WOL_INFO, *PDBGM_WOL_INFO;
// RT DEBUG CONTROL
typedef struct _RT_DBG_MON_{
u1Byte outDirection; // control output to WPP or CLI.
u4Byte outComponents; // what components we need to output
DBGM_BASIC_WIFI_INFO basicWifiInfo; // basic wifi information
DBGM_TX_INFO txInfo; // tx info
DBGM_RX_INFO rxInfo; // rx info
DBGM_WOL_INFO wolInfo; // WoWLAN info
} RT_DBG_MON, *PRT_DBG_MON;
extern const char *const rateStr[];
VOID
EXdbgmon_ClearWolInfo(
);
VOID
EXdbgmon_Print(
const char *pMsg
);
VOID
EXdbgmon_SetOutComponents(
u4Byte outCompBitsDefine
);
VOID
EXdbgmon_SetWolCntRxDesc(
IN u1Byte WakeType
);
VOID
EXdbgmon_GetWolBeforeSleepInfo(
IN PADAPTER Adapter
);
VOID
EXdbgmon_GetWolPowerInfo(
IN PADAPTER Adapter,
IN BOOLEAN bPowerOn
);
VOID
EXdbgmon_GetWolWakeReasonInfo(
IN PADAPTER Adapter
);
VOID
EXdbgmon_ShowInfo(
IN PADAPTER Adapter,
IN u1Byte caller,
IN u4Byte showType
);
VOID
EXdbgmon_AutoCollectStatisticsInfo(
IN PADAPTER Adapter
);
#endif /* __DBG_MON_H__ */
|