1 //===========================================
\r
2 // The following is for 8821A_CSR 2Ant BT Co-exist definition
\r
3 //===========================================
\r
4 #define BT_INFO_8821A_CSR_2ANT_B_FTP BIT7
\r
5 #define BT_INFO_8821A_CSR_2ANT_B_A2DP BIT6
\r
6 #define BT_INFO_8821A_CSR_2ANT_B_HID BIT5
\r
7 #define BT_INFO_8821A_CSR_2ANT_B_SCO_BUSY BIT4
\r
8 #define BT_INFO_8821A_CSR_2ANT_B_ACL_BUSY BIT3
\r
9 #define BT_INFO_8821A_CSR_2ANT_B_INQ_PAGE BIT2
\r
10 #define BT_INFO_8821A_CSR_2ANT_B_SCO_ESCO BIT1
\r
11 #define BT_INFO_8821A_CSR_2ANT_B_CONNECTION BIT0
\r
13 #define BTC_RSSI_COEX_THRESH_TOL_8821A_CSR_2ANT 2
\r
15 typedef enum _BT_INFO_SRC_8821A_CSR_2ANT{
\r
16 BT_INFO_SRC_8821A_CSR_2ANT_WIFI_FW = 0x0,
\r
17 BT_INFO_SRC_8821A_CSR_2ANT_BT_RSP = 0x1,
\r
18 BT_INFO_SRC_8821A_CSR_2ANT_BT_ACTIVE_SEND = 0x2,
\r
19 BT_INFO_SRC_8821A_CSR_2ANT_MAX
\r
20 }BT_INFO_SRC_8821A_CSR_2ANT,*PBT_INFO_SRC_8821A_CSR_2ANT;
\r
22 typedef enum _BT_8821A_CSR_2ANT_BT_STATUS{
\r
23 BT_8821A_CSR_2ANT_BT_STATUS_IDLE = 0x0,
\r
24 BT_8821A_CSR_2ANT_BT_STATUS_CONNECTED_IDLE = 0x1,
\r
25 BT_8821A_CSR_2ANT_BT_STATUS_NON_IDLE = 0x2,
\r
26 BT_8821A_CSR_2ANT_BT_STATUS_MAX
\r
27 }BT_8821A_CSR_2ANT_BT_STATUS,*PBT_8821A_CSR_2ANT_BT_STATUS;
\r
29 typedef enum _BT_8821A_CSR_2ANT_COEX_ALGO{
\r
30 BT_8821A_CSR_2ANT_COEX_ALGO_UNDEFINED = 0x0,
\r
31 BT_8821A_CSR_2ANT_COEX_ALGO_SCO = 0x1,
\r
32 BT_8821A_CSR_2ANT_COEX_ALGO_HID = 0x2,
\r
33 BT_8821A_CSR_2ANT_COEX_ALGO_A2DP = 0x3,
\r
34 BT_8821A_CSR_2ANT_COEX_ALGO_A2DP_PANHS = 0x4,
\r
35 BT_8821A_CSR_2ANT_COEX_ALGO_PANEDR = 0x5,
\r
36 BT_8821A_CSR_2ANT_COEX_ALGO_PANHS = 0x6,
\r
37 BT_8821A_CSR_2ANT_COEX_ALGO_PANEDR_A2DP = 0x7,
\r
38 BT_8821A_CSR_2ANT_COEX_ALGO_PANEDR_HID = 0x8,
\r
39 BT_8821A_CSR_2ANT_COEX_ALGO_HID_A2DP_PANEDR = 0x9,
\r
40 BT_8821A_CSR_2ANT_COEX_ALGO_HID_A2DP = 0xa,
\r
41 BT_8821A_CSR_2ANT_COEX_ALGO_MAX = 0xb,
\r
42 }BT_8821A_CSR_2ANT_COEX_ALGO,*PBT_8821A_CSR_2ANT_COEX_ALGO;
\r
44 typedef struct _COEX_DM_8821A_CSR_2ANT{
\r
46 BOOLEAN bPreDecBtPwr;
\r
47 BOOLEAN bCurDecBtPwr;
\r
48 u1Byte preFwDacSwingLvl;
\r
49 u1Byte curFwDacSwingLvl;
\r
50 BOOLEAN bCurIgnoreWlanAct;
\r
51 BOOLEAN bPreIgnoreWlanAct;
\r
54 u1Byte psTdmaPara[6];
\r
55 u1Byte psTdmaDuAdjType;
\r
56 BOOLEAN bResetTdmaAdjust;
\r
57 BOOLEAN bPrePsTdmaOn;
\r
58 BOOLEAN bCurPsTdmaOn;
\r
59 BOOLEAN bPreBtAutoReport;
\r
60 BOOLEAN bCurBtAutoReport;
\r
63 BOOLEAN bPreRfRxLpfShrink;
\r
64 BOOLEAN bCurRfRxLpfShrink;
\r
65 u4Byte btRf0x1eBackup;
\r
66 BOOLEAN bPreLowPenaltyRa;
\r
67 BOOLEAN bCurLowPenaltyRa;
\r
68 BOOLEAN bPreDacSwingOn;
\r
69 u4Byte preDacSwingLvl;
\r
70 BOOLEAN bCurDacSwingOn;
\r
71 u4Byte curDacSwingLvl;
\r
72 BOOLEAN bPreAdcBackOff;
\r
73 BOOLEAN bCurAdcBackOff;
\r
74 BOOLEAN bPreAgcTableEn;
\r
75 BOOLEAN bCurAgcTableEn;
\r
84 BOOLEAN bLimitedDig;
\r
89 u1Byte curAmpduNumType;
\r
90 u1Byte preAmpduNumType;
\r
91 u2Byte backupAmpduMaxNum;
\r
93 u1Byte curAmpduTimeType;
\r
94 u1Byte preAmpduTimeType;
\r
95 u1Byte backupAmpduMaxTime;
\r
99 u4Byte backupArfrCnt1;
\r
100 u4Byte backupArfrCnt2;
\r
102 u1Byte curRetryLimitType;
\r
103 u1Byte preRetryLimitType;
\r
104 u2Byte backupRetryLimit;
\r
106 // algorithm related
\r
107 u1Byte preAlgorithm;
\r
108 u1Byte curAlgorithm;
\r
110 u1Byte wifiChnlInfo[3];
\r
111 } COEX_DM_8821A_CSR_2ANT, *PCOEX_DM_8821A_CSR_2ANT;
\r
113 typedef struct _COEX_STA_8821A_CSR_2ANT{
\r
114 BOOLEAN bBtLinkExist;
\r
116 BOOLEAN bA2dpExist;
\r
123 u4Byte highPriorityTx;
\r
124 u4Byte highPriorityRx;
\r
125 u4Byte lowPriorityTx;
\r
126 u4Byte lowPriorityRx;
\r
128 u1Byte preBtRssiState;
\r
129 u1Byte preWifiRssiState[4];
\r
130 BOOLEAN bC2hBtInfoReqSent;
\r
131 u1Byte btInfoC2h[BT_INFO_SRC_8821A_CSR_2ANT_MAX][10];
\r
132 u4Byte btInfoC2hCnt[BT_INFO_SRC_8821A_CSR_2ANT_MAX];
\r
133 BOOLEAN bC2hBtInquiryPage;
\r
136 }COEX_STA_8821A_CSR_2ANT, *PCOEX_STA_8821A_CSR_2ANT;
\r
138 //===========================================
\r
139 // The following is interface which will notify coex module.
\r
140 //===========================================
\r
142 EXhalbtc8821aCsr2ant_PowerOnSetting(
\r
143 IN PBTC_COEXIST pBtCoexist
\r
146 EXhalbtc8821aCsr2ant_InitHwConfig(
\r
147 IN PBTC_COEXIST pBtCoexist,
\r
148 IN BOOLEAN bWifiOnly
\r
151 EXhalbtc8821aCsr2ant_InitCoexDm(
\r
152 IN PBTC_COEXIST pBtCoexist
\r
155 EXhalbtc8821aCsr2ant_IpsNotify(
\r
156 IN PBTC_COEXIST pBtCoexist,
\r
160 EXhalbtc8821aCsr2ant_LpsNotify(
\r
161 IN PBTC_COEXIST pBtCoexist,
\r
165 EXhalbtc8821aCsr2ant_ScanNotify(
\r
166 IN PBTC_COEXIST pBtCoexist,
\r
170 EXhalbtc8821aCsr2ant_ConnectNotify(
\r
171 IN PBTC_COEXIST pBtCoexist,
\r
175 EXhalbtc8821aCsr2ant_MediaStatusNotify(
\r
176 IN PBTC_COEXIST pBtCoexist,
\r
180 EXhalbtc8821aCsr2ant_SpecialPacketNotify(
\r
181 IN PBTC_COEXIST pBtCoexist,
\r
185 EXhalbtc8821aCsr2ant_BtInfoNotify(
\r
186 IN PBTC_COEXIST pBtCoexist,
\r
191 EXhalbtc8821aCsr2ant_HaltNotify(
\r
192 IN PBTC_COEXIST pBtCoexist
\r
195 EXhalbtc8821aCsr2ant_PnpNotify(
\r
196 IN PBTC_COEXIST pBtCoexist,
\r
200 EXhalbtc8821aCsr2ant_Periodical(
\r
201 IN PBTC_COEXIST pBtCoexist
\r
204 EXhalbtc8821aCsr2ant_DisplayCoexInfo(
\r
205 IN PBTC_COEXIST pBtCoexist
\r