b9625de98dd0ab876cdd5174dd238f7f6b3ebdb7
[firefly-linux-kernel-4.4.55.git] / drivers / net / wireless / rockchip_wlan / rtl8723bs / hal / OUTSRC / phydm_RaInfo.h
1 /******************************************************************************\r
2  *\r
3  * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.\r
4  *                                        \r
5  * This program is free software; you can redistribute it and/or modify it\r
6  * under the terms of version 2 of the GNU General Public License as\r
7  * published by the Free Software Foundation.\r
8  *\r
9  * This program is distributed in the hope that it will be useful, but WITHOUT\r
10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or\r
11  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for\r
12  * more details.\r
13  *\r
14  * You should have received a copy of the GNU General Public License along with\r
15  * this program; if not, write to the Free Software Foundation, Inc.,\r
16  * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA\r
17  *\r
18  *\r
19  ******************************************************************************/\r
20  \r
21 #ifndef __PHYDMRAINFO_H__\r
22 #define    __PHYDMRAINFO_H__\r
23 \r
24 #define RAINFO_VERSION  "1.0"\r
25 \r
26 #define AP_InitRateAdaptiveState        ODM_RateAdaptiveStateApInit\r
27 \r
28 #define         DM_RATR_STA_INIT                        0\r
29 #define         DM_RATR_STA_HIGH                        1\r
30 #define                 DM_RATR_STA_MIDDLE              2\r
31 #define                 DM_RATR_STA_LOW                 3\r
32 #if(DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL))\r
33 #define         DM_RATR_STA_ULTRA_LOW   4\r
34 #endif\r
35 \r
36 #if(DM_ODM_SUPPORT_TYPE & (ODM_WIN|ODM_CE))\r
37 typedef struct _Rate_Adaptive_Table_{\r
38         u1Byte          firstconnect;\r
39         #if(DM_ODM_SUPPORT_TYPE==ODM_WIN)\r
40         BOOLEAN         PT_collision_pre;\r
41         #endif\r
42 }RA_T, *pRA_T;\r
43 #endif\r
44 \r
45 typedef struct _ODM_RATE_ADAPTIVE\r
46 {\r
47         u1Byte                          Type;                           // DM_Type_ByFW/DM_Type_ByDriver\r
48         u1Byte                          HighRSSIThresh;         // if RSSI > HighRSSIThresh     => RATRState is DM_RATR_STA_HIGH\r
49         u1Byte                          LowRSSIThresh;          // if RSSI <= LowRSSIThresh     => RATRState is DM_RATR_STA_LOW\r
50         u1Byte                          RATRState;                      // Current RSSI level, DM_RATR_STA_HIGH/DM_RATR_STA_MIDDLE/DM_RATR_STA_LOW\r
51 \r
52         #if(DM_ODM_SUPPORT_TYPE & (ODM_WIN|ODM_CE))\r
53         u1Byte                          LdpcThres;                      // if RSSI > LdpcThres => switch from LPDC to BCC\r
54         BOOLEAN                         bLowerRtsRate;\r
55         #endif\r
56 \r
57         #if(DM_ODM_SUPPORT_TYPE & ODM_WIN)\r
58         u1Byte                          RtsThres;\r
59         #elif(DM_ODM_SUPPORT_TYPE & ODM_CE)\r
60         BOOLEAN                         bUseLdpc;\r
61         #else\r
62         u1Byte                          UltraLowRSSIThresh;\r
63         u4Byte                          LastRATR;                       // RATR Register Content\r
64         #endif\r
65 \r
66 } ODM_RATE_ADAPTIVE, *PODM_RATE_ADAPTIVE;\r
67 \r
68 VOID
69 odm_RSSIMonitorInit(
70         IN              PVOID           pDM_VOID\r
71         );
72 \r
73 VOID\r
74 odm_RSSIMonitorCheck(
75         IN              PVOID            pDM_VOID\r
76         );\r
77 \r
78 #if(DM_ODM_SUPPORT_TYPE==ODM_WIN)\r
79 VOID\r
80 odm_RSSIDumpToRegister(\r
81         IN      PVOID   pDM_VOID\r
82         );\r
83 #endif\r
84 \r
85 VOID
86 odm_RSSIMonitorCheckMP(
87         IN              PVOID           pDM_VOID\r
88         );
89
90 VOID 
91 odm_RSSIMonitorCheckCE(
92         IN              PVOID           pDM_VOID\r
93         );\r
94 \r
95 VOID 
96 odm_RSSIMonitorCheckAP(
97         IN              PVOID            pDM_VOID\r
98         );
99
100 \r
101 VOID\r
102 odm_RateAdaptiveMaskInit(\r
103         IN      PVOID   pDM_VOID        \r
104         );\r
105 \r
106 VOID
107 odm_RefreshRateAdaptiveMask(
108         IN      PVOID   pDM_VOID\r
109         );\r
110 \r
111 VOID
112 odm_RefreshRateAdaptiveMaskMP(
113         IN      PVOID   pDM_VOID\r
114         );\r
115 \r
116 VOID
117 odm_RefreshRateAdaptiveMaskCE(
118         IN      PVOID   pDM_VOID        \r
119         );\r
120 \r
121 VOID
122 odm_RefreshRateAdaptiveMaskAPADSL(
123         IN      PVOID   pDM_VOID\r
124         );\r
125 \r
126 BOOLEAN 
127 ODM_RAStateCheck(
128         IN              PVOID                   pDM_VOID,\r
129         IN              s4Byte                  RSSI,
130         IN              BOOLEAN                 bForceUpdate,
131         OUT             pu1Byte                 pRATRState
132         );\r
133         \r
134 VOID
135 odm_RefreshBasicRateMask(
136         IN      PVOID   pDM_VOID\r
137         );\r
138 \r
139 \r
140 #if (DM_ODM_SUPPORT_TYPE == ODM_WIN)\r
141 VOID
142 ODM_DynamicARFBSelect(
143         IN              PVOID                   pDM_VOID,\r
144         IN              u1Byte                  rate,
145         IN      BOOLEAN                 Collision_State 
146         );\r
147         \r
148 VOID\r
149 ODM_RateAdaptiveStateApInit(    \r
150         IN      PVOID           PADAPTER_VOID,\r
151         IN      PRT_WLAN_STA    pEntry\r
152         );\r
153 #endif\r
154 \r
155 #if (DM_ODM_SUPPORT_TYPE == ODM_CE)\r
156 u4Byte \r
157 ODM_Get_Rate_Bitmap(\r
158         IN      PVOID           pDM_VOID,       \r
159         IN      u4Byte          macid,\r
160         IN      u4Byte          ra_mask,        \r
161         IN      u1Byte          rssi_level\r
162         );\r
163 #endif\r
164 \r
165 #endif //#ifndef        __ODMRAINFO_H__\r
166 \r
167 \r