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