~slonua/+junk/rtl8821ce

« back to all changes in this revision

Viewing changes to hal/phydm/phydm_rainfo.h

  • Committer: Vitaliy Kulikov
  • Date: 2017-09-24 10:25:11 UTC
  • Revision ID: slonua@gmail.com-20170924102511-9q45rcjnowest8ee
init

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/******************************************************************************
 
2
 *
 
3
 * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.
 
4
 *
 
5
 * This program is free software; you can redistribute it and/or modify it
 
6
 * under the terms of version 2 of the GNU General Public License as
 
7
 * published by the Free Software Foundation.
 
8
 *
 
9
 * This program is distributed in the hope that it will be useful, but WITHOUT
 
10
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 
11
 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
 
12
 * more details.
 
13
 *
 
14
 * You should have received a copy of the GNU General Public License along with
 
15
 * this program; if not, write to the Free Software Foundation, Inc.,
 
16
 * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
 
17
 *
 
18
 *
 
19
 ******************************************************************************/
 
20
 
 
21
#ifndef __PHYDMRAINFO_H__
 
22
#define    __PHYDMRAINFO_H__
 
23
 
 
24
/*#define RAINFO_VERSION        "2.0"  //2014.11.04*/
 
25
/*#define RAINFO_VERSION        "3.0"  //2015.01.13 Dino*/
 
26
/*#define RAINFO_VERSION        "3.1"  //2015.01.14 Dino*/
 
27
/*#define RAINFO_VERSION        "3.3"  2015.07.29 YuChen*/
 
28
/*#define RAINFO_VERSION        "3.4"*/  /*2015.12.15 Stanley*/
 
29
/*#define RAINFO_VERSION        "4.0"*/  /*2016.03.24 Dino, Add more RA mask state and Phydm-lize partial ra mask function  */
 
30
/*#define RAINFO_VERSION        "4.1"*/  /*2016.04.20 Dino, Add new function to adjust PCR RA threshold  */
 
31
/*#define RAINFO_VERSION        "4.2"*/  /*2016.05.17 Dino, Add H2C debug cmd  */
 
32
#define RAINFO_VERSION  "4.3"  /*2016.07.11 Dino, Fix RA hang in CCK 1M problem  */
 
33
 
 
34
#define FORCED_UPDATE_RAMASK_PERIOD     5
 
35
 
 
36
#define H2C_0X42_LENGTH 5
 
37
#define H2C_MAX_LENGTH  7
 
38
 
 
39
#define RA_FLOOR_UP_GAP         3
 
40
#define RA_FLOOR_TABLE_SIZE     7
 
41
 
 
42
#define ACTIVE_TP_THRESHOLD     150
 
43
#define RA_RETRY_DESCEND_NUM    2
 
44
#define RA_RETRY_LIMIT_LOW      4
 
45
#define RA_RETRY_LIMIT_HIGH     32
 
46
 
 
47
#define RAINFO_BE_RX_STATE                      BIT(0)  /* 1:RX    */ /* ULDL */
 
48
#define RAINFO_STBC_STATE                       BIT(1)
 
49
/* #define RAINFO_LDPC_STATE                    BIT2 */
 
50
#define RAINFO_NOISY_STATE                      BIT(2)    /* set by Noisy_Detection */
 
51
#define RAINFO_SHURTCUT_STATE           BIT(3)
 
52
#define RAINFO_SHURTCUT_FLAG            BIT(4)
 
53
#define RAINFO_INIT_RSSI_RATE_STATE  BIT(5)
 
54
#define RAINFO_BF_STATE                         BIT(6)
 
55
#define RAINFO_BE_TX_STATE                      BIT(7) /* 1:TX */
 
56
 
 
57
#define RA_MASK_CCK             0xf
 
58
#define RA_MASK_OFDM            0xff0
 
59
#define RA_MASK_HT1SS           0xff000
 
60
#define RA_MASK_HT2SS           0xff00000
 
61
/*#define       RA_MASK_MCS3SS  */
 
62
#define RA_MASK_HT4SS           0xff0
 
63
#define RA_MASK_VHT1SS  0x3ff000
 
64
#define RA_MASK_VHT2SS  0xffc00000
 
65
 
 
66
#if (DM_ODM_SUPPORT_TYPE == ODM_AP)
 
67
        #define         RA_FIRST_MACID  1
 
68
#elif (DM_ODM_SUPPORT_TYPE == ODM_WIN)
 
