summaryrefslogtreecommitdiff
path: root/network/wlan/WDI/HAL/rtl8723B/rtl8723bs/Hal8723BSdioDef.h
blob: 74726b901b60d4267ca5c01ec6cdbfab2c840cd2 (plain)
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
	);