xref: /OK3568_Linux_fs/kernel/drivers/net/wireless/rockchip_wlan/rtl8723ds/include/hal_btcoex.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /******************************************************************************
3  *
4  * Copyright(c) 2013 - 2017 Realtek Corporation.
5  *
6  * This program is free software; you can redistribute it and/or modify it
7  * under the terms of version 2 of the GNU General Public License as
8  * published by the Free Software Foundation.
9  *
10  * This program is distributed in the hope that it will be useful, but WITHOUT
11  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
13  * more details.
14  *
15  *****************************************************************************/
16 #ifndef __HAL_BTCOEX_H__
17 #define __HAL_BTCOEX_H__
18 
19 #include <drv_types.h>
20 
21 /* Some variables can't get from outsrc BT-Coex,
22  * so we need to save here */
23 typedef struct _BT_COEXIST {
24 	u8 bBtExist;
25 	u8 btTotalAntNum;
26 	u8 btChipType;
27 	u8 bInitlized;
28 	u8 btAntisolation;
29 } BT_COEXIST, *PBT_COEXIST;
30 
31 void DBG_BT_INFO(u8 *dbgmsg);
32 
33 void hal_btcoex_SetBTCoexist(PADAPTER padapter, u8 bBtExist);
34 u8 hal_btcoex_IsBtExist(PADAPTER padapter);
35 u8 hal_btcoex_IsBtDisabled(PADAPTER);
36 void hal_btcoex_SetChipType(PADAPTER padapter, u8 chipType);
37 void hal_btcoex_SetPgAntNum(PADAPTER padapter, u8 antNum);
38 
39 u8 hal_btcoex_Initialize(PADAPTER padapter);
40 void hal_btcoex_PowerOnSetting(PADAPTER padapter);
41 void hal_btcoex_AntInfoSetting(PADAPTER padapter);
42 void hal_btcoex_PowerOffSetting(PADAPTER padapter);
43 void hal_btcoex_PreLoadFirmware(PADAPTER padapter);
44 void hal_btcoex_InitHwConfig(PADAPTER padapter, u8 bWifiOnly);
45 
46 void hal_btcoex_IpsNotify(PADAPTER padapter, u8 type);
47 void hal_btcoex_LpsNotify(PADAPTER padapter, u8 type);
48 void hal_btcoex_ScanNotify(PADAPTER padapter, u8 type);
49 void hal_btcoex_ConnectNotify(PADAPTER padapter, u8 action);
50 void hal_btcoex_MediaStatusNotify(PADAPTER padapter, u8 mediaStatus);
51 void hal_btcoex_SpecialPacketNotify(PADAPTER padapter, u8 pktType);
52 void hal_btcoex_IQKNotify(PADAPTER padapter, u8 state);
53 void hal_btcoex_BtInfoNotify(PADAPTER padapter, u8 length, u8 *tmpBuf);
54 void hal_btcoex_BtMpRptNotify(PADAPTER padapter, u8 length, u8 *tmpBuf);
55 void hal_btcoex_SuspendNotify(PADAPTER padapter, u8 state);
56 void hal_btcoex_HaltNotify(PADAPTER padapter, u8 do_halt);
57 void hal_btcoex_SwitchBtTRxMask(PADAPTER padapter);
58 
59 void hal_btcoex_Hanlder(PADAPTER padapter);
60 
61 s32 hal_btcoex_IsBTCoexRejectAMPDU(PADAPTER padapter);
62 s32 hal_btcoex_IsBTCoexCtrlAMPDUSize(PADAPTER padapter);
63 u32 hal_btcoex_GetAMPDUSize(PADAPTER padapter);
64 void hal_btcoex_SetManualControl(PADAPTER padapter, u8 bmanual);
65 u8 hal_btcoex_1Ant(PADAPTER padapter);
66 u8 hal_btcoex_IsBtControlLps(PADAPTER);
67 u8 hal_btcoex_IsLpsOn(PADAPTER);
68 u8 hal_btcoex_RpwmVal(PADAPTER);
69 u8 hal_btcoex_LpsVal(PADAPTER);
70 u32 hal_btcoex_GetRaMask(PADAPTER);
71 u8 hal_btcoex_query_reduced_wl_pwr_lvl(PADAPTER padapter);
72 void hal_btcoex_set_reduced_wl_pwr_lvl(PADAPTER padapter, u8 val);
73 void hal_btcoex_do_reduce_wl_pwr_lvl(PADAPTER padapter);
74 void hal_btcoex_RecordPwrMode(PADAPTER padapter, u8 *pCmdBuf, u8 cmdLen);
75 void hal_btcoex_DisplayBtCoexInfo(PADAPTER, u8 *pbuf, u32 bufsize);
76 void hal_btcoex_SetDBG(PADAPTER, u32 *pDbgModule);
77 u32 hal_btcoex_GetDBG(PADAPTER, u8 *pStrBuf, u32 bufSize);
78 u8 hal_btcoex_IncreaseScanDeviceNum(PADAPTER);
79 u8 hal_btcoex_IsBtLinkExist(PADAPTER);
80 void hal_btcoex_SetBtPatchVersion(PADAPTER, u16 btHciVer, u16 btPatchVer);
81 void hal_btcoex_SetHciVersion(PADAPTER, u16 hciVersion);
82 void hal_btcoex_SendScanNotify(PADAPTER, u8 type);
83 void hal_btcoex_StackUpdateProfileInfo(void);
84 void hal_btcoex_pta_off_on_notify(PADAPTER padapter, u8 bBTON);
85 void hal_btcoex_SetAntIsolationType(PADAPTER padapter, u8 anttype);
86 #ifdef CONFIG_LOAD_PHY_PARA_FROM_FILE
87 	int hal_btcoex_AntIsolationConfig_ParaFile(PADAPTER	Adapter, char *pFileName);
88 	int hal_btcoex_ParseAntIsolationConfigFile(PADAPTER Adapter, char	*buffer);
89 #endif /* CONFIG_LOAD_PHY_PARA_FROM_FILE */
90 u16 hal_btcoex_btreg_read(PADAPTER padapter, u8 type, u16 addr, u32 *data);
91 u16 hal_btcoex_btreg_write(PADAPTER padapter, u8 type, u16 addr, u16 val);
92 void hal_btcoex_set_rfe_type(u8 type);
93 void hal_btcoex_switchband_notify(u8 under_scan, u8 band_type);
94 void hal_btcoex_WlFwDbgInfoNotify(PADAPTER padapter, u8* tmpBuf, u8 length);
95 void hal_btcoex_rx_rate_change_notify(PADAPTER padapter, u8 is_data_frame, u8 rate_id);
96 u16 hal_btcoex_btset_testode(PADAPTER padapter, u8 type);
97 
98 #ifdef CONFIG_RF4CE_COEXIST
99 void hal_btcoex_set_rf4ce_link_state(u8 state);
100 u8 hal_btcoex_get_rf4ce_link_state(void);
101 #endif
102 
103 #ifdef CONFIG_SDIO_HCI
104 #include <hal_sdio_coex.h>	/* sdio multi coex */
105 #endif
106 
107 #endif /* !__HAL_BTCOEX_H__ */
108