69
        #define RA_FIRST_MACID  0
 
70
        #define WIN_DEFAULT_PORT_MACID  0
 
71
        #define WIN_BT_PORT_MACID       2
 
72
#else /*if (DM_ODM_SUPPORT_TYPE == ODM_CE)*/
 
73
        #define         RA_FIRST_MACID  0
 
74
#endif
 
75
 
 
76
#if (DM_ODM_SUPPORT_TYPE & ODM_WIN)
 
77
#define AP_InitRateAdaptiveState                odm_rate_adaptive_state_ap_init
 
78
#else
 
79
#define ap_init_rate_adaptive_state     odm_rate_adaptive_state_ap_init
 
80
#endif
 
81
 
 
82
#if (RA_MASK_PHYDMLIZE_CE || RA_MASK_PHYDMLIZE_AP || RA_MASK_PHYDMLIZE_WIN)
 
83
        #define         DM_RATR_STA_INIT                        0
 
84
        #define         DM_RATR_STA_HIGH                        1
 
85
        #define         DM_RATR_STA_MIDDLE              2
 
86
        #define         DM_RATR_STA_LOW                 3
 
87
        #define         DM_RATR_STA_ULTRA_LOW   4
 
88
#endif
 
89
 
 
90
enum phydm_ra_arfr_num_e {
 
91
        ARFR_0_RATE_ID  =       0x9,
 
92
        ARFR_1_RATE_ID  =       0xa,
 
93
        ARFR_2_RATE_ID  =       0xb,
 
94
        ARFR_3_RATE_ID  =       0xc,
 
95
        ARFR_4_RATE_ID  =       0xd,
 
96
        ARFR_5_RATE_ID  =       0xe
 
97
};
 
98
 
 
99
enum phydm_ra_dbg_para_e {
 
100
        RADBG_PCR_TH_OFFSET             =       0,
 
101
        RADBG_RTY_PENALTY               =       1,
 
102
        RADBG_N_HIGH                            =       2,
 
103
        RADBG_N_LOW                             =       3,
 
104
        RADBG_TRATE_UP_TABLE            =       4,
 
105
        RADBG_TRATE_DOWN_TABLE  =       5,
 
106
        RADBG_TRYING_NECESSARY  =       6,
 
107
        RADBG_TDROPING_NECESSARY =      7,
 
108
        RADBG_RATE_UP_RTY_RATIO =       8,
 
109
        RADBG_RATE_DOWN_RTY_RATIO =     9, /* u8 */
 
110
 
 
111
        RADBG_DEBUG_MONITOR1 = 0xc,
 
112
        RADBG_DEBUG_MONITOR2 = 0xd,
 
113
        RADBG_DEBUG_MONITOR3 = 0xe,
 
114
        RADBG_DEBUG_MONITOR4 = 0xf,
 
115
        RADBG_DEBUG_MONITOR5 = 0x10,
 
116
        NUM_RA_PARA
 
117
};
 
118
 
 
119
enum phydm_wireless_mode_e {
 
120
 
 
121
        PHYDM_WIRELESS_MODE_UNKNOWN = 0x00,
 
122
        PHYDM_WIRELESS_MODE_A           = 0x01,
 
123
        PHYDM_WIRELESS_MODE_B           = 0x02,
 
124
        PHYDM_WIRELESS_MODE_G           = 0x04,
 
125
        PHYDM_WIRELESS_MODE_AUTO        = 0x08,
 
126
        PHYDM_WIRELESS_MODE_N_24G       = 0x10,
 
127
        PHYDM_WIRELESS_MODE_N_5G        = 0x20,
 
128
        PHYDM_WIRELESS_MODE_AC_5G       = 0x40,
 
129
        PHYDM_WIRELESS_MODE_AC_24G      = 0x80,
 
130
        PHYDM_WIRELESS_MODE_AC_ONLY     = 0x100,
 
131
        PHYDM_WIRELESS_MODE_MAX         = 0x800,
 
132
        PHYDM_WIRELESS_MODE_ALL         = 0xFFFF
 
133
};
 
