dt-bindings: Document the Rockchip RGA bindings
[firefly-linux-kernel-4.4.55.git] / drivers / net / wireless / rockchip_wlan / rtl8723bs / hal / OUTSRC-BTCoexist / HalBtc8723b1Ant.h
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
5 \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
14 \r
15 #define BT_INFO_8723B_1ANT_A2DP_BASIC_RATE(_BT_INFO_EXT_)       \\r
16                 (((_BT_INFO_EXT_&BIT0))? TRUE:FALSE)\r
17 \r
18 #define BTC_RSSI_COEX_THRESH_TOL_8723B_1ANT             2\r
19 \r
20 #define  BT_8723B_1ANT_WIFI_NOISY_THRESH                                                                30   //max: 255\r
21 \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
28 \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
38 \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
48 \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
63 \r
64 typedef struct _COEX_DM_8723B_1ANT{\r
65         // hw setting\r
66         u1Byte          preAntPosType;\r
67         u1Byte          curAntPosType;\r
68         // fw mechanism\r
69         BOOLEAN         bCurIgnoreWlanAct;\r
70         BOOLEAN         bPreIgnoreWlanAct;\r
71         u1Byte          prePsTdma;\r
72         u1Byte          curPsTdma;\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
80         u1Byte          preLps;\r
81         u1Byte          curLps;\r
82         u1Byte          preRpwm;\r
83         u1Byte          curRpwm;\r
84 \r
85         // sw mechanism\r
86         BOOLEAN         bPreLowPenaltyRa;\r
87         BOOLEAN         bCurLowPenaltyRa;\r
88         u4Byte          preVal0x6c0;\r
89         u4Byte          curVal0x6c0;\r
90         u4Byte          preVal0x6c4;\r
91         u4Byte          curVal0x6c4;\r
92         u4Byte          preVal0x6c8;\r
93         u4Byte          curVal0x6c8;\r
94         u1Byte          preVal0x6cc;\r
95         u1Byte          curVal0x6cc;\r
96         BOOLEAN         bLimitedDig;\r
97 \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
102 \r
103         // algorithm related\r
104         u1Byte          preAlgorithm;\r
105         u1Byte          curAlgorithm;\r
106         u1Byte          btStatus;\r
107         u1Byte          wifiChnlInfo[3];\r
108 \r
109         u4Byte          preRaMask;\r
110         u4Byte          curRaMask;\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
117         u4Byte          nArpCnt;\r
118 \r
119         u1Byte          errorCondition;\r
120 } COEX_DM_8723B_1ANT, *PCOEX_DM_8723B_1ANT;\r
121 \r
122 typedef struct _COEX_STA_8723B_1ANT{\r
123         BOOLEAN                                 bBtLinkExist;\r
124         BOOLEAN                                 bScoExist;\r
125         BOOLEAN                                 bA2dpExist;\r
126         BOOLEAN                                 bHidExist;\r
127         BOOLEAN                                 bPanExist;\r
128         BOOLEAN                                 bBtHiPriLinkExist;\r
129 \r
130         BOOLEAN                                 bUnderLps;\r
131         BOOLEAN                                 bUnderIps;\r
132         u4Byte                                  specialPktPeriodCnt;\r
133         u4Byte                                  highPriorityTx;\r
134         u4Byte                                  highPriorityRx;\r
135         u4Byte                                  lowPriorityTx;\r
136         u4Byte                                  lowPriorityRx;\r
137         s1Byte                                  btRssi;\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
148         u1Byte                                  btRetryCnt;\r
149         u1Byte                                  btInfoExt;\r
150         u4Byte                                  popEventCnt;\r
151         u1Byte                                  nScanAPNum;\r
152 \r
153         u4Byte                                  nCRCOK_CCK;\r
154         u4Byte                                  nCRCOK_11g;\r
155         u4Byte                                  nCRCOK_11n;\r
156         u4Byte                                  nCRCOK_11nAgg;\r
157         \r
158         u4Byte                                  nCRCErr_CCK;\r
159         u4Byte                                  nCRCErr_11g;\r
160         u4Byte                                  nCRCErr_11n;\r
161         u4Byte                                  nCRCErr_11nAgg; \r
162 \r
163         BOOLEAN                                 bCCKLock;\r
164         BOOLEAN                                 bPreCCKLock;\r
165         BOOLEAN                                 bCCKEverLock;\r
166         u1Byte                                  nCoexTableType;\r
167 \r
168         BOOLEAN                                 bForceLpsOn;\r
169 }COEX_STA_8723B_1ANT, *PCOEX_STA_8723B_1ANT;\r
170 \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
173 \r
174 typedef struct _PSDSCAN_STA_8723B_1ANT{\r
175 \r
176 BOOLEAN                 bIsAntDetEnable;\r
177 BOOLEAN                 bIsAntIsoEnable;\r
178 BOOLEAN                 bIsPSDScanEnable;\r
179 \r
180 u4Byte                  realcentFreq;  //ex:2412\r
181 s4Byte                  realoffset;\r
182 u4Byte                  realspan;\r
183 u4Byte                  realseconds;\r
184         \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
203 \r
204 //===========================================\r
205 // The following is interface which will notify coex module.\r
206 //===========================================\r
207 VOID\r
208 EXhalbtc8723b1ant_PowerOnSetting(\r
209         IN      PBTC_COEXIST            pBtCoexist\r
210         );\r
211 VOID\r
212 EXhalbtc8723b1ant_PreLoadFirmware(\r
213         IN      PBTC_COEXIST            pBtCoexist\r
214         );\r
215 VOID\r
216 EXhalbtc8723b1ant_InitHwConfig(\r
217         IN      PBTC_COEXIST            pBtCoexist,\r
218         IN      BOOLEAN                         bWifiOnly\r
219         );\r
220 VOID\r
221 EXhalbtc8723b1ant_InitCoexDm(\r
222         IN      PBTC_COEXIST            pBtCoexist\r
223         );\r
224 VOID\r
225 EXhalbtc8723b1ant_IpsNotify(\r
226         IN      PBTC_COEXIST            pBtCoexist,\r
227         IN      u1Byte                  type\r
228         );\r
229 VOID\r
230 EXhalbtc8723b1ant_LpsNotify(\r
231         IN      PBTC_COEXIST            pBtCoexist,\r
232         IN      u1Byte                  type\r
233         );\r
234 VOID\r
235 EXhalbtc8723b1ant_ScanNotify(\r
236         IN      PBTC_COEXIST            pBtCoexist,\r
237         IN      u1Byte                  type\r
238         );\r
239 VOID\r
240 EXhalbtc8723b1ant_ConnectNotify(\r
241         IN      PBTC_COEXIST            pBtCoexist,\r
242         IN      u1Byte                  type\r
243         );\r
244 VOID\r
245 EXhalbtc8723b1ant_MediaStatusNotify(\r
246         IN      PBTC_COEXIST                    pBtCoexist,\r
247         IN      u1Byte                          type\r
248         );\r
249 VOID\r
250 EXhalbtc8723b1ant_SpecialPacketNotify(\r
251         IN      PBTC_COEXIST                    pBtCoexist,\r
252         IN      u1Byte                          type\r
253         );\r
254 VOID\r
255 EXhalbtc8723b1ant_BtInfoNotify(\r
256         IN      PBTC_COEXIST            pBtCoexist,\r
257         IN      pu1Byte                 tmpBuf,\r
258         IN      u1Byte                  length\r
259         );\r
260 VOID\r
261 EXhalbtc8723b1ant_RfStatusNotify(\r
262         IN      PBTC_COEXIST                    pBtCoexist,\r
263         IN      u1Byte                                  type\r
264         );\r
265 VOID\r
266 EXhalbtc8723b1ant_HaltNotify(\r
267         IN      PBTC_COEXIST                    pBtCoexist\r
268         );\r
269 VOID\r
270 EXhalbtc8723b1ant_PnpNotify(\r
271         IN      PBTC_COEXIST                    pBtCoexist,\r
272         IN      u1Byte                          pnpState\r
273         );\r
274 VOID\r
275 EXhalbtc8723b1ant_CoexDmReset(\r
276         IN      PBTC_COEXIST                    pBtCoexist\r
277         );\r
278 VOID\r
279 EXhalbtc8723b1ant_Periodical(\r
280         IN      PBTC_COEXIST                    pBtCoexist\r
281         );\r
282 VOID\r
283 EXhalbtc8723b1ant_DisplayCoexInfo(\r
284         IN      PBTC_COEXIST            pBtCoexist\r
285         );\r
286 VOID\r
287 EXhalbtc8723b1ant_AntennaDetection(\r
288         IN      PBTC_COEXIST                    pBtCoexist,\r
289         IN      u4Byte                                  centFreq,\r
290         IN      u4Byte                                  offset,\r
291         IN      u4Byte                                  span,\r
292         IN      u4Byte                                  seconds\r
293         );\r
294 VOID\r
295 EXhalbtc8723b1ant_AntennaIsolation(\r
296         IN      PBTC_COEXIST                    pBtCoexist,\r
297         IN      u4Byte                                  centFreq,\r
298         IN      u4Byte                                  offset,\r
299         IN      u4Byte                                  span,\r
300         IN      u4Byte                                  seconds\r
301         );\r
302 \r
303 VOID\r
304 EXhalbtc8723b1ant_PSDScan(\r
305         IN      PBTC_COEXIST                    pBtCoexist,\r
306         IN      u4Byte                                  centFreq,\r
307         IN      u4Byte                                  offset,\r
308         IN      u4Byte                                  span,\r
309         IN      u4Byte                                  seconds\r
310         );\r
311 VOID\r
312 EXhalbtc8723b1ant_DisplayAntIsolation(\r
313         IN      PBTC_COEXIST                    pBtCoexist\r
314         );\r
315 \r