net: wireless: rockchip_wlan: add rtl8723bs support
[firefly-linux-kernel-4.4.55.git] / drivers / net / wireless / rockchip_wlan / rtl8723bs / include / rtl8814a_hal.h
1 /******************************************************************************\r
2  *\r
3  * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.\r
4  *\r
5  * This program is free software; you can redistribute it and/or modify it\r
6  * under the terms of version 2 of the GNU General Public License as\r
7  * published by the Free Software Foundation.\r
8  *\r
9  * This program is distributed in the hope that it will be useful, but WITHOUT\r
10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or\r
11  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for\r
12  * more details.\r
13  *\r
14  * You should have received a copy of the GNU General Public License along with\r
15  * this program; if not, write to the Free Software Foundation, Inc.,\r
16  * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA\r
17  *\r
18  *\r
19  ******************************************************************************/\r
20 #ifndef __RTL8814A_HAL_H__\r
21 #define __RTL8814A_HAL_H__\r
22 \r
23 //#include "hal_com.h"\r
24 #include "hal_data.h"\r
25 \r
26 //include HAL Related header after HAL Related compiling flags \r
27 #include "rtl8814a_spec.h"\r
28 #include "rtl8814a_rf.h"\r
29 #include "rtl8814a_dm.h"\r
30 #include "rtl8814a_recv.h"\r
31 #include "rtl8814a_xmit.h"\r
32 #include "rtl8814a_cmd.h"\r
33 #include "rtl8814a_led.h"\r
34 #include "Hal8814PwrSeq.h"\r
35 #include "Hal8814PhyReg.h"\r
36 #include "Hal8814PhyCfg.h"\r
37 #ifdef DBG_CONFIG_ERROR_DETECT\r
38 #include "rtl8814a_sreset.h"\r
39 #endif //DBG_CONFIG_ERROR_DETECT\r
40 \r
41 \r
42 typedef enum _TX_PWR_PERCENTAGE{\r
43         TX_PWR_PERCENTAGE_0 = 0x01, // 12.5%\r
44         TX_PWR_PERCENTAGE_1 = 0x02, // 25%\r
45         TX_PWR_PERCENTAGE_2 = 0x04, // 50%\r
46         TX_PWR_PERCENTAGE_3 = 0x08, //100%, default target output power.        \r
47 } TX_PWR_PERCENTAGE;\r
48 \r
49 \r
50 enum{\r
51                 VOLTAGE_V25                                             = 0x03,\r
52                 LDOE25_SHIFT                                    = 28 ,\r
53         };\r
54 /* max. iram is 64k , max dmen is 32k. Total = 96k = 0x18000*/\r
55 #define FW_SIZE                                                 0x18000\r
56 #define FW_START_ADDRESS   0x1000\r
57 typedef struct _RT_FIRMWARE_8814 {\r
58         FIRMWARE_SOURCE eFWSource;\r
59 #ifdef CONFIG_EMBEDDED_FWIMG\r
60         u8*                     szFwBuffer;\r
61 #else\r
62         u8                      szFwBuffer[FW_SIZE];\r
63 #endif\r
64         u32                     ulFwLength;\r
65 } RT_FIRMWARE_8814, *PRT_FIRMWARE_8814;\r
66 \r
67 #define PAGE_SIZE_TX_8814       PAGE_SIZE_128\r
68 #define BCNQ_PAGE_NUM_8814              0x08\r
69 \r
70 //---------------------------------------------------------------------\r
71 //              RTL8814AU From header\r
72 //---------------------------------------------------------------------\r
73                 #define RTL8814A_FW_IMG                                 "rtl8814a/FW_NIC.bin"\r
74                 #define RTL8814A_FW_WW_IMG                              "rtl8814a/FW_WoWLAN.bin"\r
75                 #define RTL8814A_PHY_REG                                        "rtl8814a/PHY_REG.txt" \r
76                 #define RTL8814A_PHY_RADIO_A                            "rtl8814a/RadioA.txt"\r
77                 #define RTL8814A_PHY_RADIO_B                            "rtl8814a/RadioB.txt"\r
78                 #define RTL8814A_PHY_RADIO_C                            "rtl8814a/RadioC.txt"\r
79                 #define RTL8814A_PHY_RADIO_D                            "rtl8814a/RadioD.txt"\r
80                 #define RTL8814A_TXPWR_TRACK                            "rtl8814a/TxPowerTrack.txt"                     \r
81                 #define RTL8814A_AGC_TAB                                        "rtl8814a/AGC_TAB.txt"\r
82                 #define RTL8814A_PHY_MACREG                             "rtl8814a/MAC_REG.txt"\r
83                 #define RTL8814A_PHY_REG_PG                             "rtl8814a/PHY_REG_PG.txt"\r
84                 #define RTL8814A_PHY_REG_MP                             "rtl8814a/PHY_REG_MP.txt" \r
85                 #define RTL8814A_TXPWR_LMT                              "rtl8814a/TXPWR_LMT.txt" \r
86                 #define RTL8814A_WIFI_ANT_ISOLATION             "rtl8814a/wifi_ant_isolation.txt"\r
87 \r
88 #define Rtl8814A_NIC_PWR_ON_FLOW                                rtl8814A_power_on_flow\r
89 #define Rtl8814A_NIC_RF_OFF_FLOW                                rtl8814A_radio_off_flow\r
90 #define Rtl8814A_NIC_DISABLE_FLOW                               rtl8814A_card_disable_flow\r
91 #define Rtl8814A_NIC_ENABLE_FLOW                                rtl8814A_card_enable_flow\r
92 #define Rtl8814A_NIC_SUSPEND_FLOW                               rtl8814A_suspend_flow\r
93 #define Rtl8814A_NIC_RESUME_FLOW                                rtl8814A_resume_flow\r
94 #define Rtl8814A_NIC_PDN_FLOW                                   rtl8814A_hwpdn_flow\r
95 #define Rtl8814A_NIC_LPS_ENTER_FLOW                     rtl8814A_enter_lps_flow\r
96 #define Rtl8814A_NIC_LPS_LEAVE_FLOW                     rtl8814A_leave_lps_flow \r
97 \r
98 //=====================================================\r
99 //                              New     Firmware Header(8-byte alinment required)\r
100 //=====================================================\r
101 //--- LONG WORD 0 ----\r
102 #define GET_FIRMWARE_HDR_SIGNATURE_3081(__FwHdr)                LE_BITS_TO_4BYTE(__FwHdr, 0, 16) \r
103 #define GET_FIRMWARE_HDR_CATEGORY_3081(__FwHdr)         LE_BITS_TO_4BYTE(__FwHdr, 16, 8) // AP/NIC and USB/PCI\r
104 #define GET_FIRMWARE_HDR_FUNCTION_3081(__FwHdr)                 LE_BITS_TO_4BYTE(__FwHdr, 24, 8) // Reserved for different FW function indcation, for further use when driver needs to download different FW in different conditions\r
105 #define GET_FIRMWARE_HDR_VERSION_3081(__FwHdr)                  LE_BITS_TO_4BYTE(__FwHdr+4, 0, 16)// FW Version\r
106 #define GET_FIRMWARE_HDR_SUB_VER_3081(__FwHdr)                  LE_BITS_TO_4BYTE(__FwHdr+4, 16, 8) // FW Subversion, default 0x00\r
107 #define GET_FIRMWARE_HDR_SUB_IDX_3081(__FwHdr)                  LE_BITS_TO_4BYTE(__FwHdr+4, 24, 8) // FW Subversion Index\r
108 \r
109 //--- LONG WORD 1 ----\r
110 #define GET_FIRMWARE_HDR_SVN_IDX_3081(__FwHdr)                  LE_BITS_TO_4BYTE(__FwHdr+8, 0, 32)// The SVN entry index\r
111 #define GET_FIRMWARE_HDR_RSVD1_3081(__FwHdr)                    LE_BITS_TO_4BYTE(__FwHdr+12, 0, 32)\r
112 \r
113 //--- LONG WORD 2 ----\r
114 #define GET_FIRMWARE_HDR_MONTH_3081(__FwHdr)                    LE_BITS_TO_4BYTE(__FwHdr+16, 0, 8) // Release time Month field\r
115 #define GET_FIRMWARE_HDR_DATE_3081(__FwHdr)                             LE_BITS_TO_4BYTE(__FwHdr+16, 8, 8) // Release time Date field\r
116 #define GET_FIRMWARE_HDR_HOUR_3081(__FwHdr)                             LE_BITS_TO_4BYTE(__FwHdr+16, 16, 8)// Release time Hour field\r
117 #define GET_FIRMWARE_HDR_MINUTE_3081(__FwHdr)                   LE_BITS_TO_4BYTE(__FwHdr+16, 24, 8)// Release time Minute field\r
118 #define GET_FIRMWARE_HDR_YEAR_3081(__FwHdr)                             LE_BITS_TO_4BYTE(__FwHdr+20, 0, 16)// Release time Year field\r
119 #define GET_FIRMWARE_HDR_FOUNDRY_3081(__FwHdr)                  LE_BITS_TO_4BYTE(__FwHdr+20, 16, 8)// Release time Foundry field\r
120 #define GET_FIRMWARE_HDR_RSVD2_3081(__FwHdr)                    LE_BITS_TO_4BYTE(__FwHdr+20, 24, 8)\r
121 \r
122 //--- LONG WORD 3 ----\r
123 #define GET_FIRMWARE_HDR_MEM_UASGE_DL_FROM_3081(__FwHdr)                LE_BITS_TO_4BYTE(__FwHdr+24, 0, 1)\r
124 #define GET_FIRMWARE_HDR_MEM_UASGE_BOOT_FROM_3081(__FwHdr)      LE_BITS_TO_4BYTE(__FwHdr+24, 1, 1)\r
125 #define GET_FIRMWARE_HDR_MEM_UASGE_BOOT_LOADER_3081(__FwHdr)LE_BITS_TO_4BYTE(__FwHdr+24, 2, 1)\r
126 #define GET_FIRMWARE_HDR_MEM_UASGE_IRAM_3081(__FwHdr)                   LE_BITS_TO_4BYTE(__FwHdr+24, 3, 1)\r
127 #define GET_FIRMWARE_HDR_MEM_UASGE_ERAM_3081(__FwHdr)                   LE_BITS_TO_4BYTE(__FwHdr+24, 4, 1)\r
128 #define GET_FIRMWARE_HDR_MEM_UASGE_RSVD4_3081(__FwHdr)          LE_BITS_TO_4BYTE(__FwHdr+24, 5, 3)\r
129 #define GET_FIRMWARE_HDR_RSVD3_3081(__FwHdr)                                    LE_BITS_TO_4BYTE(__FwHdr+24, 8, 8)\r
130 #define GET_FIRMWARE_HDR_BOOT_LOADER_SZ_3081(__FwHdr)                   LE_BITS_TO_4BYTE(__FwHdr+24, 16, 16)\r
131 #define GET_FIRMWARE_HDR_RSVD5_3081(__FwHdr)                                    LE_BITS_TO_4BYTE(__FwHdr+28, 0, 32)\r
132 \r
133 //--- LONG WORD 4 ----\r
134 #define GET_FIRMWARE_HDR_TOTAL_DMEM_SZ_3081(__FwHdr)    LE_BITS_TO_4BYTE(__FwHdr+36, 0, 32)\r
135 #define GET_FIRMWARE_HDR_FW_CFG_SZ_3081(__FwHdr)                LE_BITS_TO_4BYTE(__FwHdr+36, 0, 16)\r
136 #define GET_FIRMWARE_HDR_FW_ATTR_SZ_3081(__FwHdr)               LE_BITS_TO_4BYTE(__FwHdr+36, 16, 16)\r
137 \r
138 //--- LONG WORD 5 ----\r
139 #define GET_FIRMWARE_HDR_IROM_3081(__FwHdr)                             LE_BITS_TO_4BYTE(__FwHdr+40, 0, 32)\r
140 #define GET_FIRMWARE_HDR_EROM_3081(__FwHdr)                             LE_BITS_TO_4BYTE(__FwHdr+44, 0, 32)\r
141 \r
142 //--- LONG WORD 6 ----\r
143 #define GET_FIRMWARE_HDR_IRAM_SZ_3081(__FwHdr)                  LE_BITS_TO_4BYTE(__FwHdr+48, 0, 32)\r
144 #define GET_FIRMWARE_HDR_ERAM_SZ_3081(__FwHdr)                  LE_BITS_TO_4BYTE(__FwHdr+52, 0, 32)\r
145 \r
146 //--- LONG WORD 7 ----\r
147 #define GET_FIRMWARE_HDR_RSVD6_3081(__FwHdr)                    LE_BITS_TO_4BYTE(__FwHdr+56, 0, 32)\r
148 #define GET_FIRMWARE_HDR_RSVD7_3081(__FwHdr)                    LE_BITS_TO_4BYTE(__FwHdr+60, 0, 32)\r
149 \r
150 \r
151 \r
152 //\r
153 // 2013/08/16 MH MOve from SDIO.h for common use.\r
154 //\r
155 #if defined(CONFIG_SDIO_HCI) || defined(CONFIG_USB_HCI)\r
156 #define TRX_SHARE_MODE_8814A                            0       //TRX Buffer Share Index\r
157 #define BASIC_RXFF_SIZE_8814A                           24576//Basic RXFF Size is 24K = 24*1024 Unit: Byte\r
158 #define TRX_SHARE_BUFF_UNIT_8814A                       65536//TRX Share Buffer unit Size 64K = 64*1024 Unit: Byte\r
159 #define TRX_SHARE_BUFF_UNIT_PAGE_8814A  TRX_SHARE_BUFF_UNIT_8814A/PAGE_SIZE_8814A//512 Pages\r
160 \r
161 //Origin: \r
162 #define  HPQ_PGNUM_8814A                                        0x20    //High Queue\r
163 #define  LPQ_PGNUM_8814A                                        0x20    //Low Queue\r
164 #define  NPQ_PGNUM_8814A                                        0x20    //Normal Queue\r
165 #define  EPQ_PGNUM_8814A                                        0x20    //Extra Queue\r
166 \r
167 #else   // #if defined(CONFIG_SDIO_HCI) || defined(CONFIG_USB_HCI)\r
168 \r
169 #define  HPQ_PGNUM_8814A                20\r
170 #define  NPQ_PGNUM_8814A                20\r
171 #define  LPQ_PGNUM_8814A                20 //1972\r
172 #define  EPQ_PGNUM_8814A                20\r
173 #define  BCQ_PGNUM_8814A                32\r
174 \r
175 #endif //#if defined(CONFIG_SDIO_HCI) || defined(CONFIG_USB_HCI)\r
176 \r
177 #ifdef CONFIG_WOWLAN\r
178 #define WOWLAN_PAGE_NUM_8814    0x00\r
179 #else\r
180 #define WOWLAN_PAGE_NUM_8814    0x00\r
181 #endif\r
182 \r
183 #define PAGE_SIZE_8814A                                         128//TXFF Page Size, Unit: Byte\r
184 #define MAX_RX_DMA_BUFFER_SIZE_8814A            0x5C00  //BASIC_RXFF_SIZE_8814A+TRX_SHARE_MODE_8814A*TRX_SHARE_BUFF_UNIT_8814A //Basic RXFF Size + ShareBuffer Size\r
185 #define TX_PAGE_BOUNDARY_8814A                  TXPKT_PGNUM_8814A       // Need to enlarge boundary, by KaiYuan\r
186 #define TX_PAGE_BOUNDARY_WOWLAN_8814A   TXPKT_PGNUM_8814A       //TODO: 20130415 KaiYuan Check this value later\r
187 \r
188 \r
189 #define  TOTAL_PGNUM_8814A              2048\r
190 #define  TXPKT_PGNUM_8814A              (2048 - BCNQ_PAGE_NUM_8814-WOWLAN_PAGE_NUM_8814)\r
191 #define  PUB_PGNUM_8814A                (TXPKT_PGNUM_8814A-HPQ_PGNUM_8814A-NPQ_PGNUM_8814A-LPQ_PGNUM_8814A-EPQ_PGNUM_8814A)\r
192 \r
193 //Note: For WMM Normal Chip Setting ,modify later\r
194 #define WMM_NORMAL_TX_TOTAL_PAGE_NUMBER_8814A   TX_PAGE_BOUNDARY_8814A\r
195 #define WMM_NORMAL_TX_PAGE_BOUNDARY_8814A               (WMM_NORMAL_TX_TOTAL_PAGE_NUMBER_8814A + 1)\r
196 \r
197 #define DRIVER_EARLY_INT_TIME_8814              0x05\r
198 #define BCN_DMA_ATIME_INT_TIME_8814             0x02\r
199 \r
200 \r
201 #define MAX_PAGE_SIZE                   4096    // @ page : 4k bytes\r
202 \r
203 #define EFUSE_MAX_SECTION_JAGUAR                                64\r
204 \r
205 #define HWSET_MAX_SIZE_8814A                    512\r
206 \r
207 #define EFUSE_REAL_CONTENT_LEN_8814A    1024\r
208 #define EFUSE_MAX_BANK_8814A            2\r
209 \r
210 #define EFUSE_MAP_LEN_8814A                     512\r
211 #define EFUSE_MAX_SECTION_8814A         64\r
212 #define EFUSE_MAX_WORD_UNIT_8814A               4\r
213 #define EFUSE_PROTECT_BYTES_BANK_8814A          16\r
214 \r
215 #define EFUSE_IC_ID_OFFSET_8814A                506     //For some inferiority IC purpose. added by Roger, 2009.09.02.\r
216 #define AVAILABLE_EFUSE_ADDR_8814A(addr)        (addr < EFUSE_REAL_CONTENT_LEN_8814A)\r
217 \r
218 /*-------------------------------------------------------------------------\r
219 Chip specific\r
220 -------------------------------------------------------------------------*/\r
221 \r
222 /* pic buffer descriptor */\r
223 #if 1 /* according to the define in the rtw_xmit.h, rtw_recv.h */\r
224 #define RTL8814AE_SEG_NUM  TX_BUFFER_SEG_NUM /* 0:2 seg, 1: 4 seg, 2: 8 seg */\r
225 #define TX_DESC_NUM_8814A  TXDESC_NUM   /* 128 */\r
226 #define RX_DESC_NUM_8814A  PCI_MAX_RX_COUNT /* 128 */\r
227 #ifdef CONFIG_CONCURRENT_MODE\r
228 #define BE_QUEUE_TX_DESC_NUM_8814A  (TXDESC_NUM<<1)    /* 256 */\r
229 #else\r
230 #define BE_QUEUE_TX_DESC_NUM_8814A  (TXDESC_NUM+(TXDESC_NUM>>1)) /* 192 */\r
231 #endif\r
232 #else\r
233 #define RTL8814AE_SEG_NUM  TX_BUFFER_SEG_NUM /* 0:2 seg, 1: 4 seg, 2: 8 seg */\r
234 #define TX_DESC_NUM_8814A  128 /* 1024//2048 change by ylb 20130624 */\r
235 #define RX_DESC_NUM_8814A  128 /* 1024 //512 change by ylb 20130624 */\r
236 #endif\r
237 \r
238 // <Roger_Notes> To prevent out of boundary programming case, leave 1byte and program full section\r
239 // 9bytes + 1byt + 5bytes and pre 1byte.\r
240 // For worst case:\r
241 // | 1byte|----8bytes----|1byte|--5bytes--| \r
242 // |         |            Reserved(14bytes)           |\r
243 //\r
244 #define EFUSE_OOB_PROTECT_BYTES                 15      // PG data exclude header, dummy 6 bytes frome CP test and reserved 1byte.\r
245 \r
246 /* rtl8814_hal_init.c */\r
247 s32 FirmwareDownload8814A( PADAPTER     Adapter, BOOLEAN bUsedWoWLANFw);\r
248 void    InitializeFirmwareVars8814(PADAPTER padapter);\r
249 \r
250 VOID\r
251 Hal_InitEfuseVars_8814A(\r
252         IN      PADAPTER        Adapter\r
253         );\r
254 \r
255 s32 InitLLTTable8814A(\r
256         IN      PADAPTER        Adapter\r
257         );\r
258 \r
259 \r
260 void InitRDGSetting8814A(PADAPTER padapter);\r
261 \r
262 //void CheckAutoloadState8812A(PADAPTER padapter);\r
263 \r
264 // EFuse\r
265 u8      GetEEPROMSize8814A(PADAPTER padapter);\r
266 void InitPGData8814A(PADAPTER padapter);\r
267 \r
268 void    hal_ReadPROMVersion8814A(PADAPTER padapter, u8 *hwinfo, BOOLEAN AutoLoadFail);\r
269 void    hal_ReadTxPowerInfo8814A(PADAPTER padapter, u8* hwinfo,BOOLEAN  AutoLoadFail);\r
270 void    hal_ReadBoardType8814A(PADAPTER pAdapter, u8* hwinfo,BOOLEAN AutoLoadFail);\r
271 void    hal_ReadThermalMeter_8814A(PADAPTER     Adapter, u8* PROMContent,BOOLEAN        AutoloadFail);\r
272 void    hal_ReadChannelPlan8814A(PADAPTER padapter, u8 *hwinfo, BOOLEAN AutoLoadFail);\r
273 void    hal_EfuseParseXtal_8814A(PADAPTER pAdapter, u8* hwinfo,BOOLEAN AutoLoadFail);\r
274 void    hal_ReadAntennaDiversity8814A(PADAPTER pAdapter,u8* PROMContent,BOOLEAN AutoLoadFail);\r
275 void    hal_Read_TRX_antenna_8814A(PADAPTER     Adapter, u8 *PROMContent, BOOLEAN AutoloadFail);\r
276 VOID hal_ReadAmplifierType_8814A(\r
277         IN      PADAPTER                Adapter \r
278         );\r
279 VOID hal_ReadPAType_8814A(\r
280         IN      PADAPTER        Adapter,\r
281         IN      u8*                     PROMContent,\r
282         IN      BOOLEAN         AutoloadFail,\r
283         OUT u8*         pPAType, \r
284         OUT u8*         pLNAType\r
285         );\r
286 void hal_GetRxGainOffset_8814A(\r
287         PADAPTER        Adapter,\r
288         pu1Byte         PROMContent,\r
289         BOOLEAN         AutoloadFail\r
290         );\r
291 void Hal_EfuseParseKFreeData_8814A(\r
292         IN              PADAPTER                Adapter,\r
293         IN              u8                              *PROMContent,\r
294         IN              BOOLEAN                 AutoloadFail);\r
295 void    hal_ReadRFEType_8814A(PADAPTER Adapter,u8* PROMContent, BOOLEAN AutoloadFail);\r
296 void    hal_EfuseParseBTCoexistInfo8814A(PADAPTER Adapter, u8* hwinfo, BOOLEAN AutoLoadFail);\r
297 \r
298 //void  hal_ReadUsbType_8812AU(PADAPTER Adapter, u8 *PROMContent, BOOLEAN AutoloadFail);\r
299 //int   FirmwareDownloadBT(PADAPTER Adapter, PRT_MP_FIRMWARE pFirmware);\r
300 void    hal_ReadRemoteWakeup_8814A(PADAPTER padapter, u8* hwinfo, BOOLEAN AutoLoadFail);\r
301 u8      MgntQuery_NssTxRate(u16 Rate);\r
302 \r
303 //BOOLEAN HalDetectPwrDownMode8812(PADAPTER Adapter);\r
304         \r
305 #ifdef CONFIG_WOWLAN\r
306 void Hal_DetectWoWMode(PADAPTER pAdapter);\r
307 #endif //CONFIG_WOWLAN\r
308 \r
309 void _InitBeaconParameters_8814A(PADAPTER padapter);\r
310 void SetBeaconRelatedRegisters8814A(PADAPTER padapter);\r
311 \r
312 void ReadRFType8814A(PADAPTER padapter);\r
313 void InitDefaultValue8814A(PADAPTER padapter);\r
314 \r
315 void SetHwReg8814A(PADAPTER padapter, u8 variable, u8 *pval);\r
316 void GetHwReg8814A(PADAPTER padapter, u8 variable, u8 *pval);\r
317 u8 SetHalDefVar8814A(PADAPTER padapter, HAL_DEF_VARIABLE variable, void *pval);\r
318 u8 GetHalDefVar8814A(PADAPTER padapter, HAL_DEF_VARIABLE variable, void *pval);\r
319 s32 c2h_id_filter_ccx_8814a(u8 *buf);\r
320 void rtl8814_set_hal_ops(struct hal_ops *pHalFunc);\r
321 void init_hal_spec_8814a(_adapter *adapter);\r
322 \r
323 // register\r
324 void SetBcnCtrlReg(PADAPTER padapter, u8 SetBits, u8 ClearBits);\r
325 void SetBcnCtrlReg(PADAPTER     Adapter, u8     SetBits, u8     ClearBits);\r
326 void rtl8814_start_thread(PADAPTER padapter);\r
327 void rtl8814_stop_thread(PADAPTER padapter);\r
328 \r
329 \r
330 #ifdef CONFIG_PCI_HCI\r
331 BOOLEAN InterruptRecognized8814AE(PADAPTER Adapter);\r
332 VOID    UpdateInterruptMask8814AE(PADAPTER Adapter, u32 AddMSR, u32 AddMSR1, u32 RemoveMSR, u32 RemoveMSR1);\r
333 u16     get_txbd_idx_addr(u16 ff_hwaddr);\r
334 #endif\r
335 \r
336 #ifdef CONFIG_BT_COEXIST\r
337 void rtl8812a_combo_card_WifiOnlyHwInit(PADAPTER Adapter);\r
338 #endif\r
339 \r
340 #endif //__RTL8188E_HAL_H__\r
341 \r