1 /* SPDX-License-Identifier: GPL-2.0 */
2 /******************************************************************************
4 * Copyright(c) 2007 - 2012 Realtek Corporation. All rights reserved.
6 ******************************************************************************/
7 /* The following is for 8723B 2Ant BT Co-exist definition */
8 #define BT_INFO_8723B_2ANT_B_FTP BIT7
9 #define BT_INFO_8723B_2ANT_B_A2DP BIT6
10 #define BT_INFO_8723B_2ANT_B_HID BIT5
11 #define BT_INFO_8723B_2ANT_B_SCO_BUSY BIT4
12 #define BT_INFO_8723B_2ANT_B_ACL_BUSY BIT3
13 #define BT_INFO_8723B_2ANT_B_INQ_PAGE BIT2
14 #define BT_INFO_8723B_2ANT_B_SCO_ESCO BIT1
15 #define BT_INFO_8723B_2ANT_B_CONNECTION BIT0
17 #define BTC_RSSI_COEX_THRESH_TOL_8723B_2ANT 2
19 typedef enum _BT_INFO_SRC_8723B_2ANT {
20 BT_INFO_SRC_8723B_2ANT_WIFI_FW = 0x0,
21 BT_INFO_SRC_8723B_2ANT_BT_RSP = 0x1,
22 BT_INFO_SRC_8723B_2ANT_BT_ACTIVE_SEND = 0x2,
23 BT_INFO_SRC_8723B_2ANT_MAX
24 } BT_INFO_SRC_8723B_2ANT, *PBT_INFO_SRC_8723B_2ANT;
26 typedef enum _BT_8723B_2ANT_BT_STATUS {
27 BT_8723B_2ANT_BT_STATUS_NON_CONNECTED_IDLE = 0x0,
28 BT_8723B_2ANT_BT_STATUS_CONNECTED_IDLE = 0x1,
29 BT_8723B_2ANT_BT_STATUS_INQ_PAGE = 0x2,
30 BT_8723B_2ANT_BT_STATUS_ACL_BUSY = 0x3,
31 BT_8723B_2ANT_BT_STATUS_SCO_BUSY = 0x4,
32 BT_8723B_2ANT_BT_STATUS_ACL_SCO_BUSY = 0x5,
33 BT_8723B_2ANT_BT_STATUS_MAX
34 } BT_8723B_2ANT_BT_STATUS, *PBT_8723B_2ANT_BT_STATUS;
36 typedef enum _BT_8723B_2ANT_COEX_ALGO {
37 BT_8723B_2ANT_COEX_ALGO_UNDEFINED = 0x0,
38 BT_8723B_2ANT_COEX_ALGO_SCO = 0x1,
39 BT_8723B_2ANT_COEX_ALGO_HID = 0x2,
40 BT_8723B_2ANT_COEX_ALGO_A2DP = 0x3,
41 BT_8723B_2ANT_COEX_ALGO_A2DP_PANHS = 0x4,
42 BT_8723B_2ANT_COEX_ALGO_PANEDR = 0x5,
43 BT_8723B_2ANT_COEX_ALGO_PANHS = 0x6,
44 BT_8723B_2ANT_COEX_ALGO_PANEDR_A2DP = 0x7,
45 BT_8723B_2ANT_COEX_ALGO_PANEDR_HID = 0x8,
46 BT_8723B_2ANT_COEX_ALGO_HID_A2DP_PANEDR = 0x9,
47 BT_8723B_2ANT_COEX_ALGO_HID_A2DP = 0xa,
48 BT_8723B_2ANT_COEX_ALGO_MAX = 0xb,
49 } BT_8723B_2ANT_COEX_ALGO, *PBT_8723B_2ANT_COEX_ALGO;
51 typedef struct _COEX_DM_8723B_2ANT {
57 bool bCurIgnoreWlanAct;
58 bool bPreIgnoreWlanAct;
63 bool bResetTdmaAdjust;
67 bool bPreBtAutoReport;
68 bool bCurBtAutoReport;
71 bool bPreRfRxLpfShrink;
72 bool bCurRfRxLpfShrink;
74 bool bPreLowPenaltyRa;
75 bool bCurLowPenaltyRa;
94 /* algorithm related */
100 bool bNeedRecover0x948;
102 } COEX_DM_8723B_2ANT, *PCOEX_DM_8723B_2ANT;
104 typedef struct _COEX_STA_8723B_2ANT {
120 u8 preWifiRssiState[4];
121 bool bC2hBtInfoReqSent;
122 u8 btInfoC2h[BT_INFO_SRC_8723B_2ANT_MAX][10];
123 u32 btInfoC2hCnt[BT_INFO_SRC_8723B_2ANT_MAX];
124 bool bC2hBtInquiryPage;
127 } COEX_STA_8723B_2ANT, *PCOEX_STA_8723B_2ANT;
130 /* The following is interface which will notify coex module. */
132 void EXhalbtc8723b2ant_PowerOnSetting(PBTC_COEXIST pBtCoexist);
133 void EXhalbtc8723b2ant_InitHwConfig(PBTC_COEXIST pBtCoexist, bool bWifiOnly);
134 void EXhalbtc8723b2ant_InitCoexDm(PBTC_COEXIST pBtCoexist);
135 void EXhalbtc8723b2ant_IpsNotify(PBTC_COEXIST pBtCoexist, u8 type);
136 void EXhalbtc8723b2ant_LpsNotify(PBTC_COEXIST pBtCoexist, u8 type);
137 void EXhalbtc8723b2ant_ScanNotify(PBTC_COEXIST pBtCoexist, u8 type);
138 void EXhalbtc8723b2ant_ConnectNotify(PBTC_COEXIST pBtCoexist, u8 type);
139 void EXhalbtc8723b2ant_MediaStatusNotify(PBTC_COEXIST pBtCoexist, u8 type);
140 void EXhalbtc8723b2ant_SpecialPacketNotify(PBTC_COEXIST pBtCoexist, u8 type);
141 void EXhalbtc8723b2ant_BtInfoNotify(
142 PBTC_COEXIST pBtCoexist, u8 *tmpBuf, u8 length
144 void EXhalbtc8723b2ant_HaltNotify(PBTC_COEXIST pBtCoexist);
145 void EXhalbtc8723b2ant_PnpNotify(PBTC_COEXIST pBtCoexist, u8 pnpState);
146 void EXhalbtc8723b2ant_Periodical(PBTC_COEXIST pBtCoexist);
147 void EXhalbtc8723b2ant_DisplayCoexInfo(PBTC_COEXIST pBtCoexist);