These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / drivers / staging / rtl8192e / rtl8192e / rtl_dm.h
index 3f02e11..756a0dd 100644 (file)
@@ -6,10 +6,6 @@
  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
  * more details.
  *
- * You should have received a copy of the GNU General Public License along with
- * this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
- *
  * The full GNU General Public License is included in this distribution in the
  * file called LICENSE.
  *
 #define                DM_DIG_THRESH_HIGH                                      40
 #define                DM_DIG_THRESH_LOW                                       35
 
-#define                DM_FALSEALARM_THRESH_LOW        40
-#define                DM_FALSEALARM_THRESH_HIGH       1000
-
 #define                DM_DIG_HIGH_PWR_THRESH_HIGH             75
 #define                DM_DIG_HIGH_PWR_THRESH_LOW              70
 
 #define                BW_AUTO_SWITCH_HIGH_LOW                 25
 #define                BW_AUTO_SWITCH_LOW_HIGH                 30
 
-#define                DM_check_fsync_time_interval                            500
-
-
 #define                DM_DIG_BACKOFF                          12
 #define                DM_DIG_MAX                                      0x36
 #define                DM_DIG_MIN                                      0x1c
 #define                DM_DIG_MIN_Netcore                      0x12
 
-#define                DM_DIG_BACKOFF_MAX                      12
-#define                DM_DIG_BACKOFF_MIN                      -4
-
 #define                RxPathSelection_SS_TH_low               30
 #define                RxPathSelection_diff_TH                 18
 
@@ -55,8 +42,6 @@
 #define                RateAdaptiveTH_Low_40M          10
 #define                VeryLowRSSI                                     15
 
-#define                CTSToSelfTHVal                                  35
-
 #define                WAIotTHVal                                              25
 
 #define                E_FOR_TX_POWER_TRACK           300
 #define                        Tx_Retry_Count_Reg       0x1ac
 #define                RegC38_TH                                20
 
