linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/6] rtlwifi: Convert drivers away from global copies of structures
@ 2012-03-26 18:49 Larry Finger
  2012-03-26 18:49 ` [PATCH 1/6] rtlwifi: Move dig_t and ps_t structs Larry Finger
                   ` (6 more replies)
  0 siblings, 7 replies; 8+ messages in thread
From: Larry Finger @ 2012-03-26 18:49 UTC (permalink / raw)
  To: linville; +Cc: Larry Finger, linux-wireless

All the rtlwifi-family of drivers contain 1 or 2 tables that are defined
on a "per-driver" basis. For systems that contain more than one interface,
each instance will not have its own copy.

This series of patches is to be applied to kernel 3.5.

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>

Larry Finger (6):
  rtlwifi: Move dig_t and ps_t structs
  rtlwifi: Add dm structs to private structure
  rtlwifi: rtl8192c: Convert driver to use private dm structs
  rtlwifi: rtl8192c: Convert driver to use private ps_t struct
  rtlwifi: rtl8192de: Convert driver to use private dm structs
  rtlwifi: rtl8192se: Convert driver to use private dm structs

 drivers/net/wireless/rtlwifi/rtl8192c/dm_common.c  |   22 ++++++-
 drivers/net/wireless/rtlwifi/rtl8192c/dm_common.h  |   35 -----------
 drivers/net/wireless/rtlwifi/rtl8192c/phy_common.c |    1 +
 drivers/net/wireless/rtlwifi/rtl8192ce/dm.h        |   35 -----------
 drivers/net/wireless/rtlwifi/rtl8192de/dm.c        |   11 +++-
 drivers/net/wireless/rtlwifi/rtl8192de/dm.h        |   51 ----------------
 drivers/net/wireless/rtlwifi/rtl8192de/phy.c       |    1 +
 drivers/net/wireless/rtlwifi/rtl8192se/dm.c        |    6 ++-
 drivers/net/wireless/rtlwifi/rtl8192se/dm.h        |   44 --------------
 drivers/net/wireless/rtlwifi/rtl8192se/phy.c       |    1 +
 drivers/net/wireless/rtlwifi/wifi.h                |   63 ++++++++++++++++++++
 11 files changed, 99 insertions(+), 171 deletions(-)

-- 
1.7.7


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH 1/6] rtlwifi: Move dig_t and ps_t structs
  2012-03-26 18:49 [PATCH 0/6] rtlwifi: Convert drivers away from global copies of structures Larry Finger
@ 2012-03-26 18:49 ` Larry Finger
  2012-03-26 18:49 ` [PATCH 2/6] rtlwifi: Add dm structs to private structure Larry Finger
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: Larry Finger @ 2012-03-26 18:49 UTC (permalink / raw)
  To: linville; +Cc: Larry Finger, linux-wireless

Move struct definitions for dig_t and ps_t to the common header file.

This move is needed to convert these structures from a "per-driver" to a
"per-interface" basis.

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
---
 drivers/net/wireless/rtlwifi/rtl8192c/dm_common.h |   34 ------------
 drivers/net/wireless/rtlwifi/rtl8192ce/dm.h       |   34 ------------
 drivers/net/wireless/rtlwifi/rtl8192de/dm.h       |   49 -----------------
 drivers/net/wireless/rtlwifi/rtl8192se/dm.h       |   42 ---------------
 drivers/net/wireless/rtlwifi/wifi.h               |   59 +++++++++++++++++++++
 5 files changed, 59 insertions(+), 159 deletions(-)

diff --git a/drivers/net/wireless/rtlwifi/rtl8192c/dm_common.h b/drivers/net/wireless/rtlwifi/rtl8192c/dm_common.h
index 2178e37..b3180ea 100644
--- a/drivers/net/wireless/rtlwifi/rtl8192c/dm_common.h
+++ b/drivers/net/wireless/rtlwifi/rtl8192c/dm_common.h
@@ -91,40 +91,6 @@
 #define TX_POWER_NEAR_FIELD_THRESH_LVL2		74
 #define TX_POWER_NEAR_FIELD_THRESH_LVL1		67
 
