update rtl8189es wifi driver to rtl8189ES_linux_v4.3.10.1_13373.20150129
[firefly-linux-kernel-4.4.55.git] / drivers / net / wireless / rockchip_wlan / rtl8189es / hal / OUTSRC-BTCoexist / HalBtc8723a1Ant.h
1 //===========================================\r
2 // The following is for 8723A 1Ant BT Co-exist definition\r
3 //===========================================\r
4 #define BT_INFO_8723A_1ANT_B_FTP                                                BIT7\r
5 #define BT_INFO_8723A_1ANT_B_A2DP                                       BIT6\r
6 #define BT_INFO_8723A_1ANT_B_HID                                                BIT5\r
7 #define BT_INFO_8723A_1ANT_B_SCO_BUSY                           BIT4\r
8 #define BT_INFO_8723A_1ANT_B_ACL_BUSY                           BIT3\r
9 #define BT_INFO_8723A_1ANT_B_INQ_PAGE                           BIT2\r
10 #define BT_INFO_8723A_1ANT_B_SCO_ESCO                           BIT1\r
11 #define BT_INFO_8723A_1ANT_B_CONNECTION                         BIT0\r
12 \r
13 typedef enum _BT_STATE_8723A_1ANT{\r
14         BT_STATE_8723A_1ANT_DISABLED                            = 0,\r
15         BT_STATE_8723A_1ANT_NO_CONNECTION               = 1,\r
16         BT_STATE_8723A_1ANT_CONNECT_IDLE                = 2,\r
17         BT_STATE_8723A_1ANT_INQ_OR_PAG                  = 3,\r
18         BT_STATE_8723A_1ANT_ACL_ONLY_BUSY               = 4,\r
19         BT_STATE_8723A_1ANT_SCO_ONLY_BUSY               = 5,\r
20         BT_STATE_8723A_1ANT_ACL_SCO_BUSY                        = 6,\r
21         BT_STATE_8723A_1ANT_HID_BUSY                            = 7,\r
22         BT_STATE_8723A_1ANT_HID_SCO_BUSY                        = 8,\r
23         BT_STATE_8723A_1ANT_MAX\r
24 }BT_STATE_8723A_1ANT, *PBT_STATE_8723A_1ANT;\r
25 \r
26 #define         BTC_RSSI_COEX_THRESH_TOL_8723A_1ANT             2\r
27 \r
28 typedef enum _BT_INFO_SRC_8723A_1ANT{\r
29         BT_INFO_SRC_8723A_1ANT_WIFI_FW                  = 0x0,\r
30         BT_INFO_SRC_8723A_1ANT_BT_RSP                           = 0x1,\r
31         BT_INFO_SRC_8723A_1ANT_BT_ACTIVE_SEND           = 0x2,\r
32         BT_INFO_SRC_8723A_1ANT_MAX\r
33 }BT_INFO_SRC_8723A_1ANT,*PBT_INFO_SRC_8723A_1ANT;\r
34 \r
35 typedef enum _BT_8723A_1ANT_BT_STATUS{\r
36         BT_8723A_1ANT_BT_STATUS_IDLE                            = 0x0,\r
37         BT_8723A_1ANT_BT_STATUS_CONNECTED_IDLE  = 0x1,\r
38         BT_8723A_1ANT_BT_STATUS_NON_IDLE                        = 0x2,\r
39         BT_8723A_1ANT_BT_STATUS_MAX\r
40 }BT_8723A_1ANT_BT_STATUS,*PBT_8723A_1ANT_BT_STATUS;\r
41 \r
42 typedef enum _BT_8723A_1ANT_COEX_ALGO{\r
43         BT_8723A_1ANT_COEX_ALGO_UNDEFINED                       = 0x0,\r
44         BT_8723A_1ANT_COEX_ALGO_SCO                             = 0x1,\r
45         BT_8723A_1ANT_COEX_ALGO_HID                             = 0x2,\r
46         BT_8723A_1ANT_COEX_ALGO_A2DP                            = 0x3,\r
47         BT_8723A_1ANT_COEX_ALGO_PANEDR                  = 0x4,\r
48         BT_8723A_1ANT_COEX_ALGO_PANHS                   = 0x5,\r
49         BT_8723A_1ANT_COEX_ALGO_PANEDR_A2DP             = 0x6,\r
50         BT_8723A_1ANT_COEX_ALGO_PANEDR_HID              = 0x7,\r
51         BT_8723A_1ANT_COEX_ALGO_HID_A2DP_PANEDR = 0x8,\r
52         BT_8723A_1ANT_COEX_ALGO_HID_A2DP                        = 0x9,\r
53         BT_8723A_1ANT_COEX_ALGO_MAX\r
54 }BT_8723A_1ANT_COEX_ALGO,*PBT_8723A_1ANT_COEX_ALGO;\r
55 \r
56 typedef struct _COEX_DM_8723A_1ANT{\r
57         // fw mechanism\r
58         BOOLEAN         bCurIgnoreWlanAct;\r
59         BOOLEAN         bPreIgnoreWlanAct;\r
60         u1Byte          prePsTdma;\r
61         u1Byte          curPsTdma;\r
62         u1Byte          psTdmaPara[5];\r
63         u1Byte          psTdmaDuAdjType;\r
64         u4Byte          psTdmaMonitorCnt;\r
65         u4Byte          psTdmaGlobalCnt;\r
66         BOOLEAN         bResetTdmaAdjust;\r
67         BOOLEAN         bPrePsTdmaOn;\r
68         BOOLEAN         bCurPsTdmaOn;\r
69 \r
70         // sw mechanism\r
71         BOOLEAN         bPreRfRxLpfShrink;\r
72         BOOLEAN         bCurRfRxLpfShrink;\r
73         u4Byte          btRf0x1eBackup;\r
74         BOOLEAN         bPreLowPenaltyRa;\r
75         BOOLEAN         bCurLowPenaltyRa;\r
76         u4Byte          preVal0x6c0;\r
77         u4Byte          curVal0x6c0;\r
78         u4Byte          preVal0x6c8;\r
79         u4Byte          curVal0x6c8;\r
80         u1Byte          preVal0x6cc;\r
81         u1Byte          curVal0x6cc;\r
82         BOOLEAN         bLimitedDig;\r
83 \r
84         // algorithm related\r
85         u1Byte          preAlgorithm;\r
86         u1Byte          curAlgorithm;\r
87         u1Byte          btStatus;\r
88         u1Byte          wifiChnlInfo[3];\r
89 } COEX_DM_8723A_1ANT, *PCOEX_DM_8723A_1ANT;\r
90 \r
91 typedef struct _COEX_STA_8723A_1ANT{\r
92         u4Byte                                  highPriorityTx;\r
93         u4Byte                                  highPriorityRx;\r
94         u4Byte                                  lowPriorityTx;\r
95         u4Byte                                  lowPriorityRx;\r
96         u1Byte                                  btRssi;\r
97         u1Byte                                  preBtRssiState;\r
98         u1Byte                                  preBtRssiState1;\r
99         u1Byte                                  preWifiRssiState[4];\r
100         BOOLEAN                                 bC2hBtInfoReqSent;\r
101         u1Byte                                  btInfoC2h[BT_INFO_SRC_8723A_1ANT_MAX][10];\r
102         u4Byte                                  btInfoC2hCnt[BT_INFO_SRC_8723A_1ANT_MAX];\r
103         BOOLEAN                                 bC2hBtInquiryPage;\r
104         u1Byte                                  btRetryCnt;\r
105         u1Byte                                  btInfoExt;\r
106         //BOOLEAN                                       bHoldForStackOperation;\r
107         //u1Byte                                        bHoldPeriodCnt;\r
108         // this is for c2h hang work-around\r
109         u4Byte                                  c2hHangDetectCnt;\r
110 }COEX_STA_8723A_1ANT, *PCOEX_STA_8723A_1ANT;\r
111 \r
112 //===========================================\r
113 // The following is interface which will notify coex module.\r
114 //===========================================\r
115 VOID\r
116 EXhalbtc8723a1ant_InitHwConfig(\r
117         IN      PBTC_COEXIST            pBtCoexist\r
118         );\r
119 VOID\r
120 EXhalbtc8723a1ant_InitCoexDm(\r
121         IN      PBTC_COEXIST            pBtCoexist\r
122         );\r
123 VOID\r
124 EXhalbtc8723a1ant_IpsNotify(\r
125         IN      PBTC_COEXIST            pBtCoexist,\r
126         IN      u1Byte                  type\r
127         );\r
128 VOID\r
129 EXhalbtc8723a1ant_LpsNotify(\r
130         IN      PBTC_COEXIST            pBtCoexist,\r
131         IN      u1Byte                  type\r
132         );\r
133 VOID\r
134 EXhalbtc8723a1ant_ScanNotify(\r
135         IN      PBTC_COEXIST            pBtCoexist,\r
136         IN      u1Byte                  type\r
137         );\r
138 VOID\r
139 EXhalbtc8723a1ant_ConnectNotify(\r
140         IN      PBTC_COEXIST            pBtCoexist,\r
141         IN      u1Byte                  type\r
142         );\r
143 VOID\r
144 EXhalbtc8723a1ant_MediaStatusNotify(\r
145         IN      PBTC_COEXIST                    pBtCoexist,\r
146         IN      u1Byte                          type\r
147         );\r
148 VOID\r
149 EXhalbtc8723a1ant_SpecialPacketNotify(\r
150         IN      PBTC_COEXIST                    pBtCoexist,\r
151         IN      u1Byte                          type\r
152         );\r
153 VOID\r
154 EXhalbtc8723a1ant_BtInfoNotify(\r
155         IN      PBTC_COEXIST            pBtCoexist,\r
156         IN      pu1Byte                 tmpBuf,\r
157         IN      u1Byte                  length\r
158         );\r
159 VOID\r
160 EXhalbtc8723a1ant_HaltNotify(\r
161         IN      PBTC_COEXIST                    pBtCoexist\r
162         );\r
163 VOID\r
164 EXhalbtc8723a1ant_Periodical(\r
165         IN      PBTC_COEXIST                    pBtCoexist\r
166         );\r
167 VOID\r
168 EXhalbtc8723a1ant_DisplayCoexInfo(\r
169         IN      PBTC_COEXIST            pBtCoexist\r
170         );\r
171 \r