-#define                TX_POWER_NEAR_FIELD_THRESH_LVL2 74
-#define                TX_POWER_NEAR_FIELD_THRESH_LVL1 67
-
-#define                TxHighPwrLevel_Normal           0
-#define                TxHighPwrLevel_Level1           1
-#define                TxHighPwrLevel_Level2           2
-
-#define                DM_Type_ByFW                    0
 #define                DM_Type_ByDriver                1
 
 /*--------------------------Define Parameters-------------------------------*/
 struct dig_t {
        u8              dig_enable_flag;
        u8              dig_algorithm;
-       u8              Dig_TwoPort_Algorithm;
-       u8              Dig_Ext_Port_Stage;
-       u8              dbg_mode;
        u8              dig_algorithm_switch;
 
        long            rssi_low_thresh;
        long            rssi_high_thresh;
 
-       u32             FALowThresh;
-       u32             FAHighThresh;
-
        long            rssi_high_power_lowthresh;
        long            rssi_high_power_highthresh;
 
@@ -105,8 +76,6 @@ struct dig_t {
        u8              dig_highpwr_state;
        u8              CurSTAConnectState;
        u8              PreSTAConnectState;
-       u8              CurAPConnectState;
-       u8              PreAPConnectState;
 
        u8              curpd_thstate;
        u8              prepd_thstate;
@@ -116,13 +85,9 @@ struct dig_t {
        u32             pre_ig_value;
        u32             cur_ig_value;
 
-       u8              Backoff_Enable_Flag;
        u8              backoff_val;
-       char            BackoffVal_range_max;
-       char            BackoffVal_range_min;
        u8              rx_gain_range_max;
        u8              rx_gain_range_min;
-       bool            initialgain_lowerbound_state;
 
        long            rssi_val;
 };
@@ -141,23 +106,6 @@ enum dm_ratr_sta {
        DM_RATR_STA_MAX
 };
 
-enum dm_dig_op_sta {
-       DIG_TYPE_THRESH_HIGH    = 0,
-       DIG_TYPE_THRESH_LOW     = 1,
-       DIG_TYPE_THRESH_HIGHPWR_HIGH    = 2,
-       DIG_TYPE_THRESH_HIGHPWR_LOW     = 3,
-       DIG_TYPE_DBG_MODE                               = 4,
-       DIG_TYPE_RSSI                                           = 5,
-       DIG_TYPE_ALGORITHM                              = 6,
-       DIG_TYPE_BACKOFF                                        = 7,
-       DIG_TYPE_PWDB_FACTOR                    = 8,
-       DIG_TYPE_RX_GAIN_MIN                            = 9,
-       DIG_TYPE_RX_GAIN_MAX                            = 10,
-       DIG_TYPE_ENABLE                 = 20,
-       DIG_TYPE_DISABLE                = 30,
-       DIG_OP_TYPE_MAX
-};
-
 enum dm_dig_alg {
        DIG_ALGO_BY_FALSE_ALARM = 0,
        DIG_ALGO_BY_RSSI        = 1,
@@ -166,26 +114,6 @@ enum dm_dig_alg {
        DIG_ALGO_MAX
 };
 
-enum dm_dig_two_port_alg {
-       DIG_TWO_PORT_ALGO_RSSI = 0,
-       DIG_TWO_PORT_ALGO_FALSE_ALARM = 1,
-};
-
-
-enum dm_dig_ext_port_alg {
-       DIG_EXT_PORT_STAGE_0 = 0,
-       DIG_EXT_PORT_STAGE_1 = 1,
-       DIG_EXT_PORT_STAGE_2 = 2,
-       DIG_EXT_PORT_STAGE_3 = 3,
-       DIG_EXT_PORT_STAGE_MAX = 4,
-};
-
-enum dm_dig_dbg {
-       DIG_DBG_OFF = 0,
-       DIG_DBG_ON = 1,
-       DIG_DBG_MAX
-};
-
 enum dm_dig_connect {
        DIG_STA_DISCONNECT = 0,
        DIG_STA_CONNECT = 1,
@@ -211,7 +139,6 @@ enum dm_dig_cs_ratio {
 
 struct drx_path_sel {
        u8              Enable;
-       u8              DbgMode;
        u8              cck_method;
        u8              cck_Rx_path;
 
@@ -232,12 +159,6 @@ enum dm_cck_rx_path_method {
 };
 
 
-enum dm_dbg {
-       DM_DBG_OFF = 0,
-       DM_DBG_ON = 1,
-       DM_DBG_MAX
-};
-
 struct dcmd_txcmd {
        u32     Op;
        u32     Length;
@@ -248,69 +169,35 @@ struct dcmd_txcmd {
 
 /*------------------------Export global variable----------------------------*/
 extern struct dig_t dm_digtable;
-extern u8              dm_shadow[16][256];
 extern struct drx_path_sel DM_RxPathSelTable;
 
-extern u8                      test_flag;
+/* Pre-calculated gain tables */
+extern const u32 dm_tx_bb_gain[TxBBGainTableLength];
+extern const u8 dm_cck_tx_bb_gain[CCKTxBBGainTableLength][8];
+extern const u8 dm_cck_tx_bb_gain_ch14[CCKTxBBGainTableLength][8];
+/* Maps table index to iq amplify gain (dB, 12 to -24dB) */
+#define dm_tx_bb_gain_idx_to_amplify(idx) (-idx + 12)
+
 /*------------------------Export global variable----------------------------*/
 
 
 /*--------------------------Exported Function prototype---------------------*/
 /*--------------------------Exported Function prototype---------------------*/
-extern  void    init_hal_dm(struct net_device *dev);
-extern  void deinit_hal_dm(struct net_device *dev);
-
-extern void hal_dm_watchdog(struct net_device *dev);
-
-
-extern  void    init_rate_adaptive(struct net_device *dev);
-extern  void    dm_txpower_trackingcallback(void *data);
-
-extern  void dm_cck_txpower_adjust(struct net_device *dev, bool binch14);
-
-extern  void    dm_restore_dynamic_mechanism_state(struct net_device *dev);
-extern  void    dm_backup_dynamic_mechanism_state(struct net_device *dev);
-extern  void    dm_change_dynamic_initgain_thresh(struct net_device *dev,
-                                       u32          dm_type,
-                                       u32          dm_value);
-extern  void    DM_ChangeFsyncSetting(struct net_device *dev,
-                                       s32          DM_Type,
-                                       s32          DM_Value);
-extern  void dm_force_tx_fw_info(struct net_device *dev,
-                                       u32          force_type,
-                                       u32          force_value);
-extern  void    dm_init_edca_turbo(struct net_device *dev);
-extern  void    dm_rf_operation_test_callback(unsigned long data);
-extern  void    dm_rf_pathcheck_workitemcallback(void *data);
-extern  void dm_fsync_timer_callback(unsigned long data);
-extern  void dm_check_fsync(struct net_device *dev);
-extern  void    dm_shadow_init(struct net_device *dev);
-extern  void dm_initialize_txpower_tracking(struct net_device *dev);
-extern  void    dm_CheckRfCtrlGPIO(void *data);
-extern void dm_InitRateAdaptiveMask(struct net_device *dev);
-extern void    init_hal_dm(struct net_device *dev);
-extern void deinit_hal_dm(struct net_device *dev);
-extern void hal_dm_watchdog(struct net_device *dev);
-extern void    init_rate_adaptive(struct net_device *dev);
-extern void    dm_txpower_trackingcallback(void *data);
-extern void    dm_restore_dynamic_mechanism_state(struct net_device *dev);
-extern void    dm_backup_dynamic_mechanism_state(struct net_device *dev);
-extern void    dm_change_dynamic_initgain_thresh(struct net_device *dev,
-                                       u32     dm_type,
-                                       u32     dm_value);
-extern void    DM_ChangeFsyncSetting(struct net_device *dev,
-                                       s32             DM_Type,
-                                       s32             DM_Value);
-extern void dm_force_tx_fw_info(struct net_device *dev,
-                                       u32             force_type,
-                                       u32             force_value);
-extern void    dm_init_edca_turbo(struct net_device *dev);
-extern void    dm_rf_operation_test_callback(unsigned long data);
-extern void    dm_rf_pathcheck_workitemcallback(void *data);
-extern void dm_fsync_timer_callback(unsigned long data);
-extern void dm_check_fsync(struct net_device *dev);
-extern void    dm_shadow_init(struct net_device *dev);
-extern void dm_initialize_txpower_tracking(struct net_device *dev);
-extern  void    dm_CheckRfCtrlGPIO(void *data);
 
+void rtl92e_dm_init(struct net_device *dev);
+void rtl92e_dm_deinit(struct net_device *dev);
+
+void rtl92e_dm_watchdog(struct net_device *dev);
+
+
+void    rtl92e_init_adaptive_rate(struct net_device *dev);
+void    rtl92e_dm_txpower_tracking_wq(void *data);
+
+void rtl92e_dm_cck_txpower_adjust(struct net_device *dev, bool binch14);
+
+void    rtl92e_dm_restore_state(struct net_device *dev);
+void    rtl92e_dm_backup_state(struct net_device *dev);
+void    rtl92e_dm_init_edca_turbo(struct net_device *dev);
+void    rtl92e_dm_rf_pathcheck_wq(void *data);
+void rtl92e_dm_init_txpower_tracking(struct net_device *dev);
 #endif /*__R8192UDM_H__ */