File Index
Files and directories
Sign in
FILE

HalBtc8723b1Ant.h

File preview with syntax highlighting.

linux-6.19.14/drivers/staging/rtl8723bs/hal/HalBtc8723b1Ant.h OBJECTIVE-C
  1/* SPDX-License-Identifier: GPL-2.0 */
  2/******************************************************************************
  3 *
  4 * Copyright(c) 2007 - 2012 Realtek Corporation. All rights reserved.
  5 *
  6 ******************************************************************************/
  7/*  The following is for 8723B 1ANT BT Co-exist definition */
  8#define	BT_INFO_8723B_1ANT_B_FTP		BIT7
  9#define	BT_INFO_8723B_1ANT_B_A2DP		BIT6
 10#define	BT_INFO_8723B_1ANT_B_HID		BIT5
 11#define	BT_INFO_8723B_1ANT_B_SCO_BUSY		BIT4
 12#define	BT_INFO_8723B_1ANT_B_ACL_BUSY		BIT3
 13#define	BT_INFO_8723B_1ANT_B_INQ_PAGE		BIT2
 14#define	BT_INFO_8723B_1ANT_B_SCO_ESCO		BIT1
 15#define	BT_INFO_8723B_1ANT_B_CONNECTION		BIT0
 16
 17#define	BT_INFO_8723B_1ANT_A2DP_BASIC_RATE(_BT_INFO_EXT_)	\
 18		(((_BT_INFO_EXT_ & BIT0)) ? true : false)
 19
 20#define	BTC_RSSI_COEX_THRESH_TOL_8723B_1ANT 2
 21
 22#define  BT_8723B_1ANT_WIFI_NOISY_THRESH 30   /* max: 255 */
 23
 24enum {
 25	BT_INFO_SRC_8723B_1ANT_WIFI_FW			= 0x0,
 26	BT_INFO_SRC_8723B_1ANT_BT_RSP				= 0x1,
 27	BT_INFO_SRC_8723B_1ANT_BT_ACTIVE_SEND		= 0x2,
 28	BT_INFO_SRC_8723B_1ANT_MAX
 29};
 30
 31enum {
 32	BT_8723B_1ANT_BT_STATUS_NON_CONNECTED_IDLE	= 0x0,
 33	BT_8723B_1ANT_BT_STATUS_CONNECTED_IDLE		= 0x1,
 34	BT_8723B_1ANT_BT_STATUS_INQ_PAGE				= 0x2,
 35	BT_8723B_1ANT_BT_STATUS_ACL_BUSY				= 0x3,
 36	BT_8723B_1ANT_BT_STATUS_SCO_BUSY				= 0x4,
 37	BT_8723B_1ANT_BT_STATUS_ACL_SCO_BUSY			= 0x5,
 38	BT_8723B_1ANT_BT_STATUS_MAX
 39};
 40
 41enum {
 42	BT_8723B_1ANT_WIFI_STATUS_NON_CONNECTED_IDLE           = 0x0,
 43	BT_8723B_1ANT_WIFI_STATUS_NON_CONNECTED_ASSO_AUTH_SCAN = 0x1,
 44	BT_8723B_1ANT_WIFI_STATUS_CONNECTED_SCAN               = 0x2,
 45	BT_8723B_1ANT_WIFI_STATUS_CONNECTED_SPECIAL_PKT        = 0x3,
 46	BT_8723B_1ANT_WIFI_STATUS_CONNECTED_IDLE               = 0x4,
 47	BT_8723B_1ANT_WIFI_STATUS_CONNECTED_BUSY               = 0x5,
 48	BT_8723B_1ANT_WIFI_STATUS_MAX
 49};
 50
 51enum {
 52	BT_8723B_1ANT_COEX_ALGO_UNDEFINED		= 0x0,
 53	BT_8723B_1ANT_COEX_ALGO_SCO				= 0x1,
 54	BT_8723B_1ANT_COEX_ALGO_HID				= 0x2,
 55	BT_8723B_1ANT_COEX_ALGO_A2DP			= 0x3,
 56	BT_8723B_1ANT_COEX_ALGO_A2DP_PANHS		= 0x4,
 57	BT_8723B_1ANT_COEX_ALGO_PANEDR			= 0x5,
 58	BT_8723B_1ANT_COEX_ALGO_PANHS			= 0x6,
 59	BT_8723B_1ANT_COEX_ALGO_PANEDR_A2DP		= 0x7,
 60	BT_8723B_1ANT_COEX_ALGO_PANEDR_HID		= 0x8,
 61	BT_8723B_1ANT_COEX_ALGO_HID_A2DP_PANEDR	= 0x9,
 62	BT_8723B_1ANT_COEX_ALGO_HID_A2DP		= 0xa,
 63	BT_8723B_1ANT_COEX_ALGO_MAX				= 0xb,
 64};
 65
 66struct coex_dm_8723b_1ant {
 67	/*  fw mechanism */
 68	bool bCurIgnoreWlanAct;
 69	bool bPreIgnoreWlanAct;
 70	u8 prePsTdma;
 71	u8 curPsTdma;
 72	u8 psTdmaPara[5];
 73	u8 psTdmaDuAdjType;
 74	bool bAutoTdmaAdjust;
 75	bool bPrePsTdmaOn;
 76	bool bCurPsTdmaOn;
 77	bool bPreBtAutoReport;
 78	bool bCurBtAutoReport;
 79	u8 preLps;
 80	u8 curLps;
 81	u8 preRpwm;
 82	u8 curRpwm;
 83
 84	/*  sw mechanism */
 85	bool bPreLowPenaltyRa;
 86	bool bCurLowPenaltyRa;
 87	u32 preVal0x6c0;
 88	u32 curVal0x6c0;
 89	u32 preVal0x6c4;
 90	u32 curVal0x6c4;
 91	u32 preVal0x6c8;
 92	u32 curVal0x6c8;
 93	u8 preVal0x6cc;
 94	u8 curVal0x6cc;
 95	bool bLimitedDig;
 96
 97	u32 backupArfrCnt1;	/*  Auto Rate Fallback Retry cnt */
 98	u32 backupArfrCnt2;	/*  Auto Rate Fallback Retry cnt */
 99	u16 backupRetryLimit;
100	u8 backupAmpduMaxTime;
101
102	/*  algorithm related */
103	u8 preAlgorithm;
104	u8 curAlgorithm;
105	u8 btStatus;
106	u8 wifiChnlInfo[3];
107
108	u32 preRaMask;
109	u32 curRaMask;
110	u8 preArfrType;
111	u8 curArfrType;
112	u8 preRetryLimitType;
113	u8 curRetryLimitType;
114	u8 preAmpduTimeType;
115	u8 curAmpduTimeType;
116	u32 nArpCnt;
117
118	u8 errorCondition;
119};
120
121struct coex_sta_8723b_1ant {
122	bool bBtLinkExist;
123	bool bScoExist;
124	bool bA2dpExist;
125	bool bHidExist;
126	bool bPanExist;
127
128	bool bUnderLps;
129	bool bUnderIps;
130	u32 specialPktPeriodCnt;
131	u32 highPriorityTx;
132	u32 highPriorityRx;
133	u32 lowPriorityTx;
134	u32 lowPriorityRx;
135	s8 btRssi;
136	bool bBtTxRxMask;
137	u8 preBtRssiState;
138	u8 preWifiRssiState[4];
139	bool bC2hBtInfoReqSent;
140	u8 btInfoC2h[BT_INFO_SRC_8723B_1ANT_MAX][10];
141	u32 btInfoC2hCnt[BT_INFO_SRC_8723B_1ANT_MAX];
142	bool bC2hBtInquiryPage;
143	bool bC2hBtPage; /* Add for win8.1 page out issue */
144	bool bWiFiIsHighPriTask; /* Add for win8.1 page out issue */
145	u8 btRetryCnt;
146	u8 btInfoExt;
147	u32 popEventCnt;
148	u8 nScanAPNum;
149
150	u32 nCRCOK_CCK;
151	u32 nCRCOK_11g;
152	u32 nCRCOK_11n;
153	u32 nCRCOK_11nAgg;
154
155	u32 nCRCErr_CCK;
156	u32 nCRCErr_11g;
157	u32 nCRCErr_11n;
158	u32 nCRCErr_11nAgg;
159
160	bool bCCKLock;
161	bool bPreCCKLock;
162	u8 nCoexTableType;
163
164	bool bForceLpsOn;
165};
166
167/*  */
168/*  The following is interface which will notify coex module. */
169/*  */
170void EXhalbtc8723b1ant_PowerOnSetting(struct btc_coexist *pBtCoexist);
171void EXhalbtc8723b1ant_InitHwConfig(struct btc_coexist *pBtCoexist, bool bWifiOnly);
172void EXhalbtc8723b1ant_InitCoexDm(struct btc_coexist *pBtCoexist);
173void EXhalbtc8723b1ant_IpsNotify(struct btc_coexist *pBtCoexist, u8 type);
174void EXhalbtc8723b1ant_LpsNotify(struct btc_coexist *pBtCoexist, u8 type);
175void EXhalbtc8723b1ant_ScanNotify(struct btc_coexist *pBtCoexist, u8 type);
176void EXhalbtc8723b1ant_ConnectNotify(struct btc_coexist *pBtCoexist, u8 type);
177void EXhalbtc8723b1ant_MediaStatusNotify(struct btc_coexist *pBtCoexist, u8 type);
178void EXhalbtc8723b1ant_SpecialPacketNotify(struct btc_coexist *pBtCoexist, u8 type);
179void EXhalbtc8723b1ant_BtInfoNotify(
180	struct btc_coexist *pBtCoexist, u8 *tmpBuf, u8 length
181);
182void EXhalbtc8723b1ant_HaltNotify(struct btc_coexist *pBtCoexist);
183void EXhalbtc8723b1ant_PnpNotify(struct btc_coexist *pBtCoexist, u8 pnpState);
184void EXhalbtc8723b1ant_Periodical(struct btc_coexist *pBtCoexist);
~/ Read-only file preview.