134
 
 
135
enum phydm_rateid_idx_e {
 
136
 
 
137
        PHYDM_BGN_40M_2SS       = 0,
 
138
        PHYDM_BGN_40M_1SS       = 1,
 
139
        PHYDM_BGN_20M_2SS       = 2,
 
140
        PHYDM_BGN_20M_1SS       = 3,
 
141
        PHYDM_GN_N2SS                   = 4,
 
142
        PHYDM_GN_N1SS                   = 5,
 
143
        PHYDM_BG                                = 6,
 
144
        PHYDM_G                         = 7,
 
145
        PHYDM_B_20M                     = 8,
 
146
        PHYDM_ARFR0_AC_2SS      = 9,
 
147
        PHYDM_ARFR1_AC_1SS      = 10,
 
148
        PHYDM_ARFR2_AC_2G_1SS   = 11,
 
149
        PHYDM_ARFR3_AC_2G_2SS   = 12,
 
150
        PHYDM_ARFR4_AC_3SS      = 13,
 
151
        PHYDM_ARFR5_N_3SS               = 14
 
152
};
 
153
 
 
154
enum phydm_rf_type_def_e {
 
155
        PHYDM_RF_1T1R = 0,
 
156
        PHYDM_RF_1T2R,
 
157
        PHYDM_RF_2T2R,
 
158
        PHYDM_RF_2T2R_GREEN,
 
159
        PHYDM_RF_2T3R,
 
160
        PHYDM_RF_2T4R,
 
161
        PHYDM_RF_3T3R,
 
162
        PHYDM_RF_3T4R,
 
163
        PHYDM_RF_4T4R,
 
164
        PHYDM_RF_MAX_TYPE
 
165
};
 
166
 
 
167
enum phydm_bw_e {
 
168
        PHYDM_BW_20     = 0,
 
169
        PHYDM_BW_40,
 
170
        PHYDM_BW_80,
 
171
        PHYDM_BW_80_80,
 
172
        PHYDM_BW_160,
 
173
        PHYDM_BW_10,
 
174
        PHYDM_BW_5
 
175
};
 
176
 
 
177
 
 
178
#if (RATE_ADAPTIVE_SUPPORT == 1)/* 88E RA */
 
179
struct _odm_ra_info_ {
 
180
        u8 rate_id;
 
181
        u32 rate_mask;
 
182
        u32 ra_use_rate;
 
183
        u8 rate_sgi;
 
184
        u8 rssi_sta_ra;
 
185
        u8 pre_rssi_sta_ra;
 
186
        u8 sgi_enable;
 
187
        u8 decision_rate;
 
188
        u8 pre_rate;
 
189
        u8 highest_rate;
 
190
        u8 lowest_rate;
 
191
        u32 nsc_up;
 
192
        u32 nsc_down;
 
193
        u16 RTY[5];
 
194
        u32 TOTAL;
 
195
        u16 DROP;
 
196
        u8 active;
 
197
        u16 rpt_time;
 
198
        u8 ra_waiting_counter;
 
199
        u8 ra_pending_counter;
 
200
        u8 ra_drop_after_down;
 
201
#if 1 /* POWER_TRAINING_ACTIVE == 1 */ /* For compile  pass only~! */
 
202
        u8 pt_active;  /* on or off */
 
203
        u8 pt_try_state;  /* 0 trying state, 1 for decision state */
 
204
        u8 pt_stage;  /* 0~6 */
 
205
        u8 pt_stop_count; /* Stop PT counter */
 
206
        u8 pt_pre_rate;  /* if rate change do PT */
 
207
        u8 pt_pre_rssi; /* if RSSI change 5% do PT */
 
208
        u8 pt_mode_ss;  /* decide whitch rate should do PT */
 
209
        u8 ra_stage;  /* StageRA, decide how many times RA will be done between PT */
 
210
        u8 pt_smooth_factor;
 
211
#endif
 
212
#if (DM_ODM_SUPPORT_TYPE == ODM_AP) &&  ((DEV_BUS_TYPE == RT_USB_INTERFACE) || (DEV_BUS_TYPE == RT_SDIO_INTERFACE))
 
213
        u8 rate_down_counter;
 
214
        u8 rate_up_counter;
 
215
        u8 rate_direction;
 
216
        u8 bounding_type;
 
217
        u8 bounding_counter;
 
218
        u8 bounding_learning_time;
 
219
        u8 rate_down_start_time;
 
220
#endif
 
221
};
 
222
#endif
 
