--- /dev/null
+//===========================================\r
+// The following is for 8188C 2Ant BT Co-exist definition\r
+//===========================================\r
+#define BTC_RSSI_COEX_THRESH_TOL_8188C_2ANT 6\r
+\r
+typedef enum _BT_INFO_SRC_8188C_2ANT{\r
+ BT_INFO_SRC_8188C_2ANT_WIFI_FW = 0x0,\r
+ BT_INFO_SRC_8188C_2ANT_BT_RSP = 0x1,\r
+ BT_INFO_SRC_8188C_2ANT_BT_ACTIVE_SEND = 0x2,\r
+ BT_INFO_SRC_8188C_2ANT_MAX\r
+}BT_INFO_SRC_8188C_2ANT,*PBT_INFO_SRC_8188C_2ANT;\r
+\r
+typedef enum _BT_8188C_2ANT_BT_STATUS{\r
+ BT_8188C_2ANT_BT_STATUS_IDLE = 0x0,\r
+ BT_8188C_2ANT_BT_STATUS_CONNECTED_IDLE = 0x1,\r
+ BT_8188C_2ANT_BT_STATUS_NON_IDLE = 0x2,\r
+ BT_8188C_2ANT_BT_STATUS_MAX\r
+}BT_8188C_2ANT_BT_STATUS,*PBT_8188C_2ANT_BT_STATUS;\r
+\r
+typedef enum _BT_8188C_2ANT_COEX_ALGO{\r
+ BT_8188C_2ANT_COEX_ALGO_UNDEFINED = 0x0,\r
+ BT_8188C_2ANT_COEX_ALGO_SCO = 0x1,\r
+ BT_8188C_2ANT_COEX_ALGO_HID = 0x2,\r
+ BT_8188C_2ANT_COEX_ALGO_A2DP = 0x3,\r
+ BT_8188C_2ANT_COEX_ALGO_PAN = 0x4,\r
+ BT_8188C_2ANT_COEX_ALGO_HID_A2DP = 0x5,\r
+ BT_8188C_2ANT_COEX_ALGO_HID_PAN = 0x6,\r
+ BT_8188C_2ANT_COEX_ALGO_PAN_A2DP = 0x7,\r
+ BT_8188C_2ANT_COEX_ALGO_MAX\r
+}BT_8188C_2ANT_COEX_ALGO,*PBT_8188C_2ANT_COEX_ALGO;\r
+\r
+typedef struct _COEX_DM_8188C_2ANT{\r
+ // fw mechanism\r
+ BOOLEAN bPreBalanceOn;\r
+ BOOLEAN bCurBalanceOn;\r
+\r
+ // diminishWifi\r
+ BOOLEAN bPreDacOn;\r
+ BOOLEAN bCurDacOn;\r
+ BOOLEAN bPreInterruptOn;\r
+ BOOLEAN bCurInterruptOn;\r
+ u1Byte preFwDacSwingLvl;\r
+ u1Byte curFwDacSwingLvl;\r
+ BOOLEAN bPreNavOn;\r
+ BOOLEAN bCurNavOn;\r
+\r
+ // sw mechanism\r
+ BOOLEAN bPreRfRxLpfShrink;\r
+ BOOLEAN bCurRfRxLpfShrink;\r
+ u4Byte btRf0x1eBackup;\r
+ BOOLEAN bPreLowPenaltyRa;\r
+ BOOLEAN bCurLowPenaltyRa;\r
+ BOOLEAN bPreDacSwingOn;\r
+ u4Byte preDacSwingLvl;\r
+ BOOLEAN bCurDacSwingOn;\r
+ u4Byte curDacSwingLvl;\r
+ BOOLEAN bPreAdcBackOff;\r
+ BOOLEAN bCurAdcBackOff;\r
+ BOOLEAN bPreAgcTableEn;\r
+ BOOLEAN bCurAgcTableEn;\r
+ //u4Byte preVal0x6c0;\r
+ //u4Byte curVal0x6c0;\r
+ u4Byte preVal0x6c4;\r
+ u4Byte curVal0x6c4;\r
+ u4Byte preVal0x6c8;\r
+ u4Byte curVal0x6c8;\r
+ u4Byte preVal0x6cc;\r
+ u4Byte curVal0x6cc;\r
+ //BOOLEAN bLimitedDig;\r
+\r
+ // algorithm related\r
+ u1Byte preAlgorithm;\r
+ u1Byte curAlgorithm;\r
+ //u1Byte btStatus;\r
+ //u1Byte wifiChnlInfo[3];\r
+} COEX_DM_8188C_2ANT, *PCOEX_DM_8188C_2ANT;\r
+\r
+typedef struct _COEX_STA_8188C_2ANT{\r
+ u1Byte preWifiRssiState[4];\r
+ BOOLEAN bBtBusy;\r
+ BOOLEAN bBtUplink;\r
+ BOOLEAN bBtDownLink;\r
+ BOOLEAN bA2dpBusy;\r
+}COEX_STA_8188C_2ANT, *PCOEX_STA_8188C_2ANT;\r
+\r
+//===========================================\r
+// The following is interface which will notify coex module.\r
+//===========================================\r
+VOID\r
+EXhalbtc8188c2ant_PowerOnSetting(\r
+ IN PBTC_COEXIST pBtCoexist\r
+ );\r
+VOID\r
+EXhalbtc8188c2ant_InitHwConfig(\r
+ IN PBTC_COEXIST pBtCoexist,\r
+ IN BOOLEAN bWifiOnly\r
+ );\r
+VOID\r
+EXhalbtc8188c2ant_InitCoexDm(\r
+ IN PBTC_COEXIST pBtCoexist\r
+ );\r
+VOID\r
+EXhalbtc8188c2ant_IpsNotify(\r
+ IN PBTC_COEXIST pBtCoexist,\r
+ IN u1Byte type\r
+ );\r
+VOID\r
+EXhalbtc8188c2ant_LpsNotify(\r
+ IN PBTC_COEXIST pBtCoexist,\r
+ IN u1Byte type\r
+ );\r
+VOID\r
+EXhalbtc8188c2ant_ScanNotify(\r
+ IN PBTC_COEXIST pBtCoexist,\r
+ IN u1Byte type\r
+ );\r
+VOID\r
+EXhalbtc8188c2ant_ConnectNotify(\r
+ IN PBTC_COEXIST pBtCoexist,\r
+ IN u1Byte type\r
+ );\r
+VOID\r
+EXhalbtc8188c2ant_MediaStatusNotify(\r
+ IN PBTC_COEXIST pBtCoexist,\r
+ IN u1Byte type\r
+ );\r
+VOID\r
+EXhalbtc8188c2ant_SpecialPacketNotify(\r
+ IN PBTC_COEXIST pBtCoexist,\r
+ IN u1Byte type\r
+ );\r
+VOID\r
+EXhalbtc8188c2ant_HaltNotify(\r
+ IN PBTC_COEXIST pBtCoexist\r
+ );\r
+VOID\r
+EXhalbtc8188c2ant_Periodical(\r
+ IN PBTC_COEXIST pBtCoexist\r
+ );\r
+VOID\r
+EXhalbtc8188c2ant_BtInfoNotify(\r
+ IN PBTC_COEXIST pBtCoexist,\r
+ IN pu1Byte tmpBuf,\r
+ IN u1Byte length\r
+ );\r
+VOID\r
+EXhalbtc8188c2ant_DisplayCoexInfo(\r
+ IN PBTC_COEXIST pBtCoexist\r
+ );\r