1 //===========================================
\r
2 // The following is for 8723B 1ANT BT Co-exist definition
\r
3 //===========================================
\r
4 #define BT_AUTO_REPORT_ONLY_8723B_1ANT 1
\r
6 #define BT_INFO_8723B_1ANT_B_FTP BIT7
\r
7 #define BT_INFO_8723B_1ANT_B_A2DP BIT6
\r
8 #define BT_INFO_8723B_1ANT_B_HID BIT5
\r
9 #define BT_INFO_8723B_1ANT_B_SCO_BUSY BIT4
\r
10 #define BT_INFO_8723B_1ANT_B_ACL_BUSY BIT3
\r
11 #define BT_INFO_8723B_1ANT_B_INQ_PAGE BIT2
\r
12 #define BT_INFO_8723B_1ANT_B_SCO_ESCO BIT1
\r
13 #define BT_INFO_8723B_1ANT_B_CONNECTION BIT0
\r
15 #define BT_INFO_8723B_1ANT_A2DP_BASIC_RATE(_BT_INFO_EXT_) \
\r
16 (((_BT_INFO_EXT_&BIT0))? TRUE:FALSE)
\r
18 #define BTC_RSSI_COEX_THRESH_TOL_8723B_1ANT 2
\r
20 #define BT_8723B_1ANT_WIFI_NOISY_THRESH 30 //max: 255
\r
22 typedef enum _BT_INFO_SRC_8723B_1ANT{
\r
23 BT_INFO_SRC_8723B_1ANT_WIFI_FW = 0x0,
\r
24 BT_INFO_SRC_8723B_1ANT_BT_RSP = 0x1,
\r
25 BT_INFO_SRC_8723B_1ANT_BT_ACTIVE_SEND = 0x2,
\r
26 BT_INFO_SRC_8723B_1ANT_MAX
\r
27 }BT_INFO_SRC_8723B_1ANT,*PBT_INFO_SRC_8723B_1ANT;
\r
29 typedef enum _BT_8723B_1ANT_BT_STATUS{
\r
30 BT_8723B_1ANT_BT_STATUS_NON_CONNECTED_IDLE = 0x0,
\r
31 BT_8723B_1ANT_BT_STATUS_CONNECTED_IDLE = 0x1,
\r
32 BT_8723B_1ANT_BT_STATUS_INQ_PAGE = 0x2,
\r
33 BT_8723B_1ANT_BT_STATUS_ACL_BUSY = 0x3,
\r
34 BT_8723B_1ANT_BT_STATUS_SCO_BUSY = 0x4,
\r
35 BT_8723B_1ANT_BT_STATUS_ACL_SCO_BUSY = 0x5,
\r
36 BT_8723B_1ANT_BT_STATUS_MAX
\r
37 }BT_8723B_1ANT_BT_STATUS,*PBT_8723B_1ANT_BT_STATUS;
\r
39 typedef enum _BT_8723B_1ANT_WIFI_STATUS{
\r
40 BT_8723B_1ANT_WIFI_STATUS_NON_CONNECTED_IDLE = 0x0,
\r
41 BT_8723B_1ANT_WIFI_STATUS_NON_CONNECTED_ASSO_AUTH_SCAN = 0x1,
\r
42 BT_8723B_1ANT_WIFI_STATUS_CONNECTED_SCAN = 0x2,
\r
43 BT_8723B_1ANT_WIFI_STATUS_CONNECTED_SPECIAL_PKT = 0x3,
\r
44 BT_8723B_1ANT_WIFI_STATUS_CONNECTED_IDLE = 0x4,
\r
45 BT_8723B_1ANT_WIFI_STATUS_CONNECTED_BUSY = 0x5,
\r
46 BT_8723B_1ANT_WIFI_STATUS_MAX
\r
47 }BT_8723B_1ANT_WIFI_STATUS,*PBT_8723B_1ANT_WIFI_STATUS;
\r
49 typedef enum _BT_8723B_1ANT_COEX_ALGO{
\r
50 BT_8723B_1ANT_COEX_ALGO_UNDEFINED = 0x0,
\r
51 BT_8723B_1ANT_COEX_ALGO_SCO = 0x1,
\r
52 BT_8723B_1ANT_COEX_ALGO_HID = 0x2,
\r
53 BT_8723B_1ANT_COEX_ALGO_A2DP = 0x3,
\r
54 BT_8723B_1ANT_COEX_ALGO_A2DP_PANHS = 0x4,
\r
55 BT_8723B_1ANT_COEX_ALGO_PANEDR = 0x5,
\r
56 BT_8723B_1ANT_COEX_ALGO_PANHS = 0x6,
\r
57 BT_8723B_1ANT_COEX_ALGO_PANEDR_A2DP = 0x7,
\r
58 BT_8723B_1ANT_COEX_ALGO_PANEDR_HID = 0x8,
\r
59 BT_8723B_1ANT_COEX_ALGO_HID_A2DP_PANEDR = 0x9,
\r
60 BT_8723B_1ANT_COEX_ALGO_HID_A2DP = 0xa,
\r
61 BT_8723B_1ANT_COEX_ALGO_MAX = 0xb,
\r
62 }BT_8723B_1ANT_COEX_ALGO,*PBT_8723B_1ANT_COEX_ALGO;
\r
64 typedef struct _COEX_DM_8723B_1ANT{
\r
66 u1Byte preAntPosType;
\r
67 u1Byte curAntPosType;
\r
69 BOOLEAN bCurIgnoreWlanAct;
\r
70 BOOLEAN bPreIgnoreWlanAct;
\r
73 u1Byte psTdmaPara[5];
\r
74 u1Byte psTdmaDuAdjType;
\r
75 BOOLEAN bAutoTdmaAdjust;
\r
76 BOOLEAN bPrePsTdmaOn;
\r
77 BOOLEAN bCurPsTdmaOn;
\r
78 BOOLEAN bPreBtAutoReport;
\r
79 BOOLEAN bCurBtAutoReport;
\r
86 BOOLEAN bPreLowPenaltyRa;
\r
87 BOOLEAN bCurLowPenaltyRa;
\r
96 BOOLEAN bLimitedDig;
\r
98 u4Byte backupArfrCnt1; // Auto Rate Fallback Retry cnt
\r
99 u4Byte backupArfrCnt2; // Auto Rate Fallback Retry cnt
\r
100 u2Byte backupRetryLimit;
\r
101 u1Byte backupAmpduMaxTime;
\r
103 // algorithm related
\r
104 u1Byte preAlgorithm;
\r
105 u1Byte curAlgorithm;
\r
107 u1Byte wifiChnlInfo[3];
\r
111 u1Byte preArfrType;
\r
112 u1Byte curArfrType;
\r
113 u1Byte preRetryLimitType;
\r
114 u1Byte curRetryLimitType;
\r
115 u1Byte preAmpduTimeType;
\r
116 u1Byte curAmpduTimeType;
\r
119 u1Byte errorCondition;
\r
120 } COEX_DM_8723B_1ANT, *PCOEX_DM_8723B_1ANT;
\r
122 typedef struct _COEX_STA_8723B_1ANT{
\r
123 BOOLEAN bBtLinkExist;
\r
125 BOOLEAN bA2dpExist;
\r
128 BOOLEAN bBtHiPriLinkExist;
\r
132 u4Byte specialPktPeriodCnt;
\r
133 u4Byte highPriorityTx;
\r
134 u4Byte highPriorityRx;
\r
135 u4Byte lowPriorityTx;
\r
136 u4Byte lowPriorityRx;
\r
138 BOOLEAN bBtTxRxMask;
\r
139 u1Byte preBtRssiState;
\r
140 u1Byte preWifiRssiState[4];
\r
141 BOOLEAN bC2hBtInfoReqSent;
\r
142 u1Byte btInfoC2h[BT_INFO_SRC_8723B_1ANT_MAX][10];
\r
143 u4Byte btInfoC2hCnt[BT_INFO_SRC_8723B_1ANT_MAX];
\r
144 BOOLEAN bBtWhckTest;
\r
145 BOOLEAN bC2hBtInquiryPage;
\r
146 BOOLEAN bC2hBtPage; //Add for win8.1 page out issue
\r
147 BOOLEAN bWiFiIsHighPriTask; //Add for win8.1 page out issue
\r
150 u4Byte popEventCnt;
\r
156 u4Byte nCRCOK_11nAgg;
\r
158 u4Byte nCRCErr_CCK;
\r
159 u4Byte nCRCErr_11g;
\r
160 u4Byte nCRCErr_11n;
\r
161 u4Byte nCRCErr_11nAgg;
\r
164 BOOLEAN bPreCCKLock;
\r
165 BOOLEAN bCCKEverLock;
\r
166 u1Byte nCoexTableType;
\r
168 BOOLEAN bForceLpsOn;
\r
169 }COEX_STA_8723B_1ANT, *PCOEX_STA_8723B_1ANT;
\r
171 #define BT_8723B_1ANT_ANTDET_PSD_POINTS 256 //MAX:1024
\r
172 #define BT_8723B_1ANT_ANTDET_PSD_AVGNUM 1 //MAX:3
\r
174 typedef struct _PSDSCAN_STA_8723B_1ANT{
\r
176 BOOLEAN bIsAntDetEnable;
\r
177 BOOLEAN bIsAntIsoEnable;
\r
178 BOOLEAN bIsPSDScanEnable;
\r
180 u4Byte realcentFreq; //ex:2412
\r
183 u4Byte realseconds;
\r
185 BOOLEAN bAntDetFinish;
\r
186 u1Byte nAntIsolation;
\r
187 u4Byte nPSDBandWidth; //unit: Hz
\r
188 u4Byte nPSDPoint; //128/256/512/1024
\r
189 u4Byte nPSDReport[1024]; //unit:dB (20logx), 0~255
\r
190 u4Byte nPSDReport_MaxHold[1024]; //unit:dB (20logx), 0~255
\r
191 u4Byte nPSDStartPoint;
\r
192 u4Byte nPSDStopPoint;
\r
193 u4Byte nPSDMaxValuePoint;
\r
194 u4Byte nPSDMaxValue;
\r
195 u4Byte nPSDStartBase;
\r
196 u4Byte nPSDAvgNum; // 1/8/16/32
\r
197 u4Byte nPSDGenCount;
\r
198 u4Byte nPSDGenTotalCount;
\r
199 BOOLEAN bIsSetupFinish;
\r
200 BOOLEAN bIsPSDRunning;
\r
201 BOOLEAN bIsPSDShowMaxOnly;
\r
202 } PSDSCAN_STA_8723B_1ANT, *PPSDSCAN_STA_8723B_1ANT;
\r
204 //===========================================
\r
205 // The following is interface which will notify coex module.
\r
206 //===========================================
\r
208 EXhalbtc8723b1ant_PowerOnSetting(
\r
209 IN PBTC_COEXIST pBtCoexist
\r
212 EXhalbtc8723b1ant_PreLoadFirmware(
\r
213 IN PBTC_COEXIST pBtCoexist
\r
216 EXhalbtc8723b1ant_InitHwConfig(
\r
217 IN PBTC_COEXIST pBtCoexist,
\r
218 IN BOOLEAN bWifiOnly
\r
221 EXhalbtc8723b1ant_InitCoexDm(
\r
222 IN PBTC_COEXIST pBtCoexist
\r
225 EXhalbtc8723b1ant_IpsNotify(
\r
226 IN PBTC_COEXIST pBtCoexist,
\r
230 EXhalbtc8723b1ant_LpsNotify(
\r
231 IN PBTC_COEXIST pBtCoexist,
\r
235 EXhalbtc8723b1ant_ScanNotify(
\r
236 IN PBTC_COEXIST pBtCoexist,
\r
240 EXhalbtc8723b1ant_ConnectNotify(
\r
241 IN PBTC_COEXIST pBtCoexist,
\r
245 EXhalbtc8723b1ant_MediaStatusNotify(
\r
246 IN PBTC_COEXIST pBtCoexist,
\r
250 EXhalbtc8723b1ant_SpecialPacketNotify(
\r
251 IN PBTC_COEXIST pBtCoexist,
\r
255 EXhalbtc8723b1ant_BtInfoNotify(
\r
256 IN PBTC_COEXIST pBtCoexist,
\r
261 EXhalbtc8723b1ant_RfStatusNotify(
\r
262 IN PBTC_COEXIST pBtCoexist,
\r
266 EXhalbtc8723b1ant_HaltNotify(
\r
267 IN PBTC_COEXIST pBtCoexist
\r
270 EXhalbtc8723b1ant_PnpNotify(
\r
271 IN PBTC_COEXIST pBtCoexist,
\r
275 EXhalbtc8723b1ant_CoexDmReset(
\r
276 IN PBTC_COEXIST pBtCoexist
\r
279 EXhalbtc8723b1ant_Periodical(
\r
280 IN PBTC_COEXIST pBtCoexist
\r
283 EXhalbtc8723b1ant_DisplayCoexInfo(
\r
284 IN PBTC_COEXIST pBtCoexist
\r
287 EXhalbtc8723b1ant_AntennaDetection(
\r
288 IN PBTC_COEXIST pBtCoexist,
\r
289 IN u4Byte centFreq,
\r
295 EXhalbtc8723b1ant_AntennaIsolation(
\r
296 IN PBTC_COEXIST pBtCoexist,
\r
297 IN u4Byte centFreq,
\r
304 EXhalbtc8723b1ant_PSDScan(
\r
305 IN PBTC_COEXIST pBtCoexist,
\r
306 IN u4Byte centFreq,
\r
312 EXhalbtc8723b1ant_DisplayAntIsolation(
\r
313 IN PBTC_COEXIST pBtCoexist
\r