223
 
 
224
 
 
225
struct _rate_adaptive_table_ {
 
226
        u8              firstconnect;
 
227
#if (DM_ODM_SUPPORT_TYPE == ODM_WIN)
 
228
        boolean         PT_collision_pre;
 
229
#endif
 
230
 
 
231
#if (defined(CONFIG_RA_DBG_CMD))
 
232
        boolean         is_ra_dbg_init;
 
233
 
 
234
        u8      RTY_P[ODM_NUM_RATE_IDX];
 
235
        u8      RTY_P_default[ODM_NUM_RATE_IDX];
 
236
        boolean RTY_P_modify_note[ODM_NUM_RATE_IDX];
 
237
 
 
238
        u8      RATE_UP_RTY_RATIO[ODM_NUM_RATE_IDX];
 
239
        u8      RATE_UP_RTY_RATIO_default[ODM_NUM_RATE_IDX];
 
240
        boolean RATE_UP_RTY_RATIO_modify_note[ODM_NUM_RATE_IDX];
 
241
 
 
242
        u8      RATE_DOWN_RTY_RATIO[ODM_NUM_RATE_IDX];
 
243
        u8      RATE_DOWN_RTY_RATIO_default[ODM_NUM_RATE_IDX];
 
244
        boolean RATE_DOWN_RTY_RATIO_modify_note[ODM_NUM_RATE_IDX];
 
245
 
 
246
        boolean ra_para_feedback_req;
 
247
 
 
248
        u8   para_idx;
 
249
        u8      rate_idx;
 
250
        u8      value;
 
251
        u16     value_16;
 
252
        u8      rate_length;
 
253
#endif
 
254
        u8      link_tx_rate[ODM_ASSOCIATE_ENTRY_NUM];
 
255
        u8      highest_client_tx_order;
 
256
        u16     highest_client_tx_rate_order;
 
257
        u8      power_tracking_flag;
 
258
        u8      RA_threshold_offset;
 
259
        u8      RA_offset_direction;
 
260
        u8      force_update_ra_mask_count;
 
261
 
 
262
#if (defined(CONFIG_RA_DYNAMIC_RTY_LIMIT))
 
263
        u8 per_rate_retrylimit_20M[ODM_NUM_RATE_IDX];
 
264
        u8 per_rate_retrylimit_40M[ODM_NUM_RATE_IDX];
 
265
        u8                      retry_descend_num;
 
266
        u8                      retrylimit_low;
 
267
        u8                      retrylimit_high;
 
268
#endif
 
269
 
 
270
 
 
271
};
 
272
 
 
273
struct _ODM_RATE_ADAPTIVE {
 
274
        u8                              type;                           /* dm_type_by_fw/dm_type_by_driver */
 
275
        u8                              high_rssi_thresh;               /* if RSSI > high_rssi_thresh   => ratr_state is DM_RATR_STA_HIGH */
 
276
        u8                              low_rssi_thresh;                /* if RSSI <= low_rssi_thresh   => ratr_state is DM_RATR_STA_LOW */
 
277
        u8                              ratr_state;                     /* Current RSSI level, DM_RATR_STA_HIGH/DM_RATR_STA_MIDDLE/DM_RATR_STA_LOW */
 
278
 
 
279
#if (DM_ODM_SUPPORT_TYPE & (ODM_WIN | ODM_CE))
 
280
        u8                              ldpc_thres;                     /* if RSSI > ldpc_thres => switch from LPDC to BCC */
 
281
        boolean                         is_lower_rts_rate;
 
282
#endif
 
283
 
 
284
#if (DM_ODM_SUPPORT_TYPE & ODM_WIN)
 
285
        u8                              rts_thres;
 
286
#elif (DM_ODM_SUPPORT_TYPE & ODM_CE)
 
287
        boolean                         is_use_ldpc;
 
288
#else
 
289
        u8                              ultra_low_rssi_thresh;
 
290
        u32                             last_ratr;                      /* RATR Register Content */
 
291
#endif
 
292
 
 
293
};
 
294
 
 
295
void
 
296
phydm_h2C_debug(
 
297
        void            *p_dm_void,
 
298
        u32             *const dm_value,
 
299
        u32             *_used,
 
300
        char                    *output,
 
301
        u32             *_out_len
 
302
);
 
303
 
 
304
#if (defined(CONFIG_RA_DBG_CMD))
 
305
 
 
306
void
 
307
odm_RA_debug(
 
308
        void            *p_dm_void,
 
309
        u32             *const dm_value
 
310
);
 
311
 
 
312
void
 
313
odm_ra_para_adjust_init(
 
314
        void            *p_dm_void
 
315
);
 
