phy: rockchip-inno-usb2: add SDP detect retry
[firefly-linux-kernel-4.4.55.git] / drivers / net / wireless / rockchip_wlan / rtl8188eu / hal / OUTSRC-BTCoexist / HalBtc8192e2Ant.h
1 //===========================================\r
2 // The following is for 8192E 2Ant BT Co-exist definition\r
3 //===========================================\r
4 #define BT_AUTO_REPORT_ONLY_8192E_2ANT                          0\r
5 \r
6 #define BT_INFO_8192E_2ANT_B_FTP                                                BIT7\r
7 #define BT_INFO_8192E_2ANT_B_A2DP                                       BIT6\r
8 #define BT_INFO_8192E_2ANT_B_HID                                                BIT5\r
9 #define BT_INFO_8192E_2ANT_B_SCO_BUSY                           BIT4\r
10 #define BT_INFO_8192E_2ANT_B_ACL_BUSY                           BIT3\r
11 #define BT_INFO_8192E_2ANT_B_INQ_PAGE                           BIT2\r
12 #define BT_INFO_8192E_2ANT_B_SCO_ESCO                           BIT1\r
13 #define BT_INFO_8192E_2ANT_B_CONNECTION                         BIT0\r
14 \r
15 #define         BTC_RSSI_COEX_THRESH_TOL_8192E_2ANT             2\r
16 \r
17 typedef enum _BT_INFO_SRC_8192E_2ANT{\r
18         BT_INFO_SRC_8192E_2ANT_WIFI_FW                  = 0x0,\r
19         BT_INFO_SRC_8192E_2ANT_BT_RSP                           = 0x1,\r
20         BT_INFO_SRC_8192E_2ANT_BT_ACTIVE_SEND           = 0x2,\r
21         BT_INFO_SRC_8192E_2ANT_MAX\r
22 }BT_INFO_SRC_8192E_2ANT,*PBT_INFO_SRC_8192E_2ANT;\r
23 \r
24 typedef enum _BT_8192E_2ANT_BT_STATUS{\r
25         BT_8192E_2ANT_BT_STATUS_NON_CONNECTED_IDLE      = 0x0,\r
26         BT_8192E_2ANT_BT_STATUS_CONNECTED_IDLE          = 0x1,\r
27         BT_8192E_2ANT_BT_STATUS_INQ_PAGE                                = 0x2,\r
28         BT_8192E_2ANT_BT_STATUS_ACL_BUSY                                = 0x3,\r
29         BT_8192E_2ANT_BT_STATUS_SCO_BUSY                                = 0x4,\r
30         BT_8192E_2ANT_BT_STATUS_ACL_SCO_BUSY                    = 0x5,\r
31         BT_8192E_2ANT_BT_STATUS_MAX\r
32 }BT_8192E_2ANT_BT_STATUS,*PBT_8192E_2ANT_BT_STATUS;\r
33 \r
34 typedef enum _BT_8192E_2ANT_COEX_ALGO{\r
35         BT_8192E_2ANT_COEX_ALGO_UNDEFINED               = 0x0,\r
36         BT_8192E_2ANT_COEX_ALGO_SCO                             = 0x1,\r
37         BT_8192E_2ANT_COEX_ALGO_SCO_PAN                 = 0x2,\r
38         BT_8192E_2ANT_COEX_ALGO_HID                             = 0x3,\r
39         BT_8192E_2ANT_COEX_ALGO_A2DP                    = 0x4,\r
40         BT_8192E_2ANT_COEX_ALGO_A2DP_PANHS              = 0x5,\r
41         BT_8192E_2ANT_COEX_ALGO_PANEDR                  = 0x6,\r
42         BT_8192E_2ANT_COEX_ALGO_PANHS                   = 0x7,\r
43         BT_8192E_2ANT_COEX_ALGO_PANEDR_A2DP             = 0x8,\r
44         BT_8192E_2ANT_COEX_ALGO_PANEDR_HID              = 0x9,\r
45         BT_8192E_2ANT_COEX_ALGO_HID_A2DP_PANEDR = 0xa,\r
46         BT_8192E_2ANT_COEX_ALGO_HID_A2DP                = 0xb,\r
47         BT_8192E_2ANT_COEX_ALGO_MAX                             = 0xc\r
48 }BT_8192E_2ANT_COEX_ALGO,*PBT_8192E_2ANT_COEX_ALGO;\r
49 \r
50 typedef struct _COEX_DM_8192E_2ANT{\r
51         // fw mechanism\r
52         u1Byte          preBtDecPwrLvl;\r
53         u1Byte          curBtDecPwrLvl;\r
54         u1Byte          preFwDacSwingLvl;\r
55         u1Byte          curFwDacSwingLvl;\r
56         BOOLEAN         bCurIgnoreWlanAct;\r
57         BOOLEAN         bPreIgnoreWlanAct;\r
58         u1Byte          prePsTdma;\r
59         u1Byte          curPsTdma;\r
60         u1Byte          psTdmaPara[5];\r
61         u1Byte          psTdmaDuAdjType;\r
62         BOOLEAN         bResetTdmaAdjust;\r
63         BOOLEAN         bAutoTdmaAdjust;\r
64         BOOLEAN         bPrePsTdmaOn;\r
65         BOOLEAN         bCurPsTdmaOn;\r
66         BOOLEAN         bPreBtAutoReport;\r
67         BOOLEAN         bCurBtAutoReport;\r
68 \r
69         // sw mechanism\r
70         BOOLEAN         bPreRfRxLpfShrink;\r
71         BOOLEAN         bCurRfRxLpfShrink;\r
72         u4Byte          btRf0x1eBackup;\r
73         BOOLEAN         bPreLowPenaltyRa;\r
74         BOOLEAN         bCurLowPenaltyRa;\r
75         BOOLEAN         bPreDacSwingOn;\r
76         u4Byte          preDacSwingLvl;\r
77         BOOLEAN         bCurDacSwingOn;\r
78         u4Byte          curDacSwingLvl;\r
79         BOOLEAN         bPreAdcBackOff;\r
80         BOOLEAN         bCurAdcBackOff;\r
81         BOOLEAN         bPreAgcTableEn;\r
82         BOOLEAN         bCurAgcTableEn;\r
83         u4Byte          preVal0x6c0;\r
84         u4Byte          curVal0x6c0;\r
85         u4Byte          preVal0x6c4;\r
86         u4Byte          curVal0x6c4;\r
87         u4Byte          preVal0x6c8;\r
88         u4Byte          curVal0x6c8;\r
89         u1Byte          preVal0x6cc;\r
90         u1Byte          curVal0x6cc;\r
91         BOOLEAN         bLimitedDig;\r
92 \r
93         u4Byte          backupArfrCnt1; // Auto Rate Fallback Retry cnt\r
94         u4Byte          backupArfrCnt2; // Auto Rate Fallback Retry cnt\r
95         u2Byte          backupRetryLimit;\r
96         u1Byte          backupAmpduMaxTime;\r
97 \r
98         // algorithm related\r
99         u1Byte          preAlgorithm;\r
100         u1Byte          curAlgorithm;\r
101         u1Byte          btStatus;\r
102         u1Byte          wifiChnlInfo[3];\r
103 \r
104         u1Byte          preSsType;\r
105         u1Byte          curSsType;\r
106 \r
107         u4Byte          preRaMask;\r
108         u4Byte          curRaMask;\r
109         u1Byte          curRaMaskType;\r
110         u1Byte          preArfrType;\r
111         u1Byte          curArfrType;\r
112         u1Byte          preRetryLimitType;\r
113         u1Byte          curRetryLimitType;\r
114         u1Byte          preAmpduTimeType;\r
115         u1Byte          curAmpduTimeType;\r
116 } COEX_DM_8192E_2ANT, *PCOEX_DM_8192E_2ANT;\r
117 \r
118 typedef struct _COEX_STA_8192E_2ANT{    \r
119         BOOLEAN                                 bBtLinkExist;\r
120         BOOLEAN                                 bScoExist;\r
121         BOOLEAN                                 bA2dpExist;\r
122         BOOLEAN                                 bHidExist;\r
123         BOOLEAN                                 bPanExist;\r
124 \r
125         BOOLEAN                                 bUnderLps;\r
126         BOOLEAN                                 bUnderIps;\r
127         u4Byte                                  highPriorityTx;\r
128         u4Byte                                  highPriorityRx;\r
129         u4Byte                                  lowPriorityTx;\r
130         u4Byte                                  lowPriorityRx;\r
131         u1Byte                                  btRssi;\r
132         u1Byte                                  preBtRssiState;\r
133         u1Byte                                  preWifiRssiState[4];\r
134         BOOLEAN                                 bC2hBtInfoReqSent;\r
135         u1Byte                                  btInfoC2h[BT_INFO_SRC_8192E_2ANT_MAX][10];\r
136         u4Byte                                  btInfoC2hCnt[BT_INFO_SRC_8192E_2ANT_MAX];\r
137         BOOLEAN                                 bC2hBtInquiryPage;\r
138         u1Byte                                  btRetryCnt;\r
139         u1Byte                                  btInfoExt;\r
140 }COEX_STA_8192E_2ANT, *PCOEX_STA_8192E_2ANT;\r
141 \r
142 //===========================================\r
143 // The following is interface which will notify coex module.\r
144 //===========================================\r
145 VOID\r
146 EXhalbtc8192e2ant_InitHwConfig(\r
147         IN      PBTC_COEXIST            pBtCoexist\r
148         );\r
149 VOID\r
150 EXhalbtc8192e2ant_InitCoexDm(\r
151         IN      PBTC_COEXIST            pBtCoexist\r
152         );\r
153 VOID\r
154 EXhalbtc8192e2ant_IpsNotify(\r
155         IN      PBTC_COEXIST            pBtCoexist,\r
156         IN      u1Byte                  type\r
157         );\r
158 VOID\r
159 EXhalbtc8192e2ant_LpsNotify(\r
160         IN      PBTC_COEXIST            pBtCoexist,\r
161         IN      u1Byte                  type\r
162         );\r
163 VOID\r
164 EXhalbtc8192e2ant_ScanNotify(\r
165         IN      PBTC_COEXIST            pBtCoexist,\r
166         IN      u1Byte                  type\r
167         );\r
168 VOID\r
169 EXhalbtc8192e2ant_ConnectNotify(\r
170         IN      PBTC_COEXIST            pBtCoexist,\r
171         IN      u1Byte                  type\r
172         );\r
173 VOID\r
174 EXhalbtc8192e2ant_MediaStatusNotify(\r
175         IN      PBTC_COEXIST                    pBtCoexist,\r
176         IN      u1Byte                          type\r
177         );\r
178 VOID\r
179 EXhalbtc8192e2ant_SpecialPacketNotify(\r
180         IN      PBTC_COEXIST                    pBtCoexist,\r
181         IN      u1Byte                          type\r
182         );\r
183 VOID\r
184 EXhalbtc8192e2ant_BtInfoNotify(\r
185         IN      PBTC_COEXIST            pBtCoexist,\r
186         IN      pu1Byte                 tmpBuf,\r
187         IN      u1Byte                  length\r
188         );\r
189 VOID\r
190 EXhalbtc8192e2ant_HaltNotify(\r
191         IN      PBTC_COEXIST                    pBtCoexist\r
192         );\r
193 VOID\r
194 EXhalbtc8192e2ant_Periodical(\r
195         IN      PBTC_COEXIST                    pBtCoexist\r
196         );\r
197 VOID\r
198 EXhalbtc8192e2ant_DisplayCoexInfo(\r
199         IN      PBTC_COEXIST            pBtCoexist\r
200         );\r
201 \r