Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6f8214b6 authored by Larry Finger's avatar Larry Finger Committed by Kalle Valo
Browse files

rtlwifi: Create new routine to initialize the DM tables



Each of the drivers contains a routine that initializes the dm_digtable
member of the driver's private area. As a first step toward reducing the
size of the drivers, a copy of this driver is created in rtlwifi, and the
definitions of the parameters are moved there.

Signed-off-by: default avatarLarry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
parent 3f0c1cfa
Loading
Loading
Loading
Loading
+34 −0
Original line number Diff line number Diff line
@@ -1871,3 +1871,37 @@ bool rtl_btc_status_false(void)
	return false;
}
EXPORT_SYMBOL_GPL(rtl_btc_status_false);

void rtl_dm_diginit(struct ieee80211_hw *hw, u32 cur_igvalue)
{
	struct rtl_priv *rtlpriv = rtl_priv(hw);
	struct dig_t *dm_digtable = &rtlpriv->dm_digtable;

	dm_digtable->dig_enable_flag = true;
	dm_digtable->cur_igvalue = cur_igvalue;
	dm_digtable->pre_igvalue = 0;
	dm_digtable->cur_sta_cstate = DIG_STA_DISCONNECT;
	dm_digtable->presta_cstate = DIG_STA_DISCONNECT;
	dm_digtable->curmultista_cstate = DIG_MULTISTA_DISCONNECT;
	dm_digtable->rssi_lowthresh = DM_DIG_THRESH_LOW;
	dm_digtable->rssi_highthresh = DM_DIG_THRESH_HIGH;
	dm_digtable->fa_lowthresh = DM_FALSEALARM_THRESH_LOW;
	dm_digtable->fa_highthresh = DM_FALSEALARM_THRESH_HIGH;
	dm_digtable->rx_gain_max = DM_DIG_MAX;
	dm_digtable->rx_gain_min = DM_DIG_MIN;
	dm_digtable->back_val = DM_DIG_BACKOFF_DEFAULT;
	dm_digtable->back_range_max = DM_DIG_BACKOFF_MAX;
	dm_digtable->back_range_min = DM_DIG_BACKOFF_MIN;
	dm_digtable->pre_cck_cca_thres = 0xff;
	dm_digtable->cur_cck_cca_thres = 0x83;
	dm_digtable->forbidden_igi = DM_DIG_MIN;
	dm_digtable->large_fa_hit = 0;
	dm_digtable->recover_cnt = 0;
	dm_digtable->dig_min_0 = 0x25;
	dm_digtable->dig_min_1 = 0x25;
	dm_digtable->media_connect_0 = false;
	dm_digtable->media_connect_1 = false;
	rtlpriv->dm.dm_initialgain_enable = true;
	dm_digtable->bt30_cur_igi = 0x32;
}
EXPORT_SYMBOL(rtl_dm_diginit);
+24 −0
Original line number Diff line number Diff line
@@ -35,6 +35,29 @@

#define RTL_SUPPORTED_CTRL_FILTER	0xFF

#define DM_DIG_THRESH_HIGH		40
#define DM_DIG_THRESH_LOW		35
#define DM_FALSEALARM_THRESH_LOW	400
#define DM_FALSEALARM_THRESH_HIGH	1000

#define DM_DIG_MAX			0x3e
#define DM_DIG_MIN			0x1e
#define DM_DIG_BACKOFF_MAX		12
#define DM_DIG_BACKOFF_MIN		-4
#define DM_DIG_BACKOFF_DEFAULT		10

enum dm_dig_connect_e {
	DIG_STA_DISCONNECT,
	DIG_STA_CONNECT,
	DIG_STA_BEFORE_CONNECT,
	DIG_MULTISTA_DISCONNECT,
	DIG_MULTISTA_CONNECT,
	DIG_AP_DISCONNECT,
	DIG_AP_CONNECT,
	DIG_AP_ADD_STATION,
	DIG_CONNECT_MAX
};

extern const struct ieee80211_ops rtl_ops;
void rtl_fw_cb(const struct firmware *firmware, void *context);
void rtl_wowlan_fw_cb(const struct firmware *firmware, void *context);
@@ -44,5 +67,6 @@ void rtl_rfreg_delay(struct ieee80211_hw *hw, enum radio_path rfpath, u32 addr,
void rtl_bb_delay(struct ieee80211_hw *hw, u32 addr, u32 data);
bool rtl_cmd_send_packet(struct ieee80211_hw *hw, struct sk_buff *skb);
bool rtl_btc_status_false(void);
void rtl_dm_diginit(struct ieee80211_hw *hw, u32 cur_igval);

#endif
+1 −0
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@
#include "../wifi.h"
#include "../base.h"
#include "../pci.h"
#include "../core.h"
#include "reg.h"
#include "def.h"
#include "phy.h"
+0 −22
Original line number Diff line number Diff line
@@ -186,15 +186,6 @@
#define BW_AUTO_SWITCH_HIGH_LOW				25
#define BW_AUTO_SWITCH_LOW_HIGH				30

#define DM_DIG_THRESH_HIGH				40
#define DM_DIG_THRESH_LOW				35

#define DM_FALSEALARM_THRESH_LOW			400
#define DM_FALSEALARM_THRESH_HIGH			1000

#define DM_DIG_MAX					0x3e
#define DM_DIG_MIN					0x1e

#define DM_DIG_MAX_AP					0x32
#define DM_DIG_MIN_AP					0x20

@@ -204,10 +195,6 @@
#define DM_DIG_FA_TH1					0x300
#define DM_DIG_FA_TH2					0x400

#define DM_DIG_BACKOFF_MAX				12
#define DM_DIG_BACKOFF_MIN				-4
#define DM_DIG_BACKOFF_DEFAULT				10

#define RXPATHSELECTION_SS_TH_W				30
#define RXPATHSELECTION_DIFF_TH				18

@@ -296,15 +283,6 @@ enum dm_dig_ext_port_alg_e {
	DIG_EXT_PORT_STAGE_MAX = 4,
};

enum dm_dig_connect_e {
	DIG_STA_DISCONNECT = 0,
	DIG_STA_CONNECT = 1,
	DIG_STA_BEFORE_CONNECT = 2,
	DIG_MULTISTA_DISCONNECT = 3,
	DIG_MULTISTA_CONNECT = 4,
	DIG_CONNECT_MAX
};

enum pwr_track_control_method {
	BBSWING,
	TXAGC
+1 −0
Original line number Diff line number Diff line
@@ -32,6 +32,7 @@
#include "phy_common.h"
#include "../pci.h"
#include "../base.h"
#include "../core.h"

#define BT_RSSI_STATE_NORMAL_POWER	BIT_OFFSET_LEN_MASK_32(0, 1)
#define BT_RSSI_STATE_AMDPU_OFF		BIT_OFFSET_LEN_MASK_32(1, 1)
Loading