316
 
 
317
#else
 
318
 
 
319
void
 
320
phydm_RA_debug_PCR(
 
321
        void            *p_dm_void,
 
322
        u32             *const dm_value,
 
323
        u32             *_used,
 
324
        char                    *output,
 
325
        u32             *_out_len
 
326
);
 
327
 
 
328
#endif
 
329
 
 
330
void
 
331
odm_c2h_ra_para_report_handler(
 
332
        void    *p_dm_void,
 
333
        u8      *cmd_buf,
 
334
        u8      cmd_len
 
335
);
 
336
 
 
337
void
 
338
odm_ra_para_adjust(
 
339
        void            *p_dm_void
 
340
);
 
341
 
 
342
void
 
343
phydm_ra_dynamic_retry_count(
 
344
        void    *p_dm_void
 
345
);
 
346
 
 
347
void
 
348
phydm_ra_dynamic_retry_limit(
 
349
        void    *p_dm_void
 
350
);
 
351
 
 
352
void
 
353
phydm_ra_dynamic_rate_id_on_assoc(
 
354
        void    *p_dm_void,
 
355
        u8      wireless_mode,
 
356
        u8      init_rate_id
 
357
);
 
358
 
 
359
void
 
360
phydm_print_rate(
 
361
        void    *p_dm_void,
 
362
        u8      rate,
 
363
        u32     dbg_component
 
364
);
 
365
 
 
366
void
 
367
phydm_c2h_ra_report_handler(
 
368
        void    *p_dm_void,
 
369
        u8   *cmd_buf,
 
370
        u8   cmd_len
 
371
);
 
372
 
 
373
u8
 
374
phydm_rate_order_compute(
 
375
        void    *p_dm_void,
 
376
        u8      rate_idx
 
377
);
 
378
 
 
379
void
 
380
phydm_ra_info_watchdog(
 
381
        void    *p_dm_void
 
382
);
 
383
 
 
384
void
 
385
phydm_ra_info_init(
 
386
        void    *p_dm_void
 
387
);
 
388
 
 
389
void
 
390
odm_rssi_monitor_init(
 
391
        void    *p_dm_void
 
392
);
 
393
 
 
394
void
 
395
phydm_modify_RA_PCR_threshold(
 
396
        void            *p_dm_void,
 
397
        u8              RA_offset_direction,
 
398
        u8              RA_threshold_offset
 
399
);
 
400
 
 
401
void
 
402
odm_rssi_monitor_check(
 
403
        void    *p_dm_void
 
404
);
 
405
 
 
406
void
 
407
phydm_init_ra_info(
 
408
        void            *p_dm_void
 
409
);
 
410
 
 
411
u8
 
412
phydm_vht_en_mapping(
 
413
        void                    *p_dm_void,
 
414
        u32                     wireless_mode
 
415
);
 
416
 
 
417
u8
 
418
phydm_rate_id_mapping(
 
419
        void                    *p_dm_void,
 
420
        u32                     wireless_mode,
 
421
        u8                      rf_type,
 
422
        u8                      bw
 
423
);
 
424
 
 
425
void
 
426
phydm_update_hal_ra_mask(
 
427
        void                    *p_dm_void,
 
428
        u32                     wireless_mode,
 
429
        u8                      rf_type,
 
430
        u8                      BW,
 
431
        u8                      mimo_ps_enable,
 
432
        u8                      disable_cck_rate,
 
433
        u32                     *ratr_bitmap_msb_in,
 
434
        u32                     *ratr_bitmap_in,
 
435
        u8                      tx_rate_level
 
436
);
 
437
 
 
438
void
 
439
odm_rate_adaptive_mask_init(
 
440
        void    *p_dm_void
 
441
);
 
442
 
 
443
void
 
444
odm_refresh_rate_adaptive_mask(
 
445
        void            *p_dm_void
 
446
);
 
447
 
 
448
void
 
449
odm_refresh_rate_adaptive_mask_mp(
 
450
        void            *p_dm_void
 
451
);
 
452
 
 
453
void
 
454
odm_refresh_rate_adaptive_mask_ce(
 
455
        void            *p_dm_void
 
456
);
 
457
 
 
458
void
 
459
odm_refresh_rate_adaptive_mask_apadsl(
 
460
        void            *p_dm_void
 
461
);
 
462
 
 
463
u8
 
