GNU Linux-libre 4.14.332-gnu1
[releases.git] / drivers / staging / rtl8723bs / include / hal_btcoex.h
1 /******************************************************************************
2  *
3  * Copyright(c) 2013 Realtek Corporation. All rights reserved.
4  *
5  * This program is free software; you can redistribute it and/or modify it
6  * under the terms of version 2 of the GNU General Public License as
7  * published by the Free Software Foundation.
8  *
9  * This program is distributed in the hope that it will be useful, but WITHOUT
10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12  * more details.
13  *
14  ******************************************************************************/
15 #ifndef __HAL_BTCOEX_H__
16 #define __HAL_BTCOEX_H__
17
18 #include <drv_types.h>
19
20 /*  Some variables can't get from outsrc BT-Coex, */
21 /*  so we need to save here */
22 typedef struct _BT_COEXIST
23 {
24         u8 bBtExist;
25         u8 btTotalAntNum;
26         u8 btChipType;
27         u8 bInitlized;
28 } BT_COEXIST, *PBT_COEXIST;
29
30 void DBG_BT_INFO(u8 *dbgmsg);
31
32 void hal_btcoex_SetBTCoexist(struct adapter *padapter, u8 bBtExist);
33 u8 hal_btcoex_IsBtExist(struct adapter *padapter);
34 u8 hal_btcoex_IsBtDisabled(struct adapter *);
35 void hal_btcoex_SetChipType(struct adapter *padapter, u8 chipType);
36 void hal_btcoex_SetPgAntNum(struct adapter *padapter, u8 antNum);
37 void hal_btcoex_SetSingleAntPath(struct adapter *padapter, u8 singleAntPath);
38
39 u8 hal_btcoex_Initialize(struct adapter *padapter);
40 void hal_btcoex_PowerOnSetting(struct adapter *padapter);
41 void hal_btcoex_InitHwConfig(struct adapter *padapter, u8 bWifiOnly);
42
43 void hal_btcoex_IpsNotify(struct adapter *padapter, u8 type);
44 void hal_btcoex_LpsNotify(struct adapter *padapter, u8 type);
45 void hal_btcoex_ScanNotify(struct adapter *padapter, u8 type);
46 void hal_btcoex_ConnectNotify(struct adapter *padapter, u8 action);
47 void hal_btcoex_MediaStatusNotify(struct adapter *padapter, u8 mediaStatus);
48 void hal_btcoex_SpecialPacketNotify(struct adapter *padapter, u8 pktType);
49 void hal_btcoex_IQKNotify(struct adapter *padapter, u8 state);
50 void hal_btcoex_BtInfoNotify(struct adapter *padapter, u8 length, u8 *tmpBuf);
51 void hal_btcoex_SuspendNotify(struct adapter *padapter, u8 state);
52 void hal_btcoex_HaltNotify(struct adapter *padapter);
53
54 void hal_btcoex_Hanlder(struct adapter *padapter);
55
56 s32 hal_btcoex_IsBTCoexCtrlAMPDUSize(struct adapter *padapter);
57 void hal_btcoex_SetManualControl(struct adapter *padapter, u8 bmanual);
58 u8 hal_btcoex_IsBtControlLps(struct adapter *);
59 u8 hal_btcoex_IsLpsOn(struct adapter *);
60 u8 hal_btcoex_RpwmVal(struct adapter *);
61 u8 hal_btcoex_LpsVal(struct adapter *);
62 u32 hal_btcoex_GetRaMask(struct adapter *);
63 void hal_btcoex_RecordPwrMode(struct adapter *padapter, u8 *pCmdBuf, u8 cmdLen);
64 void hal_btcoex_DisplayBtCoexInfo(struct adapter *, u8 *pbuf, u32 bufsize);
65 void hal_btcoex_SetDBG(struct adapter *, u32 *pDbgModule);
66 u32 hal_btcoex_GetDBG(struct adapter *, u8 *pStrBuf, u32 bufSize);
67
68 #endif /*  !__HAL_BTCOEX_H__ */