net: wireless: rockchip: add rtl8822be pcie wifi driver
[firefly-linux-kernel-4.4.55.git] / drivers / net / wireless / rockchip_wlan / rtl8822be / hal / phydm / 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        "2.0"  //2014.11.04*/\r
25 /*#define RAINFO_VERSION        "3.0"  //2015.01.13 Dino*/\r
26 /*#define RAINFO_VERSION        "3.1"  //2015.01.14 Dino*/\r
27 /*#define RAINFO_VERSION        "3.3"  2015.07.29 YuChen*/\r
28 /*#define RAINFO_VERSION        "3.4"*/  /*2015.12.15 Stanley*/\r
29 /*#define RAINFO_VERSION        "4.0"*/  /*2016.03.24 Dino, Add more RA mask state and Phydm-lize partial ra mask function  */\r
30 #define RAINFO_VERSION  "4.1"  /*2016.04.20 Dino, Add new function to adjust PCR RA threshold  */\r
31 \r
32 #define H2C_0X42_LENGTH 5\r
33 \r
34 #define RA_FLOOR_UP_GAP                         3\r
35 #define RA_FLOOR_TABLE_SIZE     7\r
36 \r
37 #define ACTIVE_TP_THRESHOLD     150\r
38 #define RA_RETRY_DESCEND_NUM    2\r
39 #define RA_RETRY_LIMIT_LOW      4\r
40 #define RA_RETRY_LIMIT_HIGH     32\r
41 \r
42 #define RAINFO_BE_RX_STATE                      BIT0  // 1:RX    //ULDL\r
43 #define RAINFO_STBC_STATE                       BIT1\r
44 //#define RAINFO_LDPC_STATE                     BIT2\r
45 #define RAINFO_NOISY_STATE                      BIT2    // set by Noisy_Detection\r
46 #define RAINFO_SHURTCUT_STATE           BIT3\r
47 #define RAINFO_SHURTCUT_FLAG            BIT4\r
48 #define RAINFO_INIT_RSSI_RATE_STATE  BIT5\r
49 #define RAINFO_BF_STATE                                 BIT6\r
50 #define RAINFO_BE_TX_STATE                      BIT7 // 1:TX\r
51 \r
52 #define RA_MASK_CCK             0xf\r
53 #define RA_MASK_OFDM            0xff0\r
54 #define RA_MASK_HT1SS           0xff000\r
55 #define RA_MASK_HT2SS           0xff00000\r
56 /*#define       RA_MASK_MCS3SS  */\r
57 #define RA_MASK_HT4SS           0xff0\r
58 #define RA_MASK_VHT1SS  0x3ff000\r
59 #define RA_MASK_VHT2SS  0xffc00000\r
60 \r
61 #if(DM_ODM_SUPPORT_TYPE == ODM_AP)\r
62 #define         RA_FIRST_MACID  1\r
63 #elif (DM_ODM_SUPPORT_TYPE == ODM_WIN)\r
64 #define RA_FIRST_MACID  0\r
65 #define WIN_DEFAULT_PORT_MACID  0\r
66 #define WIN_BT_PORT_MACID       2\r
67 #else /*if (DM_ODM_SUPPORT_TYPE == ODM_CE)*/\r
68 #define         RA_FIRST_MACID  0\r
69 #endif\r
70 \r
71 #define AP_InitRateAdaptiveState        ODM_RateAdaptiveStateApInit\r
72 \r
73 #if (RA_MASK_PHYDMLIZE_CE || RA_MASK_PHYDMLIZE_AP || RA_MASK_PHYDMLIZE_WIN)\r
74 #define         DM_RATR_STA_INIT                        0\r
75 #define         DM_RATR_STA_HIGH                        1\r
76 #define                 DM_RATR_STA_MIDDLE              2\r
77 #define                 DM_RATR_STA_LOW                 3\r
78 #define         DM_RATR_STA_ULTRA_LOW   4\r
79 #endif\r
80 \r
81 typedef enum _phydm_arfr_num {\r
82         ARFR_0_RATE_ID  =       0x9,\r
83         ARFR_1_RATE_ID  =       0xa,\r
84         ARFR_2_RATE_ID  =       0xb,\r
85         ARFR_3_RATE_ID  =       0xc,\r
86         ARFR_4_RATE_ID  =       0xd,\r
87         ARFR_5_RATE_ID  =       0xe\r
88 } PHYDM_RA_ARFR_NUM_E;\r
89 \r
90 typedef enum _Phydm_ra_dbg_para {\r
91         RADBG_PCR_TH_OFFSET             =       0,\r
92         RADBG_RTY_PENALTY               =       1,\r
93         RADBG_N_HIGH                            =       2,\r
94         RADBG_N_LOW                             =       3,\r
95         RADBG_TRATE_UP_TABLE            =       4,\r
96         RADBG_TRATE_DOWN_TABLE  =       5,\r
97         RADBG_TRYING_NECESSARY  =       6,\r
98         RADBG_TDROPING_NECESSARY =      7,\r
99         RADBG_RATE_UP_RTY_RATIO =       8,\r
100         RADBG_RATE_DOWN_RTY_RATIO =     9, //u8\r
101 \r
102         RADBG_DEBUG_MONITOR1 = 0xc,\r
103         RADBG_DEBUG_MONITOR2 = 0xd,\r
104         RADBG_DEBUG_MONITOR3 = 0xe,\r
105         RADBG_DEBUG_MONITOR4 = 0xf,\r
106         RADBG_DEBUG_MONITOR5 = 0x10,\r
107         NUM_RA_PARA\r
108 } PHYDM_RA_DBG_PARA_E;\r
109 \r
110 typedef enum PHYDM_WIRELESS_MODE {\r
111         \r
112         PHYDM_WIRELESS_MODE_UNKNOWN = 0x00,\r
113         PHYDM_WIRELESS_MODE_A           = 0x01,\r
114         PHYDM_WIRELESS_MODE_B           = 0x02,\r
115         PHYDM_WIRELESS_MODE_G           = 0x04,\r
116         PHYDM_WIRELESS_MODE_AUTO        = 0x08,\r
117         PHYDM_WIRELESS_MODE_N_24G       = 0x10,\r
118         PHYDM_WIRELESS_MODE_N_5G        = 0x20,\r
119         PHYDM_WIRELESS_MODE_AC_5G       = 0x40,\r
120         PHYDM_WIRELESS_MODE_AC_24G      = 0x80,\r
121         PHYDM_WIRELESS_MODE_AC_ONLY     = 0x100,\r
122         PHYDM_WIRELESS_MODE_MAX         = 0x800,\r
123         PHYDM_WIRELESS_MODE_ALL         = 0xFFFF\r
124 } PHYDM_WIRELESS_MODE_E;\r
125 \r
126 typedef enum PHYDM_RATEID_IDX_ {\r
127         \r
128         PHYDM_BGN_40M_2SS       = 0,\r
129         PHYDM_BGN_40M_1SS       = 1,\r
130         PHYDM_BGN_20M_2SS       = 2,\r
131         PHYDM_BGN_20M_1SS       = 3,\r
132         PHYDM_GN_N2SS                   = 4,\r
133         PHYDM_GN_N1SS                   = 5,\r
134         PHYDM_BG                                = 6,\r
135         PHYDM_G                         = 7,\r
136         PHYDM_B_20M                     = 8,\r
137         PHYDM_ARFR0_AC_2SS      = 9,\r
138         PHYDM_ARFR1_AC_1SS      = 10,\r
139         PHYDM_ARFR2_AC_2G_1SS   = 11,\r
140         PHYDM_ARFR3_AC_2G_2SS   = 12,\r
141         PHYDM_ARFR4_AC_3SS      = 13,\r
142         PHYDM_ARFR5_N_3SS               = 14\r
143 } PHYDM_RATEID_IDX_E;\r
144 \r
145 typedef enum _PHYDM_RF_TYPE_DEFINITION {\r
146         PHYDM_RF_1T1R = 0,\r
147         PHYDM_RF_1T2R,                  \r
148         PHYDM_RF_2T2R,\r
149         PHYDM_RF_2T2R_GREEN,\r
150         PHYDM_RF_2T3R,\r
151         PHYDM_RF_2T4R,\r
152         PHYDM_RF_3T3R,\r
153         PHYDM_RF_3T4R,\r
154         PHYDM_RF_4T4R,\r
155         PHYDM_RF_MAX_TYPE\r
156 } PHYDM_RF_TYPE_DEF_E;\r
157 \r
158 typedef enum _PHYDM_BW {\r
159         PHYDM_BW_20     = 0,\r
160         PHYDM_BW_40,\r
161         PHYDM_BW_80,\r
162         PHYDM_BW_80_80, \r
163         PHYDM_BW_160,\r
164         PHYDM_BW_10,\r
165         PHYDM_BW_5\r
166 } PHYDM_BW_E;\r
167 \r
168 \r
169 #if (RATE_ADAPTIVE_SUPPORT == 1)//88E RA\r
170 typedef struct _ODM_RA_Info_ {\r
171         u1Byte RateID;\r
172         u4Byte RateMask;\r
173         u4Byte RAUseRate;\r
174         u1Byte RateSGI;\r
175         u1Byte RssiStaRA;\r
176         u1Byte PreRssiStaRA;\r
177         u1Byte SGIEnable;\r
178         u1Byte DecisionRate;\r
179         u1Byte PreRate;\r
180         u1Byte HighestRate;\r
181         u1Byte LowestRate;\r
182         u4Byte NscUp;\r
183         u4Byte NscDown;\r
184         u2Byte RTY[5];\r
185         u4Byte TOTAL;\r
186         u2Byte DROP;\r
187         u1Byte Active;\r
188         u2Byte RptTime;\r
189         u1Byte RAWaitingCounter;\r
190         u1Byte RAPendingCounter;\r
191         u1Byte RADropAfterDown;\r
192 #if 1 //POWER_TRAINING_ACTIVE == 1 // For compile  pass only~!\r
193         u1Byte PTActive;  // on or off\r
194         u1Byte PTTryState;  // 0 trying state, 1 for decision state\r
195         u1Byte PTStage;  // 0~6\r
196         u1Byte PTStopCount; //Stop PT counter\r
197         u1Byte PTPreRate;  // if rate change do PT\r
198         u1Byte PTPreRssi; // if RSSI change 5% do PT\r
199         u1Byte PTModeSS;  // decide whitch rate should do PT\r
200         u1Byte RAstage;  // StageRA, decide how many times RA will be done between PT\r
201         u1Byte PTSmoothFactor;\r
202 #endif\r
203 #if (DM_ODM_SUPPORT_TYPE == ODM_AP) &&  ((DEV_BUS_TYPE == RT_USB_INTERFACE) || (DEV_BUS_TYPE == RT_SDIO_INTERFACE))\r
204         u1Byte RateDownCounter;\r
205         u1Byte RateUpCounter;\r
206         u1Byte RateDirection;\r
207         u1Byte BoundingType;\r
208         u1Byte BoundingCounter;\r
209         u1Byte BoundingLearningTime;\r
210         u1Byte RateDownStartTime;\r
211 #endif\r
212 } ODM_RA_INFO_T, *PODM_RA_INFO_T;\r
213 #endif\r
214 \r
215 \r
216 typedef struct _Rate_Adaptive_Table_ {\r
217         u1Byte          firstconnect;\r
218 #if(DM_ODM_SUPPORT_TYPE==ODM_WIN)\r
219         BOOLEAN         PT_collision_pre;\r
220 #endif\r
221 \r
222 #if (defined(CONFIG_RA_DBG_CMD))\r
223         BOOLEAN         is_ra_dbg_init;\r
224 \r
225         u1Byte  RTY_P[ODM_NUM_RATE_IDX];\r
226         u1Byte  RTY_P_default[ODM_NUM_RATE_IDX];\r
227         BOOLEAN RTY_P_modify_note[ODM_NUM_RATE_IDX];\r
228 \r
229         u1Byte  RATE_UP_RTY_RATIO[ODM_NUM_RATE_IDX];\r
230         u1Byte  RATE_UP_RTY_RATIO_default[ODM_NUM_RATE_IDX];\r
231         BOOLEAN RATE_UP_RTY_RATIO_modify_note[ODM_NUM_RATE_IDX];\r
232 \r
233         u1Byte  RATE_DOWN_RTY_RATIO[ODM_NUM_RATE_IDX];\r
234         u1Byte  RATE_DOWN_RTY_RATIO_default[ODM_NUM_RATE_IDX];\r
235         BOOLEAN RATE_DOWN_RTY_RATIO_modify_note[ODM_NUM_RATE_IDX];\r
236 \r
237         BOOLEAN RA_Para_feedback_req;\r
238 \r
239         u1Byte   para_idx;\r
240         u1Byte  rate_idx;\r
241         u1Byte  value;\r
242         u2Byte  value_16;\r
243         u1Byte  rate_length;\r
244 #endif\r
245         u1Byte  link_tx_rate[ODM_ASSOCIATE_ENTRY_NUM];\r
246         u1Byte  highest_client_tx_order;\r
247         u2Byte  highest_client_tx_rate_order;\r
248         u1Byte  power_tracking_flag;\r
249         u1Byte  RA_threshold_offset;\r
250         u1Byte  RA_offset_direction;\r
251 \r
252         #if (defined(CONFIG_RA_DYNAMIC_RTY_LIMIT))\r
253         u1Byte per_rate_retrylimit_20M[ODM_NUM_RATE_IDX];\r
254         u1Byte per_rate_retrylimit_40M[ODM_NUM_RATE_IDX];       \r
255         u1Byte                  retry_descend_num;\r
256         u1Byte                  retrylimit_low;\r
257         u1Byte                  retrylimit_high;\r
258         #endif\r
259 \r
260 \r
261 } RA_T, *pRA_T;\r
262 \r
263 typedef struct _ODM_RATE_ADAPTIVE {\r
264         u1Byte                          Type;                           // DM_Type_ByFW/DM_Type_ByDriver\r
265         u1Byte                          HighRSSIThresh;         // if RSSI > HighRSSIThresh     => RATRState is DM_RATR_STA_HIGH\r
266         u1Byte                          LowRSSIThresh;          // if RSSI <= LowRSSIThresh     => RATRState is DM_RATR_STA_LOW\r
267         u1Byte                          RATRState;                      // Current RSSI level, DM_RATR_STA_HIGH/DM_RATR_STA_MIDDLE/DM_RATR_STA_LOW\r
268 \r
269 #if(DM_ODM_SUPPORT_TYPE & (ODM_WIN|ODM_CE))\r
270         u1Byte                          LdpcThres;                      // if RSSI > LdpcThres => switch from LPDC to BCC\r
271         BOOLEAN                         bLowerRtsRate;\r
272 #endif\r
273 \r
274 #if(DM_ODM_SUPPORT_TYPE & ODM_WIN)\r
275         u1Byte                          RtsThres;\r
276 #elif(DM_ODM_SUPPORT_TYPE & ODM_CE)\r
277         BOOLEAN                         bUseLdpc;\r
278 #else\r
279         u1Byte                          UltraLowRSSIThresh;\r
280         u4Byte                          LastRATR;                       // RATR Register Content\r
281 #endif\r
282 \r
283 } ODM_RATE_ADAPTIVE, *PODM_RATE_ADAPTIVE;\r
284 \r
285 #if (defined(CONFIG_RA_DBG_CMD))\r
286 \r
287 VOID\r
288 odm_RA_debug(\r
289         IN              PVOID           pDM_VOID,\r
290         IN              u4Byte          *const dm_value\r
291 );\r
292 \r
293 VOID\r
294 odm_RA_ParaAdjust_init(\r
295         IN              PVOID           pDM_VOID\r
296 );\r
297 \r
298 #else\r
299 \r
300 VOID\r
301 phydm_RA_debug_PCR(\r
302         IN              PVOID           pDM_VOID,\r
303         IN              u4Byte          *const dm_value,\r
304         IN              u4Byte          *_used,\r
305         OUT             char                    *output,\r
306         IN              u4Byte          *_out_len\r
307 );\r
308 \r
309 #endif\r
310 \r
311 VOID\r
312 ODM_C2HRaParaReportHandler(\r
313         IN      PVOID   pDM_VOID,\r
314         IN      pu1Byte CmdBuf,\r
315         IN      u1Byte  CmdLen\r
316 );\r
317 \r
318 VOID\r
319 odm_RA_ParaAdjust(\r
320         IN              PVOID           pDM_VOID\r
321 );\r
322 \r
323 VOID\r
324 phydm_ra_dynamic_retry_count(\r
325         IN      PVOID   pDM_VOID\r
326 );\r
327 \r
328 VOID\r
329 phydm_ra_dynamic_retry_limit(\r
330         IN      PVOID   pDM_VOID\r
331 );\r
332 \r
333 VOID\r
334 phydm_ra_dynamic_rate_id_on_assoc(\r
335         IN      PVOID   pDM_VOID,\r
336         IN      u1Byte  wireless_mode,\r
337         IN      u1Byte  init_rate_id\r
338 );\r
339 \r
340 VOID\r
341 phydm_print_rate(\r
342         IN      PVOID   pDM_VOID,\r
343         IN      u1Byte  rate,\r
344         IN      u4Byte  dbg_component\r
345 );\r
346 \r
347 VOID\r
348 phydm_c2h_ra_report_handler(\r
349         IN PVOID        pDM_VOID,\r
350         IN pu1Byte   CmdBuf,\r
351         IN u1Byte   CmdLen\r
352 );\r
353 \r
354 u1Byte\r
355 phydm_rate_order_compute(\r
356         IN      PVOID   pDM_VOID,\r
357         IN      u1Byte  rate_idx\r
358         );\r
359 \r
360 VOID\r
361 phydm_ra_info_watchdog(\r
362         IN      PVOID   pDM_VOID\r
363 );\r
364 \r
365 VOID\r
366 phydm_ra_info_init(\r
367         IN      PVOID   pDM_VOID\r
368 );\r
369 \r
370 VOID\r
371 odm_RSSIMonitorInit(\r
372         IN      PVOID   pDM_VOID\r
373 );\r
374 \r
375 VOID\r
376 odm_RSSIMonitorCheck(\r
377         IN      PVOID   pDM_VOID\r
378 );\r
379 \r
380 VOID\r
381 phydm_initRaInfo(\r
382         IN              PVOID           pDM_VOID\r
383 );\r
384 \r
385 u1Byte\r
386 phydm_vht_en_mapping(\r
387         IN      PVOID                   pDM_VOID,\r
388         IN      u4Byte                  WirelessMode\r
389 );\r
390 \r
391 u1Byte\r
392 phydm_rate_id_mapping(\r
393         IN      PVOID                   pDM_VOID,\r
394         IN      u4Byte                  WirelessMode,\r
395         IN      u1Byte                  RfType,\r
396         IN      u1Byte                  bw\r
397 );\r
398 \r
399 VOID\r
400 phydm_UpdateHalRAMask(\r
401         IN      PVOID                   pDM_VOID,\r
402         IN      u4Byte                  wirelessMode,\r
403         IN      u1Byte                  RfType,\r
404         IN      u1Byte                  BW,\r
405         IN      u1Byte                  MimoPs_enable,\r
406         IN      u1Byte                  disable_cck_rate,\r
407         IN      u4Byte                  *ratr_bitmap_msb_in,\r
408         IN      u4Byte                  *ratr_bitmap_in,\r
409         IN      u1Byte                  tx_rate_level\r
410 );\r
411 \r
412 VOID\r
413 odm_RateAdaptiveMaskInit(\r
414         IN      PVOID   pDM_VOID\r
415 );\r
416 \r
417 VOID\r
418 odm_RefreshRateAdaptiveMask(\r
419         IN              PVOID           pDM_VOID\r
420 );\r
421 \r
422 VOID\r
423 odm_RefreshRateAdaptiveMaskMP(\r
424         IN              PVOID           pDM_VOID\r
425 );\r
426 \r
427 VOID\r
428 odm_RefreshRateAdaptiveMaskCE(\r
429         IN              PVOID           pDM_VOID\r
430 );\r
431 \r
432 VOID\r
433 odm_RefreshRateAdaptiveMaskAPADSL(\r
434         IN              PVOID           pDM_VOID\r
435 );\r
436 \r
437 u1Byte \r
438 phydm_RA_level_decision(\r
439         IN              PVOID                   pDM_VOID,\r
440         IN              u4Byte                  rssi,\r
441         IN              u1Byte                  Ratr_State\r
442 );\r
443 \r
444 BOOLEAN\r
445 ODM_RAStateCheck(\r
446         IN              PVOID               pDM_VOID,\r
447         IN              s4Byte                  RSSI,\r
448         IN              BOOLEAN                 bForceUpdate,\r
449         OUT             pu1Byte                 pRATRState\r
450 );\r
451 \r
452 VOID\r
453 odm_RefreshBasicRateMask(\r
454         IN              PVOID           pDM_VOID\r
455 );\r
456 VOID\r
457 ODM_RAPostActionOnAssoc(\r
458         IN              PVOID   pDM_Odm\r
459 );\r
460 \r
461 #if (DM_ODM_SUPPORT_TYPE & (ODM_WIN | ODM_CE))\r
462 \r
463 u1Byte\r
464 odm_Find_RTS_Rate(\r
465         IN      PVOID           pDM_VOID,\r
466         IN              u1Byte                  Tx_Rate,\r
467         IN              BOOLEAN                 bErpProtect\r
468 );\r
469 \r
470 VOID\r
471 ODM_UpdateNoisyState(\r
472         IN      PVOID           pDM_VOID,\r
473         IN      BOOLEAN         bNoisyStateFromC2H\r
474 );\r
475 \r
476 VOID\r
477 phydm_update_pwr_track(\r
478         IN      PVOID           pDM_VOID,\r
479         IN      u1Byte          Rate\r
480 );\r
481 \r
482 #if (DM_ODM_SUPPORT_TYPE == ODM_WIN)\r
483 \r
484 s4Byte\r
485 phydm_FindMinimumRSSI(\r
486 IN              PDM_ODM_T               pDM_Odm,\r
487 IN              PADAPTER                pAdapter,\r
488 IN OUT  BOOLEAN *pbLink_temp\r
489 );\r
490 \r
491 VOID\r
492 ODM_UpdateInitRateWorkItemCallback(\r
493         IN      PVOID   pContext\r
494 );\r
495 \r
496 VOID\r
497 odm_RSSIDumpToRegister(\r
498         IN      PVOID   pDM_VOID\r
499 );\r
500 \r
501 VOID\r
502 odm_RefreshLdpcRtsMP(\r
503         IN      PADAPTER                        pAdapter,\r
504         IN      PDM_ODM_T                       pDM_Odm,\r
505         IN      u1Byte                          mMacId,\r
506         IN      u1Byte                          IOTPeer,\r
507         IN      s4Byte                          UndecoratedSmoothedPWDB\r
508 );\r
509 \r
510 #if 0\r
511 VOID\r
512 ODM_DynamicARFBSelect(\r
513         IN              PVOID           pDM_VOID,\r
514         IN              u1Byte          rate,\r
515         IN      BOOLEAN         Collision_State\r
516 );\r
517 #endif\r
518 \r
519 VOID\r
520 ODM_RateAdaptiveStateApInit(\r
521         IN      PVOID                   PADAPTER_VOID,\r
522         IN      PRT_WLAN_STA    pEntry\r
523 );\r
524 #elif (DM_ODM_SUPPORT_TYPE == ODM_CE)\r
525 \r
526 static void\r
527 FindMinimumRSSI(\r
528         IN      PADAPTER        pAdapter\r
529 );\r
530 \r
531 u8Byte\r
532 PhyDM_Get_Rate_Bitmap_Ex(\r
533         IN      PVOID           pDM_VOID,\r
534         IN      u4Byte          macid,\r
535         IN      u8Byte          ra_mask,\r
536         IN      u1Byte          rssi_level,\r
537         OUT             u8Byte  *dm_RA_Mask,\r
538         OUT             u1Byte  *dm_RteID\r
539 );\r
540 u4Byte\r
541 ODM_Get_Rate_Bitmap(\r
542         IN      PVOID       pDM_VOID,\r
543         IN      u4Byte          macid,\r
544         IN      u4Byte          ra_mask,\r
545         IN      u1Byte          rssi_level\r
546 );\r
547 \r
548 void phydm_ra_rssi_rpt_wk(PVOID pContext);\r
549 #endif/*#elif (DM_ODM_SUPPORT_TYPE == ODM_CE)*/\r
550 \r
551 #elif (DM_ODM_SUPPORT_TYPE & (ODM_AP))\r
552 \r
553 VOID\r
554 phydm_gen_ramask_h2c_AP(\r
555         IN              PVOID                   pDM_VOID,\r
556         IN              struct rtl8192cd_priv *priv,\r
557         IN              PSTA_INFO_T             *pEntry,\r
558         IN              u1Byte                  rssi_level\r
559 );\r
560 \r
561 #endif/*#if (DM_ODM_SUPPORT_TYPE & (ODM_WIN| ODM_CE))*/\r
562 \r
563 #endif /*#ifndef        __ODMRAINFO_H__*/\r
564 \r
565 \r