464
phydm_RA_level_decision(
 
465
        void                    *p_dm_void,
 
466
        u32                     rssi,
 
467
        u8                      ratr_state
 
468
);
 
469
 
 
470
boolean
 
471
odm_ra_state_check(
 
472
        void            *p_dm_void,
 
473
        s32                     RSSI,
 
474
        boolean                 is_force_update,
 
475
        u8                      *p_ra_tr_state
 
476
);
 
477
 
 
478
void
 
479
odm_refresh_basic_rate_mask(
 
480
        void            *p_dm_void
 
481
);
 
482
void
 
483
odm_ra_post_action_on_assoc(
 
484
        void    *p_dm_odm
 
485
);
 
486
 
 
487
#if (DM_ODM_SUPPORT_TYPE & (ODM_WIN | ODM_CE))
 
488
 
 
489
u8
 
490
odm_find_rts_rate(
 
491
        void            *p_dm_void,
 
492
        u8                      tx_rate,
 
493
        boolean                 is_erp_protect
 
494
);
 
495
 
 
496
void
 
497
odm_update_noisy_state(
 
498
        void            *p_dm_void,
 
499
        boolean         is_noisy_state_from_c2h
 
500
);
 
501
 
 
502
void
 
503
phydm_update_pwr_track(
 
504
        void            *p_dm_void,
 
505
        u8              rate
 
506
);
 
507
 
 
508
#if (DM_ODM_SUPPORT_TYPE == ODM_WIN)
 
509
 
 
510
s32
 
511
phydm_find_minimum_rssi(
 
512
        struct PHY_DM_STRUCT            *p_dm_odm,
 
513
        struct _ADAPTER         *p_adapter,
 
514
        OUT     boolean *p_is_link_temp
 
515
);
 
516
 
 
517
void
 
518
odm_update_init_rate_work_item_callback(
 
519
        void    *p_context
 
520
);
 
521
 
 
522
void
 
523
odm_rssi_dump_to_register(
 
524
        void    *p_dm_void
 
525
);
 
526
 
 
527
void
 
528
odm_refresh_ldpc_rts_mp(
 
529
        struct _ADAPTER                 *p_adapter,
 
530
        struct PHY_DM_STRUCT                    *p_dm_odm,
 
531
        u8                              m_mac_id,
 
532
        u8                              iot_peer,
 
533
        s32                             undecorated_smoothed_pwdb
 
534
);
 
535
 
 
536
#if 0
 
537
void
 
538
odm_dynamic_arfb_select(
 
539
        void            *p_dm_void,
 
540
        u8              rate,
 
541
        boolean         collision_state
 
542
);
 
543
#endif
 
544
 
 
545
void
 
546
odm_rate_adaptive_state_ap_init(
 
547
        void                    *PADAPTER_VOID,
 
548
        struct sta_info *p_entry
 
549
);
 
550
#elif (DM_ODM_SUPPORT_TYPE == ODM_CE)
 
551
 
 
552
static void
 
553
find_minimum_rssi(
 
554
        struct _ADAPTER *p_adapter
 
555
);
 
556
 
 
557
u64
 
558
phydm_get_rate_bitmap_ex(
 
559
        void            *p_dm_void,
 
560
        u32             macid,
 
561
        u64             ra_mask,
 
562
        u8              rssi_level,
 
563
        u64     *dm_ra_mask,
 
564
        u8      *dm_rte_id
 
565
);
 
566
u32
 
567
odm_get_rate_bitmap(
 
568
        void    *p_dm_void,
 
569
        u32             macid,
 
570
        u32             ra_mask,
 
571
        u8              rssi_level
 
572
);
 
573
 
 
574
void phydm_ra_rssi_rpt_wk(void *p_context);
 
575
#endif/*#elif (DM_ODM_SUPPORT_TYPE == ODM_CE)*/
 
576
 
 
577
#elif (DM_ODM_SUPPORT_TYPE & (ODM_AP))
 
578
/*
 
579
void
 
580
phydm_gen_ramask_h2c_AP(
 
581
        void                                    *p_dm_void,
 
582
        struct rtl8192cd_priv   *priv,
 
583
        struct sta_info                 *p_entry,
 
584
        u8                                      rssi_level
 
585
);
 
586
*/
 
587
#endif/*#if (DM_ODM_SUPPORT_TYPE & (ODM_WIN| ODM_CE))*/
 
588
 
 
589
#endif /*#ifndef        __ODMRAINFO_H__*/