diff options
author | Mike McCormack <mikem@ring3k.org> | 2011-03-03 08:46:04 -0500 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2011-03-07 16:31:44 -0500 |
commit | 7088dfb69877a07712d56bd9f3d2f48b4e7db30e (patch) | |
tree | bdfb888d2fedfa7b64dca2b461e805d8cb4def7f /drivers/staging/rtl8192e | |
parent | 4fc2102522838b9933743fe38d22494efb1100da (diff) |
staging: rtl8192e: Pass r8192_priv around instead of net_device
Signed-off-by: Mike McCormack <mikem@ring3k.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/staging/rtl8192e')
-rw-r--r-- | drivers/staging/rtl8192e/r8192E.h | 1 | ||||
-rw-r--r-- | drivers/staging/rtl8192e/r8192E_core.c | 2 | ||||
-rw-r--r-- | drivers/staging/rtl8192e/r8192E_dm.c | 330 | ||||
-rw-r--r-- | drivers/staging/rtl8192e/r8192E_dm.h | 7 | ||||
-rw-r--r-- | drivers/staging/rtl8192e/r819xE_phy.c | 18 |
5 files changed, 143 insertions, 215 deletions
diff --git a/drivers/staging/rtl8192e/r8192E.h b/drivers/staging/rtl8192e/r8192E.h index 7cbf69be6fe..1b838eea9aa 100644 --- a/drivers/staging/rtl8192e/r8192E.h +++ b/drivers/staging/rtl8192e/r8192E.h | |||
@@ -1062,7 +1062,6 @@ void write_phy(struct net_device *dev, u8 adr, u8 data); | |||
1062 | void CamResetAllEntry(struct r8192_priv *priv); | 1062 | void CamResetAllEntry(struct r8192_priv *priv); |
1063 | void EnableHWSecurityConfig8192(struct net_device *dev); | 1063 | void EnableHWSecurityConfig8192(struct net_device *dev); |
1064 | void setKey(struct net_device *dev, u8 EntryNo, u8 KeyIndex, u16 KeyType, const u8 *MacAddr, u8 DefaultKey, u32 *KeyContent ); | 1064 | void setKey(struct net_device *dev, u8 EntryNo, u8 KeyIndex, u16 KeyType, const u8 *MacAddr, u8 DefaultKey, u32 *KeyContent ); |
1065 | void dm_cck_txpower_adjust(struct net_device *dev, bool binch14); | ||
1066 | void firmware_init_param(struct net_device *dev); | 1065 | void firmware_init_param(struct net_device *dev); |
1067 | RT_STATUS cmpk_message_handle_tx(struct net_device *dev, u8* codevirtualaddress, u32 packettype, u32 buffer_len); | 1066 | RT_STATUS cmpk_message_handle_tx(struct net_device *dev, u8* codevirtualaddress, u32 packettype, u32 buffer_len); |
1068 | 1067 | ||
diff --git a/drivers/staging/rtl8192e/r8192E_core.c b/drivers/staging/rtl8192e/r8192E_core.c index fb67e5f55f1..6ba1497b34c 100644 --- a/drivers/staging/rtl8192e/r8192E_core.c +++ b/drivers/staging/rtl8192e/r8192E_core.c | |||
@@ -2832,7 +2832,7 @@ static RT_STATUS rtl8192_adapter_start(struct r8192_priv *priv) | |||
2832 | 2832 | ||
2833 | if(priv->ResetProgress == RESET_TYPE_NORESET) | 2833 | if(priv->ResetProgress == RESET_TYPE_NORESET) |
2834 | { | 2834 | { |
2835 | dm_initialize_txpower_tracking(dev); | 2835 | dm_initialize_txpower_tracking(priv); |
2836 | 2836 | ||
2837 | if(priv->IC_Cut >= IC_VersionCut_D) | 2837 | if(priv->IC_Cut >= IC_VersionCut_D) |
2838 | { | 2838 | { |
diff --git a/drivers/staging/rtl8192e/r8192E_dm.c b/drivers/staging/rtl8192e/r8192E_dm.c index bd352bad46d..208be7f858d 100644 --- a/drivers/staging/rtl8192e/r8192E_dm.c +++ b/drivers/staging/rtl8192e/r8192E_dm.c | |||
@@ -41,54 +41,55 @@ DRxPathSel DM_RxPathSelTable; | |||
41 | void dm_gpio_change_rf_callback(struct work_struct *work); | 41 | void dm_gpio_change_rf_callback(struct work_struct *work); |
42 | 42 | ||
43 | // DM --> Rate Adaptive | 43 | // DM --> Rate Adaptive |
44 | static void dm_check_rate_adaptive(struct net_device *dev); | 44 | static void dm_check_rate_adaptive(struct r8192_priv *priv); |
45 | 45 | ||
46 | // DM --> Bandwidth switch | 46 | // DM --> Bandwidth switch |
47 | static void dm_init_bandwidth_autoswitch(struct net_device *dev); | 47 | static void dm_init_bandwidth_autoswitch(struct r8192_priv *priv); |
48 | static void dm_bandwidth_autoswitch( struct net_device *dev); | 48 | static void dm_bandwidth_autoswitch(struct r8192_priv *priv); |
49 | 49 | ||
50 | // DM --> TX power control | 50 | // DM --> TX power control |
51 | static void dm_check_txpower_tracking(struct net_device *dev); | 51 | static void dm_check_txpower_tracking(struct r8192_priv *priv); |
52 | 52 | ||
53 | // DM --> Dynamic Init Gain by RSSI | 53 | // DM --> Dynamic Init Gain by RSSI |
54 | static void dm_dig_init(struct net_device *dev); | 54 | static void dm_dig_init(struct r8192_priv *priv); |
55 | static void dm_ctrl_initgain_byrssi(struct net_device *dev); | 55 | static void dm_ctrl_initgain_byrssi(struct r8192_priv *priv); |
56 | static void dm_ctrl_initgain_byrssi_highpwr(struct net_device *dev); | 56 | static void dm_ctrl_initgain_byrssi_highpwr(struct r8192_priv *priv); |
57 | static void dm_ctrl_initgain_byrssi_by_driverrssi( struct net_device *dev); | 57 | static void dm_ctrl_initgain_byrssi_by_driverrssi(struct r8192_priv *priv); |
58 | static void dm_ctrl_initgain_byrssi_by_fwfalse_alarm(struct net_device *dev); | 58 | static void dm_ctrl_initgain_byrssi_by_fwfalse_alarm(struct r8192_priv *priv); |
59 | static void dm_initial_gain(struct net_device *dev); | 59 | static void dm_initial_gain(struct r8192_priv *priv); |
60 | static void dm_pd_th(struct net_device *dev); | 60 | static void dm_pd_th(struct r8192_priv *priv); |
61 | static void dm_cs_ratio(struct net_device *dev); | 61 | static void dm_cs_ratio(struct r8192_priv *priv); |
62 | 62 | ||
63 | static void dm_init_ctstoself(struct net_device *dev); | 63 | static void dm_init_ctstoself(struct r8192_priv *priv); |
64 | // DM --> EDCA turboe mode control | 64 | // DM --> EDCA turboe mode control |
65 | static void dm_check_edca_turbo(struct net_device *dev); | 65 | static void dm_check_edca_turbo(struct r8192_priv *priv); |
66 | static void dm_init_edca_turbo(struct r8192_priv *priv); | ||
66 | 67 | ||
67 | // DM --> HW RF control | 68 | // DM --> HW RF control |
68 | static void dm_check_rfctrl_gpio(struct net_device *dev); | 69 | static void dm_check_rfctrl_gpio(struct r8192_priv *priv); |
69 | |||
70 | // DM --> Check PBC | ||
71 | static void dm_check_pbc_gpio(struct net_device *dev); | ||
72 | 70 | ||
73 | // DM --> Check current RX RF path state | 71 | // DM --> Check current RX RF path state |
74 | static void dm_check_rx_path_selection(struct net_device *dev); | 72 | static void dm_check_rx_path_selection(struct r8192_priv *priv); |
75 | static void dm_init_rxpath_selection(struct net_device *dev); | 73 | static void dm_init_rxpath_selection(struct r8192_priv *priv); |
76 | static void dm_rxpath_sel_byrssi(struct net_device *dev); | 74 | static void dm_rxpath_sel_byrssi(struct r8192_priv *priv); |
77 | 75 | ||
78 | // DM --> Fsync for broadcom ap | 76 | // DM --> Fsync for broadcom ap |
79 | static void dm_init_fsync(struct net_device *dev); | 77 | static void dm_init_fsync(struct r8192_priv *priv); |
80 | static void dm_deInit_fsync(struct net_device *dev); | 78 | static void dm_deInit_fsync(struct r8192_priv *priv); |
81 | 79 | ||
82 | static void dm_check_txrateandretrycount(struct net_device *dev); | 80 | static void dm_check_txrateandretrycount(struct r8192_priv *priv); |
81 | static void dm_check_fsync(struct r8192_priv *priv); | ||
83 | 82 | ||
84 | 83 | ||
85 | /*---------------------Define of Tx Power Control For Near/Far Range --------*/ //Add by Jacken 2008/02/18 | 84 | /*---------------------Define of Tx Power Control For Near/Far Range --------*/ //Add by Jacken 2008/02/18 |
86 | static void dm_init_dynamic_txpower(struct net_device *dev); | 85 | static void dm_init_dynamic_txpower(struct r8192_priv *priv); |
87 | static void dm_dynamic_txpower(struct net_device *dev); | 86 | static void dm_dynamic_txpower(struct r8192_priv *priv); |
88 | 87 | ||
89 | // DM --> For rate adaptive and DIG, we must send RSSI to firmware | 88 | // DM --> For rate adaptive and DIG, we must send RSSI to firmware |
90 | static void dm_send_rssi_tofw(struct net_device *dev); | 89 | static void dm_send_rssi_tofw(struct r8192_priv *priv); |
91 | static void dm_ctstoself(struct net_device *dev); | 90 | static void dm_ctstoself(struct r8192_priv *priv); |
91 | |||
92 | static void dm_fsync_timer_callback(unsigned long data); | ||
92 | 93 | ||
93 | /* | 94 | /* |
94 | * Prepare SW resource for HW dynamic mechanism. | 95 | * Prepare SW resource for HW dynamic mechanism. |
@@ -102,47 +103,48 @@ void init_hal_dm(struct net_device *dev) | |||
102 | priv->undecorated_smoothed_pwdb = -1; | 103 | priv->undecorated_smoothed_pwdb = -1; |
103 | 104 | ||
104 | //Initial TX Power Control for near/far range , add by amy 2008/05/15, porting from windows code. | 105 | //Initial TX Power Control for near/far range , add by amy 2008/05/15, porting from windows code. |
105 | dm_init_dynamic_txpower(dev); | 106 | dm_init_dynamic_txpower(priv); |
106 | init_rate_adaptive(dev); | 107 | init_rate_adaptive(dev); |
107 | //dm_initialize_txpower_tracking(dev); | 108 | //dm_initialize_txpower_tracking(dev); |
108 | dm_dig_init(dev); | 109 | dm_dig_init(priv); |
109 | dm_init_edca_turbo(dev); | 110 | dm_init_edca_turbo(priv); |
110 | dm_init_bandwidth_autoswitch(dev); | 111 | dm_init_bandwidth_autoswitch(priv); |
111 | dm_init_fsync(dev); | 112 | dm_init_fsync(priv); |
112 | dm_init_rxpath_selection(dev); | 113 | dm_init_rxpath_selection(priv); |
113 | dm_init_ctstoself(dev); | 114 | dm_init_ctstoself(priv); |
114 | INIT_DELAYED_WORK(&priv->gpio_change_rf_wq, dm_gpio_change_rf_callback); | 115 | INIT_DELAYED_WORK(&priv->gpio_change_rf_wq, dm_gpio_change_rf_callback); |
115 | 116 | ||
116 | } | 117 | } |
117 | 118 | ||
118 | void deinit_hal_dm(struct net_device *dev) | 119 | void deinit_hal_dm(struct net_device *dev) |
119 | { | 120 | { |
121 | struct r8192_priv *priv = ieee80211_priv(dev); | ||
120 | 122 | ||
121 | dm_deInit_fsync(dev); | 123 | dm_deInit_fsync(priv); |
122 | |||
123 | } | 124 | } |
124 | 125 | ||
125 | void hal_dm_watchdog(struct net_device *dev) | 126 | void hal_dm_watchdog(struct net_device *dev) |
126 | { | 127 | { |
128 | struct r8192_priv *priv = ieee80211_priv(dev); | ||
129 | |||
127 | /*Add by amy 2008/05/15 ,porting from windows code.*/ | 130 | /*Add by amy 2008/05/15 ,porting from windows code.*/ |
128 | dm_check_rate_adaptive(dev); | 131 | dm_check_rate_adaptive(priv); |
129 | dm_dynamic_txpower(dev); | 132 | dm_dynamic_txpower(priv); |
130 | dm_check_txrateandretrycount(dev); | 133 | dm_check_txrateandretrycount(priv); |
131 | 134 | ||
132 | dm_check_txpower_tracking(dev); | 135 | dm_check_txpower_tracking(priv); |
133 | 136 | ||
134 | dm_ctrl_initgain_byrssi(dev); | 137 | dm_ctrl_initgain_byrssi(priv); |
135 | dm_check_edca_turbo(dev); | 138 | dm_check_edca_turbo(priv); |
136 | dm_bandwidth_autoswitch(dev); | 139 | dm_bandwidth_autoswitch(priv); |
137 | 140 | ||
138 | dm_check_rfctrl_gpio(dev); | 141 | dm_check_rfctrl_gpio(priv); |
139 | dm_check_rx_path_selection(dev); | 142 | dm_check_rx_path_selection(priv); |
140 | dm_check_fsync(dev); | 143 | dm_check_fsync(priv); |
141 | 144 | ||
142 | // Add by amy 2008-05-15 porting from windows code. | 145 | // Add by amy 2008-05-15 porting from windows code. |
143 | dm_check_pbc_gpio(dev); | 146 | dm_send_rssi_tofw(priv); |
144 | dm_send_rssi_tofw(dev); | 147 | dm_ctstoself(priv); |
145 | dm_ctstoself(dev); | ||
146 | } | 148 | } |
147 | 149 | ||
148 | 150 | ||
@@ -198,9 +200,8 @@ void init_rate_adaptive(struct net_device * dev) | |||
198 | } | 200 | } |
199 | 201 | ||
200 | 202 | ||
201 | static void dm_check_rate_adaptive(struct net_device * dev) | 203 | static void dm_check_rate_adaptive(struct r8192_priv *priv) |
202 | { | 204 | { |
203 | struct r8192_priv *priv = ieee80211_priv(dev); | ||
204 | PRT_HIGH_THROUGHPUT pHTInfo = priv->ieee80211->pHTInfo; | 205 | PRT_HIGH_THROUGHPUT pHTInfo = priv->ieee80211->pHTInfo; |
205 | prate_adaptive pra = (prate_adaptive)&priv->rate_adaptive; | 206 | prate_adaptive pra = (prate_adaptive)&priv->rate_adaptive; |
206 | u32 currentRATR, targetRATR = 0; | 207 | u32 currentRATR, targetRATR = 0; |
@@ -312,7 +313,7 @@ static void dm_check_rate_adaptive(struct net_device * dev) | |||
312 | } | 313 | } |
313 | 314 | ||
314 | // For RTL819X, if pairwisekey = wep/tkip, we support only MCS0~7. | 315 | // For RTL819X, if pairwisekey = wep/tkip, we support only MCS0~7. |
315 | if(priv->ieee80211->GetHalfNmodeSupportByAPsHandler(dev)) | 316 | if(priv->ieee80211->GetHalfNmodeSupportByAPsHandler(priv->ieee80211->dev)) |
316 | targetRATR &= 0xf00fffff; | 317 | targetRATR &= 0xf00fffff; |
317 | 318 | ||
318 | // | 319 | // |
@@ -343,10 +344,8 @@ static void dm_check_rate_adaptive(struct net_device * dev) | |||
343 | } | 344 | } |
344 | 345 | ||
345 | 346 | ||
346 | static void dm_init_bandwidth_autoswitch(struct net_device * dev) | 347 | static void dm_init_bandwidth_autoswitch(struct r8192_priv *priv) |
347 | { | 348 | { |
348 | struct r8192_priv *priv = ieee80211_priv(dev); | ||
349 | |||
350 | priv->ieee80211->bandwidth_auto_switch.threshold_20Mhzto40Mhz = BW_AUTO_SWITCH_LOW_HIGH; | 349 | priv->ieee80211->bandwidth_auto_switch.threshold_20Mhzto40Mhz = BW_AUTO_SWITCH_LOW_HIGH; |
351 | priv->ieee80211->bandwidth_auto_switch.threshold_40Mhzto20Mhz = BW_AUTO_SWITCH_HIGH_LOW; | 350 | priv->ieee80211->bandwidth_auto_switch.threshold_40Mhzto20Mhz = BW_AUTO_SWITCH_HIGH_LOW; |
352 | priv->ieee80211->bandwidth_auto_switch.bforced_tx20Mhz = false; | 351 | priv->ieee80211->bandwidth_auto_switch.bforced_tx20Mhz = false; |
@@ -355,10 +354,8 @@ static void dm_init_bandwidth_autoswitch(struct net_device * dev) | |||
355 | } | 354 | } |
356 | 355 | ||
357 | 356 | ||
358 | static void dm_bandwidth_autoswitch(struct net_device * dev) | 357 | static void dm_bandwidth_autoswitch(struct r8192_priv *priv) |
359 | { | 358 | { |
360 | struct r8192_priv *priv = ieee80211_priv(dev); | ||
361 | |||
362 | if(priv->CurrentChannelBW == HT_CHANNEL_WIDTH_20 ||!priv->ieee80211->bandwidth_auto_switch.bautoswitch_enable){ | 359 | if(priv->CurrentChannelBW == HT_CHANNEL_WIDTH_20 ||!priv->ieee80211->bandwidth_auto_switch.bautoswitch_enable){ |
363 | return; | 360 | return; |
364 | }else{ | 361 | }else{ |
@@ -430,9 +427,9 @@ static const u8 CCKSwingTable_Ch14[CCK_Table_length][8] = { | |||
430 | #define Tssi_Report_Value1 0x134 | 427 | #define Tssi_Report_Value1 0x134 |
431 | #define Tssi_Report_Value2 0x13e | 428 | #define Tssi_Report_Value2 0x13e |
432 | #define FW_Busy_Flag 0x13f | 429 | #define FW_Busy_Flag 0x13f |
433 | static void dm_TXPowerTrackingCallback_TSSI(struct net_device * dev) | 430 | static void dm_TXPowerTrackingCallback_TSSI(struct r8192_priv *priv) |
434 | { | 431 | { |
435 | struct r8192_priv *priv = ieee80211_priv(dev); | 432 | struct net_device *dev = priv->ieee80211->dev; |
436 | bool bHighpowerstate, viviflag = FALSE; | 433 | bool bHighpowerstate, viviflag = FALSE; |
437 | DCMD_TXCMD_T tx_cmd; | 434 | DCMD_TXCMD_T tx_cmd; |
438 | u8 powerlevelOFDM24G; | 435 | u8 powerlevelOFDM24G; |
@@ -641,15 +638,15 @@ static void dm_TXPowerTrackingCallback_TSSI(struct net_device * dev) | |||
641 | if(priv->ieee80211->current_network.channel == 14 && !priv->bcck_in_ch14) | 638 | if(priv->ieee80211->current_network.channel == 14 && !priv->bcck_in_ch14) |
642 | { | 639 | { |
643 | priv->bcck_in_ch14 = TRUE; | 640 | priv->bcck_in_ch14 = TRUE; |
644 | dm_cck_txpower_adjust(dev,priv->bcck_in_ch14); | 641 | dm_cck_txpower_adjust(priv, priv->bcck_in_ch14); |
645 | } | 642 | } |
646 | else if(priv->ieee80211->current_network.channel != 14 && priv->bcck_in_ch14) | 643 | else if(priv->ieee80211->current_network.channel != 14 && priv->bcck_in_ch14) |
647 | { | 644 | { |
648 | priv->bcck_in_ch14 = FALSE; | 645 | priv->bcck_in_ch14 = FALSE; |
649 | dm_cck_txpower_adjust(dev,priv->bcck_in_ch14); | 646 | dm_cck_txpower_adjust(priv, priv->bcck_in_ch14); |
650 | } | 647 | } |
651 | else | 648 | else |
652 | dm_cck_txpower_adjust(dev,priv->bcck_in_ch14); | 649 | dm_cck_txpower_adjust(priv, priv->bcck_in_ch14); |
653 | } | 650 | } |
654 | RT_TRACE(COMP_POWER_TRACKING, "priv->rfa_txpowertrackingindex = %d\n", priv->rfa_txpowertrackingindex); | 651 | RT_TRACE(COMP_POWER_TRACKING, "priv->rfa_txpowertrackingindex = %d\n", priv->rfa_txpowertrackingindex); |
655 | RT_TRACE(COMP_POWER_TRACKING, "priv->rfa_txpowertrackingindex_real = %d\n", priv->rfa_txpowertrackingindex_real); | 652 | RT_TRACE(COMP_POWER_TRACKING, "priv->rfa_txpowertrackingindex_real = %d\n", priv->rfa_txpowertrackingindex_real); |
@@ -679,10 +676,9 @@ static void dm_TXPowerTrackingCallback_TSSI(struct net_device * dev) | |||
679 | write_nic_byte(priv, Pw_Track_Flag, 0); | 676 | write_nic_byte(priv, Pw_Track_Flag, 0); |
680 | } | 677 | } |
681 | 678 | ||
682 | static void dm_TXPowerTrackingCallback_ThermalMeter(struct net_device * dev) | 679 | static void dm_TXPowerTrackingCallback_ThermalMeter(struct r8192_priv *priv) |
683 | { | 680 | { |
684 | #define ThermalMeterVal 9 | 681 | #define ThermalMeterVal 9 |
685 | struct r8192_priv *priv = ieee80211_priv(dev); | ||
686 | u32 tmpRegA, TempCCk; | 682 | u32 tmpRegA, TempCCk; |
687 | u8 tmpOFDMindex, tmpCCKindex, tmpCCK20Mindex, tmpCCK40Mindex, tmpval; | 683 | u8 tmpOFDMindex, tmpCCKindex, tmpCCK20Mindex, tmpCCK40Mindex, tmpval; |
688 | int i =0, CCKSwingNeedUpdate=0; | 684 | int i =0, CCKSwingNeedUpdate=0; |
@@ -781,7 +777,7 @@ static void dm_TXPowerTrackingCallback_ThermalMeter(struct net_device * dev) | |||
781 | 777 | ||
782 | if(CCKSwingNeedUpdate) | 778 | if(CCKSwingNeedUpdate) |
783 | { | 779 | { |
784 | dm_cck_txpower_adjust(dev, priv->bcck_in_ch14); | 780 | dm_cck_txpower_adjust(priv, priv->bcck_in_ch14); |
785 | } | 781 | } |
786 | if(priv->OFDM_index != tmpOFDMindex) | 782 | if(priv->OFDM_index != tmpOFDMindex) |
787 | { | 783 | { |
@@ -796,13 +792,12 @@ static void dm_TXPowerTrackingCallback_ThermalMeter(struct net_device * dev) | |||
796 | void dm_txpower_trackingcallback(struct work_struct *work) | 792 | void dm_txpower_trackingcallback(struct work_struct *work) |
797 | { | 793 | { |
798 | struct delayed_work *dwork = container_of(work,struct delayed_work,work); | 794 | struct delayed_work *dwork = container_of(work,struct delayed_work,work); |
799 | struct r8192_priv *priv = container_of(dwork,struct r8192_priv,txpower_tracking_wq); | 795 | struct r8192_priv *priv = container_of(dwork,struct r8192_priv,txpower_tracking_wq); |
800 | struct net_device *dev = priv->ieee80211->dev; | ||
801 | 796 | ||
802 | if(priv->IC_Cut >= IC_VersionCut_D) | 797 | if(priv->IC_Cut >= IC_VersionCut_D) |
803 | dm_TXPowerTrackingCallback_TSSI(dev); | 798 | dm_TXPowerTrackingCallback_TSSI(priv); |
804 | else | 799 | else |
805 | dm_TXPowerTrackingCallback_ThermalMeter(dev); | 800 | dm_TXPowerTrackingCallback_ThermalMeter(priv); |
806 | } | 801 | } |
807 | 802 | ||
808 | 803 | ||
@@ -906,10 +901,8 @@ static const ccktxbbgain_struct rtl8192_cck_txbbgain_ch14_table[] = { | |||
906 | {{ 0x0f, 0x0f, 0x0d, 0x08, 0x00, 0x00, 0x00, 0x00 }}, | 901 | {{ 0x0f, 0x0f, 0x0d, 0x08, 0x00, 0x00, 0x00, 0x00 }}, |
907 | }; | 902 | }; |
908 | 903 | ||
909 | static void dm_InitializeTXPowerTracking_TSSI(struct net_device *dev) | 904 | static void dm_InitializeTXPowerTracking_TSSI(struct r8192_priv *priv) |
910 | { | 905 | { |
911 | struct r8192_priv *priv = ieee80211_priv(dev); | ||
912 | |||
913 | priv->txbbgain_table = rtl8192_txbbgain_table; | 906 | priv->txbbgain_table = rtl8192_txbbgain_table; |
914 | priv->cck_txbbgain_table = rtl8192_cck_txbbgain_table; | 907 | priv->cck_txbbgain_table = rtl8192_cck_txbbgain_table; |
915 | priv->cck_txbbgain_ch14_table = rtl8192_cck_txbbgain_ch14_table; | 908 | priv->cck_txbbgain_ch14_table = rtl8192_cck_txbbgain_ch14_table; |
@@ -920,10 +913,8 @@ static void dm_InitializeTXPowerTracking_TSSI(struct net_device *dev) | |||
920 | 913 | ||
921 | } | 914 | } |
922 | 915 | ||
923 | static void dm_InitializeTXPowerTracking_ThermalMeter(struct net_device *dev) | 916 | static void dm_InitializeTXPowerTracking_ThermalMeter(struct r8192_priv *priv) |
924 | { | 917 | { |
925 | struct r8192_priv *priv = ieee80211_priv(dev); | ||
926 | |||
927 | // Tx Power tracking by Theremal Meter require Firmware R/W 3-wire. This mechanism | 918 | // Tx Power tracking by Theremal Meter require Firmware R/W 3-wire. This mechanism |
928 | // can be enabled only when Firmware R/W 3-wire is enabled. Otherwise, frequent r/w | 919 | // can be enabled only when Firmware R/W 3-wire is enabled. Otherwise, frequent r/w |
929 | // 3-wire by driver cause RF goes into wrong state. | 920 | // 3-wire by driver cause RF goes into wrong state. |
@@ -935,20 +926,17 @@ static void dm_InitializeTXPowerTracking_ThermalMeter(struct net_device *dev) | |||
935 | priv->btxpower_trackingInit = FALSE; | 926 | priv->btxpower_trackingInit = FALSE; |
936 | } | 927 | } |
937 | 928 | ||
938 | void dm_initialize_txpower_tracking(struct net_device *dev) | 929 | void dm_initialize_txpower_tracking(struct r8192_priv *priv) |
939 | { | 930 | { |
940 | struct r8192_priv *priv = ieee80211_priv(dev); | ||
941 | |||
942 | if(priv->IC_Cut >= IC_VersionCut_D) | 931 | if(priv->IC_Cut >= IC_VersionCut_D) |
943 | dm_InitializeTXPowerTracking_TSSI(dev); | 932 | dm_InitializeTXPowerTracking_TSSI(priv); |
944 | else | 933 | else |
945 | dm_InitializeTXPowerTracking_ThermalMeter(dev); | 934 | dm_InitializeTXPowerTracking_ThermalMeter(priv); |
946 | } | 935 | } |
947 | 936 | ||
948 | 937 | ||
949 | static void dm_CheckTXPowerTracking_TSSI(struct net_device *dev) | 938 | static void dm_CheckTXPowerTracking_TSSI(struct r8192_priv *priv) |
950 | { | 939 | { |
951 | struct r8192_priv *priv = ieee80211_priv(dev); | ||
952 | static u32 tx_power_track_counter = 0; | 940 | static u32 tx_power_track_counter = 0; |
953 | RT_TRACE(COMP_POWER_TRACKING,"%s()\n",__FUNCTION__); | 941 | RT_TRACE(COMP_POWER_TRACKING,"%s()\n",__FUNCTION__); |
954 | if(read_nic_byte(priv, 0x11e) ==1) | 942 | if(read_nic_byte(priv, 0x11e) ==1) |
@@ -963,9 +951,8 @@ static void dm_CheckTXPowerTracking_TSSI(struct net_device *dev) | |||
963 | } | 951 | } |
964 | } | 952 | } |
965 | 953 | ||
966 | static void dm_CheckTXPowerTracking_ThermalMeter(struct net_device *dev) | 954 | static void dm_CheckTXPowerTracking_ThermalMeter(struct r8192_priv *priv) |
967 | { | 955 | { |
968 | struct r8192_priv *priv = ieee80211_priv(dev); | ||
969 | static u8 TM_Trigger=0; | 956 | static u8 TM_Trigger=0; |
970 | 957 | ||
971 | if(!priv->btxpower_tracking) | 958 | if(!priv->btxpower_tracking) |
@@ -996,21 +983,18 @@ static void dm_CheckTXPowerTracking_ThermalMeter(struct net_device *dev) | |||
996 | } | 983 | } |
997 | } | 984 | } |
998 | 985 | ||
999 | static void dm_check_txpower_tracking(struct net_device *dev) | 986 | static void dm_check_txpower_tracking(struct r8192_priv *priv) |
1000 | { | 987 | { |
1001 | struct r8192_priv *priv = ieee80211_priv(dev); | ||
1002 | |||
1003 | if(priv->IC_Cut >= IC_VersionCut_D) | 988 | if(priv->IC_Cut >= IC_VersionCut_D) |
1004 | dm_CheckTXPowerTracking_TSSI(dev); | 989 | dm_CheckTXPowerTracking_TSSI(priv); |
1005 | else | 990 | else |
1006 | dm_CheckTXPowerTracking_ThermalMeter(dev); | 991 | dm_CheckTXPowerTracking_ThermalMeter(priv); |
1007 | } | 992 | } |
1008 | 993 | ||
1009 | 994 | ||
1010 | static void dm_CCKTxPowerAdjust_TSSI(struct net_device *dev, bool bInCH14) | 995 | static void dm_CCKTxPowerAdjust_TSSI(struct r8192_priv *priv, bool bInCH14) |
1011 | { | 996 | { |
1012 | u32 TempVal; | 997 | u32 TempVal; |
1013 | struct r8192_priv *priv = ieee80211_priv(dev); | ||
1014 | //Write 0xa22 0xa23 | 998 | //Write 0xa22 0xa23 |
1015 | TempVal = 0; | 999 | TempVal = 0; |
1016 | if(!bInCH14){ | 1000 | if(!bInCH14){ |
@@ -1057,10 +1041,10 @@ static void dm_CCKTxPowerAdjust_TSSI(struct net_device *dev, bool bInCH14) | |||
1057 | 1041 | ||
1058 | } | 1042 | } |
1059 | 1043 | ||
1060 | static void dm_CCKTxPowerAdjust_ThermalMeter(struct net_device *dev, bool bInCH14) | 1044 | static void dm_CCKTxPowerAdjust_ThermalMeter(struct r8192_priv *priv, |
1045 | bool bInCH14) | ||
1061 | { | 1046 | { |
1062 | u32 TempVal; | 1047 | u32 TempVal; |
1063 | struct r8192_priv *priv = ieee80211_priv(dev); | ||
1064 | 1048 | ||
1065 | TempVal = 0; | 1049 | TempVal = 0; |
1066 | if(!bInCH14) | 1050 | if(!bInCH14) |
@@ -1119,14 +1103,12 @@ static void dm_CCKTxPowerAdjust_ThermalMeter(struct net_device *dev, bool bInCH | |||
1119 | } | 1103 | } |
1120 | } | 1104 | } |
1121 | 1105 | ||
1122 | void dm_cck_txpower_adjust(struct net_device *dev, bool binch14) | 1106 | void dm_cck_txpower_adjust(struct r8192_priv *priv, bool binch14) |
1123 | { | 1107 | { |
1124 | struct r8192_priv *priv = ieee80211_priv(dev); | ||
1125 | |||
1126 | if(priv->IC_Cut >= IC_VersionCut_D) | 1108 | if(priv->IC_Cut >= IC_VersionCut_D) |
1127 | dm_CCKTxPowerAdjust_TSSI(dev, binch14); | 1109 | dm_CCKTxPowerAdjust_TSSI(priv, binch14); |
1128 | else | 1110 | else |
1129 | dm_CCKTxPowerAdjust_ThermalMeter(dev, binch14); | 1111 | dm_CCKTxPowerAdjust_ThermalMeter(priv, binch14); |
1130 | } | 1112 | } |
1131 | 1113 | ||
1132 | 1114 | ||
@@ -1200,9 +1182,8 @@ void dm_change_dynamic_initgain_thresh(struct net_device *dev, u32 dm_type, u32 | |||
1200 | 1182 | ||
1201 | 1183 | ||
1202 | /* Set DIG scheme init value. */ | 1184 | /* Set DIG scheme init value. */ |
1203 | static void dm_dig_init(struct net_device *dev) | 1185 | static void dm_dig_init(struct r8192_priv *priv) |
1204 | { | 1186 | { |
1205 | struct r8192_priv *priv = ieee80211_priv(dev); | ||
1206 | /* 2007/10/05 MH Disable DIG scheme now. Not tested. */ | 1187 | /* 2007/10/05 MH Disable DIG scheme now. Not tested. */ |
1207 | dm_digtable.dig_enable_flag = true; | 1188 | dm_digtable.dig_enable_flag = true; |
1208 | dm_digtable.dig_algorithm = DIG_ALGO_BY_RSSI; | 1189 | dm_digtable.dig_algorithm = DIG_ALGO_BY_RSSI; |
@@ -1236,23 +1217,20 @@ static void dm_dig_init(struct net_device *dev) | |||
1236 | * gain according to different threshold. BB team provide the | 1217 | * gain according to different threshold. BB team provide the |
1237 | * suggested solution. | 1218 | * suggested solution. |
1238 | */ | 1219 | */ |
1239 | static void dm_ctrl_initgain_byrssi(struct net_device *dev) | 1220 | static void dm_ctrl_initgain_byrssi(struct r8192_priv *priv) |
1240 | { | 1221 | { |
1241 | |||
1242 | if (dm_digtable.dig_enable_flag == false) | 1222 | if (dm_digtable.dig_enable_flag == false) |
1243 | return; | 1223 | return; |
1244 | 1224 | ||
1245 | if(dm_digtable.dig_algorithm == DIG_ALGO_BY_FALSE_ALARM) | 1225 | if(dm_digtable.dig_algorithm == DIG_ALGO_BY_FALSE_ALARM) |
1246 | dm_ctrl_initgain_byrssi_by_fwfalse_alarm(dev); | 1226 | dm_ctrl_initgain_byrssi_by_fwfalse_alarm(priv); |
1247 | else if(dm_digtable.dig_algorithm == DIG_ALGO_BY_RSSI) | 1227 | else if(dm_digtable.dig_algorithm == DIG_ALGO_BY_RSSI) |
1248 | dm_ctrl_initgain_byrssi_by_driverrssi(dev); | 1228 | dm_ctrl_initgain_byrssi_by_driverrssi(priv); |
1249 | } | 1229 | } |
1250 | 1230 | ||
1251 | 1231 | ||
1252 | static void dm_ctrl_initgain_byrssi_by_driverrssi( | 1232 | static void dm_ctrl_initgain_byrssi_by_driverrssi(struct r8192_priv *priv) |
1253 | struct net_device *dev) | ||
1254 | { | 1233 | { |
1255 | struct r8192_priv *priv = ieee80211_priv(dev); | ||
1256 | u8 i; | 1234 | u8 i; |
1257 | static u8 fw_dig=0; | 1235 | static u8 fw_dig=0; |
1258 | 1236 | ||
@@ -1277,19 +1255,17 @@ static void dm_ctrl_initgain_byrssi_by_driverrssi( | |||
1277 | if(dm_digtable.dbg_mode == DM_DBG_OFF) | 1255 | if(dm_digtable.dbg_mode == DM_DBG_OFF) |
1278 | dm_digtable.rssi_val = priv->undecorated_smoothed_pwdb; | 1256 | dm_digtable.rssi_val = priv->undecorated_smoothed_pwdb; |
1279 | 1257 | ||
1280 | dm_initial_gain(dev); | 1258 | dm_initial_gain(priv); |
1281 | dm_pd_th(dev); | 1259 | dm_pd_th(priv); |
1282 | dm_cs_ratio(dev); | 1260 | dm_cs_ratio(priv); |
1283 | if(dm_digtable.dig_algorithm_switch) | 1261 | if(dm_digtable.dig_algorithm_switch) |
1284 | dm_digtable.dig_algorithm_switch = 0; | 1262 | dm_digtable.dig_algorithm_switch = 0; |
1285 | dm_digtable.pre_connect_state = dm_digtable.cur_connect_state; | 1263 | dm_digtable.pre_connect_state = dm_digtable.cur_connect_state; |
1286 | 1264 | ||
1287 | } | 1265 | } |
1288 | 1266 | ||
1289 | static void dm_ctrl_initgain_byrssi_by_fwfalse_alarm( | 1267 | static void dm_ctrl_initgain_byrssi_by_fwfalse_alarm(struct r8192_priv *priv) |
1290 | struct net_device *dev) | ||
1291 | { | 1268 | { |
1292 | struct r8192_priv *priv = ieee80211_priv(dev); | ||
1293 | static u32 reset_cnt = 0; | 1269 | static u32 reset_cnt = 0; |
1294 | u8 i; | 1270 | u8 i; |
1295 | 1271 | ||
@@ -1372,7 +1348,7 @@ static void dm_ctrl_initgain_byrssi_by_fwfalse_alarm( | |||
1372 | if (dm_digtable.dig_state == DM_STA_DIG_ON && | 1348 | if (dm_digtable.dig_state == DM_STA_DIG_ON && |
1373 | (priv->reset_count == reset_cnt)) | 1349 | (priv->reset_count == reset_cnt)) |
1374 | { | 1350 | { |
1375 | dm_ctrl_initgain_byrssi_highpwr(dev); | 1351 | dm_ctrl_initgain_byrssi_highpwr(priv); |
1376 | return; | 1352 | return; |
1377 | } | 1353 | } |
1378 | else | 1354 | else |
@@ -1424,14 +1400,12 @@ static void dm_ctrl_initgain_byrssi_by_fwfalse_alarm( | |||
1424 | 1400 | ||
1425 | } | 1401 | } |
1426 | 1402 | ||
1427 | dm_ctrl_initgain_byrssi_highpwr(dev); | 1403 | dm_ctrl_initgain_byrssi_highpwr(priv); |
1428 | 1404 | ||
1429 | } | 1405 | } |
1430 | 1406 | ||
1431 | static void dm_ctrl_initgain_byrssi_highpwr( | 1407 | static void dm_ctrl_initgain_byrssi_highpwr(struct r8192_priv *priv) |
1432 | struct net_device * dev) | ||
1433 | { | 1408 | { |
1434 | struct r8192_priv *priv = ieee80211_priv(dev); | ||
1435 | static u32 reset_cnt_highpwr = 0; | 1409 | static u32 reset_cnt_highpwr = 0; |
1436 | 1410 | ||
1437 | // For smooth, we can not change high power DIG state in the range. | 1411 | // For smooth, we can not change high power DIG state in the range. |
@@ -1486,10 +1460,8 @@ static void dm_ctrl_initgain_byrssi_highpwr( | |||
1486 | } | 1460 | } |
1487 | 1461 | ||
1488 | 1462 | ||
1489 | static void dm_initial_gain( | 1463 | static void dm_initial_gain(struct r8192_priv *priv) |
1490 | struct net_device * dev) | ||
1491 | { | 1464 | { |
1492 | struct r8192_priv *priv = ieee80211_priv(dev); | ||
1493 | u8 initial_gain=0; | 1465 | u8 initial_gain=0; |
1494 | static u8 initialized=0, force_write=0; | 1466 | static u8 initialized=0, force_write=0; |
1495 | static u32 reset_cnt=0; | 1467 | static u32 reset_cnt=0; |
@@ -1552,10 +1524,8 @@ static void dm_initial_gain( | |||
1552 | } | 1524 | } |
1553 | } | 1525 | } |
1554 | 1526 | ||
1555 | static void dm_pd_th( | 1527 | static void dm_pd_th(struct r8192_priv *priv) |
1556 | struct net_device * dev) | ||
1557 | { | 1528 | { |
1558 | struct r8192_priv *priv = ieee80211_priv(dev); | ||
1559 | static u8 initialized=0, force_write=0; | 1529 | static u8 initialized=0, force_write=0; |
1560 | static u32 reset_cnt = 0; | 1530 | static u32 reset_cnt = 0; |
1561 | 1531 | ||
@@ -1642,10 +1612,8 @@ static void dm_pd_th( | |||
1642 | } | 1612 | } |
1643 | } | 1613 | } |
1644 | 1614 | ||
1645 | static void dm_cs_ratio( | 1615 | static void dm_cs_ratio(struct r8192_priv *priv) |
1646 | struct net_device * dev) | ||
1647 | { | 1616 | { |
1648 | struct r8192_priv *priv = ieee80211_priv(dev); | ||
1649 | static u8 initialized=0,force_write=0; | 1617 | static u8 initialized=0,force_write=0; |
1650 | static u32 reset_cnt = 0; | 1618 | static u32 reset_cnt = 0; |
1651 | 1619 | ||
@@ -1703,19 +1671,16 @@ static void dm_cs_ratio( | |||
1703 | } | 1671 | } |
1704 | } | 1672 | } |
1705 | 1673 | ||
1706 | void dm_init_edca_turbo(struct net_device *dev) | 1674 | void dm_init_edca_turbo(struct r8192_priv *priv) |
1707 | { | 1675 | { |
1708 | struct r8192_priv *priv = ieee80211_priv(dev); | ||
1709 | 1676 | ||
1710 | priv->bcurrent_turbo_EDCA = false; | 1677 | priv->bcurrent_turbo_EDCA = false; |
1711 | priv->ieee80211->bis_any_nonbepkts = false; | 1678 | priv->ieee80211->bis_any_nonbepkts = false; |
1712 | priv->bis_cur_rdlstate = false; | 1679 | priv->bis_cur_rdlstate = false; |
1713 | } | 1680 | } |
1714 | 1681 | ||
1715 | static void dm_check_edca_turbo( | 1682 | static void dm_check_edca_turbo(struct r8192_priv *priv) |
1716 | struct net_device * dev) | ||
1717 | { | 1683 | { |
1718 | struct r8192_priv *priv = ieee80211_priv(dev); | ||
1719 | PRT_HIGH_THROUGHPUT pHTInfo = priv->ieee80211->pHTInfo; | 1684 | PRT_HIGH_THROUGHPUT pHTInfo = priv->ieee80211->pHTInfo; |
1720 | //PSTA_QOS pStaQos = pMgntInfo->pStaQos; | 1685 | //PSTA_QOS pStaQos = pMgntInfo->pStaQos; |
1721 | 1686 | ||
@@ -1777,7 +1742,7 @@ static void dm_check_edca_turbo( | |||
1777 | u8 mode = priv->ieee80211->mode; | 1742 | u8 mode = priv->ieee80211->mode; |
1778 | 1743 | ||
1779 | // For Each time updating EDCA parameter, reset EDCA turbo mode status. | 1744 | // For Each time updating EDCA parameter, reset EDCA turbo mode status. |
1780 | dm_init_edca_turbo(dev); | 1745 | dm_init_edca_turbo(priv); |
1781 | u1bAIFS = qos_parameters->aifs[0] * ((mode&(IEEE_G|IEEE_N_24G)) ?9:20) + aSifsTime; | 1746 | u1bAIFS = qos_parameters->aifs[0] * ((mode&(IEEE_G|IEEE_N_24G)) ?9:20) + aSifsTime; |
1782 | u4bAcParam = ((((u32)(qos_parameters->tx_op_limit[0]))<< AC_PARAM_TXOP_LIMIT_OFFSET)| | 1747 | u4bAcParam = ((((u32)(qos_parameters->tx_op_limit[0]))<< AC_PARAM_TXOP_LIMIT_OFFSET)| |
1783 | (((u32)(qos_parameters->cw_max[0]))<< AC_PARAM_ECW_MAX_OFFSET)| | 1748 | (((u32)(qos_parameters->cw_max[0]))<< AC_PARAM_ECW_MAX_OFFSET)| |
@@ -1819,17 +1784,14 @@ dm_CheckEdcaTurbo_EXIT: | |||
1819 | lastRxOkCnt = priv->stats.rxbytesunicast; | 1784 | lastRxOkCnt = priv->stats.rxbytesunicast; |
1820 | } | 1785 | } |
1821 | 1786 | ||
1822 | static void dm_init_ctstoself(struct net_device * dev) | 1787 | static void dm_init_ctstoself(struct r8192_priv *priv) |
1823 | { | 1788 | { |
1824 | struct r8192_priv *priv = ieee80211_priv((struct net_device *)dev); | ||
1825 | |||
1826 | priv->ieee80211->bCTSToSelfEnable = TRUE; | 1789 | priv->ieee80211->bCTSToSelfEnable = TRUE; |
1827 | priv->ieee80211->CTSToSelfTH = CTSToSelfTHVal; | 1790 | priv->ieee80211->CTSToSelfTH = CTSToSelfTHVal; |
1828 | } | 1791 | } |
1829 | 1792 | ||
1830 | static void dm_ctstoself(struct net_device *dev) | 1793 | static void dm_ctstoself(struct r8192_priv *priv) |
1831 | { | 1794 | { |
1832 | struct r8192_priv *priv = ieee80211_priv((struct net_device *)dev); | ||
1833 | PRT_HIGH_THROUGHPUT pHTInfo = priv->ieee80211->pHTInfo; | 1795 | PRT_HIGH_THROUGHPUT pHTInfo = priv->ieee80211->pHTInfo; |
1834 | static unsigned long lastTxOkCnt = 0; | 1796 | static unsigned long lastTxOkCnt = 0; |
1835 | static unsigned long lastRxOkCnt = 0; | 1797 | static unsigned long lastRxOkCnt = 0; |
@@ -1868,9 +1830,8 @@ static void dm_ctstoself(struct net_device *dev) | |||
1868 | 1830 | ||
1869 | 1831 | ||
1870 | /* Copy 8187B template for 9xseries */ | 1832 | /* Copy 8187B template for 9xseries */ |
1871 | static void dm_check_rfctrl_gpio(struct net_device * dev) | 1833 | static void dm_check_rfctrl_gpio(struct r8192_priv *priv) |
1872 | { | 1834 | { |
1873 | struct r8192_priv *priv = ieee80211_priv(dev); | ||
1874 | 1835 | ||
1875 | // Walk around for DTM test, we will not enable HW - radio on/off because r/w | 1836 | // Walk around for DTM test, we will not enable HW - radio on/off because r/w |
1876 | // page 1 register before Lextra bus is enabled cause system fails when resuming | 1837 | // page 1 register before Lextra bus is enabled cause system fails when resuming |
@@ -1880,11 +1841,6 @@ static void dm_check_rfctrl_gpio(struct net_device * dev) | |||
1880 | queue_delayed_work(priv->priv_wq,&priv->gpio_change_rf_wq,0); | 1841 | queue_delayed_work(priv->priv_wq,&priv->gpio_change_rf_wq,0); |
1881 | } | 1842 | } |
1882 | 1843 | ||
1883 | /* Check if PBC button is pressed. */ | ||
1884 | static void dm_check_pbc_gpio(struct net_device *dev) | ||
1885 | { | ||
1886 | } | ||
1887 | |||
1888 | /* PCI will not support workitem call back HW radio on-off control. */ | 1844 | /* PCI will not support workitem call back HW radio on-off control. */ |
1889 | void dm_gpio_change_rf_callback(struct work_struct *work) | 1845 | void dm_gpio_change_rf_callback(struct work_struct *work) |
1890 | { | 1846 | { |
@@ -1930,8 +1886,6 @@ void dm_rf_pathcheck_workitemcallback(struct work_struct *work) | |||
1930 | { | 1886 | { |
1931 | struct delayed_work *dwork = container_of(work,struct delayed_work,work); | 1887 | struct delayed_work *dwork = container_of(work,struct delayed_work,work); |
1932 | struct r8192_priv *priv = container_of(dwork,struct r8192_priv,rfpath_check_wq); | 1888 | struct r8192_priv *priv = container_of(dwork,struct r8192_priv,rfpath_check_wq); |
1933 | struct net_device *dev =priv->ieee80211->dev; | ||
1934 | //bool bactually_set = false; | ||
1935 | u8 rfpath = 0, i; | 1889 | u8 rfpath = 0, i; |
1936 | 1890 | ||
1937 | 1891 | ||
@@ -1950,13 +1904,13 @@ void dm_rf_pathcheck_workitemcallback(struct work_struct *work) | |||
1950 | if(!DM_RxPathSelTable.Enable) | 1904 | if(!DM_RxPathSelTable.Enable) |
1951 | return; | 1905 | return; |
1952 | 1906 | ||
1953 | dm_rxpath_sel_byrssi(dev); | 1907 | dm_rxpath_sel_byrssi(priv); |
1954 | } | 1908 | } |
1955 | 1909 | ||
1956 | static void dm_init_rxpath_selection(struct net_device * dev) | 1910 | static void dm_init_rxpath_selection(struct r8192_priv *priv) |
1957 | { | 1911 | { |
1958 | u8 i; | 1912 | u8 i; |
1959 | struct r8192_priv *priv = ieee80211_priv(dev); | 1913 | |
1960 | DM_RxPathSelTable.Enable = 1; //default enabled | 1914 | DM_RxPathSelTable.Enable = 1; //default enabled |
1961 | DM_RxPathSelTable.SS_TH_low = RxPathSelection_SS_TH_low; | 1915 | DM_RxPathSelTable.SS_TH_low = RxPathSelection_SS_TH_low; |
1962 | DM_RxPathSelTable.diff_TH = RxPathSelection_diff_TH; | 1916 | DM_RxPathSelTable.diff_TH = RxPathSelection_diff_TH; |
@@ -1974,9 +1928,8 @@ static void dm_init_rxpath_selection(struct net_device * dev) | |||
1974 | } | 1928 | } |
1975 | } | 1929 | } |
1976 | 1930 | ||
1977 | static void dm_rxpath_sel_byrssi(struct net_device * dev) | 1931 | static void dm_rxpath_sel_byrssi(struct r8192_priv *priv) |
1978 | { | 1932 | { |
1979 | struct r8192_priv *priv = ieee80211_priv(dev); | ||
1980 | u8 i, max_rssi_index=0, min_rssi_index=0, sec_rssi_index=0, rf_num=0; | 1933 | u8 i, max_rssi_index=0, min_rssi_index=0, sec_rssi_index=0, rf_num=0; |
1981 | u8 tmp_max_rssi=0, tmp_min_rssi=0, tmp_sec_rssi=0; | 1934 | u8 tmp_max_rssi=0, tmp_min_rssi=0, tmp_sec_rssi=0; |
1982 | u8 cck_default_Rx=0x2; //RF-C | 1935 | u8 cck_default_Rx=0x2; //RF-C |
@@ -2237,16 +2190,13 @@ static void dm_rxpath_sel_byrssi(struct net_device * dev) | |||
2237 | /* | 2190 | /* |
2238 | * Call a workitem to check current RXRF path and Rx Path selection by RSSI. | 2191 | * Call a workitem to check current RXRF path and Rx Path selection by RSSI. |
2239 | */ | 2192 | */ |
2240 | static void dm_check_rx_path_selection(struct net_device *dev) | 2193 | static void dm_check_rx_path_selection(struct r8192_priv *priv) |
2241 | { | 2194 | { |
2242 | struct r8192_priv *priv = ieee80211_priv(dev); | ||
2243 | queue_delayed_work(priv->priv_wq,&priv->rfpath_check_wq,0); | 2195 | queue_delayed_work(priv->priv_wq,&priv->rfpath_check_wq,0); |
2244 | } | 2196 | } |
2245 | 2197 | ||
2246 | static void dm_init_fsync (struct net_device *dev) | 2198 | static void dm_init_fsync(struct r8192_priv *priv) |
2247 | { | 2199 | { |
2248 | struct r8192_priv *priv = ieee80211_priv(dev); | ||
2249 | |||
2250 | priv->ieee80211->fsync_time_interval = 500; | 2200 | priv->ieee80211->fsync_time_interval = 500; |
2251 | priv->ieee80211->fsync_rate_bitmap = 0x0f000800; | 2201 | priv->ieee80211->fsync_rate_bitmap = 0x0f000800; |
2252 | priv->ieee80211->fsync_rssi_threshold = 30; | 2202 | priv->ieee80211->fsync_rssi_threshold = 30; |
@@ -2258,20 +2208,19 @@ static void dm_init_fsync (struct net_device *dev) | |||
2258 | priv->framesyncMonitor = 1; // current default 0xc38 monitor on | 2208 | priv->framesyncMonitor = 1; // current default 0xc38 monitor on |
2259 | 2209 | ||
2260 | init_timer(&priv->fsync_timer); | 2210 | init_timer(&priv->fsync_timer); |
2261 | priv->fsync_timer.data = (unsigned long)dev; | 2211 | priv->fsync_timer.data = (unsigned long)priv; |
2262 | priv->fsync_timer.function = dm_fsync_timer_callback; | 2212 | priv->fsync_timer.function = dm_fsync_timer_callback; |
2263 | } | 2213 | } |
2264 | 2214 | ||
2265 | 2215 | ||
2266 | static void dm_deInit_fsync(struct net_device *dev) | 2216 | static void dm_deInit_fsync(struct r8192_priv *priv) |
2267 | { | 2217 | { |
2268 | struct r8192_priv *priv = ieee80211_priv(dev); | ||
2269 | del_timer_sync(&priv->fsync_timer); | 2218 | del_timer_sync(&priv->fsync_timer); |
2270 | } | 2219 | } |
2271 | 2220 | ||
2272 | void dm_fsync_timer_callback(unsigned long data) | 2221 | static void dm_fsync_timer_callback(unsigned long data) |
2273 | { | 2222 | { |
2274 | struct r8192_priv *priv = ieee80211_priv((struct net_device *)data); | 2223 | struct r8192_priv *priv = (struct r8192_priv *)data; |
2275 | u32 rate_index, rate_count = 0, rate_count_diff=0; | 2224 | u32 rate_index, rate_count = 0, rate_count_diff=0; |
2276 | bool bSwitchFromCountDiff = false; | 2225 | bool bSwitchFromCountDiff = false; |
2277 | bool bDoubleTimeInterval = false; | 2226 | bool bDoubleTimeInterval = false; |
@@ -2379,19 +2328,15 @@ void dm_fsync_timer_callback(unsigned long data) | |||
2379 | RT_TRACE(COMP_HALDM, "rateRecord %d rateCount %d, rateCountdiff %d bSwitchFsync %d\n", priv->rate_record, rate_count, rate_count_diff , priv->bswitch_fsync); | 2328 | RT_TRACE(COMP_HALDM, "rateRecord %d rateCount %d, rateCountdiff %d bSwitchFsync %d\n", priv->rate_record, rate_count, rate_count_diff , priv->bswitch_fsync); |
2380 | } | 2329 | } |
2381 | 2330 | ||
2382 | static void dm_StartHWFsync(struct net_device *dev) | 2331 | static void dm_StartHWFsync(struct r8192_priv *priv) |
2383 | { | 2332 | { |
2384 | struct r8192_priv *priv = ieee80211_priv(dev); | ||
2385 | |||
2386 | RT_TRACE(COMP_HALDM, "%s\n", __FUNCTION__); | 2333 | RT_TRACE(COMP_HALDM, "%s\n", __FUNCTION__); |
2387 | write_nic_dword(priv, rOFDM0_RxDetector2, 0x465c12cf); | 2334 | write_nic_dword(priv, rOFDM0_RxDetector2, 0x465c12cf); |
2388 | write_nic_byte(priv, 0xc3b, 0x41); | 2335 | write_nic_byte(priv, 0xc3b, 0x41); |
2389 | } | 2336 | } |
2390 | 2337 | ||
2391 | static void dm_EndSWFsync(struct net_device *dev) | 2338 | static void dm_EndSWFsync(struct r8192_priv *priv) |
2392 | { | 2339 | { |
2393 | struct r8192_priv *priv = ieee80211_priv(dev); | ||
2394 | |||
2395 | RT_TRACE(COMP_HALDM, "%s\n", __FUNCTION__); | 2340 | RT_TRACE(COMP_HALDM, "%s\n", __FUNCTION__); |
2396 | del_timer_sync(&(priv->fsync_timer)); | 2341 | del_timer_sync(&(priv->fsync_timer)); |
2397 | 2342 | ||
@@ -2410,9 +2355,8 @@ static void dm_EndSWFsync(struct net_device *dev) | |||
2410 | write_nic_dword(priv, rOFDM0_RxDetector2, 0x465c52cd); | 2355 | write_nic_dword(priv, rOFDM0_RxDetector2, 0x465c52cd); |
2411 | } | 2356 | } |
2412 | 2357 | ||
2413 | static void dm_StartSWFsync(struct net_device *dev) | 2358 | static void dm_StartSWFsync(struct r8192_priv *priv) |
2414 | { | 2359 | { |
2415 | struct r8192_priv *priv = ieee80211_priv(dev); | ||
2416 | u32 rateIndex; | 2360 | u32 rateIndex; |
2417 | u32 rateBitmap; | 2361 | u32 rateBitmap; |
2418 | 2362 | ||
@@ -2448,21 +2392,18 @@ static void dm_StartSWFsync(struct net_device *dev) | |||
2448 | write_nic_dword(priv, rOFDM0_RxDetector2, 0x465c12cd); | 2392 | write_nic_dword(priv, rOFDM0_RxDetector2, 0x465c12cd); |
2449 | } | 2393 | } |
2450 | 2394 | ||
2451 | static void dm_EndHWFsync(struct net_device *dev) | 2395 | static void dm_EndHWFsync(struct r8192_priv *priv) |
2452 | { | 2396 | { |
2453 | struct r8192_priv *priv = ieee80211_priv(dev); | ||
2454 | |||
2455 | RT_TRACE(COMP_HALDM,"%s\n", __FUNCTION__); | 2397 | RT_TRACE(COMP_HALDM,"%s\n", __FUNCTION__); |
2456 | write_nic_dword(priv, rOFDM0_RxDetector2, 0x465c52cd); | 2398 | write_nic_dword(priv, rOFDM0_RxDetector2, 0x465c52cd); |
2457 | write_nic_byte(priv, 0xc3b, 0x49); | 2399 | write_nic_byte(priv, 0xc3b, 0x49); |
2458 | } | 2400 | } |
2459 | 2401 | ||
2460 | void dm_check_fsync(struct net_device *dev) | 2402 | static void dm_check_fsync(struct r8192_priv *priv) |
2461 | { | 2403 | { |
2462 | #define RegC38_Default 0 | 2404 | #define RegC38_Default 0 |
2463 | #define RegC38_NonFsync_Other_AP 1 | 2405 | #define RegC38_NonFsync_Other_AP 1 |
2464 | #define RegC38_Fsync_AP_BCM 2 | 2406 | #define RegC38_Fsync_AP_BCM 2 |
2465 | struct r8192_priv *priv = ieee80211_priv(dev); | ||
2466 | //u32 framesyncC34; | 2407 | //u32 framesyncC34; |
2467 | static u8 reg_c38_State=RegC38_Default; | 2408 | static u8 reg_c38_State=RegC38_Default; |
2468 | static u32 reset_cnt=0; | 2409 | static u32 reset_cnt=0; |
@@ -2478,12 +2419,12 @@ void dm_check_fsync(struct net_device *dev) | |||
2478 | switch(priv->ieee80211->fsync_state) | 2419 | switch(priv->ieee80211->fsync_state) |
2479 | { | 2420 | { |
2480 | case Default_Fsync: | 2421 | case Default_Fsync: |
2481 | dm_StartHWFsync(dev); | 2422 | dm_StartHWFsync(priv); |
2482 | priv->ieee80211->fsync_state = HW_Fsync; | 2423 | priv->ieee80211->fsync_state = HW_Fsync; |
2483 | break; | 2424 | break; |
2484 | case SW_Fsync: | 2425 | case SW_Fsync: |
2485 | dm_EndSWFsync(dev); | 2426 | dm_EndSWFsync(priv); |
2486 | dm_StartHWFsync(dev); | 2427 | dm_StartHWFsync(priv); |
2487 | priv->ieee80211->fsync_state = HW_Fsync; | 2428 | priv->ieee80211->fsync_state = HW_Fsync; |
2488 | break; | 2429 | break; |
2489 | case HW_Fsync: | 2430 | case HW_Fsync: |
@@ -2496,12 +2437,12 @@ void dm_check_fsync(struct net_device *dev) | |||
2496 | switch(priv->ieee80211->fsync_state) | 2437 | switch(priv->ieee80211->fsync_state) |
2497 | { | 2438 | { |
2498 | case Default_Fsync: | 2439 | case Default_Fsync: |
2499 | dm_StartSWFsync(dev); | 2440 | dm_StartSWFsync(priv); |
2500 | priv->ieee80211->fsync_state = SW_Fsync; | 2441 | priv->ieee80211->fsync_state = SW_Fsync; |
2501 | break; | 2442 | break; |
2502 | case HW_Fsync: | 2443 | case HW_Fsync: |
2503 | dm_EndHWFsync(dev); | 2444 | dm_EndHWFsync(priv); |
2504 | dm_StartSWFsync(dev); | 2445 | dm_StartSWFsync(priv); |
2505 | priv->ieee80211->fsync_state = SW_Fsync; | 2446 | priv->ieee80211->fsync_state = SW_Fsync; |
2506 | break; | 2447 | break; |
2507 | case SW_Fsync: | 2448 | case SW_Fsync: |
@@ -2525,11 +2466,11 @@ void dm_check_fsync(struct net_device *dev) | |||
2525 | switch(priv->ieee80211->fsync_state) | 2466 | switch(priv->ieee80211->fsync_state) |
2526 | { | 2467 | { |
2527 | case HW_Fsync: | 2468 | case HW_Fsync: |
2528 | dm_EndHWFsync(dev); | 2469 | dm_EndHWFsync(priv); |
2529 | priv->ieee80211->fsync_state = Default_Fsync; | 2470 | priv->ieee80211->fsync_state = Default_Fsync; |
2530 | break; | 2471 | break; |
2531 | case SW_Fsync: | 2472 | case SW_Fsync: |
2532 | dm_EndSWFsync(dev); | 2473 | dm_EndSWFsync(priv); |
2533 | priv->ieee80211->fsync_state = Default_Fsync; | 2474 | priv->ieee80211->fsync_state = Default_Fsync; |
2534 | break; | 2475 | break; |
2535 | case Default_Fsync: | 2476 | case Default_Fsync: |
@@ -2592,10 +2533,8 @@ void dm_check_fsync(struct net_device *dev) | |||
2592 | * Detect Signal strength to control TX Registry | 2533 | * Detect Signal strength to control TX Registry |
2593 | * Tx Power Control For Near/Far Range | 2534 | * Tx Power Control For Near/Far Range |
2594 | */ | 2535 | */ |
2595 | static void dm_init_dynamic_txpower(struct net_device *dev) | 2536 | static void dm_init_dynamic_txpower(struct r8192_priv *priv) |
2596 | { | 2537 | { |
2597 | struct r8192_priv *priv = ieee80211_priv(dev); | ||
2598 | |||
2599 | //Initial TX Power Control for near/far range , add by amy 2008/05/15, porting from windows code. | 2538 | //Initial TX Power Control for near/far range , add by amy 2008/05/15, porting from windows code. |
2600 | priv->ieee80211->bdynamic_txpower_enable = true; //Default to enable Tx Power Control | 2539 | priv->ieee80211->bdynamic_txpower_enable = true; //Default to enable Tx Power Control |
2601 | priv->bLastDTPFlag_High = false; | 2540 | priv->bLastDTPFlag_High = false; |
@@ -2604,9 +2543,8 @@ static void dm_init_dynamic_txpower(struct net_device *dev) | |||
2604 | priv->bDynamicTxLowPower = false; | 2543 | priv->bDynamicTxLowPower = false; |
2605 | } | 2544 | } |
2606 | 2545 | ||
2607 | static void dm_dynamic_txpower(struct net_device *dev) | 2546 | static void dm_dynamic_txpower(struct r8192_priv *priv) |
2608 | { | 2547 | { |
2609 | struct r8192_priv *priv = ieee80211_priv(dev); | ||
2610 | unsigned int txhipower_threshhold=0; | 2548 | unsigned int txhipower_threshhold=0; |
2611 | unsigned int txlowpower_threshold=0; | 2549 | unsigned int txlowpower_threshold=0; |
2612 | if(priv->ieee80211->bdynamic_txpower_enable != true) | 2550 | if(priv->ieee80211->bdynamic_txpower_enable != true) |
@@ -2674,20 +2612,18 @@ static void dm_dynamic_txpower(struct net_device *dev) | |||
2674 | } | 2612 | } |
2675 | 2613 | ||
2676 | //added by vivi, for read tx rate and retrycount | 2614 | //added by vivi, for read tx rate and retrycount |
2677 | static void dm_check_txrateandretrycount(struct net_device * dev) | 2615 | static void dm_check_txrateandretrycount(struct r8192_priv *priv) |
2678 | { | 2616 | { |
2679 | struct r8192_priv *priv = ieee80211_priv(dev); | ||
2680 | struct ieee80211_device* ieee = priv->ieee80211; | 2617 | struct ieee80211_device* ieee = priv->ieee80211; |
2618 | |||
2681 | //for initial tx rate | 2619 | //for initial tx rate |
2682 | ieee->softmac_stats.last_packet_rate = read_nic_byte(priv ,Initial_Tx_Rate_Reg); | 2620 | ieee->softmac_stats.last_packet_rate = read_nic_byte(priv ,Initial_Tx_Rate_Reg); |
2683 | //for tx tx retry count | 2621 | //for tx tx retry count |
2684 | ieee->softmac_stats.txretrycount = read_nic_dword(priv, Tx_Retry_Count_Reg); | 2622 | ieee->softmac_stats.txretrycount = read_nic_dword(priv, Tx_Retry_Count_Reg); |
2685 | } | 2623 | } |
2686 | 2624 | ||
2687 | static void dm_send_rssi_tofw(struct net_device *dev) | 2625 | static void dm_send_rssi_tofw(struct r8192_priv *priv) |
2688 | { | 2626 | { |
2689 | struct r8192_priv *priv = ieee80211_priv(dev); | ||
2690 | |||
2691 | // If we test chariot, we should stop the TX command ? | 2627 | // If we test chariot, we should stop the TX command ? |
2692 | // Because 92E will always silent reset when we send tx command. We use register | 2628 | // Because 92E will always silent reset when we send tx command. We use register |
2693 | // 0x1e0(byte) to botify driver. | 2629 | // 0x1e0(byte) to botify driver. |
diff --git a/drivers/staging/rtl8192e/r8192E_dm.h b/drivers/staging/rtl8192e/r8192E_dm.h index 2ca9333d877..16dcb033a9e 100644 --- a/drivers/staging/rtl8192e/r8192E_dm.h +++ b/drivers/staging/rtl8192e/r8192E_dm.h | |||
@@ -219,7 +219,6 @@ void hal_dm_watchdog(struct net_device *dev); | |||
219 | 219 | ||
220 | void init_rate_adaptive(struct net_device *dev); | 220 | void init_rate_adaptive(struct net_device *dev); |
221 | void dm_txpower_trackingcallback(struct work_struct *work); | 221 | void dm_txpower_trackingcallback(struct work_struct *work); |
222 | void dm_cck_txpower_adjust(struct net_device *dev,bool binch14); | ||
223 | void dm_restore_dynamic_mechanism_state(struct net_device *dev); | 222 | void dm_restore_dynamic_mechanism_state(struct net_device *dev); |
224 | void dm_backup_dynamic_mechanism_state(struct net_device *dev); | 223 | void dm_backup_dynamic_mechanism_state(struct net_device *dev); |
225 | void dm_change_dynamic_initgain_thresh(struct net_device *dev, u32 dm_type, | 224 | void dm_change_dynamic_initgain_thresh(struct net_device *dev, u32 dm_type, |
@@ -227,12 +226,10 @@ void dm_change_dynamic_initgain_thresh(struct net_device *dev, u32 dm_type, | |||
227 | void DM_ChangeFsyncSetting(struct net_device *dev, s32 DM_Type, s32 DM_Value); | 226 | void DM_ChangeFsyncSetting(struct net_device *dev, s32 DM_Type, s32 DM_Value); |
228 | void dm_force_tx_fw_info(struct net_device *dev, u32 force_type, | 227 | void dm_force_tx_fw_info(struct net_device *dev, u32 force_type, |
229 | u32 force_value); | 228 | u32 force_value); |
230 | void dm_init_edca_turbo(struct net_device *dev); | ||
231 | void dm_rf_operation_test_callback(unsigned long data); | 229 | void dm_rf_operation_test_callback(unsigned long data); |
232 | void dm_rf_pathcheck_workitemcallback(struct work_struct *work); | 230 | void dm_rf_pathcheck_workitemcallback(struct work_struct *work); |
233 | void dm_fsync_timer_callback(unsigned long data); | 231 | void dm_initialize_txpower_tracking(struct r8192_priv *priv); |
234 | void dm_check_fsync(struct net_device *dev); | 232 | void dm_cck_txpower_adjust(struct r8192_priv *priv, bool binch14); |
235 | void dm_initialize_txpower_tracking(struct net_device *dev); | ||
236 | 233 | ||
237 | 234 | ||
238 | #endif /*__R8192UDM_H__ */ | 235 | #endif /*__R8192UDM_H__ */ |
diff --git a/drivers/staging/rtl8192e/r819xE_phy.c b/drivers/staging/rtl8192e/r819xE_phy.c index e8a8b3424f3..1688997d346 100644 --- a/drivers/staging/rtl8192e/r819xE_phy.c +++ b/drivers/staging/rtl8192e/r819xE_phy.c | |||
@@ -1907,8 +1907,6 @@ u8 rtl8192_phy_SwChnl(struct net_device* dev, u8 channel) | |||
1907 | 1907 | ||
1908 | static void CCK_Tx_Power_Track_BW_Switch_TSSI(struct r8192_priv *priv) | 1908 | static void CCK_Tx_Power_Track_BW_Switch_TSSI(struct r8192_priv *priv) |
1909 | { | 1909 | { |
1910 | struct net_device *dev = priv->ieee80211->dev; | ||
1911 | |||
1912 | switch(priv->CurrentChannelBW) | 1910 | switch(priv->CurrentChannelBW) |
1913 | { | 1911 | { |
1914 | /* 20 MHz channel*/ | 1912 | /* 20 MHz channel*/ |
@@ -1927,15 +1925,15 @@ static void CCK_Tx_Power_Track_BW_Switch_TSSI(struct r8192_priv *priv) | |||
1927 | if(priv->ieee80211->current_network.channel== 14 && !priv->bcck_in_ch14) | 1925 | if(priv->ieee80211->current_network.channel== 14 && !priv->bcck_in_ch14) |
1928 | { | 1926 | { |
1929 | priv->bcck_in_ch14 = TRUE; | 1927 | priv->bcck_in_ch14 = TRUE; |
1930 | dm_cck_txpower_adjust(dev,priv->bcck_in_ch14); | 1928 | dm_cck_txpower_adjust(priv, priv->bcck_in_ch14); |
1931 | } | 1929 | } |
1932 | else if(priv->ieee80211->current_network.channel != 14 && priv->bcck_in_ch14) | 1930 | else if(priv->ieee80211->current_network.channel != 14 && priv->bcck_in_ch14) |
1933 | { | 1931 | { |
1934 | priv->bcck_in_ch14 = FALSE; | 1932 | priv->bcck_in_ch14 = FALSE; |
1935 | dm_cck_txpower_adjust(dev,priv->bcck_in_ch14); | 1933 | dm_cck_txpower_adjust(priv, priv->bcck_in_ch14); |
1936 | } | 1934 | } |
1937 | else | 1935 | else |
1938 | dm_cck_txpower_adjust(dev,priv->bcck_in_ch14); | 1936 | dm_cck_txpower_adjust(priv, priv->bcck_in_ch14); |
1939 | break; | 1937 | break; |
1940 | 1938 | ||
1941 | /* 40 MHz channel*/ | 1939 | /* 40 MHz channel*/ |
@@ -1953,23 +1951,21 @@ static void CCK_Tx_Power_Track_BW_Switch_TSSI(struct r8192_priv *priv) | |||
1953 | if(priv->ieee80211->current_network.channel == 14 && !priv->bcck_in_ch14) | 1951 | if(priv->ieee80211->current_network.channel == 14 && !priv->bcck_in_ch14) |
1954 | { | 1952 | { |
1955 | priv->bcck_in_ch14 = TRUE; | 1953 | priv->bcck_in_ch14 = TRUE; |
1956 | dm_cck_txpower_adjust(dev,priv->bcck_in_ch14); | 1954 | dm_cck_txpower_adjust(priv, priv->bcck_in_ch14); |
1957 | } | 1955 | } |
1958 | else if(priv->ieee80211->current_network.channel != 14 && priv->bcck_in_ch14) | 1956 | else if(priv->ieee80211->current_network.channel != 14 && priv->bcck_in_ch14) |
1959 | { | 1957 | { |
1960 | priv->bcck_in_ch14 = FALSE; | 1958 | priv->bcck_in_ch14 = FALSE; |
1961 | dm_cck_txpower_adjust(dev,priv->bcck_in_ch14); | 1959 | dm_cck_txpower_adjust(priv, priv->bcck_in_ch14); |
1962 | } | 1960 | } |
1963 | else | 1961 | else |
1964 | dm_cck_txpower_adjust(dev,priv->bcck_in_ch14); | 1962 | dm_cck_txpower_adjust(priv, priv->bcck_in_ch14); |
1965 | break; | 1963 | break; |
1966 | } | 1964 | } |
1967 | } | 1965 | } |
1968 | 1966 | ||
1969 | static void CCK_Tx_Power_Track_BW_Switch_ThermalMeter(struct r8192_priv *priv) | 1967 | static void CCK_Tx_Power_Track_BW_Switch_ThermalMeter(struct r8192_priv *priv) |
1970 | { | 1968 | { |
1971 | struct net_device *dev = priv->ieee80211->dev; | ||
1972 | |||
1973 | if(priv->ieee80211->current_network.channel == 14 && !priv->bcck_in_ch14) | 1969 | if(priv->ieee80211->current_network.channel == 14 && !priv->bcck_in_ch14) |
1974 | priv->bcck_in_ch14 = TRUE; | 1970 | priv->bcck_in_ch14 = TRUE; |
1975 | else if(priv->ieee80211->current_network.channel != 14 && priv->bcck_in_ch14) | 1971 | else if(priv->ieee80211->current_network.channel != 14 && priv->bcck_in_ch14) |
@@ -1992,7 +1988,7 @@ static void CCK_Tx_Power_Track_BW_Switch_ThermalMeter(struct r8192_priv *priv) | |||
1992 | RT_TRACE(COMP_POWER_TRACKING, "40MHz, CCK_Tx_Power_Track_BW_Switch_ThermalMeter(), CCK_index = %d\n", priv->CCK_index); | 1988 | RT_TRACE(COMP_POWER_TRACKING, "40MHz, CCK_Tx_Power_Track_BW_Switch_ThermalMeter(), CCK_index = %d\n", priv->CCK_index); |
1993 | break; | 1989 | break; |
1994 | } | 1990 | } |
1995 | dm_cck_txpower_adjust(dev, priv->bcck_in_ch14); | 1991 | dm_cck_txpower_adjust(priv, priv->bcck_in_ch14); |
1996 | } | 1992 | } |
1997 | 1993 | ||
1998 | static void CCK_Tx_Power_Track_BW_Switch(struct r8192_priv *priv) | 1994 | static void CCK_Tx_Power_Track_BW_Switch(struct r8192_priv *priv) |