-struct ps_t {
-	u8 pre_ccastate;
-	u8 cur_ccasate;
-	u8 pre_rfstate;
-	u8 cur_rfstate;
-	long rssi_val_min;
-};
-
-struct dig_t {
-	u8 dig_enable_flag;
-	u8 dig_ext_port_stage;
-	u32 rssi_lowthresh;
-	u32 rssi_highthresh;
-	u32 fa_lowthresh;
-	u32 fa_highthresh;
-	u8 cursta_connectctate;
-	u8 presta_connectstate;
-	u8 curmultista_connectstate;
-	u8 pre_igvalue;
-	u8 cur_igvalue;
-	char backoff_val;
-	char backoff_val_range_max;
-	char backoff_val_range_min;
-	u8 rx_gain_range_max;
-	u8 rx_gain_range_min;
-	u8 rssi_val_min;
-	u8 pre_cck_pd_state;
-	u8 cur_cck_pd_state;
-	u8 pre_cck_fa_state;
-	u8 cur_cck_fa_state;
-	u8 pre_ccastate;
-	u8 cur_ccasate;
-};
-
 struct swat_t {
 	u8 failure_cnt;
 	u8 try_flag;
diff --git a/drivers/net/wireless/rtlwifi/rtl8192ce/dm.h b/drivers/net/wireless/rtlwifi/rtl8192ce/dm.h
index 26747fa..56611d7 100644
--- a/drivers/net/wireless/rtlwifi/rtl8192ce/dm.h
+++ b/drivers/net/wireless/rtlwifi/rtl8192ce/dm.h
@@ -86,40 +86,6 @@
 #define TX_POWER_NEAR_FIELD_THRESH_LVL2		74
 #define TX_POWER_NEAR_FIELD_THRESH_LVL1		67
 
-struct ps_t {
-	u8 pre_ccastate;
-	u8 cur_ccasate;
-	u8 pre_rfstate;
-	u8 cur_rfstate;
-	long rssi_val_min;
-};
-
-struct dig_t {
-	u8 dig_enable_flag;
-	u8 dig_ext_port_stage;
-	u32 rssi_lowthresh;
-	u32 rssi_highthresh;
-	u32 fa_lowthresh;
-	u32 fa_highthresh;
-	u8 cursta_connectctate;
-	u8 presta_connectstate;
-	u8 curmultista_connectstate;
-	u8 pre_igvalue;
-	u8 cur_igvalue;
-	char backoff_val;
-	char backoff_val_range_max;
-	char backoff_val_range_min;
-	u8 rx_gain_range_max;
-	u8 rx_gain_range_min;
-	u8 rssi_val_min;
-	u8 pre_cck_pd_state;
-	u8 cur_cck_pd_state;
-	u8 pre_cck_fa_state;
-	u8 cur_cck_fa_state;
-	u8 pre_ccastate;
-	u8 cur_ccasate;
-};
-
 struct swat_t {
 	u8 failure_cnt;
 	u8 try_flag;
diff --git a/drivers/net/wireless/rtlwifi/rtl8192de/dm.h b/drivers/net/wireless/rtlwifi/rtl8192de/dm.h
index 91030ec..7ede6a7 100644
--- a/drivers/net/wireless/rtlwifi/rtl8192de/dm.h
+++ b/drivers/net/wireless/rtlwifi/rtl8192de/dm.h
@@ -87,55 +87,6 @@
 #define TX_POWER_NEAR_FIELD_THRESH_LVL1		67
 #define INDEX_MAPPING_NUM			13
 
-struct ps_t {
-	u8 pre_ccastate;
-	u8 cur_ccasate;
-
-	u8 pre_rfstate;
-	u8 cur_rfstate;
-
-	long rssi_val_min;
-};
-
-struct dig_t {
-	u8 dig_enable_flag;
-	u8 dig_ext_port_stage;
-
-	u32 rssi_lowthresh;
-	u32 rssi_highthresh;
-
-	u32 fa_lowthresh;
-	u32 fa_highthresh;
-
-	u8 cursta_connectctate;
-	u8 presta_connectstate;
-	u8 curmultista_connectstate;
-
-	u8 pre_igvalue;
-	u8 cur_igvalue;
-
-	char backoff_val;
-	char backoff_val_range_max;
-	char backoff_val_range_min;
-	u8 rx_gain_range_max;
-	u8 rx_gain_range_min;
-	u8 min_undecorated_pwdb_for_dm;
-	long last_min_undecorated_pwdb_for_dm;
-
-	u8 pre_cck_pd_state;
-	u8 cur_cck_pd_state;
-
-	u8 pre_cck_fa_state;
-	u8 cur_cck_fa_state;
-
-	u8 pre_ccastate;
-	u8 cur_ccasate;
-
-	u8 large_fa_hit;
-	u8 forbidden_igi;
-	u32 recover_cnt;
-};
-
 struct swat {
 	u8 failure_cnt;
 	u8 try_flag;
diff --git a/drivers/net/wireless/rtlwifi/rtl8192se/dm.h b/drivers/net/wireless/rtlwifi/rtl8192se/dm.h
index e1b19a6..f8ace73 100644
--- a/drivers/net/wireless/rtlwifi/rtl8192se/dm.h
+++ b/drivers/net/wireless/rtlwifi/rtl8192se/dm.h
@@ -29,48 +29,6 @@
 #ifndef	__RTL_92S_DM_H__
 #define __RTL_92S_DM_H__
 
-struct dig_t {
-	u8 dig_enable_flag;
-	u8 dig_algorithm;
-	u8 dig_twoport_algorithm;
-	u8 dig_ext_port_stage;
-	u8 dig_dbgmode;
-	u8 dig_slgorithm_switch;
-
-	long rssi_lowthresh;
-	long rssi_highthresh;
-
-	u32 fa_lowthresh;
-	u32 fa_highthresh;
-
-	long rssi_highpower_lowthresh;
-	long rssi_highpower_highthresh;
-
-	u8 dig_state;
-	u8 dig_highpwrstate;
-	u8 cur_sta_connectstate;
-	u8 pre_sta_connectstate;
-	u8 cur_ap_connectstate;
-	u8 pre_ap_connectstate;
-
-	u8 cur_pd_thstate;
-	u8 pre_pd_thstate;
-	u8 cur_cs_ratiostate;
-	u8 pre_cs_ratiostate;
-
-	u32 pre_igvalue;
-	u32	cur_igvalue;
-
-	u8 backoff_enable_flag;
-	char backoff_val;
-	char backoffval_range_max;
-	char backoffval_range_min;
-	u8 rx_gain_range_max;
-	u8 rx_gain_range_min;
-
-	long rssi_val;
-};
-
 enum dm_dig_alg {
 	DIG_ALGO_BY_FALSE_ALARM = 0,
 	DIG_ALGO_BY_RSSI	= 1,
diff --git a/drivers/net/wireless/rtlwifi/wifi.h b/drivers/net/wireless/rtlwifi/wifi.h
index 28ebc69..46e7505 100644
--- a/drivers/net/wireless/rtlwifi/wifi.h
+++ b/drivers/net/wireless/rtlwifi/wifi.h
@@ -1592,6 +1592,65 @@ struct rtl_debug {
 	char proc_name[20];
 };
 
+struct ps_t {
+	u8 pre_ccastate;
+	u8 cur_ccasate;
+	u8 pre_rfstate;
+	u8 cur_rfstate;
+	long rssi_val_min;
+};
+
+struct dig_t {
+	u32 rssi_lowthresh;
+	u32 rssi_highthresh;
+	u32 fa_lowthresh;
+	u32 fa_highthresh;
+	long last_min_undecorated_pwdb_for_dm;
+	long rssi_highpower_lowthresh;
+	long rssi_highpower_highthresh;
+	u32 recover_cnt;
+	u32 pre_igvalue;
+	u32 cur_igvalue;
+	long rssi_val;
+	u8 dig_enable_flag;
+	u8 dig_ext_port_stage;
+	u8 dig_algorithm;
+	u8 dig_twoport_algorithm;
+	u8 dig_dbgmode;
+	u8 dig_slgorithm_switch;
+	u8 cursta_connectctate;
+	u8 presta_connectstate;
+	u8 curmultista_connectstate;
+	char backoff_val;
+	char backoff_val_range_max;
+	char backoff_val_range_min;
+	u8 rx_gain_range_max;
+	u8 rx_gain_range_min;
+	u8 min_undecorated_pwdb_for_dm;
+	u8 rssi_val_min;
+	u8 pre_cck_pd_state;
+	u8 cur_cck_pd_state;
+	u8 pre_cck_fa_state;
+	u8 cur_cck_fa_state;
+	u8 pre_ccastate;
+	u8 cur_ccasate;
+	u8 large_fa_hit;
+	u8 forbidden_igi;
+	u8 dig_state;
+	u8 dig_highpwrstate;
+	u8 cur_sta_connectstate;
+	u8 pre_sta_connectstate;
+	u8 cur_ap_connectstate;
+	u8 pre_ap_connectstate;
+	u8 cur_pd_thstate;
+	u8 pre_pd_thstate;
+	u8 cur_cs_ratiostate;
+	u8 pre_cs_ratiostate;
+	u8 backoff_enable_flag;
+	char backoffval_range_max;
+	char backoffval_range_min;
+};
+
 struct rtl_priv {
 	struct completion firmware_loading_complete;
 	struct rtl_locks locks;
-- 
1.7.7


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 2/6] rtlwifi: Add dm structs to private structure
  2012-03-26 18:49 [PATCH 0/6] rtlwifi: Convert drivers away from global copies of structures Larry Finger
  2012-03-26 18:49 ` [PATCH 1/6] rtlwifi: Move dig_t and ps_t structs Larry Finger
@ 2012-03-26 18:49 ` Larry Finger
  2012-03-26 18:49 ` [PATCH 3/6] rtlwifi: rtl8192c: Convert driver to use private dm structs Larry Finger
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: Larry Finger @ 2012-03-26 18:49 UTC (permalink / raw)
  To: linville; +Cc: Larry Finger, linux-wireless

Add the dig_t and ps_t structures to the private variables.

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
---
 drivers/net/wireless/rtlwifi/wifi.h |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/drivers/net/wireless/rtlwifi/wifi.h b/drivers/net/wireless/rtlwifi/wifi.h
index 46e7505..e159190 100644
--- a/drivers/net/wireless/rtlwifi/wifi.h
+++ b/drivers/net/wireless/rtlwifi/wifi.h
@@ -1688,6 +1688,10 @@ struct rtl_priv {
 	   interface or hardware */
 	unsigned long status;
 
+	/* tables for dm */
+	struct dig_t dm_digtable;
+	struct ps_t dm_pstable;
+
 	/* data buffer pointer for USB reads */
 	__le32 *usb_data;
 	int usb_data_index;
-- 
1.7.7


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 3/6] rtlwifi: rtl8192c: Convert driver to use private dm structs
  2012-03-26 18:49 [PATCH 0/6] rtlwifi: Convert drivers away from global copies of structures Larry Finger
  2012-03-26 18:49 ` [PATCH 1/6] rtlwifi: Move dig_t and ps_t structs Larry Finger
  2012-03-26 18:49 ` [PATCH 2/6] rtlwifi: Add dm structs to private structure Larry Finger
@ 2012-03-26 18:49 ` Larry Finger
  2012-03-26 18:49 ` [PATCH 4/6] rtlwifi: rtl8192c: Convert driver to use private ps_t struct Larry Finger
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: Larry Finger @ 2012-03-26 18:49 UTC (permalink / raw)
  To: linville; +Cc: Larry Finger, linux-wireless

Convert rtl8192c to use the dm_digtable struct in the common header file
instead of the global variable.

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
---
 drivers/net/wireless/rtlwifi/rtl8192c/dm_common.c  |   14 +++++++++++++-
 drivers/net/wireless/rtlwifi/rtl8192c/dm_common.h  |    1 -
 drivers/net/wireless/rtlwifi/rtl8192c/phy_common.c |    1 +
 drivers/net/wireless/rtlwifi/rtl8192ce/dm.h        |    1 -
 4 files changed, 14 insertions(+), 3 deletions(-)

diff --git a/drivers/net/wireless/rtlwifi/rtl8192c/dm_common.c b/drivers/net/wireless/rtlwifi/rtl8192c/dm_common.c
index d8d73db..26d7018 100644
--- a/drivers/net/wireless/rtlwifi/rtl8192c/dm_common.c
+++ b/drivers/net/wireless/rtlwifi/rtl8192c/dm_common.c
@@ -33,7 +33,6 @@
 #include "../pci.h"
 #include "../base.h"
 
-struct dig_t dm_digtable;
 static struct ps_t dm_pstable;
 
 #define BT_RSSI_STATE_NORMAL_POWER	BIT_OFFSET_LEN_MASK_32(0, 1)
@@ -163,6 +162,9 @@ static const u8 cckswing_table_ch14[CCK_TABLE_SIZE][8] = {
 
 static void rtl92c_dm_diginit(struct ieee80211_hw *hw)
 {
+	struct rtl_priv *rtlpriv = rtl_priv(hw);
+	struct dig_t dm_digtable = rtlpriv->dm_digtable;
+
 	dm_digtable.dig_enable_flag = true;
 	dm_digtable.dig_ext_port_stage = DIG_EXT_PORT_STAGE_MAX;
 	dm_digtable.cur_igvalue = 0x20;
@@ -186,6 +188,7 @@ static void rtl92c_dm_diginit(struct ieee80211_hw *hw)
 static u8 rtl92c_dm_initial_gain_min_pwdb(struct ieee80211_hw *hw)
 {
 	struct rtl_priv *rtlpriv = rtl_priv(hw);
+	struct dig_t dm_digtable = rtlpriv->dm_digtable;
 	long rssi_val_min = 0;
 
 	if ((dm_digtable.curmultista_connectstate == DIG_MULTISTA_CONNECT) &&
@@ -260,6 +263,7 @@ static void rtl92c_dm_false_alarm_counter_statistics(struct ieee80211_hw *hw)
 static void rtl92c_dm_ctrl_initgain_by_fa(struct ieee80211_hw *hw)
 {
 	struct rtl_priv *rtlpriv = rtl_priv(hw);
+	struct dig_t dm_digtable = rtlpriv->dm_digtable;
 	u8 value_igi = dm_digtable.cur_igvalue;
 
 	if (rtlpriv->falsealm_cnt.cnt_all < DM_DIG_FA_TH0)
@@ -284,6 +288,7 @@ static void rtl92c_dm_ctrl_initgain_by_fa(struct ieee80211_hw *hw)
 static void rtl92c_dm_ctrl_initgain_by_rssi(struct ieee80211_hw *hw)
 {
 	struct rtl_priv *rtlpriv = rtl_priv(hw);
+	struct dig_t dm_digtable = rtlpriv->dm_digtable;
 
 	if (rtlpriv->falsealm_cnt.cnt_all > dm_digtable.fa_highthresh) {
 		if ((dm_digtable.backoff_val - 2) <
@@ -322,6 +327,7 @@ static void rtl92c_dm_initial_gain_multi_sta(struct ieee80211_hw *hw)
 {
 	static u8 initialized; /* initialized to false */
 	struct rtl_priv *rtlpriv = rtl_priv(hw);
+	struct dig_t dm_digtable = rtlpriv->dm_digtable;
 	struct rtl_mac *mac = rtl_mac(rtl_priv(hw));
 	long rssi_strength = rtlpriv->dm.entry_min_undecoratedsmoothed_pwdb;
 	bool multi_sta = false;
@@ -371,6 +377,7 @@ static void rtl92c_dm_initial_gain_multi_sta(struct ieee80211_hw *hw)
 static void rtl92c_dm_initial_gain_sta(struct ieee80211_hw *hw)
 {
 	struct rtl_priv *rtlpriv = rtl_priv(hw);
+	struct dig_t dm_digtable = rtlpriv->dm_digtable;
 
 	RT_TRACE(rtlpriv, COMP_DIG, DBG_TRACE,
 		 "presta_connectstate = %x, cursta_connectctate = %x\n",
@@ -400,6 +407,7 @@ static void rtl92c_dm_cck_packet_detection_thresh(struct ieee80211_hw *hw)
 {
 	struct rtl_priv *rtlpriv = rtl_priv(hw);
 	struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw));
+	struct dig_t dm_digtable = rtlpriv->dm_digtable;
 
 	if (dm_digtable.cursta_connectctate == DIG_STA_CONNECT) {
 		dm_digtable.rssi_val_min = rtl92c_dm_initial_gain_min_pwdb(hw);
@@ -470,6 +478,8 @@ static void rtl92c_dm_cck_packet_detection_thresh(struct ieee80211_hw *hw)
 
 static void rtl92c_dm_ctrl_initgain_by_twoport(struct ieee80211_hw *hw)
 {
+	struct rtl_priv *rtlpriv = rtl_priv(hw);
+	struct dig_t dm_digtable = rtlpriv->dm_digtable;
 	struct rtl_mac *mac = rtl_mac(rtl_priv(hw));
 
 	if (mac->act_scanning)
@@ -491,6 +501,7 @@ static void rtl92c_dm_ctrl_initgain_by_twoport(struct ieee80211_hw *hw)
 static void rtl92c_dm_dig(struct ieee80211_hw *hw)
 {
 	struct rtl_priv *rtlpriv = rtl_priv(hw);
+	struct dig_t dm_digtable = rtlpriv->dm_digtable;
 
 	if (rtlpriv->dm.dm_initialgain_enable == false)
 		return;
@@ -514,6 +525,7 @@ static void rtl92c_dm_init_dynamic_txpower(struct ieee80211_hw *hw)
 void rtl92c_dm_write_dig(struct ieee80211_hw *hw)
 {
 	struct rtl_priv *rtlpriv = rtl_priv(hw);
+	struct dig_t dm_digtable = rtlpriv->dm_digtable;
 
 	RT_TRACE(rtlpriv, COMP_DIG, DBG_LOUD,
 		 "cur_igvalue = 0x%x, pre_igvalue = 0x%x, backoff_val = %d\n",
diff --git a/drivers/net/wireless/rtlwifi/rtl8192c/dm_common.h b/drivers/net/wireless/rtlwifi/rtl8192c/dm_common.h
index b3180ea..518e208 100644
--- a/drivers/net/wireless/rtlwifi/rtl8192c/dm_common.h
+++ b/drivers/net/wireless/rtlwifi/rtl8192c/dm_common.h
@@ -155,7 +155,6 @@ enum dm_dig_connect_e {
 	DIG_CONNECT_MAX
 };
 
-extern struct dig_t dm_digtable;
 void rtl92c_dm_init(struct ieee80211_hw *hw);
 void rtl92c_dm_watchdog(struct ieee80211_hw *hw);
 void rtl92c_dm_write_dig(struct ieee80211_hw *hw);
diff --git a/drivers/net/wireless/rtlwifi/rtl8192c/phy_common.c b/drivers/net/wireless/rtlwifi/rtl8192c/phy_common.c
index cc71e6a..088525c 100644
--- a/drivers/net/wireless/rtlwifi/rtl8192c/phy_common.c
+++ b/drivers/net/wireless/rtlwifi/rtl8192c/phy_common.c
@@ -1881,6 +1881,7 @@ void rtl92c_phy_set_io(struct ieee80211_hw *hw)
 {
 	struct rtl_priv *rtlpriv = rtl_priv(hw);
 	struct rtl_phy *rtlphy = &(rtlpriv->phy);
+	struct dig_t dm_digtable = rtlpriv->dm_digtable;
 
 	RT_TRACE(rtlpriv, COMP_CMD, DBG_TRACE,
 		 "--->Cmd(%#x), set_io_inprogress(%d)\n",
diff --git a/drivers/net/wireless/rtlwifi/rtl8192ce/dm.h b/drivers/net/wireless/rtlwifi/rtl8192ce/dm.h
index 56611d7..d4a3d03 100644
--- a/drivers/net/wireless/rtlwifi/rtl8192ce/dm.h
+++ b/drivers/net/wireless/rtlwifi/rtl8192ce/dm.h
@@ -150,7 +150,6 @@ enum dm_dig_connect_e {
 	DIG_CONNECT_MAX
 };
 
-extern struct dig_t dm_digtable;
 void rtl92c_dm_init(struct ieee80211_hw *hw);
 void rtl92c_dm_watchdog(struct ieee80211_hw *hw);
 void rtl92c_dm_write_dig(struct ieee80211_hw *hw);
-- 
1.7.7


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 4/6] rtlwifi: rtl8192c: Convert driver to use private ps_t struct
  2012-03-26 18:49 [PATCH 0/6] rtlwifi: Convert drivers away from global copies of structures Larry Finger
                   ` (2 preceding siblings ...)
  2012-03-26 18:49 ` [PATCH 3/6] rtlwifi: rtl8192c: Convert driver to use private dm structs Larry Finger
@ 2012-03-26 18:49 ` Larry Finger
  2012-03-26 18:49 ` [PATCH 5/6] rtlwifi: rtl8192de: Convert driver to use private dm structs Larry Finger
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: Larry Finger @ 2012-03-26 18:49 UTC (permalink / raw)
  To: linville; +Cc: Larry Finger, linux-wireless

Convert driver to use the private instead of global version.

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
---
 drivers/net/wireless/rtlwifi/rtl8192c/dm_common.c |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/drivers/net/wireless/rtlwifi/rtl8192c/dm_common.c b/drivers/net/wireless/rtlwifi/rtl8192c/dm_common.c
index 26d7018..2054b22 100644
--- a/drivers/net/wireless/rtlwifi/rtl8192c/dm_common.c
+++ b/drivers/net/wireless/rtlwifi/rtl8192c/dm_common.c
@@ -33,8 +33,6 @@
 #include "../pci.h"
 #include "../base.h"
 
-static struct ps_t dm_pstable;
-
 #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)
 #define BT_RSSI_STATE_SPECIAL_LOW	BIT_OFFSET_LEN_MASK_32(2, 1)
@@ -1235,6 +1233,9 @@ static void rtl92c_dm_refresh_rate_adaptive_mask(struct ieee80211_hw *hw)
 
 static void rtl92c_dm_init_dynamic_bb_powersaving(struct ieee80211_hw *hw)
 {
+	struct rtl_priv *rtlpriv = rtl_priv(hw);
+	struct ps_t dm_pstable = rtlpriv->dm_pstable;
+
 	dm_pstable.pre_ccastate = CCA_MAX;
 	dm_pstable.cur_ccasate = CCA_MAX;
 	dm_pstable.pre_rfstate = RF_MAX;
@@ -1244,6 +1245,8 @@ static void rtl92c_dm_init_dynamic_bb_powersaving(struct ieee80211_hw *hw)
 
 void rtl92c_dm_rf_saving(struct ieee80211_hw *hw, u8 bforce_in_normal)
 {
+	struct rtl_priv *rtlpriv = rtl_priv(hw);
+	struct ps_t dm_pstable = rtlpriv->dm_pstable;
 	static u8 initialize;
 	static u32 reg_874, reg_c70, reg_85c, reg_a74;
 
@@ -1315,6 +1318,7 @@ static void rtl92c_dm_dynamic_bb_powersaving(struct ieee80211_hw *hw)
 	struct rtl_priv *rtlpriv = rtl_priv(hw);
 	struct rtl_mac *mac = rtl_mac(rtl_priv(hw));
 	struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw));
+	struct ps_t dm_pstable = rtlpriv->dm_pstable;
 
 	if (((mac->link_state == MAC80211_NOLINK)) &&
 	    (rtlpriv->dm.entry_min_undecoratedsmoothed_pwdb == 0)) {
-- 
1.7.7


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 5/6] rtlwifi: rtl8192de: Convert driver to use private dm structs
  2012-03-26 18:49 [PATCH 0/6] rtlwifi: Convert drivers away from global copies of structures Larry Finger
                   ` (3 preceding siblings ...)
  2012-03-26 18:49 ` [PATCH 4/6] rtlwifi: rtl8192c: Convert driver to use private ps_t struct Larry Finger
@ 2012-03-26 18:49 ` Larry Finger
  2012-03-26 18:49 ` [PATCH 6/6] rtlwifi: rtl8192se: Convert driver to use private dm struct Larry Finger
  2012-03-27 14:40 ` [PATCH 0/6] rtlwifi: Convert drivers away from global copies of structures Larry Finger
  6 siblings, 0 replies; 8+ messages in thread
From: Larry Finger @ 2012-03-26 18:49 UTC (permalink / raw)
  To: linville; +Cc: Larry Finger, linux-wireless

Convert driver to use the private dig_t instead of a global version.

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
---
 drivers/net/wireless/rtlwifi/rtl8192de/dm.c  |   11 +++++++++--
 drivers/net/wireless/rtlwifi/rtl8192de/dm.h  |    2 --
 drivers/net/wireless/rtlwifi/rtl8192de/phy.c |    1 +
 3 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/drivers/net/wireless/rtlwifi/rtl8192de/dm.c b/drivers/net/wireless/rtlwifi/rtl8192de/dm.c
index 9fda1af..befd432 100644
--- a/drivers/net/wireless/rtlwifi/rtl8192de/dm.c
+++ b/drivers/net/wireless/rtlwifi/rtl8192de/dm.c
@@ -37,8 +37,6 @@
 
 #define UNDEC_SM_PWDB	entry_min_undecoratedsmoothed_pwdb
 
-struct dig_t de_digtable;
-
 static const u32 ofdmswing_table[OFDM_TABLE_SIZE_92D] = {
 	0x7f8001fe,		/* 0, +6.0dB */
 	0x788001e2,		/* 1, +5.5dB */
@@ -159,6 +157,9 @@ static const u8 cckswing_table_ch14[CCK_TABLE_SIZE][8] = {
 
 static void rtl92d_dm_diginit(struct ieee80211_hw *hw)
 {
+	struct rtl_priv *rtlpriv = rtl_priv(hw);
+	struct dig_t de_digtable = rtlpriv->dm_digtable;
+
 	de_digtable.dig_enable_flag = true;
 	de_digtable.dig_ext_port_stage = DIG_EXT_PORT_STAGE_MAX;
 	de_digtable.cur_igvalue = 0x20;
@@ -267,6 +268,7 @@ static void rtl92d_dm_find_minimum_rssi(struct ieee80211_hw *hw)
 {
 	struct rtl_priv *rtlpriv = rtl_priv(hw);
 	struct rtl_mac *mac = rtl_mac(rtlpriv);
+	struct dig_t de_digtable = rtlpriv->dm_digtable;
 
 	/* Determine the minimum RSSI  */
 	if ((mac->link_state < MAC80211_LINKED) &&
@@ -305,6 +307,7 @@ static void rtl92d_dm_find_minimum_rssi(struct ieee80211_hw *hw)
 static void rtl92d_dm_cck_packet_detection_thresh(struct ieee80211_hw *hw)
 {
 	struct rtl_priv *rtlpriv = rtl_priv(hw);
+	struct dig_t de_digtable = rtlpriv->dm_digtable;
 	unsigned long flag = 0;
 
 	if (de_digtable.cursta_connectctate == DIG_STA_CONNECT) {
@@ -352,6 +355,7 @@ static void rtl92d_dm_cck_packet_detection_thresh(struct ieee80211_hw *hw)
 void rtl92d_dm_write_dig(struct ieee80211_hw *hw)
 {
 	struct rtl_priv *rtlpriv = rtl_priv(hw);
+	struct dig_t de_digtable = rtlpriv->dm_digtable;
 
 	RT_TRACE(rtlpriv, COMP_DIG, DBG_LOUD,
 		 "cur_igvalue = 0x%x, pre_igvalue = 0x%x, backoff_val = %d\n",
@@ -373,6 +377,8 @@ void rtl92d_dm_write_dig(struct ieee80211_hw *hw)
 
 static void rtl92d_early_mode_enabled(struct rtl_priv *rtlpriv)
 {
+	struct dig_t de_digtable = rtlpriv->dm_digtable;
+
 	if ((rtlpriv->mac80211.link_state >= MAC80211_LINKED) &&
 	    (rtlpriv->mac80211.vendor == PEER_CISCO)) {
 		RT_TRACE(rtlpriv, COMP_DIG, DBG_LOUD, "IOT_PEER = CISCO\n");
@@ -396,6 +402,7 @@ static void rtl92d_early_mode_enabled(struct rtl_priv *rtlpriv)
 static void rtl92d_dm_dig(struct ieee80211_hw *hw)
 {
 	struct rtl_priv *rtlpriv = rtl_priv(hw);
+	struct dig_t de_digtable = rtlpriv->dm_digtable;
 	u8 value_igi = de_digtable.cur_igvalue;
 	struct false_alarm_statistics *falsealm_cnt = &(rtlpriv->falsealm_cnt);
 
diff --git a/drivers/net/wireless/rtlwifi/rtl8192de/dm.h b/drivers/net/wireless/rtlwifi/rtl8192de/dm.h
index 7ede6a7..3fea0c1 100644
--- a/drivers/net/wireless/rtlwifi/rtl8192de/dm.h
+++ b/drivers/net/wireless/rtlwifi/rtl8192de/dm.h
@@ -151,8 +151,6 @@ enum dm_dig_connect {
 	DIG_CONNECT_MAX
 };
 
-extern struct dig_t de_digtable;
-
 void rtl92d_dm_init(struct ieee80211_hw *hw);
 void rtl92d_dm_watchdog(struct ieee80211_hw *hw);
 void rtl92d_dm_init_edca_turbo(struct ieee80211_hw *hw);
diff --git a/drivers/net/wireless/rtlwifi/rtl8192de/phy.c b/drivers/net/wireless/rtlwifi/rtl8192de/phy.c
index d32de7a..9cd902a 100644
--- a/drivers/net/wireless/rtlwifi/rtl8192de/phy.c
+++ b/drivers/net/wireless/rtlwifi/rtl8192de/phy.c
@@ -3065,6 +3065,7 @@ static void rtl92d_phy_set_io(struct ieee80211_hw *hw)
 {
 	struct rtl_priv *rtlpriv = rtl_priv(hw);
 	struct rtl_phy *rtlphy = &(rtlpriv->phy);
+	struct dig_t de_digtable = rtlpriv->dm_digtable;
 
 	RT_TRACE(rtlpriv, COMP_CMD, DBG_TRACE,
 		 "--->Cmd(%#x), set_io_inprogress(%d)\n",
-- 
1.7.7


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 6/6] rtlwifi: rtl8192se: Convert driver to use private dm struct
  2012-03-26 18:49 [PATCH 0/6] rtlwifi: Convert drivers away from global copies of structures Larry Finger
                   ` (4 preceding siblings ...)
  2012-03-26 18:49 ` [PATCH 5/6] rtlwifi: rtl8192de: Convert driver to use private dm structs Larry Finger
@ 2012-03-26 18:49 ` Larry Finger
  2012-03-27 14:40 ` [PATCH 0/6] rtlwifi: Convert drivers away from global copies of structures Larry Finger
  6 siblings, 0 replies; 8+ messages in thread
From: Larry Finger @ 2012-03-26 18:49 UTC (permalink / raw)
  To: linville; +Cc: Larry Finger, linux-wireless

Convert driver to use private version of dig_t instead of global version.

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
---
 drivers/net/wireless/rtlwifi/rtl8192se/dm.c  |    6 +++++-
 drivers/net/wireless/rtlwifi/rtl8192se/dm.h  |    2 --
 drivers/net/wireless/rtlwifi/rtl8192se/phy.c |    1 +
 3 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/drivers/net/wireless/rtlwifi/rtl8192se/dm.c b/drivers/net/wireless/rtlwifi/rtl8192se/dm.c
index fbabae1..6451e93 100644
--- a/drivers/net/wireless/rtlwifi/rtl8192se/dm.c
+++ b/drivers/net/wireless/rtlwifi/rtl8192se/dm.c
@@ -35,7 +35,6 @@
 #include "dm.h"
 #include "fw.h"
 
-struct dig_t digtable;
 static const u32 edca_setting_dl[PEER_MAX] = {
 	0xa44f,		/* 0 UNKNOWN */
 	0x5ea44f,	/* 1 REALTEK_90 */
@@ -422,6 +421,7 @@ static void rtl92s_backoff_enable_flag(struct ieee80211_hw *hw)
 {
 	struct rtl_priv *rtlpriv = rtl_priv(hw);
 	struct false_alarm_statistics *falsealm_cnt = &(rtlpriv->falsealm_cnt);
+	struct dig_t digtable = rtlpriv->dm_digtable;
 
 	if (falsealm_cnt->cnt_all > digtable.fa_highthresh) {
 		if ((digtable.backoff_val - 6) <
@@ -442,6 +442,7 @@ static void rtl92s_backoff_enable_flag(struct ieee80211_hw *hw)
 static void _rtl92s_dm_initial_gain_sta_beforeconnect(struct ieee80211_hw *hw)
 {
 	struct rtl_priv *rtlpriv = rtl_priv(hw);
+	struct dig_t digtable = rtlpriv->dm_digtable;
 	struct false_alarm_statistics *falsealm_cnt = &(rtlpriv->falsealm_cnt);
 	static u8 initialized, force_write;
 	u8 initial_gain = 0;
@@ -519,6 +520,7 @@ static void _rtl92s_dm_initial_gain_sta_beforeconnect(struct ieee80211_hw *hw)
 static void _rtl92s_dm_ctrl_initgain_bytwoport(struct ieee80211_hw *hw)
 {
 	struct rtl_priv *rtlpriv = rtl_priv(hw);
+	struct dig_t digtable = rtlpriv->dm_digtable;
 
 	if (rtlpriv->mac80211.act_scanning)
 		return;
@@ -551,6 +553,7 @@ static void _rtl92s_dm_ctrl_initgain_byrssi(struct ieee80211_hw *hw)
 {
 	struct rtl_priv *rtlpriv = rtl_priv(hw);
 	struct rtl_phy *rtlphy = &(rtlpriv->phy);
+	struct dig_t digtable = rtlpriv->dm_digtable;
 
 	/* 2T2R TP issue */
 	if (rtlphy->rf_type == RF_2T2R)
@@ -639,6 +642,7 @@ static void _rtl92s_dm_dynamic_txpower(struct ieee80211_hw *hw)
 static void _rtl92s_dm_init_dig(struct ieee80211_hw *hw)
 {
 	struct rtl_priv *rtlpriv = rtl_priv(hw);
+	struct dig_t digtable = rtlpriv->dm_digtable;
 
 	/* Disable DIG scheme now.*/
 	digtable.dig_enable_flag = true;
diff --git a/drivers/net/wireless/rtlwifi/rtl8192se/dm.h b/drivers/net/wireless/rtlwifi/rtl8192se/dm.h
index f8ace73..2e9052c 100644
--- a/drivers/net/wireless/rtlwifi/rtl8192se/dm.h
+++ b/drivers/net/wireless/rtlwifi/rtl8192se/dm.h
@@ -112,8 +112,6 @@ enum dm_ratr_sta {
 #define	DM_DIG_BACKOFF_MAX		12
 #define	DM_DIG_BACKOFF_MIN		-4
 
-extern struct dig_t digtable;
-
 void rtl92s_dm_watchdog(struct ieee80211_hw *hw);
 void rtl92s_dm_init(struct ieee80211_hw *hw);
 void rtl92s_dm_init_edca_turbo(struct ieee80211_hw *hw);
diff --git a/drivers/net/wireless/rtlwifi/rtl8192se/phy.c b/drivers/net/wireless/rtlwifi/rtl8192se/phy.c
index 6d5bbd0..9412bfe 100644
--- a/drivers/net/wireless/rtlwifi/rtl8192se/phy.c
+++ b/drivers/net/wireless/rtlwifi/rtl8192se/phy.c
@@ -1453,6 +1453,7 @@ bool rtl92s_phy_set_fw_cmd(struct ieee80211_hw *hw, enum fwcmd_iotype fw_cmdio)
 	struct rtl_priv *rtlpriv = rtl_priv(hw);
 	struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw));
 	struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw));
+	struct dig_t digtable = rtlpriv->dm_digtable;
 	u32	fw_param = FW_CMD_IO_PARA_QUERY(rtlpriv);
 	u16	fw_cmdmap = FW_CMD_IO_QUERY(rtlpriv);
 	bool bPostProcessing = false;
-- 
1.7.7


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH 0/6] rtlwifi: Convert drivers away from global copies of structures
  2012-03-26 18:49 [PATCH 0/6] rtlwifi: Convert drivers away from global copies of structures Larry Finger
                   ` (5 preceding siblings ...)
  2012-03-26 18:49 ` [PATCH 6/6] rtlwifi: rtl8192se: Convert driver to use private dm struct Larry Finger
@ 2012-03-27 14:40 ` Larry Finger
  6 siblings, 0 replies; 8+ messages in thread
From: Larry Finger @ 2012-03-27 14:40 UTC (permalink / raw)
  To: linville; +Cc: linux-wireless

On 03/26/2012 01:49 PM, Larry Finger wrote:
> All the rtlwifi-family of drivers contain 1 or 2 tables that are defined
> on a "per-driver" basis. For systems that contain more than one interface,
> each instance will not have its own copy.
>
> This series of patches is to be applied to kernel 3.5.
>
> Signed-off-by: Larry Finger<Larry.Finger@lwfinger.net>

John,

Please drop this series of patches. I think I messed something up and will 
resubmit later.

Sorry for the noise,

Larry

>
> Larry Finger (6):
>    rtlwifi: Move dig_t and ps_t structs
>    rtlwifi: Add dm structs to private structure
>    rtlwifi: rtl8192c: Convert driver to use private dm structs
>    rtlwifi: rtl8192c: Convert driver to use private ps_t struct
>    rtlwifi: rtl8192de: Convert driver to use private dm structs
>    rtlwifi: rtl8192se: Convert driver to use private dm structs
>
>   drivers/net/wireless/rtlwifi/rtl8192c/dm_common.c  |   22 ++++++-
>   drivers/net/wireless/rtlwifi/rtl8192c/dm_common.h  |   35 -----------
>   drivers/net/wireless/rtlwifi/rtl8192c/phy_common.c |    1 +
>   drivers/net/wireless/rtlwifi/rtl8192ce/dm.h        |   35 -----------
>   drivers/net/wireless/rtlwifi/rtl8192de/dm.c        |   11 +++-
>   drivers/net/wireless/rtlwifi/rtl8192de/dm.h        |   51 ----------------
>   drivers/net/wireless/rtlwifi/rtl8192de/phy.c       |    1 +
>   drivers/net/wireless/rtlwifi/rtl8192se/dm.c        |    6 ++-
>   drivers/net/wireless/rtlwifi/rtl8192se/dm.h        |   44 --------------
>   drivers/net/wireless/rtlwifi/rtl8192se/phy.c       |    1 +
>   drivers/net/wireless/rtlwifi/wifi.h                |   63 ++++++++++++++++++++
>   11 files changed, 99 insertions(+), 171 deletions(-)
>


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2012-03-27 14:40 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-03-26 18:49 [PATCH 0/6] rtlwifi: Convert drivers away from global copies of structures Larry Finger
2012-03-26 18:49 ` [PATCH 1/6] rtlwifi: Move dig_t and ps_t structs Larry Finger
2012-03-26 18:49 ` [PATCH 2/6] rtlwifi: Add dm structs to private structure Larry Finger
2012-03-26 18:49 ` [PATCH 3/6] rtlwifi: rtl8192c: Convert driver to use private dm structs Larry Finger
2012-03-26 18:49 ` [PATCH 4/6] rtlwifi: rtl8192c: Convert driver to use private ps_t struct Larry Finger
2012-03-26 18:49 ` [PATCH 5/6] rtlwifi: rtl8192de: Convert driver to use private dm structs Larry Finger
2012-03-26 18:49 ` [PATCH 6/6] rtlwifi: rtl8192se: Convert driver to use private dm struct Larry Finger
2012-03-27 14:40 ` [PATCH 0/6] rtlwifi: Convert drivers away from global copies of structures Larry Finger

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).