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
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
|
#ifndef __INC_HAL8723BSDIODEF_H
#define __INC_HAL8723BSDIODEF_H
/*--------------------------Define MACRO--------------------------------------*/
extern u1Byte DescString8723BSdio[];
extern EEPROM_OFFSET EEPROMOffset8723BSdio;
extern u1Byte DescString8192ESdio[];
extern EEPROM_OFFSET EEPROMOffset8192ESdio;
#define DRIVER_EARLY_INT_TIME_8723B 0x05
#define HAL92CSDIO_DEFAULT_BEACON_TYPE BEACON_SEND_AUTO_HW
#define SDIO_8723B_DUMMY_UNIT 8
#define SDIO_8723B_DUMMY_OFFSET 1
#define SDIO_8723B_ALL_DUMMY_LENGTH SDIO_8723B_DUMMY_OFFSET * SDIO_8723B_DUMMY_UNIT
#define HWDESC_HEADER_LEN_SDIO_8812 40
#define SDIO_8723B_HWDESC_HEADER_LEN (HWDESC_HEADER_LEN_SDIO_8812 + SDIO_8723B_ALL_DUMMY_LENGTH) // 8byte dummy
#define MAX_RX_DMA_BUFFER_SIZE_8812 0x3E80
#define MAX_RX_DMA_BUFFER_SIZE_8723B 0x2800 // RX 10K
#define TX_TOTAL_PAGE_NUMBER_8723B 0xF3 // TX 32K
#define TX_PAGE_BOUNDARY_8723B (TX_TOTAL_PAGE_NUMBER_8723B + 1)
#define TX_PAGE_BOUNDARY_WOWLAN_8723B 0xE0
// For Normal Chip Setting
// (HPQ + LPQ + NPQ + PUBQ) shall be TX_TOTAL_PAGE_NUMBER
#define NORMAL_PAGE_NUM_PUBQ_8723B 0xC2 //0xD9
#define NORMAL_PAGE_NUM_LPQ_8723B 0x08 //0x0d
#define NORMAL_PAGE_NUM_HPQ_8723B 0x08 //0x0d
#define NORMAL_PAGE_NUM_NPQ_8723B 0x20 //0x00
//Note: For WMM Normal Chip Setting ,modify later
#define WMM_NORMAL_TX_TOTAL_PAGE_NUMBER_8723B TX_PAGE_BOUNDARY_8723B
#define WMM_NORMAL_TX_PAGE_BOUNDARY_8723B (WMM_NORMAL_TX_TOTAL_PAGE_NUMBER_8723B + 1)
#define WMM_NORMAL_PAGE_NUM_PUBQ_8723B NORMAL_PAGE_NUM_PUBQ_8723B
#define WMM_NORMAL_PAGE_NUM_HPQ_8723B NORMAL_PAGE_NUM_HPQ_8723B
#define WMM_NORMAL_PAGE_NUM_LPQ_8723B NORMAL_PAGE_NUM_LPQ_8723B
#define WMM_NORMAL_PAGE_NUM_NPQ_8723B NORMAL_PAGE_NUM_NPQ_8723B
// RQPN setting for WoWLAN
#define WOWLAN_NORMAL_PAGE_NUM_NPQ_8723B 0x03
#define WOWLAN_RSVD_QUEUE_PAGE_NUM_8723B 0x80c20d0d
#define TX_SELE_HQ BIT(0) // High Queue
#define TX_SELE_LQ BIT(1) // Low Queue
#define TX_SELE_NQ BIT(2) // Normal Queue
#define RX_PAGE_SIZE_REG_VALUE PBP_128
#define BCN_DMA_ATIME_INT_TIME 0x02
#endif // #ifndef __INC_HAL8723BSDIODEF_H
VOID
DumpHardwareProfile8723BSdio(
IN PADAPTER Adapter
);
VOID
DisableInterrupt8723BSdio (
IN PADAPTER Adapter
);
VOID
ClearInterrupt8723BSdio(
IN PADAPTER Adapter
);
VOID
ClearSysInterrupt8723BSdio(
IN PADAPTER Adapter
);
VOID
InitInterrupt8723BSdio(
IN PADAPTER Adapter
);
VOID
InitSysInterrupt8723BSdio(
IN PADAPTER Adapter
);
VOID
EnableInterrupt8723BSdio(
IN PADAPTER Adapter
);
VOID
DumpLoggedInterruptHistory8723BSdio(
PADAPTER Adapter
);
BOOLEAN
InterruptRecognized8723BSdio(
IN PADAPTER Adapter,
IN PVOID pContent,
IN u4Byte ContentLen
);
//1======================================================
// Tx Related
// Function prototypes for Hal8190PciGen.c
//1======================================================
VOID
InitializeVariables8723BSdio(
IN PADAPTER Adapter
);
VOID
DeInitializeVariables8723BSdio(
IN PADAPTER Adapter
);
VOID
CancelAllTimer8723BSdio(
IN PADAPTER Adapter
);
VOID
ReleaseAllTimer8723BSdio(
PADAPTER Adapter
);
VOID
HalSdioUpdateDefSet8723BS(
IN PADAPTER pAdapter
);
BOOLEAN
HalSdioSetQueueMapping8723BSdio(
IN PADAPTER pAdapter,
IN u1Byte NumIn,
IN u1Byte NumOut
);
VOID
GetInitialRQPValue8723BS(
IN PADAPTER Adapter,
OUT pu2Byte pNPQRQPNVaule,
OUT pu4Byte pRQPNValue
);
u1Byte
GetInitialTxBufferBoundary8723BS(
IN PADAPTER Adapter
);
RT_STATUS
InitializeAdapter8723BSdio(
IN PADAPTER Adapter,
IN u1Byte Channel
);
RT_STATUS
ReadAdapterInfo8723BS(
IN PADAPTER Adapter
);
VOID
FillH2CCmd8723BSdioWorkItemCallback(
IN PVOID pContext
);
VOID
FillH2CCmd8723BSdioTimerCallback(
IN PRT_TIMER pTimer
);
VOID
HaltAdapter8723BSdio(
IN PADAPTER Adapter,
IN BOOLEAN bReset
);
VOID
SleepAdapter8723BSdio(
IN PADAPTER Adapter
);
VOID
ShutdownAdapter8723BSdio(
IN PADAPTER Adapter,
IN BOOLEAN bReset
);
VOID
SetHwReg8723BSdio(
IN PADAPTER pAdapter,
IN u1Byte variable,
IN pu1Byte val
);
VOID
GetHwReg8723BSdio(
IN PADAPTER Adapter,
IN u1Byte variable,
OUT pu1Byte val
);
BOOLEAN
GetHalDefVar8723BSdio(
IN PADAPTER Adapter,
IN HAL_DEF_VARIABLE eVariable,
IN PVOID pValue
);
BOOLEAN
GetInterrupt8723BSdio(
IN PADAPTER pAdapter,
IN HAL_INT_TYPE intType
);
BOOLEAN
SetHalDefVar8723BSdio(
IN PADAPTER Adapter,
IN HAL_DEF_VARIABLE eVariable,
IN PVOID pValue
);
VOID
ActSetWirelessMode8723BSdio(
PADAPTER pAdapter,
u2Byte btWirelessMode
);
VOID
SetBeaconRelatedRegisters8723BSdio(
IN PADAPTER Adapter,
IN PVOID pOpMode,
IN u2Byte BcnInterval,
IN u2Byte AtimWindow
);
VOID
ResetAllHWTimer8723BSdio(
IN PADAPTER Adapter
);
VOID
UpdateLPSStatus8723BSdio(
IN PADAPTER Adapter,
IN u1Byte RegLeisurePsMode,
IN u1Byte RegPowerSaveMode
);
VOID
UpdateIPSStatus8723BSdio(
IN PADAPTER Adapter,
IN u1Byte RegInactivePsMode
);
VOID
EnableHWSecurityConfig8723BSdio(
IN PADAPTER Adapter
);
VOID
DisableHWSecurityConfig8723BSdio(
IN PADAPTER Adapter
);
VOID
SetKey8723BSdio(
IN PADAPTER Adapter,
IN u4Byte KeyIndex,
IN pu1Byte pMacAddr,
IN BOOLEAN IsGroup,
IN u4Byte EncAlgo,
IN BOOLEAN IsWEPKey, //if OID = OID_802_11_WEP
IN BOOLEAN ClearAll
);
VOID
TxFillCmdDesc8723BSdio(
IN PADAPTER Adapter,
IN PRT_TCB pTcb,
IN u1Byte QueueIndex,
IN u2Byte index,
IN BOOLEAN bFirstSeg,
IN BOOLEAN bLastSeg,
IN pu1Byte VirtualAddress,
IN u4Byte PhyAddressLow,
IN u4Byte BufferLen,
IN u4Byte DescPacketType,
IN u4Byte PktLen
);
VOID
TxFillDescriptor8723BSdio(
IN PADAPTER Adapter,
IN PRT_TCB pTcb,
IN u2Byte nBufIndex,
IN u2Byte nFragIndex,
IN u2Byte nFragBufferIndex,
IN u2Byte nCurDesc
);
VOID
AllowAllDestAddr8723BSdio(
IN PADAPTER Adapter,
IN BOOLEAN bAllowAllDA,
IN BOOLEAN WriteIntoReg
);
VOID
AllowErrorPacket8723BSdio(
IN PADAPTER Adapter,
IN BOOLEAN bAllowErrPkt,
IN BOOLEAN WriteIntoReg
);
VOID
QueryRxDescStatus8723BSdio(
IN PADAPTER Adapter,
IN PVOID pDescIn,
IN OUT PRT_RFD pRfd
);
u4Byte
GetRxPacketShiftBytes8723BSdio(
IN PRT_RFD pRfd
);
BOOLEAN
HalQueryRxDMARequest8723BSdio(
IN PADAPTER Adapter,
OUT pu2Byte pRxReqLength
);
BOOLEAN
GetNmodeSupportBySecCfg8723BSdio(
IN PADAPTER Adapter
);
VOID
GPIOCheckPBC8723BSdio(
IN PADAPTER pAdapter
);
VOID
GpioDetectTimerStart8723BSdio(
IN PADAPTER Adapter
);
VOID
SetRTSRateWorkItemCallback_8723BS(
IN PVOID pContext
);
VOID
HalSdioGetCmdAddr8723BSdio(
IN PADAPTER pAdapter,
IN u1Byte DeviceID,
IN u4Byte Addr,
OUT pu4Byte pCmdAddr
);
VOID
HalRxAggr8723BSdio(
IN PADAPTER Adapter,
IN BOOLEAN Value
);
BOOLEAN
HalQueryTxBufferStatus8723BSdio(
IN PADAPTER Adapter
);
BOOLEAN
HalQueryTxBufferAvailable8723BSdio(
IN PADAPTER Adapter,
IN PSDIO_OUT_CONTEXT pContext
);
BOOLEAN
HalSdioRxHandleInterrupt8723BSdio(
IN PADAPTER pAdapter
);
VOID
HalDropRxFIFO8723BSdio(
IN PADAPTER Adapter
);
VOID
HalDownloadRSVDPage8723BS(
IN PADAPTER Adapter
);
VOID
ResetHalRATRTable8723BSdio(
PADAPTER Adapter
);
VOID
HandleH2CJoinBssRptWorkItemCallback_8723BS(
IN PVOID pContext
);
BOOLEAN
CheckCPWMInterrupt8723BS(
IN PADAPTER Adapter
);
BOOLEAN
HalSdioIoRegCmd52Available8723BS(
IN PADAPTER Adapter,
IN u4Byte offset
);
RT_STATUS
HalSetRsvdPageBndy8723BS(
IN PADAPTER Adapter,
IN u1Byte RQPNType
);
|