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
diff --git a/drivers/net/wireless/rockchip_wlan/rtl8822be/hal/phydm/phydm_rainfo.h b/drivers/net/wireless/rockchip_wlan/rtl8822be/hal/phydm/phydm_rainfo.h
new file mode 100644 (file)
index 0000000..4c5ce8e
--- /dev/null
@@ -0,0 +1,565 @@
+/******************************************************************************\r
+ *\r
+ * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.\r
+ *\r
+ * This program is free software; you can redistribute it and/or modify it\r
+ * under the terms of version 2 of the GNU General Public License as\r
+ * published by the Free Software Foundation.\r
+ *\r
+ * This program is distributed in the hope that it will be useful, but WITHOUT\r
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or\r
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for\r
+ * more details.\r
+ *\r
+ * You should have received a copy of the GNU General Public License along with\r
+ * this program; if not, write to the Free Software Foundation, Inc.,\r
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA\r
+ *\r
+ *\r
+ ******************************************************************************/\r
+\r
+#ifndef        __PHYDMRAINFO_H__\r
+#define    __PHYDMRAINFO_H__\r
+\r
+/*#define RAINFO_VERSION       "2.0"  //2014.11.04*/\r
+/*#define RAINFO_VERSION       "3.0"  //2015.01.13 Dino*/\r
+/*#define RAINFO_VERSION       "3.1"  //2015.01.14 Dino*/\r
+/*#define RAINFO_VERSION       "3.3"  2015.07.29 YuChen*/\r
+/*#define RAINFO_VERSION       "3.4"*/  /*2015.12.15 Stanley*/\r
+/*#define RAINFO_VERSION       "4.0"*/  /*2016.03.24 Dino, Add more RA mask state and Phydm-lize partial ra mask function  */\r
+#define RAINFO_VERSION "4.1"  /*2016.04.20 Dino, Add new function to adjust PCR RA threshold  */\r
+\r
+#define        H2C_0X42_LENGTH 5\r
+\r
+#define        RA_FLOOR_UP_GAP                         3\r
+#define        RA_FLOOR_TABLE_SIZE     7\r
+\r
+#define        ACTIVE_TP_THRESHOLD     150\r
+#define        RA_RETRY_DESCEND_NUM    2\r
+#define        RA_RETRY_LIMIT_LOW      4\r
+#define        RA_RETRY_LIMIT_HIGH     32\r
+\r
+#define RAINFO_BE_RX_STATE                     BIT0  // 1:RX    //ULDL\r
+#define RAINFO_STBC_STATE                      BIT1\r
+//#define RAINFO_LDPC_STATE                    BIT2\r
+#define RAINFO_NOISY_STATE                     BIT2    // set by Noisy_Detection\r
+#define RAINFO_SHURTCUT_STATE          BIT3\r
+#define RAINFO_SHURTCUT_FLAG           BIT4\r
+#define RAINFO_INIT_RSSI_RATE_STATE  BIT5\r
+#define RAINFO_BF_STATE                                BIT6\r
+#define RAINFO_BE_TX_STATE                     BIT7 // 1:TX\r
+\r
+#define        RA_MASK_CCK             0xf\r
+#define        RA_MASK_OFDM            0xff0\r
+#define        RA_MASK_HT1SS           0xff000\r
+#define        RA_MASK_HT2SS           0xff00000\r
+/*#define      RA_MASK_MCS3SS  */\r
+#define        RA_MASK_HT4SS           0xff0\r
+#define        RA_MASK_VHT1SS  0x3ff000\r
+#define        RA_MASK_VHT2SS  0xffc00000\r
+\r
+#if(DM_ODM_SUPPORT_TYPE == ODM_AP)\r
+#define                RA_FIRST_MACID  1\r
+#elif (DM_ODM_SUPPORT_TYPE == ODM_WIN)\r
+#define        RA_FIRST_MACID  0\r
+#define        WIN_DEFAULT_PORT_MACID  0\r
+#define        WIN_BT_PORT_MACID       2\r
+#else /*if (DM_ODM_SUPPORT_TYPE == ODM_CE)*/\r
+#define                RA_FIRST_MACID  0\r
+#endif\r
+\r
+#define AP_InitRateAdaptiveState       ODM_RateAdaptiveStateApInit\r
+\r
+#if (RA_MASK_PHYDMLIZE_CE || RA_MASK_PHYDMLIZE_AP || RA_MASK_PHYDMLIZE_WIN)\r
+#define                DM_RATR_STA_INIT                        0\r
+#define                DM_RATR_STA_HIGH                        1\r
+#define                DM_RATR_STA_MIDDLE              2\r
+#define                DM_RATR_STA_LOW                 3\r
+#define                DM_RATR_STA_ULTRA_LOW   4\r
+#endif\r
+\r
+typedef enum _phydm_arfr_num {\r
+       ARFR_0_RATE_ID  =       0x9,\r
+       ARFR_1_RATE_ID  =       0xa,\r
+       ARFR_2_RATE_ID  =       0xb,\r
+       ARFR_3_RATE_ID  =       0xc,\r
+       ARFR_4_RATE_ID  =       0xd,\r
+       ARFR_5_RATE_ID  =       0xe\r
+} PHYDM_RA_ARFR_NUM_E;\r
+\r
+typedef enum _Phydm_ra_dbg_para {\r
+       RADBG_PCR_TH_OFFSET             =       0,\r
+       RADBG_RTY_PENALTY               =       1,\r
+       RADBG_N_HIGH                            =       2,\r
+       RADBG_N_LOW                             =       3,\r
+       RADBG_TRATE_UP_TABLE            =       4,\r
+       RADBG_TRATE_DOWN_TABLE  =       5,\r
+       RADBG_TRYING_NECESSARY  =       6,\r
+       RADBG_TDROPING_NECESSARY =      7,\r
+       RADBG_RATE_UP_RTY_RATIO =       8,\r
+       RADBG_RATE_DOWN_RTY_RATIO =     9, //u8\r
+\r
+       RADBG_DEBUG_MONITOR1 = 0xc,\r
+       RADBG_DEBUG_MONITOR2 = 0xd,\r
+       RADBG_DEBUG_MONITOR3 = 0xe,\r
+       RADBG_DEBUG_MONITOR4 = 0xf,\r
+       RADBG_DEBUG_MONITOR5 = 0x10,\r
+       NUM_RA_PARA\r
+} PHYDM_RA_DBG_PARA_E;\r
+\r
+typedef enum PHYDM_WIRELESS_MODE {\r
+       \r
+       PHYDM_WIRELESS_MODE_UNKNOWN = 0x00,\r
+       PHYDM_WIRELESS_MODE_A           = 0x01,\r
+       PHYDM_WIRELESS_MODE_B           = 0x02,\r
+       PHYDM_WIRELESS_MODE_G           = 0x04,\r
+       PHYDM_WIRELESS_MODE_AUTO        = 0x08,\r
+       PHYDM_WIRELESS_MODE_N_24G       = 0x10,\r
+       PHYDM_WIRELESS_MODE_N_5G        = 0x20,\r
+       PHYDM_WIRELESS_MODE_AC_5G       = 0x40,\r
+       PHYDM_WIRELESS_MODE_AC_24G      = 0x80,\r
+       PHYDM_WIRELESS_MODE_AC_ONLY     = 0x100,\r
+       PHYDM_WIRELESS_MODE_MAX         = 0x800,\r
+       PHYDM_WIRELESS_MODE_ALL         = 0xFFFF\r
+} PHYDM_WIRELESS_MODE_E;\r
+\r
+typedef enum PHYDM_RATEID_IDX_ {\r
+       \r
+       PHYDM_BGN_40M_2SS       = 0,\r
+       PHYDM_BGN_40M_1SS       = 1,\r
+       PHYDM_BGN_20M_2SS       = 2,\r
+       PHYDM_BGN_20M_1SS       = 3,\r
+       PHYDM_GN_N2SS                   = 4,\r
+       PHYDM_GN_N1SS                   = 5,\r
+       PHYDM_BG                                = 6,\r
+       PHYDM_G                         = 7,\r
+       PHYDM_B_20M                     = 8,\r
+       PHYDM_ARFR0_AC_2SS      = 9,\r
+       PHYDM_ARFR1_AC_1SS      = 10,\r
+       PHYDM_ARFR2_AC_2G_1SS   = 11,\r
+       PHYDM_ARFR3_AC_2G_2SS   = 12,\r
+       PHYDM_ARFR4_AC_3SS      = 13,\r
+       PHYDM_ARFR5_N_3SS               = 14\r
+} PHYDM_RATEID_IDX_E;\r
+\r
+typedef        enum _PHYDM_RF_TYPE_DEFINITION {\r
+       PHYDM_RF_1T1R = 0,\r
+       PHYDM_RF_1T2R,                  \r
+       PHYDM_RF_2T2R,\r
+       PHYDM_RF_2T2R_GREEN,\r
+       PHYDM_RF_2T3R,\r
+       PHYDM_RF_2T4R,\r
+       PHYDM_RF_3T3R,\r
+       PHYDM_RF_3T4R,\r
+       PHYDM_RF_4T4R,\r
+       PHYDM_RF_MAX_TYPE\r
+} PHYDM_RF_TYPE_DEF_E;\r
+\r
+typedef        enum _PHYDM_BW {\r
+       PHYDM_BW_20     = 0,\r
+       PHYDM_BW_40,\r
+       PHYDM_BW_80,\r
+       PHYDM_BW_80_80, \r
+       PHYDM_BW_160,\r
+       PHYDM_BW_10,\r
+       PHYDM_BW_5\r
+} PHYDM_BW_E;\r
+\r
+\r
+#if (RATE_ADAPTIVE_SUPPORT == 1)//88E RA\r
+typedef struct _ODM_RA_Info_ {\r
+       u1Byte RateID;\r
+       u4Byte RateMask;\r
+       u4Byte RAUseRate;\r
+       u1Byte RateSGI;\r
+       u1Byte RssiStaRA;\r
+       u1Byte PreRssiStaRA;\r
+       u1Byte SGIEnable;\r
+       u1Byte DecisionRate;\r
+       u1Byte PreRate;\r
+       u1Byte HighestRate;\r
+       u1Byte LowestRate;\r
+       u4Byte NscUp;\r
+       u4Byte NscDown;\r
+       u2Byte RTY[5];\r
+       u4Byte TOTAL;\r
+       u2Byte DROP;\r
+       u1Byte Active;\r
+       u2Byte RptTime;\r
+       u1Byte RAWaitingCounter;\r
+       u1Byte RAPendingCounter;\r
+       u1Byte RADropAfterDown;\r
+#if 1 //POWER_TRAINING_ACTIVE == 1 // For compile  pass only~!\r
+       u1Byte PTActive;  // on or off\r
+       u1Byte PTTryState;  // 0 trying state, 1 for decision state\r
+       u1Byte PTStage;  // 0~6\r
+       u1Byte PTStopCount; //Stop PT counter\r
+       u1Byte PTPreRate;  // if rate change do PT\r
+       u1Byte PTPreRssi; // if RSSI change 5% do PT\r
+       u1Byte PTModeSS;  // decide whitch rate should do PT\r
+       u1Byte RAstage;  // StageRA, decide how many times RA will be done between PT\r
+       u1Byte PTSmoothFactor;\r
+#endif\r
+#if (DM_ODM_SUPPORT_TYPE == ODM_AP) &&         ((DEV_BUS_TYPE == RT_USB_INTERFACE) || (DEV_BUS_TYPE == RT_SDIO_INTERFACE))\r
+       u1Byte RateDownCounter;\r
+       u1Byte RateUpCounter;\r
+       u1Byte RateDirection;\r
+       u1Byte BoundingType;\r
+       u1Byte BoundingCounter;\r
+       u1Byte BoundingLearningTime;\r
+       u1Byte RateDownStartTime;\r
+#endif\r
+} ODM_RA_INFO_T, *PODM_RA_INFO_T;\r
+#endif\r
+\r
+\r
+typedef struct _Rate_Adaptive_Table_ {\r
+       u1Byte          firstconnect;\r
+#if(DM_ODM_SUPPORT_TYPE==ODM_WIN)\r
+       BOOLEAN         PT_collision_pre;\r
+#endif\r
+\r
+#if (defined(CONFIG_RA_DBG_CMD))\r
+       BOOLEAN         is_ra_dbg_init;\r
+\r
+       u1Byte  RTY_P[ODM_NUM_RATE_IDX];\r
+       u1Byte  RTY_P_default[ODM_NUM_RATE_IDX];\r
+       BOOLEAN RTY_P_modify_note[ODM_NUM_RATE_IDX];\r
+\r
+       u1Byte  RATE_UP_RTY_RATIO[ODM_NUM_RATE_IDX];\r
+       u1Byte  RATE_UP_RTY_RATIO_default[ODM_NUM_RATE_IDX];\r
+       BOOLEAN RATE_UP_RTY_RATIO_modify_note[ODM_NUM_RATE_IDX];\r
+\r
+       u1Byte  RATE_DOWN_RTY_RATIO[ODM_NUM_RATE_IDX];\r
+       u1Byte  RATE_DOWN_RTY_RATIO_default[ODM_NUM_RATE_IDX];\r
+       BOOLEAN RATE_DOWN_RTY_RATIO_modify_note[ODM_NUM_RATE_IDX];\r
+\r
+       BOOLEAN RA_Para_feedback_req;\r
+\r
+       u1Byte   para_idx;\r
+       u1Byte  rate_idx;\r
+       u1Byte  value;\r
+       u2Byte  value_16;\r
+       u1Byte  rate_length;\r
+#endif\r
+       u1Byte  link_tx_rate[ODM_ASSOCIATE_ENTRY_NUM];\r
+       u1Byte  highest_client_tx_order;\r
+       u2Byte  highest_client_tx_rate_order;\r
+       u1Byte  power_tracking_flag;\r
+       u1Byte  RA_threshold_offset;\r
+       u1Byte  RA_offset_direction;\r
+\r
+       #if (defined(CONFIG_RA_DYNAMIC_RTY_LIMIT))\r
+       u1Byte per_rate_retrylimit_20M[ODM_NUM_RATE_IDX];\r
+       u1Byte per_rate_retrylimit_40M[ODM_NUM_RATE_IDX];       \r
+       u1Byte                  retry_descend_num;\r
+       u1Byte                  retrylimit_low;\r
+       u1Byte                  retrylimit_high;\r
+       #endif\r
+\r
+\r
+} RA_T, *pRA_T;\r
+\r
+typedef struct _ODM_RATE_ADAPTIVE {\r
+       u1Byte                          Type;                           // DM_Type_ByFW/DM_Type_ByDriver\r
+       u1Byte                          HighRSSIThresh;         // if RSSI > HighRSSIThresh     => RATRState is DM_RATR_STA_HIGH\r
+       u1Byte                          LowRSSIThresh;          // if RSSI <= LowRSSIThresh     => RATRState is DM_RATR_STA_LOW\r
+       u1Byte                          RATRState;                      // Current RSSI level, DM_RATR_STA_HIGH/DM_RATR_STA_MIDDLE/DM_RATR_STA_LOW\r
+\r
+#if(DM_ODM_SUPPORT_TYPE & (ODM_WIN|ODM_CE))\r
+       u1Byte                          LdpcThres;                      // if RSSI > LdpcThres => switch from LPDC to BCC\r
+       BOOLEAN                         bLowerRtsRate;\r
+#endif\r
+\r
+#if(DM_ODM_SUPPORT_TYPE & ODM_WIN)\r
+       u1Byte                          RtsThres;\r
+#elif(DM_ODM_SUPPORT_TYPE & ODM_CE)\r
+       BOOLEAN                         bUseLdpc;\r
+#else\r
+       u1Byte                          UltraLowRSSIThresh;\r
+       u4Byte                          LastRATR;                       // RATR Register Content\r
+#endif\r
+\r
+} ODM_RATE_ADAPTIVE, *PODM_RATE_ADAPTIVE;\r
+\r
+#if (defined(CONFIG_RA_DBG_CMD))\r
+\r
+VOID\r
+odm_RA_debug(\r
+       IN              PVOID           pDM_VOID,\r
+       IN              u4Byte          *const dm_value\r
+);\r
+\r
+VOID\r
+odm_RA_ParaAdjust_init(\r
+       IN              PVOID           pDM_VOID\r
+);\r
+\r
+#else\r
+\r
+VOID\r
+phydm_RA_debug_PCR(\r
+       IN              PVOID           pDM_VOID,\r
+       IN              u4Byte          *const dm_value,\r
+       IN              u4Byte          *_used,\r
+       OUT             char                    *output,\r
+       IN              u4Byte          *_out_len\r
+);\r
+\r
+#endif\r
+\r
+VOID\r
+ODM_C2HRaParaReportHandler(\r
+       IN      PVOID   pDM_VOID,\r
+       IN      pu1Byte CmdBuf,\r
+       IN      u1Byte  CmdLen\r
+);\r
+\r
+VOID\r
+odm_RA_ParaAdjust(\r
+       IN              PVOID           pDM_VOID\r
+);\r
+\r
+VOID\r
+phydm_ra_dynamic_retry_count(\r
+       IN      PVOID   pDM_VOID\r
+);\r
+\r
+VOID\r
+phydm_ra_dynamic_retry_limit(\r
+       IN      PVOID   pDM_VOID\r
+);\r
+\r
+VOID\r
+phydm_ra_dynamic_rate_id_on_assoc(\r
+       IN      PVOID   pDM_VOID,\r
+       IN      u1Byte  wireless_mode,\r
+       IN      u1Byte  init_rate_id\r
+);\r
+\r
+VOID\r
+phydm_print_rate(\r
+       IN      PVOID   pDM_VOID,\r
+       IN      u1Byte  rate,\r
+       IN      u4Byte  dbg_component\r
+);\r
+\r
+VOID\r
+phydm_c2h_ra_report_handler(\r
+       IN PVOID        pDM_VOID,\r
+       IN pu1Byte   CmdBuf,\r
+       IN u1Byte   CmdLen\r
+);\r
+\r
+u1Byte\r
+phydm_rate_order_compute(\r
+       IN      PVOID   pDM_VOID,\r
+       IN      u1Byte  rate_idx\r
+       );\r
+\r
+VOID\r
+phydm_ra_info_watchdog(\r
+       IN      PVOID   pDM_VOID\r
+);\r
+\r
+VOID\r
+phydm_ra_info_init(\r
+       IN      PVOID   pDM_VOID\r
+);\r
+\r
+VOID\r
+odm_RSSIMonitorInit(\r
+       IN      PVOID   pDM_VOID\r
+);\r
+\r
+VOID\r
+odm_RSSIMonitorCheck(\r
+       IN      PVOID   pDM_VOID\r
+);\r
+\r
+VOID\r
+phydm_initRaInfo(\r
+       IN              PVOID           pDM_VOID\r
+);\r
+\r
+u1Byte\r
+phydm_vht_en_mapping(\r
+       IN      PVOID                   pDM_VOID,\r
+       IN      u4Byte                  WirelessMode\r
+);\r
+\r
+u1Byte\r
+phydm_rate_id_mapping(\r
+       IN      PVOID                   pDM_VOID,\r
+       IN      u4Byte                  WirelessMode,\r
+       IN      u1Byte                  RfType,\r
+       IN      u1Byte                  bw\r
+);\r
+\r
+VOID\r
+phydm_UpdateHalRAMask(\r
+       IN      PVOID                   pDM_VOID,\r
+       IN      u4Byte                  wirelessMode,\r
+       IN      u1Byte                  RfType,\r
+       IN      u1Byte                  BW,\r
+       IN      u1Byte                  MimoPs_enable,\r
+       IN      u1Byte                  disable_cck_rate,\r
+       IN      u4Byte                  *ratr_bitmap_msb_in,\r
+       IN      u4Byte                  *ratr_bitmap_in,\r
+       IN      u1Byte                  tx_rate_level\r
+);\r
+\r
+VOID\r
+odm_RateAdaptiveMaskInit(\r
+       IN      PVOID   pDM_VOID\r
+);\r
+\r
+VOID\r
+odm_RefreshRateAdaptiveMask(\r
+       IN              PVOID           pDM_VOID\r
+);\r
+\r
+VOID\r
+odm_RefreshRateAdaptiveMaskMP(\r
+       IN              PVOID           pDM_VOID\r
+);\r
+\r
+VOID\r
+odm_RefreshRateAdaptiveMaskCE(\r
+       IN              PVOID           pDM_VOID\r
+);\r
+\r
+VOID\r
+odm_RefreshRateAdaptiveMaskAPADSL(\r
+       IN              PVOID           pDM_VOID\r
+);\r
+\r
+u1Byte \r
+phydm_RA_level_decision(\r
+       IN              PVOID                   pDM_VOID,\r
+       IN              u4Byte                  rssi,\r
+       IN              u1Byte                  Ratr_State\r
+);\r
+\r
+BOOLEAN\r
+ODM_RAStateCheck(\r
+       IN              PVOID               pDM_VOID,\r
+       IN              s4Byte                  RSSI,\r
+       IN              BOOLEAN                 bForceUpdate,\r
+       OUT             pu1Byte                 pRATRState\r
+);\r
+\r
+VOID\r
+odm_RefreshBasicRateMask(\r
+       IN              PVOID           pDM_VOID\r
+);\r
+VOID\r
+ODM_RAPostActionOnAssoc(\r
+       IN              PVOID   pDM_Odm\r
+);\r
+\r
+#if (DM_ODM_SUPPORT_TYPE & (ODM_WIN | ODM_CE))\r
+\r
+u1Byte\r
+odm_Find_RTS_Rate(\r
+       IN      PVOID           pDM_VOID,\r
+       IN              u1Byte                  Tx_Rate,\r
+       IN              BOOLEAN                 bErpProtect\r
+);\r
+\r
+VOID\r
+ODM_UpdateNoisyState(\r
+       IN      PVOID           pDM_VOID,\r
+       IN      BOOLEAN         bNoisyStateFromC2H\r
+);\r
+\r
+VOID\r
+phydm_update_pwr_track(\r
+       IN      PVOID           pDM_VOID,\r
+       IN      u1Byte          Rate\r
+);\r
+\r
+#if (DM_ODM_SUPPORT_TYPE == ODM_WIN)\r
+\r
+s4Byte\r
+phydm_FindMinimumRSSI(\r
+IN             PDM_ODM_T               pDM_Odm,\r
+IN             PADAPTER                pAdapter,\r
+IN OUT BOOLEAN *pbLink_temp\r
+);\r
+\r
+VOID\r
+ODM_UpdateInitRateWorkItemCallback(\r
+       IN      PVOID   pContext\r
+);\r
+\r
+VOID\r
+odm_RSSIDumpToRegister(\r
+       IN      PVOID   pDM_VOID\r
+);\r
+\r
+VOID\r
+odm_RefreshLdpcRtsMP(\r
+       IN      PADAPTER                        pAdapter,\r
+       IN      PDM_ODM_T                       pDM_Odm,\r
+       IN      u1Byte                          mMacId,\r
+       IN      u1Byte                          IOTPeer,\r
+       IN      s4Byte                          UndecoratedSmoothedPWDB\r
+);\r
+\r
+#if 0\r
+VOID\r
+ODM_DynamicARFBSelect(\r
+       IN              PVOID           pDM_VOID,\r
+       IN              u1Byte          rate,\r
+       IN      BOOLEAN         Collision_State\r
+);\r
+#endif\r
+\r
+VOID\r
+ODM_RateAdaptiveStateApInit(\r
+       IN      PVOID                   PADAPTER_VOID,\r
+       IN      PRT_WLAN_STA    pEntry\r
+);\r
+#elif (DM_ODM_SUPPORT_TYPE == ODM_CE)\r
+\r
+static void\r
+FindMinimumRSSI(\r
+       IN      PADAPTER        pAdapter\r
+);\r
+\r
+u8Byte\r
+PhyDM_Get_Rate_Bitmap_Ex(\r
+       IN      PVOID           pDM_VOID,\r
+       IN      u4Byte          macid,\r
+       IN      u8Byte          ra_mask,\r
+       IN      u1Byte          rssi_level,\r
+       OUT             u8Byte  *dm_RA_Mask,\r
+       OUT             u1Byte  *dm_RteID\r
+);\r
+u4Byte\r
+ODM_Get_Rate_Bitmap(\r
+       IN      PVOID       pDM_VOID,\r
+       IN      u4Byte          macid,\r
+       IN      u4Byte          ra_mask,\r
+       IN      u1Byte          rssi_level\r
+);\r
+\r
+void phydm_ra_rssi_rpt_wk(PVOID pContext);\r
+#endif/*#elif (DM_ODM_SUPPORT_TYPE == ODM_CE)*/\r
+\r
+#elif (DM_ODM_SUPPORT_TYPE & (ODM_AP))\r
+\r
+VOID\r
+phydm_gen_ramask_h2c_AP(\r
+       IN              PVOID                   pDM_VOID,\r
+       IN              struct rtl8192cd_priv *priv,\r
+       IN              PSTA_INFO_T             *pEntry,\r
+       IN              u1Byte                  rssi_level\r
+);\r
+\r
+#endif/*#if (DM_ODM_SUPPORT_TYPE & (ODM_WIN| ODM_CE))*/\r
+\r
+#endif /*#ifndef       __ODMRAINFO_H__*/\r
+\r
+\r