1/* SPDX-License-Identifier: GPL-2.0 */
2/******************************************************************************
3 *
4 * Copyright(c) 2013 Realtek Corporation. All rights reserved.
5 *
6 ******************************************************************************/
7#ifndef __HAL_BTCOEX_H__
8#define __HAL_BTCOEX_H__
9
10#include <drv_types.h>
11
12#define LPS_RPWM_WAIT_MS	300
13
14/*  Some variables can't get from outsrc BT-Coex, */
15/*  so we need to save here */
16struct bt_coexist {
17	u8 bBtExist;
18	u8 btTotalAntNum;
19	u8 btChipType;
20	u8 bInitlized;
21};
22
23void hal_btcoex_SetBTCoexist(struct adapter *padapter, u8 bBtExist);
24bool hal_btcoex_IsBtExist(struct adapter *padapter);
25bool hal_btcoex_IsBtDisabled(struct adapter *);
26void hal_btcoex_SetPgAntNum(struct adapter *padapter, u8 antNum);
27void hal_btcoex_SetSingleAntPath(struct adapter *padapter, u8 singleAntPath);
28
29void hal_btcoex_Initialize(void *padapter);
30void hal_btcoex_PowerOnSetting(struct adapter *padapter);
31void hal_btcoex_InitHwConfig(struct adapter *padapter, u8 bWifiOnly);
32
33void hal_btcoex_IpsNotify(struct adapter *padapter, u8 type);
34void hal_btcoex_LpsNotify(struct adapter *padapter, u8 type);
35void hal_btcoex_ScanNotify(struct adapter *padapter, u8 type);
36void hal_btcoex_ConnectNotify(struct adapter *padapter, u8 action);
37void hal_btcoex_MediaStatusNotify(struct adapter *padapter, u8 mediaStatus);
38void hal_btcoex_SpecialPacketNotify(struct adapter *padapter, u8 pktType);
39void hal_btcoex_IQKNotify(struct adapter *padapter, u8 state);
40void hal_btcoex_BtInfoNotify(struct adapter *padapter, u8 length, u8 *tmpBuf);
41void hal_btcoex_SuspendNotify(struct adapter *padapter, u8 state);
42void hal_btcoex_HaltNotify(struct adapter *padapter);
43
44void hal_btcoex_Handler(struct adapter *padapter);
45
46s32 hal_btcoex_IsBTCoexCtrlAMPDUSize(struct adapter *padapter);
47bool hal_btcoex_IsBtControlLps(struct adapter *padapter);
48bool hal_btcoex_IsLpsOn(struct adapter *padapter);
49u8 hal_btcoex_RpwmVal(struct adapter *);
50u8 hal_btcoex_LpsVal(struct adapter *);
51u32 hal_btcoex_GetRaMask(struct adapter *);
52void hal_btcoex_RecordPwrMode(struct adapter *padapter, u8 *pCmdBuf, u8 cmdLen);
53
54#endif /*  !__HAL_BTCOEX_H__ */
55