root/drivers/staging/rtl8192e/rtl8192e/rtl_dm.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0 */
   2 /*
   3  * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved.
   4  *
   5  * Contact Information: wlanfae <wlanfae@realtek.com>
   6  */
   7 #ifndef __R8192UDM_H__
   8 #define __R8192UDM_H__
   9 
  10 
  11 /*--------------------------Define Parameters-------------------------------*/
  12 #define                 OFDM_Table_Length       19
  13 #define         CCK_Table_length        12
  14 
  15 #define         DM_DIG_THRESH_HIGH                                      40
  16 #define         DM_DIG_THRESH_LOW                                       35
  17 
  18 #define         DM_DIG_HIGH_PWR_THRESH_HIGH             75
  19 #define         DM_DIG_HIGH_PWR_THRESH_LOW              70
  20 
  21 #define         BW_AUTO_SWITCH_HIGH_LOW                 25
  22 #define         BW_AUTO_SWITCH_LOW_HIGH                 30
  23 
  24 #define         DM_DIG_BACKOFF                          12
  25 #define         DM_DIG_MAX                                      0x36
  26 #define         DM_DIG_MIN                                      0x1c
  27 #define         DM_DIG_MIN_Netcore                      0x12
  28 
  29 #define         RxPathSelection_SS_TH_low               30
  30 #define         RxPathSelection_diff_TH                 18
  31 
  32 #define         RateAdaptiveTH_High                     50
  33 #define         RateAdaptiveTH_Low_20M          30
  34 #define         RateAdaptiveTH_Low_40M          10
  35 #define         VeryLowRSSI                                     15
  36 
  37 #define         WAIotTHVal                                              25
  38 
  39 #define         E_FOR_TX_POWER_TRACK           300
  40 #define         TX_POWER_NEAR_FIELD_THRESH_HIGH         68
  41 #define         TX_POWER_NEAR_FIELD_THRESH_LOW          62
  42 #define  TX_POWER_ATHEROAP_THRESH_HIGH     78
  43 #define         TX_POWER_ATHEROAP_THRESH_LOW            72
  44 
  45 #define                 Current_Tx_Rate_Reg      0x1e0
  46 #define                 Initial_Tx_Rate_Reg      0x1e1
  47 #define                 Tx_Retry_Count_Reg       0x1ac
  48 #define         RegC38_TH                                20
  49 
  50 #define         DM_Type_ByDriver                1
  51 
  52 /*--------------------------Define Parameters-------------------------------*/
  53 
  54 
  55 /*------------------------------Define structure----------------------------*/
  56 struct dig_t {
  57         u8              dig_enable_flag;
  58         u8              dig_algorithm;
  59         u8              dig_algorithm_switch;
  60 
  61         long            rssi_low_thresh;
  62         long            rssi_high_thresh;
  63 
  64         long            rssi_high_power_lowthresh;
  65         long            rssi_high_power_highthresh;
  66 
  67         u8              dig_state;
  68         u8              dig_highpwr_state;
  69         u8              CurSTAConnectState;
  70         u8              PreSTAConnectState;
  71 
  72         u8              curpd_thstate;
  73         u8              prepd_thstate;
  74         u8              curcs_ratio_state;
  75         u8              precs_ratio_state;
  76 
  77         u32             pre_ig_value;
  78         u32             cur_ig_value;
  79 
  80         u8              backoff_val;
  81         u8              rx_gain_range_max;
  82         u8              rx_gain_range_min;
  83 
  84         long            rssi_val;
  85 };
  86 
  87 enum dm_dig_sta {
  88         DM_STA_DIG_OFF = 0,
  89         DM_STA_DIG_ON,
  90         DM_STA_DIG_MAX
  91 };
  92 
  93 
  94 enum dm_ratr_sta {
  95         DM_RATR_STA_HIGH = 0,
  96         DM_RATR_STA_MIDDLE = 1,
  97         DM_RATR_STA_LOW = 2,
  98         DM_RATR_STA_MAX
  99 };
 100 
 101 enum dm_dig_alg {
 102         DIG_ALGO_BY_FALSE_ALARM = 0,
 103         DIG_ALGO_BY_RSSI        = 1,
 104         DIG_ALGO_BEFORE_CONNECT_BY_RSSI_AND_ALARM = 2,
 105         DIG_ALGO_BY_TOW_PORT = 3,
 106         DIG_ALGO_MAX
 107 };
 108 
 109 enum dm_dig_connect {
 110         DIG_STA_DISCONNECT = 0,
 111         DIG_STA_CONNECT = 1,
 112         DIG_STA_BEFORE_CONNECT = 2,
 113         DIG_AP_DISCONNECT = 3,
 114         DIG_AP_CONNECT = 4,
 115         DIG_AP_ADD_STATION = 5,
 116         DIG_CONNECT_MAX
 117 };
 118 
 119 enum dm_dig_pd_th {
 120         DIG_PD_AT_LOW_POWER = 0,
 121         DIG_PD_AT_NORMAL_POWER = 1,
 122         DIG_PD_AT_HIGH_POWER = 2,
 123         DIG_PD_MAX
 124 };
 125 
 126 enum dm_dig_cs_ratio {
 127         DIG_CS_RATIO_LOWER = 0,
 128         DIG_CS_RATIO_HIGHER = 1,
 129         DIG_CS_MAX
 130 };
 131 
 132 struct drx_path_sel {
 133         u8              Enable;
 134         u8              cck_method;
 135         u8              cck_Rx_path;
 136 
 137         u8              SS_TH_low;
 138         u8              diff_TH;
 139         u8              disabledRF;
 140         u8              reserved;
 141 
 142         u8              rf_rssi[4];
 143         u8              rf_enable_rssi_th[4];
 144         long            cck_pwdb_sta[4];
 145 };
 146 
 147 enum dm_cck_rx_path_method {
 148         CCK_Rx_Version_1 = 0,
 149         CCK_Rx_Version_2 = 1,
 150         CCK_Rx_Version_MAX
 151 };
 152 
 153 
 154 struct dcmd_txcmd {
 155         u32     Op;
 156         u32     Length;
 157         u32     Value;
 158 };
 159 /*------------------------------Define structure----------------------------*/
 160 
 161 
 162 /*------------------------Export global variable----------------------------*/
 163 extern  struct dig_t dm_digtable;
 164 extern struct drx_path_sel DM_RxPathSelTable;
 165 
 166 /* Pre-calculated gain tables */
 167 extern const u32 dm_tx_bb_gain[TxBBGainTableLength];
 168 extern const u8 dm_cck_tx_bb_gain[CCKTxBBGainTableLength][8];
 169 extern const u8 dm_cck_tx_bb_gain_ch14[CCKTxBBGainTableLength][8];
 170 /* Maps table index to iq amplify gain (dB, 12 to -24dB) */
 171 #define dm_tx_bb_gain_idx_to_amplify(idx) (-idx + 12)
 172 
 173 /*------------------------Export global variable----------------------------*/
 174 
 175 
 176 /*--------------------------Exported Function prototype---------------------*/
 177 /*--------------------------Exported Function prototype---------------------*/
 178 
 179 void rtl92e_dm_init(struct net_device *dev);
 180 void rtl92e_dm_deinit(struct net_device *dev);
 181 
 182 void rtl92e_dm_watchdog(struct net_device *dev);
 183 
 184 
 185 void    rtl92e_init_adaptive_rate(struct net_device *dev);
 186 void    rtl92e_dm_txpower_tracking_wq(void *data);
 187 
 188 void rtl92e_dm_cck_txpower_adjust(struct net_device *dev, bool binch14);
 189 
 190 void    rtl92e_dm_restore_state(struct net_device *dev);
 191 void    rtl92e_dm_backup_state(struct net_device *dev);
 192 void    rtl92e_dm_init_edca_turbo(struct net_device *dev);
 193 void    rtl92e_dm_rf_pathcheck_wq(void *data);
 194 void rtl92e_dm_init_txpower_tracking(struct net_device *dev);
 195 #endif  /*__R8192UDM_H__ */

/* [<][>][^][v][top][bottom][index][help] */