summaryrefslogtreecommitdiff
path: root/drivers/net/wireless/rtl8188EUS_linux_v4.3.0.6_12167.20140828/hal/OUTSRC-BTCoexist/HalBtc8192d2Ant.h
blob: 4d3b83879081bff1656f9d4be4cf280ac5b84833 (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
//===========================================
// The following is for 8192D 2Ant BT Co-exist definition
//===========================================
#define		BTC_RSSI_COEX_THRESH_TOL_8192D_2ANT		6

typedef enum _BT_INFO_SRC_8192D_2ANT{
	BT_INFO_SRC_8192D_2ANT_WIFI_FW			= 0x0,
	BT_INFO_SRC_8192D_2ANT_BT_RSP				= 0x1,
	BT_INFO_SRC_8192D_2ANT_BT_ACTIVE_SEND		= 0x2,
	BT_INFO_SRC_8192D_2ANT_MAX
}BT_INFO_SRC_8192D_2ANT,*PBT_INFO_SRC_8192D_2ANT;

typedef enum _BT_8192D_2ANT_BT_STATUS{
	BT_8192D_2ANT_BT_STATUS_IDLE				= 0x0,
	BT_8192D_2ANT_BT_STATUS_CONNECTED_IDLE	= 0x1,
	BT_8192D_2ANT_BT_STATUS_NON_IDLE			= 0x2,
	BT_8192D_2ANT_BT_STATUS_MAX
}BT_8192D_2ANT_BT_STATUS,*PBT_8192D_2ANT_BT_STATUS;

typedef enum _BT_8192D_2ANT_COEX_ALGO{
	BT_8192D_2ANT_COEX_ALGO_UNDEFINED			= 0x0,
	BT_8192D_2ANT_COEX_ALGO_SCO					= 0x1,
	BT_8192D_2ANT_COEX_ALGO_HID					= 0x2,
	BT_8192D_2ANT_COEX_ALGO_A2DP				= 0x3,
	BT_8192D_2ANT_COEX_ALGO_PAN					= 0x4,
	BT_8192D_2ANT_COEX_ALGO_HID_A2DP			= 0x5,
	BT_8192D_2ANT_COEX_ALGO_HID_PAN				= 0x6,
	BT_8192D_2ANT_COEX_ALGO_PAN_A2DP			= 0x7,
	BT_8192D_2ANT_COEX_ALGO_MAX
}BT_8192D_2ANT_COEX_ALGO,*PBT_8192D_2ANT_COEX_ALGO;

typedef struct _COEX_DM_8192D_2ANT{
	// fw mechanism
	BOOLEAN		bPreBalanceOn;
	BOOLEAN		bCurBalanceOn;

	// diminishWifi
	BOOLEAN		bPreDacOn;
	BOOLEAN		bCurDacOn;
	BOOLEAN 	bPreInterruptOn;
	BOOLEAN		bCurInterruptOn;
	u1Byte		preFwDacSwingLvl;
	u1Byte		curFwDacSwingLvl;
	BOOLEAN 	bPreNavOn;
	BOOLEAN		bCurNavOn;


	

	
	//BOOLEAN		bPreDecBtPwr;
	//BOOLEAN		bCurDecBtPwr;

	//u1Byte		preFwDacSwingLvl;
	//u1Byte		curFwDacSwingLvl;
	//BOOLEAN		bCurIgnoreWlanAct;
	//BOOLEAN		bPreIgnoreWlanAct;
	//u1Byte		prePsTdma;
	//u1Byte		curPsTdma;
	//u1Byte		psTdmaPara[5];
	//u1Byte		psTdmaDuAdjType;
	//BOOLEAN		bResetTdmaAdjust;
	//BOOLEAN		bPrePsTdmaOn;
	//BOOLEAN		bCurPsTdmaOn;
	//BOOLEAN		bPreBtAutoReport;
	//BOOLEAN		bCurBtAutoReport;

	// sw mechanism
	BOOLEAN		bPreRfRxLpfShrink;
	BOOLEAN		bCurRfRxLpfShrink;
	u4Byte		btRf0x1eBackup;
	BOOLEAN 	bPreLowPenaltyRa;
	BOOLEAN		bCurLowPenaltyRa;
	BOOLEAN		bPreDacSwingOn;
	u4Byte		preDacSwingLvl;
	BOOLEAN		bCurDacSwingOn;
	u4Byte		curDacSwingLvl;
	BOOLEAN		bPreAdcBackOff;
	BOOLEAN		bCurAdcBackOff;
	BOOLEAN 	bPreAgcTableEn;
	BOOLEAN		bCurAgcTableEn;
	//u4Byte		preVal0x6c0;
	//u4Byte		curVal0x6c0;
	u4Byte		preVal0x6c4;
	u4Byte		curVal0x6c4;
	u4Byte		preVal0x6c8;
	u4Byte		curVal0x6c8;
	u4Byte		preVal0x6cc;
	u4Byte		curVal0x6cc;
	//BOOLEAN		bLimitedDig;

	// algorithm related
	u1Byte		preAlgorithm;
	u1Byte		curAlgorithm;
	//u1Byte		btStatus;
	//u1Byte		wifiChnlInfo[3];
} COEX_DM_8192D_2ANT, *PCOEX_DM_8192D_2ANT;

typedef struct _COEX_STA_8192D_2ANT{
	u1Byte					preWifiRssiState[4];
	BOOLEAN					bBtBusy;
	BOOLEAN					bBtUplink;
	BOOLEAN					bBtDownLink;
	BOOLEAN					bA2dpBusy;
}COEX_STA_8192D_2ANT, *PCOEX_STA_8192D_2ANT;

//===========================================
// The following is interface which will notify coex module.
//===========================================
VOID
EXhalbtc8192d2ant_InitHwConfig(
	IN	PBTC_COEXIST		pBtCoexist
	);
VOID
EXhalbtc8192d2ant_InitCoexDm(
	IN	PBTC_COEXIST		pBtCoexist
	);
VOID
EXhalbtc8192d2ant_IpsNotify(
	IN	PBTC_COEXIST		pBtCoexist,
	IN	u1Byte			type
	);
VOID
EXhalbtc8192d2ant_LpsNotify(
	IN	PBTC_COEXIST		pBtCoexist,
	IN	u1Byte			type
	);
VOID
EXhalbtc8192d2ant_ScanNotify(
	IN	PBTC_COEXIST		pBtCoexist,
	IN	u1Byte			type
	);
VOID
EXhalbtc8192d2ant_ConnectNotify(
	IN	PBTC_COEXIST		pBtCoexist,
	IN	u1Byte			type
	);
VOID
EXhalbtc8192d2ant_MediaStatusNotify(
	IN	PBTC_COEXIST			pBtCoexist,
	IN	u1Byte				type
	);
VOID
EXhalbtc8192d2ant_SpecialPacketNotify(
	IN	PBTC_COEXIST			pBtCoexist,
	IN	u1Byte				type
	);
VOID
EXhalbtc8192d2ant_HaltNotify(
	IN	PBTC_COEXIST			pBtCoexist
	);
VOID
EXhalbtc8192d2ant_Periodical(
	IN	PBTC_COEXIST			pBtCoexist
	);
VOID
EXhalbtc8192d2ant_BtInfoNotify(
	IN	PBTC_COEXIST		pBtCoexist,
	IN	pu1Byte			tmpBuf,
	IN	u1Byte			length
	);
VOID
EXhalbtc8192d2ant_DisplayCoexInfo(
	IN	PBTC_COEXIST		pBtCoexist
	);