--- /dev/null
+#ifndef __HALBTC_OUT_SRC_H__\r
+#define __HALBTC_OUT_SRC_H__\r
+\r
+#define NORMAL_EXEC FALSE\r
+#define FORCE_EXEC TRUE\r
+\r
+#define BTC_RF_OFF 0x0\r
+#define BTC_RF_ON 0x1\r
+\r
+#define BTC_RF_A 0x0\r
+#define BTC_RF_B 0x1\r
+#define BTC_RF_C 0x2\r
+#define BTC_RF_D 0x3\r
+\r
+#define BTC_SMSP SINGLEMAC_SINGLEPHY\r
+#define BTC_DMDP DUALMAC_DUALPHY\r
+#define BTC_DMSP DUALMAC_SINGLEPHY\r
+#define BTC_MP_UNKNOWN 0xff\r
+\r
+#define BT_COEX_ANT_TYPE_PG 0\r
+#define BT_COEX_ANT_TYPE_ANTDIV 1\r
+#define BT_COEX_ANT_TYPE_DETECTED 2\r
+\r
+#define BTC_MIMO_PS_STATIC 0 // 1ss\r
+#define BTC_MIMO_PS_DYNAMIC 1 // 2ss\r
+\r
+#define BTC_RATE_DISABLE 0\r
+#define BTC_RATE_ENABLE 1\r
+\r
+// single Antenna definition\r
+#define BTC_ANT_PATH_WIFI 0\r
+#define BTC_ANT_PATH_BT 1\r
+#define BTC_ANT_PATH_PTA 2\r
+// dual Antenna definition\r
+#define BTC_ANT_WIFI_AT_MAIN 0\r
+#define BTC_ANT_WIFI_AT_AUX 1\r
+// coupler Antenna definition\r
+#define BTC_ANT_WIFI_AT_CPL_MAIN 0\r
+#define BTC_ANT_WIFI_AT_CPL_AUX 1\r
+\r
+typedef enum _BTC_POWERSAVE_TYPE{\r
+ BTC_PS_WIFI_NATIVE = 0, // wifi original power save behavior\r
+ BTC_PS_LPS_ON = 1,\r
+ BTC_PS_LPS_OFF = 2,\r
+ BTC_PS_MAX\r
+} BTC_POWERSAVE_TYPE, *PBTC_POWERSAVE_TYPE;\r
+\r
+typedef enum _BTC_BT_REG_TYPE{\r
+ BTC_BT_REG_RF = 0,\r
+ BTC_BT_REG_MODEM = 1,\r
+ BTC_BT_REG_BLUEWIZE = 2,\r
+ BTC_BT_REG_VENDOR = 3,\r
+ BTC_BT_REG_LE = 4,\r
+ BTC_BT_REG_MAX\r
+} BTC_BT_REG_TYPE, *PBTC_BT_REG_TYPE;\r
+\r
+typedef enum _BTC_CHIP_INTERFACE{\r
+ BTC_INTF_UNKNOWN = 0,\r
+ BTC_INTF_PCI = 1,\r
+ BTC_INTF_USB = 2,\r
+ BTC_INTF_SDIO = 3,\r
+ BTC_INTF_MAX\r
+} BTC_CHIP_INTERFACE, *PBTC_CHIP_INTERFACE;\r
+\r
+typedef enum _BTC_CHIP_TYPE{\r
+ BTC_CHIP_UNDEF = 0,\r
+ BTC_CHIP_CSR_BC4 = 1,\r
+ BTC_CHIP_CSR_BC8 = 2,\r
+ BTC_CHIP_RTL8723A = 3,\r
+ BTC_CHIP_RTL8821 = 4,\r
+ BTC_CHIP_RTL8723B = 5,\r
+ BTC_CHIP_MAX\r
+} BTC_CHIP_TYPE, *PBTC_CHIP_TYPE;\r
+\r
+// following is for wifi link status\r
+#define WIFI_STA_CONNECTED BIT0\r
+#define WIFI_AP_CONNECTED BIT1\r
+#define WIFI_HS_CONNECTED BIT2\r
+#define WIFI_P2P_GO_CONNECTED BIT3\r
+#define WIFI_P2P_GC_CONNECTED BIT4\r
+\r
+// following is for command line utility\r
+#define CL_SPRINTF rsprintf\r
+#define CL_PRINTF DCMD_Printf\r
+\r
+\r
+typedef struct _BTC_BOARD_INFO{\r
+ // The following is some board information\r
+ u1Byte btChipType;\r
+ u1Byte pgAntNum; // pg ant number\r
+ u1Byte btdmAntNum; // ant number for btdm\r
+ u1Byte btdmAntNumByAntDet; // ant number for btdm after antenna detection\r
+ u1Byte btdmAntPos; //Bryant Add to indicate Antenna Position for (pgAntNum = 2) && (btdmAntNum =1) (DPDT+1Ant case)\r
+ u1Byte singleAntPath; // current used for 8723b only, 1=>s0, 0=>s1\r
+ u1Byte bTfbgaPackage; //for Antenna detect threshold \r
+ u1Byte btdmAntDetFinish;\r
+ u1Byte antType;\r
+} BTC_BOARD_INFO, *PBTC_BOARD_INFO;\r
+\r
+typedef enum _BTC_DBG_OPCODE{\r
+ BTC_DBG_SET_COEX_NORMAL = 0x0,\r
+ BTC_DBG_SET_COEX_WIFI_ONLY = 0x1,\r
+ BTC_DBG_SET_COEX_BT_ONLY = 0x2,\r
+ BTC_DBG_SET_COEX_DEC_BT_PWR = 0x3,\r
+ BTC_DBG_SET_COEX_BT_AFH_MAP = 0x4,\r
+ BTC_DBG_SET_COEX_BT_IGNORE_WLAN_ACT = 0x5,\r
+ BTC_DBG_MAX\r
+}BTC_DBG_OPCODE,*PBTC_DBG_OPCODE;\r
+\r
+typedef enum _BTC_RSSI_STATE{\r
+ BTC_RSSI_STATE_HIGH = 0x0,\r
+ BTC_RSSI_STATE_MEDIUM = 0x1,\r
+ BTC_RSSI_STATE_LOW = 0x2,\r
+ BTC_RSSI_STATE_STAY_HIGH = 0x3,\r
+ BTC_RSSI_STATE_STAY_MEDIUM = 0x4,\r
+ BTC_RSSI_STATE_STAY_LOW = 0x5,\r
+ BTC_RSSI_MAX\r
+}BTC_RSSI_STATE,*PBTC_RSSI_STATE;\r
+#define BTC_RSSI_HIGH(_rssi_) ((_rssi_==BTC_RSSI_STATE_HIGH||_rssi_==BTC_RSSI_STATE_STAY_HIGH)? TRUE:FALSE)\r
+#define BTC_RSSI_MEDIUM(_rssi_) ((_rssi_==BTC_RSSI_STATE_MEDIUM||_rssi_==BTC_RSSI_STATE_STAY_MEDIUM)? TRUE:FALSE)\r
+#define BTC_RSSI_LOW(_rssi_) ((_rssi_==BTC_RSSI_STATE_LOW||_rssi_==BTC_RSSI_STATE_STAY_LOW)? TRUE:FALSE)\r
+\r
+typedef enum _BTC_WIFI_ROLE{\r
+ BTC_ROLE_STATION = 0x0,\r
+ BTC_ROLE_AP = 0x1,\r
+ BTC_ROLE_IBSS = 0x2,\r
+ BTC_ROLE_HS_MODE = 0x3,\r
+ BTC_ROLE_MAX\r
+}BTC_WIFI_ROLE,*PBTC_WIFI_ROLE;\r
+\r
+typedef enum _BTC_WIRELESS_FREQ{\r
+ BTC_FREQ_2_4G = 0x0,\r
+ BTC_FREQ_5G = 0x1,\r
+ BTC_FREQ_MAX \r
+}BTC_WIRELESS_FREQ,*PBTC_WIRELESS_FREQ;\r
+\r
+typedef enum _BTC_WIFI_BW_MODE{\r
+ BTC_WIFI_BW_LEGACY = 0x0,\r
+ BTC_WIFI_BW_HT20 = 0x1,\r
+ BTC_WIFI_BW_HT40 = 0x2,\r
+ BTC_WIFI_BW_HT80 = 0x3,\r
+ BTC_WIFI_BW_HT160 = 0x4,\r
+ BTC_WIFI_BW_MAX \r
+}BTC_WIFI_BW_MODE,*PBTC_WIFI_BW_MODE;\r
+\r
+typedef enum _BTC_WIFI_TRAFFIC_DIR{\r
+ BTC_WIFI_TRAFFIC_TX = 0x0,\r
+ BTC_WIFI_TRAFFIC_RX = 0x1,\r
+ BTC_WIFI_TRAFFIC_MAX \r
+}BTC_WIFI_TRAFFIC_DIR,*PBTC_WIFI_TRAFFIC_DIR;\r
+\r
+typedef enum _BTC_WIFI_PNP{\r
+ BTC_WIFI_PNP_WAKE_UP = 0x0,\r
+ BTC_WIFI_PNP_SLEEP = 0x1,\r
+ BTC_WIFI_PNP_MAX\r
+}BTC_WIFI_PNP,*PBTC_WIFI_PNP;\r
+\r
+typedef enum _BTC_IOT_PEER\r
+{\r
+ BTC_IOT_PEER_UNKNOWN = 0,\r
+ BTC_IOT_PEER_REALTEK = 1,\r
+ BTC_IOT_PEER_REALTEK_92SE = 2,\r
+ BTC_IOT_PEER_BROADCOM = 3,\r
+ BTC_IOT_PEER_RALINK = 4,\r
+ BTC_IOT_PEER_ATHEROS = 5,\r
+ BTC_IOT_PEER_CISCO = 6,\r
+ BTC_IOT_PEER_MERU = 7, \r
+ BTC_IOT_PEER_MARVELL = 8,\r
+ BTC_IOT_PEER_REALTEK_SOFTAP = 9,// peer is RealTek SOFT_AP, by Bohn, 2009.12.17\r
+ BTC_IOT_PEER_SELF_SOFTAP = 10, // Self is SoftAP\r
+ BTC_IOT_PEER_AIRGO = 11,\r
+ BTC_IOT_PEER_INTEL = 12, \r
+ BTC_IOT_PEER_RTK_APCLIENT = 13, \r
+ BTC_IOT_PEER_REALTEK_81XX = 14, \r
+ BTC_IOT_PEER_REALTEK_WOW = 15,\r
+ BTC_IOT_PEER_REALTEK_JAGUAR_BCUTAP = 16,\r
+ BTC_IOT_PEER_REALTEK_JAGUAR_CCUTAP = 17,\r
+ BTC_IOT_PEER_MAX,\r
+}BTC_IOT_PEER, *PBTC_IOT_PEER;\r
+\r
+//for 8723b-d cut large current issue\r
+typedef enum _BT_WIFI_COEX_STATE{\r
+ BTC_WIFI_STAT_INIT,\r
+ BTC_WIFI_STAT_IQK,\r
+ BTC_WIFI_STAT_NORMAL_OFF,\r
+ BTC_WIFI_STAT_MP_OFF,\r
+ BTC_WIFI_STAT_NORMAL,\r
+ BTC_WIFI_STAT_ANT_DIV,\r
+ BTC_WIFI_STAT_MAX\r
+}BT_WIFI_COEX_STATE,*PBT_WIFI_COEX_STATE;\r
+\r
+typedef enum _BT_ANT_TYPE{\r
+ BTC_ANT_TYPE_0,\r
+ BTC_ANT_TYPE_1,\r
+ BTC_ANT_TYPE_2,\r
+ BTC_ANT_TYPE_3,\r
+ BTC_ANT_TYPE_4,\r
+ BTC_ANT_TYPE_MAX\r
+}BT_ANT_TYPE,*PBT_ANT_TYPE;\r
+\r
+// defined for BFP_BTC_GET\r
+typedef enum _BTC_GET_TYPE{\r
+ // type BOOLEAN\r
+ BTC_GET_BL_HS_OPERATION,\r
+ BTC_GET_BL_HS_CONNECTING,\r
+ BTC_GET_BL_WIFI_CONNECTED,\r
+ BTC_GET_BL_WIFI_BUSY,\r
+ BTC_GET_BL_WIFI_SCAN,\r
+ BTC_GET_BL_WIFI_LINK,\r
+ BTC_GET_BL_WIFI_ROAM,\r
+ BTC_GET_BL_WIFI_4_WAY_PROGRESS,\r
+ BTC_GET_BL_WIFI_UNDER_5G,\r
+ BTC_GET_BL_WIFI_AP_MODE_ENABLE,\r
+ BTC_GET_BL_WIFI_ENABLE_ENCRYPTION,\r
+ BTC_GET_BL_WIFI_UNDER_B_MODE,\r
+ BTC_GET_BL_EXT_SWITCH,\r
+ BTC_GET_BL_WIFI_IS_IN_MP_MODE,\r
+ BTC_GET_BL_IS_ASUS_8723B,\r
+\r
+ // type s4Byte\r
+ BTC_GET_S4_WIFI_RSSI,\r
+ BTC_GET_S4_HS_RSSI,\r
+ \r
+ // type u4Byte\r
+ BTC_GET_U4_WIFI_BW,\r
+ BTC_GET_U4_WIFI_TRAFFIC_DIRECTION,\r
+ BTC_GET_U4_WIFI_FW_VER,\r
+ BTC_GET_U4_WIFI_LINK_STATUS,\r
+ BTC_GET_U4_BT_PATCH_VER,\r
+\r
+ // type u1Byte\r
+ BTC_GET_U1_WIFI_DOT11_CHNL,\r
+ BTC_GET_U1_WIFI_CENTRAL_CHNL,\r
+ BTC_GET_U1_WIFI_HS_CHNL,\r
+ BTC_GET_U1_MAC_PHY_MODE,\r
+ BTC_GET_U1_AP_NUM,\r
+ BTC_GET_U1_ANT_TYPE,\r
+ BTC_GET_U1_IOT_PEER,\r
+\r
+ //===== for 1Ant ======\r
+ BTC_GET_U1_LPS_MODE,\r
+\r
+ BTC_GET_MAX\r
+}BTC_GET_TYPE,*PBTC_GET_TYPE;\r
+\r
+// defined for BFP_BTC_SET\r
+typedef enum _BTC_SET_TYPE{\r
+ // type BOOLEAN\r
+ BTC_SET_BL_BT_DISABLE,\r
+ BTC_SET_BL_BT_TRAFFIC_BUSY,\r
+ BTC_SET_BL_BT_LIMITED_DIG,\r
+ BTC_SET_BL_FORCE_TO_ROAM,\r
+ BTC_SET_BL_TO_REJ_AP_AGG_PKT,\r
+ BTC_SET_BL_BT_CTRL_AGG_SIZE,\r
+ BTC_SET_BL_INC_SCAN_DEV_NUM,\r
+ BTC_SET_BL_BT_TX_RX_MASK,\r
+ BTC_SET_BL_MIRACAST_PLUS_BT,\r
+\r
+ // type u1Byte\r
+ BTC_SET_U1_RSSI_ADJ_VAL_FOR_AGC_TABLE_ON,\r
+ BTC_SET_U1_AGG_BUF_SIZE,\r
+\r
+ // type trigger some action\r
+ BTC_SET_ACT_GET_BT_RSSI,\r
+ BTC_SET_ACT_AGGREGATE_CTRL,\r
+ //===== for 1Ant ======\r
+ // type BOOLEAN\r
+\r
+ // type u1Byte\r
+ BTC_SET_U1_RSSI_ADJ_VAL_FOR_1ANT_COEX_TYPE,\r
+ BTC_SET_U1_LPS_VAL,\r
+ BTC_SET_U1_RPWM_VAL,\r
+ // type trigger some action\r
+ BTC_SET_ACT_LEAVE_LPS,\r
+ BTC_SET_ACT_ENTER_LPS,\r
+ BTC_SET_ACT_NORMAL_LPS,\r
+ BTC_SET_ACT_DISABLE_LOW_POWER,\r
+ BTC_SET_ACT_UPDATE_RAMASK,\r
+ BTC_SET_ACT_SEND_MIMO_PS,\r
+ // BT Coex related\r
+ BTC_SET_ACT_CTRL_BT_INFO,\r
+ BTC_SET_ACT_CTRL_BT_COEX,\r
+ BTC_SET_ACT_CTRL_8723B_ANT,\r
+ //=================\r
+ BTC_SET_MAX\r
+}BTC_SET_TYPE,*PBTC_SET_TYPE;\r
+\r
+typedef enum _BTC_DBG_DISP_TYPE{\r
+ BTC_DBG_DISP_COEX_STATISTICS = 0x0,\r
+ BTC_DBG_DISP_BT_LINK_INFO = 0x1,\r
+ BTC_DBG_DISP_WIFI_STATUS = 0x2,\r
+ BTC_DBG_DISP_MAX\r
+}BTC_DBG_DISP_TYPE,*PBTC_DBG_DISP_TYPE;\r
+\r
+typedef enum _BTC_NOTIFY_TYPE_IPS{\r
+ BTC_IPS_LEAVE = 0x0,\r
+ BTC_IPS_ENTER = 0x1,\r
+ BTC_IPS_MAX\r
+}BTC_NOTIFY_TYPE_IPS,*PBTC_NOTIFY_TYPE_IPS;\r
+typedef enum _BTC_NOTIFY_TYPE_LPS{\r
+ BTC_LPS_DISABLE = 0x0,\r
+ BTC_LPS_ENABLE = 0x1,\r
+ BTC_LPS_MAX\r
+}BTC_NOTIFY_TYPE_LPS,*PBTC_NOTIFY_TYPE_LPS;\r
+typedef enum _BTC_NOTIFY_TYPE_SCAN{\r
+ BTC_SCAN_FINISH = 0x0,\r
+ BTC_SCAN_START = 0x1,\r
+ BTC_SCAN_MAX\r
+}BTC_NOTIFY_TYPE_SCAN,*PBTC_NOTIFY_TYPE_SCAN;\r
+typedef enum _BTC_NOTIFY_TYPE_ASSOCIATE{\r
+ BTC_ASSOCIATE_FINISH = 0x0,\r
+ BTC_ASSOCIATE_START = 0x1,\r
+ BTC_ASSOCIATE_MAX\r
+}BTC_NOTIFY_TYPE_ASSOCIATE,*PBTC_NOTIFY_TYPE_ASSOCIATE;\r
+typedef enum _BTC_NOTIFY_TYPE_MEDIA_STATUS{\r
+ BTC_MEDIA_DISCONNECT = 0x0,\r
+ BTC_MEDIA_CONNECT = 0x1,\r
+ BTC_MEDIA_MAX\r
+}BTC_NOTIFY_TYPE_MEDIA_STATUS,*PBTC_NOTIFY_TYPE_MEDIA_STATUS;\r
+typedef enum _BTC_NOTIFY_TYPE_SPECIAL_PACKET{\r
+ BTC_PACKET_UNKNOWN = 0x0,\r
+ BTC_PACKET_DHCP = 0x1,\r
+ BTC_PACKET_ARP = 0x2,\r
+ BTC_PACKET_EAPOL = 0x3,\r
+ BTC_PACKET_MAX\r
+}BTC_NOTIFY_TYPE_SPECIAL_PACKET,*PBTC_NOTIFY_TYPE_SPECIAL_PACKET;\r
+typedef enum _BTC_NOTIFY_TYPE_STACK_OPERATION{\r
+ BTC_STACK_OP_NONE = 0x0,\r
+ BTC_STACK_OP_INQ_PAGE_PAIR_START = 0x1,\r
+ BTC_STACK_OP_INQ_PAGE_PAIR_FINISH = 0x2,\r
+ BTC_STACK_OP_MAX\r
+}BTC_NOTIFY_TYPE_STACK_OPERATION,*PBTC_NOTIFY_TYPE_STACK_OPERATION;\r
+\r
+//Bryant Add\r
+typedef enum _BTC_ANTENNA_POS{\r
+ BTC_ANTENNA_AT_MAIN_PORT = 0x1,\r
+ BTC_ANTENNA_AT_AUX_PORT = 0x2,\r
+}BTC_ANTENNA_POS,*PBTC_ANTENNA_POS;\r
+\r
+//Bryant Add\r
+typedef enum _BTC_BT_OFFON{\r
+ BTC_BT_OFF = 0x0,\r
+ BTC_BT_ON = 0x1,\r
+}BTC_BTOFFON,*PBTC_BT_OFFON;\r
+\r
+typedef u1Byte\r
+(*BFP_BTC_R1)(\r
+ IN PVOID pBtcContext,\r
+ IN u4Byte RegAddr\r
+ );\r
+typedef u2Byte\r
+(*BFP_BTC_R2)(\r
+ IN PVOID pBtcContext,\r
+ IN u4Byte RegAddr\r
+ );\r
+typedef u4Byte\r
+(*BFP_BTC_R4)(\r
+ IN PVOID pBtcContext,\r
+ IN u4Byte RegAddr\r
+ );\r
+typedef VOID\r
+(*BFP_BTC_W1)(\r
+ IN PVOID pBtcContext,\r
+ IN u4Byte RegAddr,\r
+ IN u1Byte Data\r
+ );\r
+typedef VOID\r
+(*BFP_BTC_W1_BIT_MASK)(\r
+ IN PVOID pBtcContext,\r
+ IN u4Byte regAddr,\r
+ IN u1Byte bitMask,\r
+ IN u1Byte data1b\r
+ );\r
+typedef VOID\r
+(*BFP_BTC_W2)(\r
+ IN PVOID pBtcContext,\r
+ IN u4Byte RegAddr,\r
+ IN u2Byte Data\r
+ );\r
+typedef VOID\r
+(*BFP_BTC_W4)(\r
+ IN PVOID pBtcContext,\r
+ IN u4Byte RegAddr,\r
+ IN u4Byte Data\r
+ );\r
+typedef VOID\r
+(*BFP_BTC_LOCAL_REG_W1)(\r
+ IN PVOID pBtcContext,\r
+ IN u4Byte RegAddr,\r
+ IN u1Byte Data\r
+ );\r
+typedef VOID\r
+(*BFP_BTC_SET_BB_REG)(\r
+ IN PVOID pBtcContext,\r
+ IN u4Byte RegAddr,\r
+ IN u4Byte BitMask,\r
+ IN u4Byte Data\r
+ );\r
+typedef u4Byte \r
+(*BFP_BTC_GET_BB_REG)(\r
+ IN PVOID pBtcContext,\r
+ IN u4Byte RegAddr,\r
+ IN u4Byte BitMask\r
+ );\r
+typedef VOID\r
+(*BFP_BTC_SET_RF_REG)( \r
+ IN PVOID pBtcContext,\r
+ IN u1Byte eRFPath,\r
+ IN u4Byte RegAddr,\r
+ IN u4Byte BitMask,\r
+ IN u4Byte Data\r
+ );\r
+typedef u4Byte \r
+(*BFP_BTC_GET_RF_REG)(\r
+ IN PVOID pBtcContext,\r
+ IN u1Byte eRFPath,\r
+ IN u4Byte RegAddr,\r
+ IN u4Byte BitMask\r
+ );\r
+typedef VOID\r
+(*BFP_BTC_FILL_H2C)(\r
+ IN PVOID pBtcContext,\r
+ IN u1Byte elementId,\r
+ IN u4Byte cmdLen,\r
+ IN pu1Byte pCmdBuffer\r
+ );\r
+\r
+typedef BOOLEAN\r
+(*BFP_BTC_GET)(\r
+ IN PVOID pBtCoexist,\r
+ IN u1Byte getType,\r
+ OUT PVOID pOutBuf\r
+ );\r
+\r
+typedef BOOLEAN\r
+(*BFP_BTC_SET)(\r
+ IN PVOID pBtCoexist,\r
+ IN u1Byte setType,\r
+ OUT PVOID pInBuf\r
+ );\r
+typedef u2Byte\r
+(*BFP_BTC_SET_BT_REG)(\r
+ IN PVOID pBtcContext,\r
+ IN u1Byte regType,\r
+ IN u4Byte offset,\r
+ IN u4Byte value\r
+ );\r
+typedef BOOLEAN\r
+(*BFP_BTC_SET_BT_ANT_DETECTION)(\r
+ IN PVOID pBtcContext,\r
+ IN u1Byte txTime,\r
+ IN u1Byte btChnl\r
+ );\r
+typedef u2Byte \r
+(*BFP_BTC_GET_BT_REG)(\r
+ IN PVOID pBtcContext,\r
+ IN u1Byte regType,\r
+ IN u4Byte offset,\r
+ IN pu4Byte data\r
+ );\r
+typedef VOID\r
+(*BFP_BTC_DISP_DBG_MSG)(\r
+ IN PVOID pBtCoexist,\r
+ IN u1Byte dispType\r
+ );\r
+\r
+typedef struct _BTC_BT_INFO{\r
+ BOOLEAN bBtDisabled;\r
+ u1Byte rssiAdjustForAgcTableOn;\r
+ u1Byte rssiAdjustFor1AntCoexType;\r
+ BOOLEAN bPreBtCtrlAggBufSize;\r
+ BOOLEAN bBtCtrlAggBufSize;\r
+ BOOLEAN bPreRejectAggPkt;\r
+ BOOLEAN bRejectAggPkt;\r
+ BOOLEAN bIncreaseScanDevNum;\r
+ BOOLEAN bBtTxRxMask;\r
+ u1Byte preAggBufSize;\r
+ u1Byte aggBufSize;\r
+ BOOLEAN bBtBusy;\r
+ BOOLEAN bLimitedDig;\r
+ u2Byte btHciVer;\r
+ u2Byte btRealFwVer;\r
+ u1Byte btFwVer;\r
+ u4Byte getBtFwVerCnt;\r
+ BOOLEAN bMiracastPlusBt;\r
+\r
+ BOOLEAN bBtDisableLowPwr;\r
+\r
+ BOOLEAN bBtCtrlLps;\r
+ BOOLEAN bBtLpsOn;\r
+ BOOLEAN bForceToRoam; // for 1Ant solution\r
+ u1Byte lpsVal;\r
+ u1Byte rpwmVal;\r
+ u4Byte raMask;\r
+} BTC_BT_INFO, *PBTC_BT_INFO;\r
+\r
+typedef struct _BTC_STACK_INFO{\r
+ BOOLEAN bProfileNotified;\r
+ u2Byte hciVersion; // stack hci version\r
+ u1Byte numOfLink;\r
+ BOOLEAN bBtLinkExist;\r
+ BOOLEAN bScoExist;\r
+ BOOLEAN bAclExist;\r
+ BOOLEAN bA2dpExist;\r
+ BOOLEAN bHidExist;\r
+ u1Byte numOfHid;\r
+ BOOLEAN bPanExist;\r
+ BOOLEAN bUnknownAclExist;\r
+ s1Byte minBtRssi;\r
+} BTC_STACK_INFO, *PBTC_STACK_INFO;\r
+\r
+typedef struct _BTC_BT_LINK_INFO{\r
+ BOOLEAN bBtLinkExist;\r
+ BOOLEAN bBtHiPriLinkExist;\r
+ BOOLEAN bScoExist;\r
+ BOOLEAN bScoOnly;\r
+ BOOLEAN bA2dpExist;\r
+ BOOLEAN bA2dpOnly;\r
+ BOOLEAN bHidExist;\r
+ BOOLEAN bHidOnly;\r
+ BOOLEAN bPanExist;\r
+ BOOLEAN bPanOnly;\r
+ BOOLEAN bSlaveRole;\r
+ BOOLEAN bAclBusy;\r
+} BTC_BT_LINK_INFO, *PBTC_BT_LINK_INFO;\r
+\r
+typedef struct _BTC_STATISTICS{\r
+ u4Byte cntBind;\r
+ u4Byte cntPowerOn;\r
+ u4Byte cntPreLoadFirmware;\r
+ u4Byte cntInitHwConfig;\r
+ u4Byte cntInitCoexDm;\r
+ u4Byte cntIpsNotify;\r
+ u4Byte cntLpsNotify;\r
+ u4Byte cntScanNotify;\r
+ u4Byte cntConnectNotify;\r
+ u4Byte cntMediaStatusNotify;\r
+ u4Byte cntSpecialPacketNotify;\r
+ u4Byte cntBtInfoNotify;\r
+ u4Byte cntRfStatusNotify;\r
+ u4Byte cntPeriodical;\r
+ u4Byte cntCoexDmSwitch;\r
+ u4Byte cntStackOperationNotify;\r
+ u4Byte cntDbgCtrl;\r
+} BTC_STATISTICS, *PBTC_STATISTICS;\r
+\r
+typedef struct _BTC_COEXIST{\r
+ BOOLEAN bBinded; // make sure only one adapter can bind the data context\r
+ PVOID Adapter; // default adapter\r
+ BTC_BOARD_INFO boardInfo;\r
+ BTC_BT_INFO btInfo; // some bt info referenced by non-bt module\r
+ BTC_STACK_INFO stackInfo;\r
+ BTC_BT_LINK_INFO btLinkInfo;\r
+ BTC_CHIP_INTERFACE chipInterface;\r
+\r
+ BOOLEAN bInitilized;\r
+ BOOLEAN bStopCoexDm;\r
+ BOOLEAN bManualControl;\r
+ pu1Byte cliBuf;\r
+ BTC_STATISTICS statistics;\r
+ u1Byte pwrModeVal[10];\r
+ \r
+ // function pointers\r
+ // io related\r
+ BFP_BTC_R1 fBtcRead1Byte;\r
+ BFP_BTC_W1 fBtcWrite1Byte;\r
+ BFP_BTC_W1_BIT_MASK fBtcWrite1ByteBitMask;\r
+ BFP_BTC_R2 fBtcRead2Byte;\r
+ BFP_BTC_W2 fBtcWrite2Byte;\r
+ BFP_BTC_R4 fBtcRead4Byte;\r
+ BFP_BTC_W4 fBtcWrite4Byte;\r
+ BFP_BTC_LOCAL_REG_W1 fBtcWriteLocalReg1Byte;\r
+ // read/write bb related\r
+ BFP_BTC_SET_BB_REG fBtcSetBbReg;\r
+ BFP_BTC_GET_BB_REG fBtcGetBbReg;\r
+\r
+ // read/write rf related\r
+ BFP_BTC_SET_RF_REG fBtcSetRfReg;\r
+ BFP_BTC_GET_RF_REG fBtcGetRfReg;\r
+ \r
+ // fill h2c related\r
+ BFP_BTC_FILL_H2C fBtcFillH2c;\r
+ // other\r
+ BFP_BTC_DISP_DBG_MSG fBtcDispDbgMsg;\r
+ // normal get/set related\r
+ BFP_BTC_GET fBtcGet;\r
+ BFP_BTC_SET fBtcSet;\r
+\r
+ BFP_BTC_GET_BT_REG fBtcGetBtReg;\r
+ BFP_BTC_SET_BT_REG fBtcSetBtReg;\r
+\r
+ BFP_BTC_SET_BT_ANT_DETECTION fBtcSetBtAntDetection;\r
+} BTC_COEXIST, *PBTC_COEXIST;\r
+\r
+extern BTC_COEXIST GLBtCoexist;\r
+\r
+BOOLEAN\r
+EXhalbtcoutsrc_InitlizeVariables(\r
+ IN PVOID Adapter \r
+ );\r
+VOID\r
+EXhalbtcoutsrc_PowerOnSetting(\r
+ IN PBTC_COEXIST pBtCoexist\r
+ );\r
+VOID\r
+EXhalbtcoutsrc_PreLoadFirmware(\r
+ IN PBTC_COEXIST pBtCoexist\r
+ );\r
+VOID\r
+EXhalbtcoutsrc_InitHwConfig(\r
+ IN PBTC_COEXIST pBtCoexist,\r
+ IN BOOLEAN bWifiOnly\r
+ );\r
+VOID\r
+EXhalbtcoutsrc_InitCoexDm(\r
+ IN PBTC_COEXIST pBtCoexist\r
+ );\r
+VOID\r
+EXhalbtcoutsrc_IpsNotify(\r
+ IN PBTC_COEXIST pBtCoexist,\r
+ IN u1Byte type\r
+ );\r
+VOID\r
+EXhalbtcoutsrc_LpsNotify(\r
+ IN PBTC_COEXIST pBtCoexist,\r
+ IN u1Byte type\r
+ );\r
+VOID\r
+EXhalbtcoutsrc_ScanNotify(\r
+ IN PBTC_COEXIST pBtCoexist,\r
+ IN u1Byte type\r
+ );\r
+VOID\r
+EXhalbtcoutsrc_ConnectNotify(\r
+ IN PBTC_COEXIST pBtCoexist,\r
+ IN u1Byte action\r
+ );\r
+VOID\r
+EXhalbtcoutsrc_MediaStatusNotify(\r
+ IN PBTC_COEXIST pBtCoexist,\r
+ IN RT_MEDIA_STATUS mediaStatus\r
+ );\r
+VOID\r
+EXhalbtcoutsrc_SpecialPacketNotify(\r
+ IN PBTC_COEXIST pBtCoexist,\r
+ IN u1Byte pktType\r
+ );\r
+VOID\r
+EXhalbtcoutsrc_BtInfoNotify(\r
+ IN PBTC_COEXIST pBtCoexist,\r
+ IN pu1Byte tmpBuf,\r
+ IN u1Byte length\r
+ );\r
+VOID\r
+EXhalbtcoutsrc_RfStatusNotify(\r
+ IN PBTC_COEXIST pBtCoexist,\r
+ IN u1Byte type\r
+ );\r
+VOID\r
+EXhalbtcoutsrc_StackOperationNotify(\r
+ IN PBTC_COEXIST pBtCoexist,\r
+ IN u1Byte type\r
+ );\r
+VOID\r
+EXhalbtcoutsrc_HaltNotify(\r
+ IN PBTC_COEXIST pBtCoexist\r
+ );\r
+VOID\r
+EXhalbtcoutsrc_PnpNotify(\r
+ IN PBTC_COEXIST pBtCoexist,\r
+ IN u1Byte pnpState\r
+ );\r
+VOID\r
+EXhalbtcoutsrc_ScoreBoardStatusNotify(\r
+ IN PBTC_COEXIST pBtCoexist,\r
+ IN pu1Byte tmpBuf,\r
+ IN u1Byte length\r
+ );\r
+VOID\r
+EXhalbtcoutsrc_CoexDmSwitch(\r
+ IN PBTC_COEXIST pBtCoexist\r
+ );\r
+VOID\r
+EXhalbtcoutsrc_Periodical(\r
+ IN PBTC_COEXIST pBtCoexist\r
+ );\r
+VOID\r
+EXhalbtcoutsrc_DbgControl(\r
+ IN PBTC_COEXIST pBtCoexist,\r
+ IN u1Byte opCode,\r
+ IN u1Byte opLen,\r
+ IN pu1Byte pData\r
+ );\r
+VOID\r
+EXhalbtcoutsrc_AntennaDetection(\r
+ IN PBTC_COEXIST pBtCoexist,\r
+ IN u4Byte centFreq,\r
+ IN u4Byte offset,\r
+ IN u4Byte span,\r
+ IN u4Byte seconds\r
+ );\r
+VOID\r
+EXhalbtcoutsrc_StackUpdateProfileInfo(\r
+ VOID\r
+ );\r
+VOID\r
+EXhalbtcoutsrc_SetHciVersion(\r
+ IN u2Byte hciVersion\r
+ );\r
+VOID\r
+EXhalbtcoutsrc_SetBtPatchVersion(\r
+ IN u2Byte btHciVersion,\r
+ IN u2Byte btPatchVersion\r
+ );\r
+VOID\r
+EXhalbtcoutsrc_UpdateMinBtRssi(\r
+ IN s1Byte btRssi\r
+ );\r
+#if 0\r
+VOID\r
+EXhalbtcoutsrc_SetBtExist(\r
+ IN BOOLEAN bBtExist\r
+ );\r
+#endif\r
+VOID\r
+EXhalbtcoutsrc_SetChipType(\r
+ IN u1Byte chipType\r
+ );\r
+VOID\r
+EXhalbtcoutsrc_SetAntNum(\r
+ IN u1Byte type,\r
+ IN u1Byte antNum\r
+ );\r
+VOID\r
+EXhalbtcoutsrc_SetSingleAntPath(\r
+ IN u1Byte singleAntPath\r
+ );\r
+VOID\r
+EXhalbtcoutsrc_DisplayBtCoexInfo(\r
+ IN PBTC_COEXIST pBtCoexist\r
+ );\r
+VOID\r
+EXhalbtcoutsrc_DisplayAntDetection(\r
+ IN PBTC_COEXIST pBtCoexist\r
+ );\r
+\r
+#endif\r