diff options
author | Andrew Miller <amiller@amilx.com> | 2012-03-15 15:05:20 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2012-03-15 17:06:32 -0400 |
commit | 536d190d77db6eb5a67ad79bedac0892f36dee12 (patch) | |
tree | 027fdd7e4c459304c1439dc19552128d0d64f274 | |
parent | 1748d2de4edca52a34966d8d4f8fdd47cc459709 (diff) |
Staging: rtl8187se: r8180_dm.c: Fix spacing issues
Fix spacing around keywords, '*', binary and ternary
operators, and fix the format of statments and function
declaration.
Signed-off-by: Andrew Miller <amiller@amilx.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r-- | drivers/staging/rtl8187se/r8180_dm.c | 442 |
1 files changed, 197 insertions, 245 deletions
diff --git a/drivers/staging/rtl8187se/r8180_dm.c b/drivers/staging/rtl8187se/r8180_dm.c index bd2cf4acb578..02bffa9bddc7 100644 --- a/drivers/staging/rtl8187se/r8180_dm.c +++ b/drivers/staging/rtl8187se/r8180_dm.c | |||
@@ -36,10 +36,7 @@ bool CheckHighPower(struct net_device *dev) | |||
36 | // and they are related to OFDM and MAC registers. | 36 | // and they are related to OFDM and MAC registers. |
37 | // So, we don't want to update it so frequently in per-Rx packet base. | 37 | // So, we don't want to update it so frequently in per-Rx packet base. |
38 | // | 38 | // |
39 | void | 39 | void DoTxHighPower(struct net_device *dev) |
40 | DoTxHighPower( | ||
41 | struct net_device *dev | ||
42 | ) | ||
43 | { | 40 | { |
44 | struct r8180_priv *priv = ieee80211_priv(dev); | 41 | struct r8180_priv *priv = ieee80211_priv(dev); |
45 | u16 HiPwrUpperTh = 0; | 42 | u16 HiPwrUpperTh = 0; |
@@ -65,7 +62,7 @@ DoTxHighPower( | |||
65 | 62 | ||
66 | // printk("DoTxHighPower() - UndecoratedSmoothedSS:%d, CurCCKRSSI = %d , bCurCCKPkt= %d \n", priv->UndecoratedSmoothedSS, priv->CurCCKRSSI, priv->bCurCCKPkt ); | 63 | // printk("DoTxHighPower() - UndecoratedSmoothedSS:%d, CurCCKRSSI = %d , bCurCCKPkt= %d \n", priv->UndecoratedSmoothedSS, priv->CurCCKRSSI, priv->bCurCCKPkt ); |
67 | 64 | ||
68 | if((priv->UndecoratedSmoothedSS > HiPwrUpperTh) || | 65 | if ((priv->UndecoratedSmoothedSS > HiPwrUpperTh) || |
69 | (priv->bCurCCKPkt && (priv->CurCCKRSSI > RSSIHiPwrUpperTh))) { | 66 | (priv->bCurCCKPkt && (priv->CurCCKRSSI > RSSIHiPwrUpperTh))) { |
70 | // Stevenl suggested that degrade 8dbm in high power sate. 2007-12-04 Isaiah | 67 | // Stevenl suggested that degrade 8dbm in high power sate. 2007-12-04 Isaiah |
71 | 68 | ||
@@ -74,7 +71,7 @@ DoTxHighPower( | |||
74 | u1bTmp= read_nic_byte(dev, CCK_TXAGC); | 71 | u1bTmp= read_nic_byte(dev, CCK_TXAGC); |
75 | 72 | ||
76 | // If it never enter High Power. | 73 | // If it never enter High Power. |
77 | if( CckTxPwrIdx == u1bTmp) { | 74 | if (CckTxPwrIdx == u1bTmp) { |
78 | u1bTmp = (u1bTmp > 16) ? (u1bTmp -16): 0; // 8dbm | 75 | u1bTmp = (u1bTmp > 16) ? (u1bTmp -16): 0; // 8dbm |
79 | write_nic_byte(dev, CCK_TXAGC, u1bTmp); | 76 | write_nic_byte(dev, CCK_TXAGC, u1bTmp); |
80 | 77 | ||
@@ -83,21 +80,21 @@ DoTxHighPower( | |||
83 | write_nic_byte(dev, OFDM_TXAGC, u1bTmp); | 80 | write_nic_byte(dev, OFDM_TXAGC, u1bTmp); |
84 | } | 81 | } |
85 | 82 | ||
86 | } else if((priv->UndecoratedSmoothedSS < HiPwrLowerTh) && | 83 | } else if ((priv->UndecoratedSmoothedSS < HiPwrLowerTh) && |
87 | (!priv->bCurCCKPkt || priv->CurCCKRSSI < RSSIHiPwrLowerTh)) { | 84 | (!priv->bCurCCKPkt || priv->CurCCKRSSI < RSSIHiPwrLowerTh)) { |
88 | // printk("DoTxHighPower() - lower Power - UndecoratedSmoothedSS:%d, HiPwrUpperTh = %d \n", priv->UndecoratedSmoothedSS, HiPwrLowerTh ); | 85 | // printk("DoTxHighPower() - lower Power - UndecoratedSmoothedSS:%d, HiPwrUpperTh = %d \n", priv->UndecoratedSmoothedSS, HiPwrLowerTh ); |
89 | if(priv->bToUpdateTxPwr) { | 86 | if (priv->bToUpdateTxPwr) { |
90 | priv->bToUpdateTxPwr = false; | 87 | priv->bToUpdateTxPwr = false; |
91 | //SD3 required. | 88 | //SD3 required. |
92 | u1bTmp= read_nic_byte(dev, CCK_TXAGC); | 89 | u1bTmp= read_nic_byte(dev, CCK_TXAGC); |
93 | if(u1bTmp < CckTxPwrIdx) { | 90 | if (u1bTmp < CckTxPwrIdx) { |
94 | //u1bTmp = ((u1bTmp+16) > 35) ? 35: (u1bTmp+16); // 8dbm | 91 | //u1bTmp = ((u1bTmp+16) > 35) ? 35: (u1bTmp+16); // 8dbm |
95 | //write_nic_byte(dev, CCK_TXAGC, u1bTmp); | 92 | //write_nic_byte(dev, CCK_TXAGC, u1bTmp); |
96 | write_nic_byte(dev, CCK_TXAGC, CckTxPwrIdx); | 93 | write_nic_byte(dev, CCK_TXAGC, CckTxPwrIdx); |
97 | } | 94 | } |
98 | 95 | ||
99 | u1bTmp= read_nic_byte(dev, OFDM_TXAGC); | 96 | u1bTmp= read_nic_byte(dev, OFDM_TXAGC); |
100 | if(u1bTmp < OfdmTxPwrIdx) { | 97 | if (u1bTmp < OfdmTxPwrIdx) { |
101 | //u1bTmp = ((u1bTmp+16) > 35) ? 35: (u1bTmp+16); // 8dbm | 98 | //u1bTmp = ((u1bTmp+16) > 35) ? 35: (u1bTmp+16); // 8dbm |
102 | //write_nic_byte(dev, OFDM_TXAGC, u1bTmp); | 99 | //write_nic_byte(dev, OFDM_TXAGC, u1bTmp); |
103 | write_nic_byte(dev, OFDM_TXAGC, OfdmTxPwrIdx); | 100 | write_nic_byte(dev, OFDM_TXAGC, OfdmTxPwrIdx); |
@@ -115,7 +112,7 @@ DoTxHighPower( | |||
115 | // Because of some event happened, e.g. CCX TPC, High Power Mechanism, | 112 | // Because of some event happened, e.g. CCX TPC, High Power Mechanism, |
116 | // We update Tx power of current channel again. | 113 | // We update Tx power of current channel again. |
117 | // | 114 | // |
118 | void rtl8180_tx_pw_wq (struct work_struct *work) | 115 | void rtl8180_tx_pw_wq(struct work_struct *work) |
119 | { | 116 | { |
120 | // struct r8180_priv *priv = container_of(work, struct r8180_priv, watch_dog_wq); | 117 | // struct r8180_priv *priv = container_of(work, struct r8180_priv, watch_dog_wq); |
121 | // struct ieee80211_device * ieee = (struct ieee80211_device*) | 118 | // struct ieee80211_device * ieee = (struct ieee80211_device*) |
@@ -136,22 +133,19 @@ void rtl8180_tx_pw_wq (struct work_struct *work) | |||
136 | // Description: | 133 | // Description: |
137 | // Return TRUE if we shall perform DIG Mecahnism, FALSE otherwise. | 134 | // Return TRUE if we shall perform DIG Mecahnism, FALSE otherwise. |
138 | // | 135 | // |
139 | bool | 136 | bool CheckDig(struct net_device *dev) |
140 | CheckDig( | ||
141 | struct net_device *dev | ||
142 | ) | ||
143 | { | 137 | { |
144 | struct r8180_priv *priv = ieee80211_priv(dev); | 138 | struct r8180_priv *priv = ieee80211_priv(dev); |
145 | struct ieee80211_device *ieee = priv->ieee80211; | 139 | struct ieee80211_device *ieee = priv->ieee80211; |
146 | 140 | ||
147 | if(!priv->bDigMechanism) | 141 | if (!priv->bDigMechanism) |
148 | return false; | 142 | return false; |
149 | 143 | ||
150 | if(ieee->state != IEEE80211_LINKED) | 144 | if (ieee->state != IEEE80211_LINKED) |
151 | return false; | 145 | return false; |
152 | 146 | ||
153 | //if(priv->CurrentOperaRate < 36) // Schedule Dig under all OFDM rates. By Bruce, 2007-06-01. | 147 | //if(priv->CurrentOperaRate < 36) // Schedule Dig under all OFDM rates. By Bruce, 2007-06-01. |
154 | if((priv->ieee80211->rate/5) < 36) // Schedule Dig under all OFDM rates. By Bruce, 2007-06-01. | 148 | if ((priv->ieee80211->rate / 5) < 36) // Schedule Dig under all OFDM rates. By Bruce, 2007-06-01. |
155 | return false; | 149 | return false; |
156 | return true; | 150 | return true; |
157 | } | 151 | } |
@@ -159,17 +153,14 @@ CheckDig( | |||
159 | // Description: | 153 | // Description: |
160 | // Implementation of DIG for Zebra and Zebra2. | 154 | // Implementation of DIG for Zebra and Zebra2. |
161 | // | 155 | // |
162 | void | 156 | void DIG_Zebra(struct net_device *dev) |
163 | DIG_Zebra( | ||
164 | struct net_device *dev | ||
165 | ) | ||
166 | { | 157 | { |
167 | struct r8180_priv *priv = ieee80211_priv(dev); | 158 | struct r8180_priv *priv = ieee80211_priv(dev); |
168 | u16 CCKFalseAlarm, OFDMFalseAlarm; | 159 | u16 CCKFalseAlarm, OFDMFalseAlarm; |
169 | u16 OfdmFA1, OfdmFA2; | 160 | u16 OfdmFA1, OfdmFA2; |
170 | int InitialGainStep = 7; // The number of initial gain stages. | 161 | int InitialGainStep = 7; // The number of initial gain stages. |
171 | int LowestGainStage = 4; // The capable lowest stage of performing dig workitem. | 162 | int LowestGainStage = 4; // The capable lowest stage of performing dig workitem. |
172 | u32 AwakePeriodIn2Sec=0; | 163 | u32 AwakePeriodIn2Sec = 0; |
173 | 164 | ||
174 | //printk("---------> DIG_Zebra()\n"); | 165 | //printk("---------> DIG_Zebra()\n"); |
175 | 166 | ||
@@ -182,23 +173,23 @@ DIG_Zebra( | |||
182 | // printk("DIG**********OFDM False Alarm: %#X \n",OFDMFalseAlarm); | 173 | // printk("DIG**********OFDM False Alarm: %#X \n",OFDMFalseAlarm); |
183 | 174 | ||
184 | // The number of initial gain steps is different, by Bruce, 2007-04-13. | 175 | // The number of initial gain steps is different, by Bruce, 2007-04-13. |
185 | if (priv->InitialGain == 0 ) { //autoDIG | 176 | if (priv->InitialGain == 0) { //autoDIG |
186 | // Advised from SD3 DZ | 177 | // Advised from SD3 DZ |
187 | priv->InitialGain = 4; // In 87B, m74dBm means State 4 (m82dBm) | 178 | priv->InitialGain = 4; // In 87B, m74dBm means State 4 (m82dBm) |
188 | } | 179 | } |
189 | // Advised from SD3 DZ | 180 | // Advised from SD3 DZ |
190 | OfdmFA1 = 0x20; | 181 | OfdmFA1 = 0x20; |
191 | 182 | ||
192 | #if 1 //lzm reserved 080826 | 183 | #if 1 //lzm reserved 080826 |
193 | AwakePeriodIn2Sec = (2000-priv ->DozePeriodInPast2Sec); | 184 | AwakePeriodIn2Sec = (2000 - priv->DozePeriodInPast2Sec); |
194 | //printk("&&& DozePeriod=%d AwakePeriod=%d\n", priv->DozePeriodInPast2Sec, AwakePeriodIn2Sec); | 185 | //printk("&&& DozePeriod=%d AwakePeriod=%d\n", priv->DozePeriodInPast2Sec, AwakePeriodIn2Sec); |
195 | priv ->DozePeriodInPast2Sec=0; | 186 | priv ->DozePeriodInPast2Sec = 0; |
196 | 187 | ||
197 | if(AwakePeriodIn2Sec) { | 188 | if (AwakePeriodIn2Sec) { |
198 | //RT_TRACE(COMP_DIG, DBG_TRACE, ("DIG: AwakePeriodIn2Sec(%d) - FATh(0x%X , 0x%X) ->",AwakePeriodIn2Sec, OfdmFA1, OfdmFA2)); | 189 | //RT_TRACE(COMP_DIG, DBG_TRACE, ("DIG: AwakePeriodIn2Sec(%d) - FATh(0x%X , 0x%X) ->",AwakePeriodIn2Sec, OfdmFA1, OfdmFA2)); |
199 | // adjuest DIG threshold. | 190 | // adjuest DIG threshold. |
200 | OfdmFA1 = (u16)((OfdmFA1*AwakePeriodIn2Sec) / 2000) ; | 191 | OfdmFA1 = (u16)((OfdmFA1 * AwakePeriodIn2Sec) / 2000) ; |
201 | OfdmFA2 = (u16)((OfdmFA2*AwakePeriodIn2Sec) / 2000) ; | 192 | OfdmFA2 = (u16)((OfdmFA2 * AwakePeriodIn2Sec) / 2000) ; |
202 | //RT_TRACE(COMP_DIG, DBG_TRACE, ("( 0x%X , 0x%X)\n", OfdmFA1, OfdmFA2)); | 193 | //RT_TRACE(COMP_DIG, DBG_TRACE, ("( 0x%X , 0x%X)\n", OfdmFA1, OfdmFA2)); |
203 | } else { | 194 | } else { |
204 | ;//RT_TRACE(COMP_DIG, DBG_WARNING, ("ERROR!! AwakePeriodIn2Sec should not be ZERO!!\n")); | 195 | ;//RT_TRACE(COMP_DIG, DBG_WARNING, ("ERROR!! AwakePeriodIn2Sec should not be ZERO!!\n")); |
@@ -211,10 +202,10 @@ DIG_Zebra( | |||
211 | if (OFDMFalseAlarm > OfdmFA1) { | 202 | if (OFDMFalseAlarm > OfdmFA1) { |
212 | if (OFDMFalseAlarm > OfdmFA2) { | 203 | if (OFDMFalseAlarm > OfdmFA2) { |
213 | priv->DIG_NumberFallbackVote++; | 204 | priv->DIG_NumberFallbackVote++; |
214 | if (priv->DIG_NumberFallbackVote >1) { | 205 | if (priv->DIG_NumberFallbackVote > 1) { |
215 | //serious OFDM False Alarm, need fallback | 206 | //serious OFDM False Alarm, need fallback |
216 | if (priv->InitialGain < InitialGainStep) { | 207 | if (priv->InitialGain < InitialGainStep) { |
217 | priv->InitialGainBackUp= priv->InitialGain; | 208 | priv->InitialGainBackUp = priv->InitialGain; |
218 | 209 | ||
219 | priv->InitialGain = (priv->InitialGain + 1); | 210 | priv->InitialGain = (priv->InitialGain + 1); |
220 | // printk("DIG**********OFDM False Alarm: %#X, OfdmFA1: %#X, OfdmFA2: %#X\n", OFDMFalseAlarm, OfdmFA1, OfdmFA2); | 211 | // printk("DIG**********OFDM False Alarm: %#X, OfdmFA1: %#X, OfdmFA2: %#X\n", OFDMFalseAlarm, OfdmFA1, OfdmFA2); |
@@ -222,21 +213,21 @@ DIG_Zebra( | |||
222 | UpdateInitialGain(dev); | 213 | UpdateInitialGain(dev); |
223 | } | 214 | } |
224 | priv->DIG_NumberFallbackVote = 0; | 215 | priv->DIG_NumberFallbackVote = 0; |
225 | priv->DIG_NumberUpgradeVote=0; | 216 | priv->DIG_NumberUpgradeVote = 0; |
226 | } | 217 | } |
227 | } else { | 218 | } else { |
228 | if (priv->DIG_NumberFallbackVote) | 219 | if (priv->DIG_NumberFallbackVote) |
229 | priv->DIG_NumberFallbackVote--; | 220 | priv->DIG_NumberFallbackVote--; |
230 | } | 221 | } |
231 | priv->DIG_NumberUpgradeVote=0; | 222 | priv->DIG_NumberUpgradeVote = 0; |
232 | } else { | 223 | } else { |
233 | if (priv->DIG_NumberFallbackVote) | 224 | if (priv->DIG_NumberFallbackVote) |
234 | priv->DIG_NumberFallbackVote--; | 225 | priv->DIG_NumberFallbackVote--; |
235 | priv->DIG_NumberUpgradeVote++; | 226 | priv->DIG_NumberUpgradeVote++; |
236 | 227 | ||
237 | if (priv->DIG_NumberUpgradeVote>9) { | 228 | if (priv->DIG_NumberUpgradeVote > 9) { |
238 | if (priv->InitialGain > LowestGainStage) { // In 87B, m78dBm means State 4 (m864dBm) | 229 | if (priv->InitialGain > LowestGainStage) { // In 87B, m78dBm means State 4 (m864dBm) |
239 | priv->InitialGainBackUp= priv->InitialGain; | 230 | priv->InitialGainBackUp = priv->InitialGain; |
240 | 231 | ||
241 | priv->InitialGain = (priv->InitialGain - 1); | 232 | priv->InitialGain = (priv->InitialGain - 1); |
242 | // printk("DIG**********OFDM False Alarm: %#X, OfdmFA1: %#X, OfdmFA2: %#X\n", OFDMFalseAlarm, OfdmFA1, OfdmFA2); | 233 | // printk("DIG**********OFDM False Alarm: %#X, OfdmFA1: %#X, OfdmFA2: %#X\n", OFDMFalseAlarm, OfdmFA1, OfdmFA2); |
@@ -244,7 +235,7 @@ DIG_Zebra( | |||
244 | UpdateInitialGain(dev); | 235 | UpdateInitialGain(dev); |
245 | } | 236 | } |
246 | priv->DIG_NumberFallbackVote = 0; | 237 | priv->DIG_NumberFallbackVote = 0; |
247 | priv->DIG_NumberUpgradeVote=0; | 238 | priv->DIG_NumberUpgradeVote = 0; |
248 | } | 239 | } |
249 | } | 240 | } |
250 | 241 | ||
@@ -256,13 +247,12 @@ DIG_Zebra( | |||
256 | // Description: | 247 | // Description: |
257 | // Dispatch DIG implementation according to RF. | 248 | // Dispatch DIG implementation according to RF. |
258 | // | 249 | // |
259 | void | 250 | void DynamicInitGain(struct net_device *dev) |
260 | DynamicInitGain(struct net_device *dev) | ||
261 | { | 251 | { |
262 | DIG_Zebra(dev); | 252 | DIG_Zebra(dev); |
263 | } | 253 | } |
264 | 254 | ||
265 | void rtl8180_hw_dig_wq (struct work_struct *work) | 255 | void rtl8180_hw_dig_wq(struct work_struct *work) |
266 | { | 256 | { |
267 | struct delayed_work *dwork = to_delayed_work(work); | 257 | struct delayed_work *dwork = to_delayed_work(work); |
268 | struct ieee80211_device *ieee = container_of(dwork,struct ieee80211_device,hw_dig_wq); | 258 | struct ieee80211_device *ieee = container_of(dwork,struct ieee80211_device,hw_dig_wq); |
@@ -278,10 +268,7 @@ void rtl8180_hw_dig_wq (struct work_struct *work) | |||
278 | 268 | ||
279 | } | 269 | } |
280 | 270 | ||
281 | int | 271 | int IncludedInSupportedRates(struct r8180_priv *priv, u8 TxRate) |
282 | IncludedInSupportedRates( | ||
283 | struct r8180_priv *priv, | ||
284 | u8 TxRate ) | ||
285 | { | 272 | { |
286 | u8 rate_len; | 273 | u8 rate_len; |
287 | u8 rate_ex_len; | 274 | u8 rate_ex_len; |
@@ -292,14 +279,14 @@ IncludedInSupportedRates( | |||
292 | 279 | ||
293 | rate_len = priv->ieee80211->current_network.rates_len; | 280 | rate_len = priv->ieee80211->current_network.rates_len; |
294 | rate_ex_len = priv->ieee80211->current_network.rates_ex_len; | 281 | rate_ex_len = priv->ieee80211->current_network.rates_ex_len; |
295 | for( idx=0; idx< rate_len; idx++ ) { | 282 | for (idx=0; idx < rate_len; idx++) { |
296 | if( (priv->ieee80211->current_network.rates[idx] & RateMask) == NaiveTxRate ) { | 283 | if ((priv->ieee80211->current_network.rates[idx] & RateMask) == NaiveTxRate) { |
297 | Found = 1; | 284 | Found = 1; |
298 | goto found_rate; | 285 | goto found_rate; |
299 | } | 286 | } |
300 | } | 287 | } |
301 | for( idx=0; idx< rate_ex_len; idx++ ) { | 288 | for (idx = 0; idx < rate_ex_len; idx++) { |
302 | if( (priv->ieee80211->current_network.rates_ex[idx] & RateMask) == NaiveTxRate ) { | 289 | if ((priv->ieee80211->current_network.rates_ex[idx] & RateMask) == NaiveTxRate) { |
303 | Found = 1; | 290 | Found = 1; |
304 | goto found_rate; | 291 | goto found_rate; |
305 | } | 292 | } |
@@ -315,17 +302,13 @@ IncludedInSupportedRates( | |||
315 | // Return the upgrade rate if it is successed, otherwise return the input rate. | 302 | // Return the upgrade rate if it is successed, otherwise return the input rate. |
316 | // By Bruce, 2007-06-05. | 303 | // By Bruce, 2007-06-05. |
317 | // | 304 | // |
318 | u8 | 305 | u8 GetUpgradeTxRate(struct net_device *dev, u8 rate) |
319 | GetUpgradeTxRate( | ||
320 | struct net_device *dev, | ||
321 | u8 rate | ||
322 | ) | ||
323 | { | 306 | { |
324 | struct r8180_priv *priv = ieee80211_priv(dev); | 307 | struct r8180_priv *priv = ieee80211_priv(dev); |
325 | u8 UpRate; | 308 | u8 UpRate; |
326 | 309 | ||
327 | // Upgrade 1 degree. | 310 | // Upgrade 1 degree. |
328 | switch(rate) { | 311 | switch (rate) { |
329 | case 108: // Up to 54Mbps. | 312 | case 108: // Up to 54Mbps. |
330 | UpRate = 108; | 313 | UpRate = 108; |
331 | break; | 314 | break; |
@@ -367,7 +350,7 @@ GetUpgradeTxRate( | |||
367 | return rate; | 350 | return rate; |
368 | } | 351 | } |
369 | // Check if the rate is valid. | 352 | // Check if the rate is valid. |
370 | if(IncludedInSupportedRates(priv, UpRate)) { | 353 | if (IncludedInSupportedRates(priv, UpRate)) { |
371 | // printk("GetUpgradeTxRate(): GetUpgrade Tx rate(%d) from %d !\n", UpRate, priv->CurrentOperaRate); | 354 | // printk("GetUpgradeTxRate(): GetUpgrade Tx rate(%d) from %d !\n", UpRate, priv->CurrentOperaRate); |
372 | return UpRate; | 355 | return UpRate; |
373 | } else { | 356 | } else { |
@@ -382,17 +365,13 @@ GetUpgradeTxRate( | |||
382 | // Return the degrade rate if it is successed, otherwise return the input rate. | 365 | // Return the degrade rate if it is successed, otherwise return the input rate. |
383 | // By Bruce, 2007-06-05. | 366 | // By Bruce, 2007-06-05. |
384 | // | 367 | // |
385 | u8 | 368 | u8 GetDegradeTxRate(struct net_device *dev, u8 rate) |
386 | GetDegradeTxRate( | ||
387 | struct net_device *dev, | ||
388 | u8 rate | ||
389 | ) | ||
390 | { | 369 | { |
391 | struct r8180_priv *priv = ieee80211_priv(dev); | 370 | struct r8180_priv *priv = ieee80211_priv(dev); |
392 | u8 DownRate; | 371 | u8 DownRate; |
393 | 372 | ||
394 | // Upgrade 1 degree. | 373 | // Upgrade 1 degree. |
395 | switch(rate) { | 374 | switch (rate) { |
396 | case 108: // Down to 48Mbps. | 375 | case 108: // Down to 48Mbps. |
397 | DownRate = 96; | 376 | DownRate = 96; |
398 | break; | 377 | break; |
@@ -434,7 +413,7 @@ GetDegradeTxRate( | |||
434 | return rate; | 413 | return rate; |
435 | } | 414 | } |
436 | // Check if the rate is valid. | 415 | // Check if the rate is valid. |
437 | if(IncludedInSupportedRates(priv, DownRate)) { | 416 | if (IncludedInSupportedRates(priv, DownRate)) { |
438 | // printk("GetDegradeTxRate(): GetDegrade Tx rate(%d) from %d!\n", DownRate, priv->CurrentOperaRate); | 417 | // printk("GetDegradeTxRate(): GetDegrade Tx rate(%d) from %d!\n", DownRate, priv->CurrentOperaRate); |
439 | return DownRate; | 418 | return DownRate; |
440 | } else { | 419 | } else { |
@@ -448,14 +427,11 @@ GetDegradeTxRate( | |||
448 | // CCK rate. | 427 | // CCK rate. |
449 | // 2005.01.25, by rcnjko. | 428 | // 2005.01.25, by rcnjko. |
450 | // | 429 | // |
451 | bool | 430 | bool MgntIsCckRate(u16 rate) |
452 | MgntIsCckRate( | ||
453 | u16 rate | ||
454 | ) | ||
455 | { | 431 | { |
456 | bool bReturn = false; | 432 | bool bReturn = false; |
457 | 433 | ||
458 | if((rate <= 22) && (rate != 12) && (rate != 18)) { | 434 | if ((rate <= 22) && (rate != 12) && (rate != 18)) { |
459 | bReturn = true; | 435 | bReturn = true; |
460 | } | 436 | } |
461 | 437 | ||
@@ -466,10 +442,7 @@ MgntIsCckRate( | |||
466 | // Tx Power tracking mechanism routine on 87SE. | 442 | // Tx Power tracking mechanism routine on 87SE. |
467 | // Created by Roger, 2007.12.11. | 443 | // Created by Roger, 2007.12.11. |
468 | // | 444 | // |
469 | void | 445 | void TxPwrTracking87SE(struct net_device *dev) |
470 | TxPwrTracking87SE( | ||
471 | struct net_device *dev | ||
472 | ) | ||
473 | { | 446 | { |
474 | struct r8180_priv *priv = (struct r8180_priv *)ieee80211_priv(dev); | 447 | struct r8180_priv *priv = (struct r8180_priv *)ieee80211_priv(dev); |
475 | u8 tmpu1Byte, CurrentThermal, Idx; | 448 | u8 tmpu1Byte, CurrentThermal, Idx; |
@@ -477,36 +450,36 @@ TxPwrTracking87SE( | |||
477 | //u32 u4bRfReg; | 450 | //u32 u4bRfReg; |
478 | 451 | ||
479 | tmpu1Byte = read_nic_byte(dev, EN_LPF_CAL); | 452 | tmpu1Byte = read_nic_byte(dev, EN_LPF_CAL); |
480 | CurrentThermal = (tmpu1Byte & 0xf0)>>4; //[ 7:4]: thermal meter indication. | 453 | CurrentThermal = (tmpu1Byte & 0xf0) >> 4; //[ 7:4]: thermal meter indication. |
481 | CurrentThermal = (CurrentThermal>0x0c)? 0x0c:CurrentThermal;//lzm add 080826 | 454 | CurrentThermal = (CurrentThermal > 0x0c) ? 0x0c:CurrentThermal;//lzm add 080826 |
482 | 455 | ||
483 | //printk("TxPwrTracking87SE(): CurrentThermal(%d)\n", CurrentThermal); | 456 | //printk("TxPwrTracking87SE(): CurrentThermal(%d)\n", CurrentThermal); |
484 | 457 | ||
485 | if( CurrentThermal != priv->ThermalMeter) { | 458 | if (CurrentThermal != priv->ThermalMeter) { |
486 | // printk("TxPwrTracking87SE(): Thermal meter changed!!!\n"); | 459 | // printk("TxPwrTracking87SE(): Thermal meter changed!!!\n"); |
487 | 460 | ||
488 | // Update Tx Power level on each channel. | 461 | // Update Tx Power level on each channel. |
489 | for(Idx = 1; Idx<15; Idx++) { | 462 | for (Idx = 1; Idx < 15; Idx++) { |
490 | CckTxPwrIdx = priv->chtxpwr[Idx]; | 463 | CckTxPwrIdx = priv->chtxpwr[Idx]; |
491 | OfdmTxPwrIdx = priv->chtxpwr_ofdm[Idx]; | 464 | OfdmTxPwrIdx = priv->chtxpwr_ofdm[Idx]; |
492 | 465 | ||
493 | if( CurrentThermal > priv->ThermalMeter ) { | 466 | if (CurrentThermal > priv->ThermalMeter) { |
494 | // higher thermal meter. | 467 | // higher thermal meter. |
495 | CckTxPwrIdx += (CurrentThermal - priv->ThermalMeter)*2; | 468 | CckTxPwrIdx += (CurrentThermal - priv->ThermalMeter) * 2; |
496 | OfdmTxPwrIdx += (CurrentThermal - priv->ThermalMeter)*2; | 469 | OfdmTxPwrIdx += (CurrentThermal - priv->ThermalMeter) * 2; |
497 | 470 | ||
498 | if(CckTxPwrIdx >35) | 471 | if (CckTxPwrIdx > 35) |
499 | CckTxPwrIdx = 35; // Force TxPower to maximal index. | 472 | CckTxPwrIdx = 35; // Force TxPower to maximal index. |
500 | if(OfdmTxPwrIdx >35) | 473 | if (OfdmTxPwrIdx > 35) |
501 | OfdmTxPwrIdx = 35; | 474 | OfdmTxPwrIdx = 35; |
502 | } else { | 475 | } else { |
503 | // lower thermal meter. | 476 | // lower thermal meter. |
504 | CckTxPwrIdx -= (priv->ThermalMeter - CurrentThermal)*2; | 477 | CckTxPwrIdx -= (priv->ThermalMeter - CurrentThermal) * 2; |
505 | OfdmTxPwrIdx -= (priv->ThermalMeter - CurrentThermal)*2; | 478 | OfdmTxPwrIdx -= (priv->ThermalMeter - CurrentThermal) * 2; |
506 | 479 | ||
507 | if(CckTxPwrIdx <0) | 480 | if (CckTxPwrIdx < 0) |
508 | CckTxPwrIdx = 0; | 481 | CckTxPwrIdx = 0; |
509 | if(OfdmTxPwrIdx <0) | 482 | if (OfdmTxPwrIdx < 0) |
510 | OfdmTxPwrIdx = 0; | 483 | OfdmTxPwrIdx = 0; |
511 | } | 484 | } |
512 | 485 | ||
@@ -520,10 +493,7 @@ TxPwrTracking87SE( | |||
520 | } | 493 | } |
521 | priv->ThermalMeter = CurrentThermal; | 494 | priv->ThermalMeter = CurrentThermal; |
522 | } | 495 | } |
523 | void | 496 | void StaRateAdaptive87SE(struct net_device *dev) |
524 | StaRateAdaptive87SE( | ||
525 | struct net_device *dev | ||
526 | ) | ||
527 | { | 497 | { |
528 | struct r8180_priv *priv = (struct r8180_priv *)ieee80211_priv(dev); | 498 | struct r8180_priv *priv = (struct r8180_priv *)ieee80211_priv(dev); |
529 | unsigned long CurrTxokCnt; | 499 | unsigned long CurrTxokCnt; |
@@ -538,10 +508,10 @@ StaRateAdaptive87SE( | |||
538 | u32 TxThroughput; | 508 | u32 TxThroughput; |
539 | long CurrSignalStrength; | 509 | long CurrSignalStrength; |
540 | bool bUpdateInitialGain = false; | 510 | bool bUpdateInitialGain = false; |
541 | u8 u1bOfdm=0, u1bCck = 0; | 511 | u8 u1bOfdm = 0, u1bCck = 0; |
542 | char OfdmTxPwrIdx, CckTxPwrIdx; | 512 | char OfdmTxPwrIdx, CckTxPwrIdx; |
543 | 513 | ||
544 | priv->RateAdaptivePeriod= RATE_ADAPTIVE_TIMER_PERIOD; | 514 | priv->RateAdaptivePeriod = RATE_ADAPTIVE_TIMER_PERIOD; |
545 | 515 | ||
546 | 516 | ||
547 | CurrRetryCnt = priv->CurrRetryCnt; | 517 | CurrRetryCnt = priv->CurrRetryCnt; |
@@ -550,14 +520,14 @@ StaRateAdaptive87SE( | |||
550 | CurrSignalStrength = priv->Stats_RecvSignalPower; | 520 | CurrSignalStrength = priv->Stats_RecvSignalPower; |
551 | TxThroughput = (u32)(priv->NumTxOkBytesTotal - priv->LastTxOKBytes); | 521 | TxThroughput = (u32)(priv->NumTxOkBytesTotal - priv->LastTxOKBytes); |
552 | priv->LastTxOKBytes = priv->NumTxOkBytesTotal; | 522 | priv->LastTxOKBytes = priv->NumTxOkBytesTotal; |
553 | priv->CurrentOperaRate = priv->ieee80211->rate/5; | 523 | priv->CurrentOperaRate = priv->ieee80211->rate / 5; |
554 | //printk("priv->CurrentOperaRate is %d\n",priv->CurrentOperaRate); | 524 | //printk("priv->CurrentOperaRate is %d\n",priv->CurrentOperaRate); |
555 | //2 Compute retry ratio. | 525 | //2 Compute retry ratio. |
556 | if (CurrTxokCnt>0) { | 526 | if (CurrTxokCnt > 0) { |
557 | CurrRetryRate = (u16)(CurrRetryCnt*100/CurrTxokCnt); | 527 | CurrRetryRate = (u16)(CurrRetryCnt * 100 / CurrTxokCnt); |
558 | } else { | 528 | } else { |
559 | // It may be serious retry. To distinguish serious retry or no packets modified by Bruce | 529 | // It may be serious retry. To distinguish serious retry or no packets modified by Bruce |
560 | CurrRetryRate = (u16)(CurrRetryCnt*100/1); | 530 | CurrRetryRate = (u16)(CurrRetryCnt * 100 / 1); |
561 | } | 531 | } |
562 | 532 | ||
563 | 533 | ||
@@ -579,7 +549,7 @@ StaRateAdaptive87SE( | |||
579 | priv->CurrRetryCnt = 0; | 549 | priv->CurrRetryCnt = 0; |
580 | 550 | ||
581 | //2No Tx packets, return to init_rate or not? | 551 | //2No Tx packets, return to init_rate or not? |
582 | if (CurrRetryRate==0 && CurrTxokCnt == 0) { | 552 | if (CurrRetryRate == 0 && CurrTxokCnt == 0) { |
583 | // | 553 | // |
584 | //After 9 (30*300ms) seconds in this condition, we try to raise rate. | 554 | //After 9 (30*300ms) seconds in this condition, we try to raise rate. |
585 | // | 555 | // |
@@ -587,7 +557,7 @@ StaRateAdaptive87SE( | |||
587 | 557 | ||
588 | // printk("No Tx packets, TryupingCountNoData(%d)\n", priv->TryupingCountNoData); | 558 | // printk("No Tx packets, TryupingCountNoData(%d)\n", priv->TryupingCountNoData); |
589 | //[TRC Dell Lab] Extend raised period from 4.5sec to 9sec, Isaiah 2008-02-15 18:00 | 559 | //[TRC Dell Lab] Extend raised period from 4.5sec to 9sec, Isaiah 2008-02-15 18:00 |
590 | if (priv->TryupingCountNoData>30) { | 560 | if (priv->TryupingCountNoData > 30) { |
591 | priv->TryupingCountNoData = 0; | 561 | priv->TryupingCountNoData = 0; |
592 | priv->CurrentOperaRate = GetUpgradeTxRate(dev, priv->CurrentOperaRate); | 562 | priv->CurrentOperaRate = GetUpgradeTxRate(dev, priv->CurrentOperaRate); |
593 | // Reset Fail Record | 563 | // Reset Fail Record |
@@ -597,7 +567,7 @@ StaRateAdaptive87SE( | |||
597 | } | 567 | } |
598 | goto SetInitialGain; | 568 | goto SetInitialGain; |
599 | } else { | 569 | } else { |
600 | priv->TryupingCountNoData=0; //Reset trying up times. | 570 | priv->TryupingCountNoData = 0; //Reset trying up times. |
601 | } | 571 | } |
602 | 572 | ||
603 | 573 | ||
@@ -623,12 +593,12 @@ StaRateAdaptive87SE( | |||
623 | // 11Mbps or 36Mbps | 593 | // 11Mbps or 36Mbps |
624 | // Check more times in these rate(key rates). | 594 | // Check more times in these rate(key rates). |
625 | // | 595 | // |
626 | if(priv->CurrentOperaRate == 22 || priv->CurrentOperaRate == 72) | 596 | if (priv->CurrentOperaRate == 22 || priv->CurrentOperaRate == 72) |
627 | TryUpTh += 9; | 597 | TryUpTh += 9; |
628 | // | 598 | // |
629 | // Let these rates down more difficult. | 599 | // Let these rates down more difficult. |
630 | // | 600 | // |
631 | if(MgntIsCckRate(priv->CurrentOperaRate) || priv->CurrentOperaRate == 36) | 601 | if (MgntIsCckRate(priv->CurrentOperaRate) || priv->CurrentOperaRate == 36) |
632 | TryDownTh += 1; | 602 | TryDownTh += 1; |
633 | 603 | ||
634 | //1 Adjust Rate. | 604 | //1 Adjust Rate. |
@@ -640,7 +610,7 @@ StaRateAdaptive87SE( | |||
640 | // We randomly upgrade the data rate and check if the retry rate is improved. | 610 | // We randomly upgrade the data rate and check if the retry rate is improved. |
641 | 611 | ||
642 | // Upgrading rate did not improve the retry rate, fallback to the original rate. | 612 | // Upgrading rate did not improve the retry rate, fallback to the original rate. |
643 | if ( (CurrRetryRate > 25) && TxThroughput < priv->LastTxThroughput) { | 613 | if ((CurrRetryRate > 25) && TxThroughput < priv->LastTxThroughput) { |
644 | //Not necessary raising rate, fall back rate. | 614 | //Not necessary raising rate, fall back rate. |
645 | bTryDown = true; | 615 | bTryDown = true; |
646 | //printk("case1-1: Not necessary raising rate, fall back rate....\n"); | 616 | //printk("case1-1: Not necessary raising rate, fall back rate....\n"); |
@@ -658,14 +628,14 @@ StaRateAdaptive87SE( | |||
658 | // Revise SignalStrength threshold to -51dbm. | 628 | // Revise SignalStrength threshold to -51dbm. |
659 | // | 629 | // |
660 | // Also need to check retry rate for safety, by Bruce, 2007-06-05. | 630 | // Also need to check retry rate for safety, by Bruce, 2007-06-05. |
661 | if(priv->CurrentOperaRate != priv->ieee80211->current_network.HighestOperaRate ) { | 631 | if (priv->CurrentOperaRate != priv->ieee80211->current_network.HighestOperaRate) { |
662 | bTryUp = true; | 632 | bTryUp = true; |
663 | // Upgrade Tx Rate directly. | 633 | // Upgrade Tx Rate directly. |
664 | priv->TryupingCount += TryUpTh; | 634 | priv->TryupingCount += TryUpTh; |
665 | } | 635 | } |
666 | // printk("case2: StaRateAdaptive87SE: Power(%d) is high enough!!. \n", CurrSignalStrength); | 636 | // printk("case2: StaRateAdaptive87SE: Power(%d) is high enough!!. \n", CurrSignalStrength); |
667 | 637 | ||
668 | } else if(CurrTxokCnt > 9 && CurrTxokCnt< 100 && CurrRetryRate >= 600) { | 638 | } else if (CurrTxokCnt > 9 && CurrTxokCnt < 100 && CurrRetryRate >= 600) { |
669 | //2 For Serious Retry | 639 | //2 For Serious Retry |
670 | // | 640 | // |
671 | // Traffic is not busy but our Tx retry is serious. | 641 | // Traffic is not busy but our Tx retry is serious. |
@@ -674,161 +644,161 @@ StaRateAdaptive87SE( | |||
674 | // Let Rate Mechanism to degrade tx rate directly. | 644 | // Let Rate Mechanism to degrade tx rate directly. |
675 | priv->TryDownCountLowData += TryDownTh; | 645 | priv->TryDownCountLowData += TryDownTh; |
676 | // printk("case3: RA: Tx Retry is serious. Degrade Tx Rate to %d directly...\n", priv->CurrentOperaRate); | 646 | // printk("case3: RA: Tx Retry is serious. Degrade Tx Rate to %d directly...\n", priv->CurrentOperaRate); |
677 | } else if ( priv->CurrentOperaRate == 108 ) { | 647 | } else if (priv->CurrentOperaRate == 108) { |
678 | //2For 54Mbps | 648 | //2For 54Mbps |
679 | // Air Link | 649 | // Air Link |
680 | if ( (CurrRetryRate>26)&&(priv->LastRetryRate>25)) { | 650 | if ((CurrRetryRate > 26) && (priv->LastRetryRate > 25)) { |
681 | // if ( (CurrRetryRate>40)&&(priv->LastRetryRate>39)) | 651 | // if ((CurrRetryRate>40)&&(priv->LastRetryRate>39)) |
682 | //Down to rate 48Mbps. | 652 | //Down to rate 48Mbps. |
683 | bTryDown = true; | 653 | bTryDown = true; |
684 | } | 654 | } |
685 | // Cable Link | 655 | // Cable Link |
686 | else if ( (CurrRetryRate>17)&&(priv->LastRetryRate>16) && (CurrSignalStrength > -72)) { | 656 | else if ((CurrRetryRate > 17) && (priv->LastRetryRate > 16) && (CurrSignalStrength > -72)) { |
687 | // else if ( (CurrRetryRate>17)&&(priv->LastRetryRate>16) && (CurrSignalStrength > -72)) | 657 | // else if ((CurrRetryRate>17)&&(priv->LastRetryRate>16) && (CurrSignalStrength > -72)) |
688 | //Down to rate 48Mbps. | 658 | //Down to rate 48Mbps. |
689 | bTryDown = true; | 659 | bTryDown = true; |
690 | } | 660 | } |
691 | 661 | ||
692 | if(bTryDown && (CurrSignalStrength < -75)) //cable link | 662 | if (bTryDown && (CurrSignalStrength < -75)) //cable link |
693 | priv->TryDownCountLowData += TryDownTh; | 663 | priv->TryDownCountLowData += TryDownTh; |
694 | //printk("case4---54M \n"); | 664 | //printk("case4---54M \n"); |
695 | 665 | ||
696 | } | 666 | } |
697 | else if ( priv->CurrentOperaRate == 96 ) { | 667 | else if (priv->CurrentOperaRate == 96) { |
698 | //2For 48Mbps | 668 | //2For 48Mbps |
699 | //Air Link | 669 | //Air Link |
700 | if ( ((CurrRetryRate>48) && (priv->LastRetryRate>47))) { | 670 | if (((CurrRetryRate > 48) && (priv->LastRetryRate > 47))) { |
701 | // if ( ((CurrRetryRate>65) && (priv->LastRetryRate>64))) | 671 | // if ( ((CurrRetryRate>65) && (priv->LastRetryRate>64))) |
702 | //Down to rate 36Mbps. | 672 | //Down to rate 36Mbps. |
703 | bTryDown = true; | 673 | bTryDown = true; |
704 | } else if ( ((CurrRetryRate>21) && (priv->LastRetryRate>20)) && (CurrSignalStrength > -74)) { //Cable Link | 674 | } else if (((CurrRetryRate > 21) && (priv->LastRetryRate > 20)) && (CurrSignalStrength > -74)) { //Cable Link |
705 | //Down to rate 36Mbps. | 675 | //Down to rate 36Mbps. |
706 | bTryDown = true; | 676 | bTryDown = true; |
707 | } else if((CurrRetryRate> (priv->LastRetryRate + 50 )) && (priv->FailTxRateCount >2 )) { | 677 | } else if ((CurrRetryRate > (priv->LastRetryRate + 50)) && (priv->FailTxRateCount > 2)) { |
708 | // else if((CurrRetryRate> (priv->LastRetryRate + 70 )) && (priv->FailTxRateCount >2 )) | 678 | // else if((CurrRetryRate> (priv->LastRetryRate + 70 )) && (priv->FailTxRateCount >2 )) |
709 | bTryDown = true; | 679 | bTryDown = true; |
710 | priv->TryDownCountLowData += TryDownTh; | 680 | priv->TryDownCountLowData += TryDownTh; |
711 | } else if ( (CurrRetryRate<8) && (priv->LastRetryRate<8) ) { //TO DO: need to consider (RSSI) | 681 | } else if ((CurrRetryRate < 8) && (priv->LastRetryRate < 8)) { //TO DO: need to consider (RSSI) |
712 | // else if ( (CurrRetryRate<28) && (priv->LastRetryRate<8) ) | 682 | // else if ( (CurrRetryRate<28) && (priv->LastRetryRate<8) ) |
713 | bTryUp = true; | 683 | bTryUp = true; |
714 | } | 684 | } |
715 | 685 | ||
716 | if(bTryDown && (CurrSignalStrength < -75)){ | 686 | if (bTryDown && (CurrSignalStrength < -75)){ |
717 | priv->TryDownCountLowData += TryDownTh; | 687 | priv->TryDownCountLowData += TryDownTh; |
718 | } | 688 | } |
719 | //printk("case5---48M \n"); | 689 | //printk("case5---48M \n"); |
720 | } else if ( priv->CurrentOperaRate == 72 ) { | 690 | } else if (priv->CurrentOperaRate == 72) { |
721 | //2For 36Mbps | 691 | //2For 36Mbps |
722 | if ( (CurrRetryRate>43) && (priv->LastRetryRate>41)) { | 692 | if ((CurrRetryRate > 43) && (priv->LastRetryRate > 41)) { |
723 | // if ( (CurrRetryRate>60) && (priv->LastRetryRate>59)) | 693 | // if ( (CurrRetryRate>60) && (priv->LastRetryRate>59)) |
724 | //Down to rate 24Mbps. | 694 | //Down to rate 24Mbps. |
725 | bTryDown = true; | 695 | bTryDown = true; |
726 | } else if((CurrRetryRate> (priv->LastRetryRate + 50 )) && (priv->FailTxRateCount >2 )) { | 696 | } else if ((CurrRetryRate > (priv->LastRetryRate + 50)) && (priv->FailTxRateCount > 2)) { |
727 | // else if((CurrRetryRate> (priv->LastRetryRate + 70 )) && (priv->FailTxRateCount >2 )) | 697 | // else if((CurrRetryRate> (priv->LastRetryRate + 70 )) && (priv->FailTxRateCount >2 )) |
728 | bTryDown = true; | 698 | bTryDown = true; |
729 | priv->TryDownCountLowData += TryDownTh; | 699 | priv->TryDownCountLowData += TryDownTh; |
730 | } else if ( (CurrRetryRate<15) && (priv->LastRetryRate<16)) { //TO DO: need to consider (RSSI) | 700 | } else if ((CurrRetryRate < 15) && (priv->LastRetryRate < 16)) { //TO DO: need to consider (RSSI) |
731 | // else if ( (CurrRetryRate<35) && (priv->LastRetryRate<36)) | 701 | // else if ( (CurrRetryRate<35) && (priv->LastRetryRate<36)) |
732 | bTryUp = true; | 702 | bTryUp = true; |
733 | } | 703 | } |
734 | 704 | ||
735 | if(bTryDown && (CurrSignalStrength < -80)) | 705 | if (bTryDown && (CurrSignalStrength < -80)) |
736 | priv->TryDownCountLowData += TryDownTh; | 706 | priv->TryDownCountLowData += TryDownTh; |
737 | 707 | ||
738 | //printk("case6---36M \n"); | 708 | //printk("case6---36M \n"); |
739 | } else if ( priv->CurrentOperaRate == 48 ) { | 709 | } else if (priv->CurrentOperaRate == 48) { |
740 | //2For 24Mbps | 710 | //2For 24Mbps |
741 | // Air Link | 711 | // Air Link |
742 | if ( ((CurrRetryRate>63) && (priv->LastRetryRate>62))) { | 712 | if (((CurrRetryRate > 63) && (priv->LastRetryRate > 62))) { |
743 | // if ( ((CurrRetryRate>83) && (priv->LastRetryRate>82))) | 713 | // if ( ((CurrRetryRate>83) && (priv->LastRetryRate>82))) |
744 | //Down to rate 18Mbps. | 714 | //Down to rate 18Mbps. |
745 | bTryDown = true; | 715 | bTryDown = true; |
746 | } else if ( ((CurrRetryRate>33) && (priv->LastRetryRate>32)) && (CurrSignalStrength > -82) ) { //Cable Link | 716 | } else if (((CurrRetryRate > 33) && (priv->LastRetryRate > 32)) && (CurrSignalStrength > -82)) { //Cable Link |
747 | // else if ( ((CurrRetryRate>50) && (priv->LastRetryRate>49)) && (CurrSignalStrength > -82) ) | 717 | // else if ( ((CurrRetryRate>50) && (priv->LastRetryRate>49)) && (CurrSignalStrength > -82) ) |
748 | //Down to rate 18Mbps. | 718 | //Down to rate 18Mbps. |
749 | bTryDown = true; | 719 | bTryDown = true; |
750 | } else if((CurrRetryRate> (priv->LastRetryRate + 50 )) && (priv->FailTxRateCount >2 )) { | 720 | } else if ((CurrRetryRate > (priv->LastRetryRate + 50)) && (priv->FailTxRateCount > 2 )) { |
751 | // else if((CurrRetryRate> (priv->LastRetryRate + 70 )) && (priv->FailTxRateCount >2 )) | 721 | // else if((CurrRetryRate> (priv->LastRetryRate + 70 )) && (priv->FailTxRateCount >2 )) |
752 | bTryDown = true; | 722 | bTryDown = true; |
753 | priv->TryDownCountLowData += TryDownTh; | 723 | priv->TryDownCountLowData += TryDownTh; |
754 | } else if ( (CurrRetryRate<20) && (priv->LastRetryRate<21)) { //TO DO: need to consider (RSSI) | 724 | } else if ((CurrRetryRate < 20) && (priv->LastRetryRate < 21)) { //TO DO: need to consider (RSSI) |
755 | // else if ( (CurrRetryRate<40) && (priv->LastRetryRate<41)) | 725 | // else if ( (CurrRetryRate<40) && (priv->LastRetryRate<41)) |
756 | bTryUp = true; | 726 | bTryUp = true; |
757 | } | 727 | } |
758 | 728 | ||
759 | if(bTryDown && (CurrSignalStrength < -82)) | 729 | if (bTryDown && (CurrSignalStrength < -82)) |
760 | priv->TryDownCountLowData += TryDownTh; | 730 | priv->TryDownCountLowData += TryDownTh; |
761 | 731 | ||
762 | //printk("case7---24M \n"); | 732 | //printk("case7---24M \n"); |
763 | } else if ( priv->CurrentOperaRate == 36 ) { | 733 | } else if (priv->CurrentOperaRate == 36) { |
764 | //2For 18Mbps | 734 | //2For 18Mbps |
765 | // original (109, 109) | 735 | // original (109, 109) |
766 | //[TRC Dell Lab] (90, 91), Isaiah 2008-02-18 23:24 | 736 | //[TRC Dell Lab] (90, 91), Isaiah 2008-02-18 23:24 |
767 | // (85, 86), Isaiah 2008-02-18 24:00 | 737 | // (85, 86), Isaiah 2008-02-18 24:00 |
768 | if ( ((CurrRetryRate>85) && (priv->LastRetryRate>86))) { | 738 | if (((CurrRetryRate > 85) && (priv->LastRetryRate > 86))) { |
769 | // if ( ((CurrRetryRate>115) && (priv->LastRetryRate>116))) | 739 | // if ( ((CurrRetryRate>115) && (priv->LastRetryRate>116))) |
770 | //Down to rate 11Mbps. | 740 | //Down to rate 11Mbps. |
771 | bTryDown = true; | 741 | bTryDown = true; |
772 | 742 | ||
773 | //[TRC Dell Lab] Isaiah 2008-02-18 23:24 | 743 | //[TRC Dell Lab] Isaiah 2008-02-18 23:24 |
774 | } else if((CurrRetryRate> (priv->LastRetryRate + 50 )) && (priv->FailTxRateCount >2 )) { | 744 | } else if ((CurrRetryRate > (priv->LastRetryRate + 50)) && (priv->FailTxRateCount > 2)) { |
775 | // else if((CurrRetryRate> (priv->LastRetryRate + 70 )) && (priv->FailTxRateCount >2 )) | 745 | // else if((CurrRetryRate> (priv->LastRetryRate + 70 )) && (priv->FailTxRateCount >2 )) |
776 | bTryDown = true; | 746 | bTryDown = true; |
777 | priv->TryDownCountLowData += TryDownTh; | 747 | priv->TryDownCountLowData += TryDownTh; |
778 | } else if ( (CurrRetryRate<22) && (priv->LastRetryRate<23)) { //TO DO: need to consider (RSSI) | 748 | } else if ((CurrRetryRate < 22) && (priv->LastRetryRate < 23)) { //TO DO: need to consider (RSSI) |
779 | // else if ( (CurrRetryRate<42) && (priv->LastRetryRate<43)) | 749 | // else if ( (CurrRetryRate<42) && (priv->LastRetryRate<43)) |
780 | bTryUp = true; | 750 | bTryUp = true; |
781 | } | 751 | } |
782 | //printk("case8---18M \n"); | 752 | //printk("case8---18M \n"); |
783 | } else if ( priv->CurrentOperaRate == 22 ) { | 753 | } else if (priv->CurrentOperaRate == 22) { |
784 | //2For 11Mbps | 754 | //2For 11Mbps |
785 | if (CurrRetryRate>95) { | 755 | if (CurrRetryRate > 95) { |
786 | // if (CurrRetryRate>155) | 756 | // if (CurrRetryRate>155) |
787 | bTryDown = true; | 757 | bTryDown = true; |
788 | } | 758 | } |
789 | else if ( (CurrRetryRate<29) && (priv->LastRetryRate <30) ) { //TO DO: need to consider (RSSI) | 759 | else if ((CurrRetryRate < 29) && (priv->LastRetryRate < 30)) { //TO DO: need to consider (RSSI) |
790 | // else if ( (CurrRetryRate<49) && (priv->LastRetryRate <50) ) | 760 | // else if ( (CurrRetryRate<49) && (priv->LastRetryRate <50) ) |
791 | bTryUp = true; | 761 | bTryUp = true; |
792 | } | 762 | } |
793 | //printk("case9---11M \n"); | 763 | //printk("case9---11M \n"); |
794 | } else if ( priv->CurrentOperaRate == 11 ) { | 764 | } else if (priv->CurrentOperaRate == 11) { |
795 | //2For 5.5Mbps | 765 | //2For 5.5Mbps |
796 | if (CurrRetryRate>149) { | 766 | if (CurrRetryRate > 149) { |
797 | // if (CurrRetryRate>189) | 767 | // if (CurrRetryRate>189) |
798 | bTryDown = true; | 768 | bTryDown = true; |
799 | } else if ( (CurrRetryRate<60) && (priv->LastRetryRate < 65)) { | 769 | } else if ((CurrRetryRate < 60) && (priv->LastRetryRate < 65)) { |
800 | // else if ( (CurrRetryRate<80) && (priv->LastRetryRate < 85)) | 770 | // else if ( (CurrRetryRate<80) && (priv->LastRetryRate < 85)) |
801 | bTryUp = true; | 771 | bTryUp = true; |
802 | } | 772 | } |
803 | //printk("case10---5.5M \n"); | 773 | //printk("case10---5.5M \n"); |
804 | } else if ( priv->CurrentOperaRate == 4 ) { | 774 | } else if (priv->CurrentOperaRate == 4) { |
805 | //2For 2 Mbps | 775 | //2For 2 Mbps |
806 | if((CurrRetryRate>99) && (priv->LastRetryRate>99)) { | 776 | if ((CurrRetryRate > 99) && (priv->LastRetryRate > 99)) { |
807 | // if((CurrRetryRate>199) && (priv->LastRetryRate>199)) | 777 | // if((CurrRetryRate>199) && (priv->LastRetryRate>199)) |
808 | bTryDown = true; | 778 | bTryDown = true; |
809 | } else if ( (CurrRetryRate < 65) && (priv->LastRetryRate < 70)) { | 779 | } else if ((CurrRetryRate < 65) && (priv->LastRetryRate < 70)) { |
810 | // else if ( (CurrRetryRate < 85) && (priv->LastRetryRate < 90)) | 780 | // else if ( (CurrRetryRate < 85) && (priv->LastRetryRate < 90)) |
811 | bTryUp = true; | 781 | bTryUp = true; |
812 | } | 782 | } |
813 | //printk("case11---2M \n"); | 783 | //printk("case11---2M \n"); |
814 | } else if ( priv->CurrentOperaRate == 2 ) { | 784 | } else if (priv->CurrentOperaRate == 2) { |
815 | //2For 1 Mbps | 785 | //2For 1 Mbps |
816 | if( (CurrRetryRate<70) && (priv->LastRetryRate<75)) { | 786 | if ((CurrRetryRate < 70) && (priv->LastRetryRate < 75)) { |
817 | // if( (CurrRetryRate<90) && (priv->LastRetryRate<95)) | 787 | // if( (CurrRetryRate<90) && (priv->LastRetryRate<95)) |
818 | bTryUp = true; | 788 | bTryUp = true; |
819 | } | 789 | } |
820 | //printk("case12---1M \n"); | 790 | //printk("case12---1M \n"); |
821 | } | 791 | } |
822 | 792 | ||
823 | if(bTryUp && bTryDown) | 793 | if (bTryUp && bTryDown) |
824 | printk("StaRateAdaptive87B(): Tx Rate tried upping and downing simultaneously!\n"); | 794 | printk("StaRateAdaptive87B(): Tx Rate tried upping and downing simultaneously!\n"); |
825 | 795 | ||
826 | //1 Test Upgrading Tx Rate | 796 | //1 Test Upgrading Tx Rate |
827 | // Sometimes the cause of the low throughput (high retry rate) is the compatibility between the AP and NIC. | 797 | // Sometimes the cause of the low throughput (high retry rate) is the compatibility between the AP and NIC. |
828 | // To test if the upper rate may cause lower retry rate, this mechanism randomly occurs to test upgrading tx rate. | 798 | // To test if the upper rate may cause lower retry rate, this mechanism randomly occurs to test upgrading tx rate. |
829 | if(!bTryUp && !bTryDown && (priv->TryupingCount == 0) && (priv->TryDownCountLowData == 0) | 799 | if (!bTryUp && !bTryDown && (priv->TryupingCount == 0) && (priv->TryDownCountLowData == 0) |
830 | && priv->CurrentOperaRate != priv->ieee80211->current_network.HighestOperaRate && priv->FailTxRateCount < 2) { | 800 | && priv->CurrentOperaRate != priv->ieee80211->current_network.HighestOperaRate && priv->FailTxRateCount < 2) { |
831 | if(jiffies% (CurrRetryRate + 101) == 0) { | 801 | if (jiffies % (CurrRetryRate + 101) == 0) { |
832 | bTryUp = true; | 802 | bTryUp = true; |
833 | priv->bTryuping = true; | 803 | priv->bTryuping = true; |
834 | //printk("StaRateAdaptive87SE(): Randomly try upgrading...\n"); | 804 | //printk("StaRateAdaptive87SE(): Randomly try upgrading...\n"); |
@@ -836,7 +806,7 @@ StaRateAdaptive87SE( | |||
836 | } | 806 | } |
837 | 807 | ||
838 | //1 Rate Mechanism | 808 | //1 Rate Mechanism |
839 | if(bTryUp) { | 809 | if (bTryUp) { |
840 | priv->TryupingCount++; | 810 | priv->TryupingCount++; |
841 | priv->TryDownCountLowData = 0; | 811 | priv->TryDownCountLowData = 0; |
842 | 812 | ||
@@ -852,21 +822,21 @@ StaRateAdaptive87SE( | |||
852 | // this condition will be satisfied at most every 2 min. | 822 | // this condition will be satisfied at most every 2 min. |
853 | // | 823 | // |
854 | 824 | ||
855 | if((priv->TryupingCount > (TryUpTh + priv->FailTxRateCount * priv->FailTxRateCount)) || | 825 | if ((priv->TryupingCount > (TryUpTh + priv->FailTxRateCount * priv->FailTxRateCount)) || |
856 | (CurrSignalStrength > priv->LastFailTxRateSS) || priv->bTryuping) { | 826 | (CurrSignalStrength > priv->LastFailTxRateSS) || priv->bTryuping) { |
857 | priv->TryupingCount = 0; | 827 | priv->TryupingCount = 0; |
858 | // | 828 | // |
859 | // When transferring from CCK to OFDM, DIG is an important issue. | 829 | // When transferring from CCK to OFDM, DIG is an important issue. |
860 | // | 830 | // |
861 | if(priv->CurrentOperaRate == 22) | 831 | if (priv->CurrentOperaRate == 22) |
862 | bUpdateInitialGain = true; | 832 | bUpdateInitialGain = true; |
863 | 833 | ||
864 | // The difference in throughput between 48Mbps and 36Mbps is 8M. | 834 | // The difference in throughput between 48Mbps and 36Mbps is 8M. |
865 | // So, we must be carefully in this rate scale. Isaiah 2008-02-15. | 835 | // So, we must be carefully in this rate scale. Isaiah 2008-02-15. |
866 | // | 836 | // |
867 | if( ((priv->CurrentOperaRate == 72) || (priv->CurrentOperaRate == 48) || (priv->CurrentOperaRate == 36)) && | 837 | if (((priv->CurrentOperaRate == 72) || (priv->CurrentOperaRate == 48) || (priv->CurrentOperaRate == 36)) && |
868 | (priv->FailTxRateCount > 2) ) | 838 | (priv->FailTxRateCount > 2)) |
869 | priv->RateAdaptivePeriod= (RATE_ADAPTIVE_TIMER_PERIOD/2); | 839 | priv->RateAdaptivePeriod = (RATE_ADAPTIVE_TIMER_PERIOD / 2); |
870 | 840 | ||
871 | // (1)To avoid upgrade frequently to the fail tx rate, add the FailTxRateCount into the threshold. | 841 | // (1)To avoid upgrade frequently to the fail tx rate, add the FailTxRateCount into the threshold. |
872 | // (2)If the signal strength is increased, it may be able to upgrade. | 842 | // (2)If the signal strength is increased, it may be able to upgrade. |
@@ -875,29 +845,29 @@ StaRateAdaptive87SE( | |||
875 | // printk("StaRateAdaptive87SE(): Upgrade Tx Rate to %d\n", priv->CurrentOperaRate); | 845 | // printk("StaRateAdaptive87SE(): Upgrade Tx Rate to %d\n", priv->CurrentOperaRate); |
876 | 846 | ||
877 | //[TRC Dell Lab] Bypass 12/9/6, Isaiah 2008-02-18 20:00 | 847 | //[TRC Dell Lab] Bypass 12/9/6, Isaiah 2008-02-18 20:00 |
878 | if(priv->CurrentOperaRate ==36) { | 848 | if (priv->CurrentOperaRate == 36) { |
879 | priv->bUpdateARFR=true; | 849 | priv->bUpdateARFR = true; |
880 | write_nic_word(dev, ARFR, 0x0F8F); //bypass 12/9/6 | 850 | write_nic_word(dev, ARFR, 0x0F8F); //bypass 12/9/6 |
881 | // printk("UP: ARFR=0xF8F\n"); | 851 | // printk("UP: ARFR=0xF8F\n"); |
882 | } else if(priv->bUpdateARFR) { | 852 | } else if(priv->bUpdateARFR) { |
883 | priv->bUpdateARFR=false; | 853 | priv->bUpdateARFR = false; |
884 | write_nic_word(dev, ARFR, 0x0FFF); //set 1M ~ 54Mbps. | 854 | write_nic_word(dev, ARFR, 0x0FFF); //set 1M ~ 54Mbps. |
885 | // printk("UP: ARFR=0xFFF\n"); | 855 | // printk("UP: ARFR=0xFFF\n"); |
886 | } | 856 | } |
887 | 857 | ||
888 | // Update Fail Tx rate and count. | 858 | // Update Fail Tx rate and count. |
889 | if(priv->LastFailTxRate != priv->CurrentOperaRate) { | 859 | if (priv->LastFailTxRate != priv->CurrentOperaRate) { |
890 | priv->LastFailTxRate = priv->CurrentOperaRate; | 860 | priv->LastFailTxRate = priv->CurrentOperaRate; |
891 | priv->FailTxRateCount = 0; | 861 | priv->FailTxRateCount = 0; |
892 | priv->LastFailTxRateSS = -200; // Set lowest power. | 862 | priv->LastFailTxRateSS = -200; // Set lowest power. |
893 | } | 863 | } |
894 | } | 864 | } |
895 | } else { | 865 | } else { |
896 | if(priv->TryupingCount > 0) | 866 | if (priv->TryupingCount > 0) |
897 | priv->TryupingCount --; | 867 | priv->TryupingCount --; |
898 | } | 868 | } |
899 | 869 | ||
900 | if(bTryDown) { | 870 | if (bTryDown) { |
901 | priv->TryDownCountLowData++; | 871 | priv->TryDownCountLowData++; |
902 | priv->TryupingCount = 0; | 872 | priv->TryupingCount = 0; |
903 | 873 | ||
@@ -907,14 +877,14 @@ StaRateAdaptive87SE( | |||
907 | 877 | ||
908 | 878 | ||
909 | //Check if Tx rate can be degraded or Test trying upgrading should fallback. | 879 | //Check if Tx rate can be degraded or Test trying upgrading should fallback. |
910 | if(priv->TryDownCountLowData > TryDownTh || priv->bTryuping) { | 880 | if (priv->TryDownCountLowData > TryDownTh || priv->bTryuping) { |
911 | priv->TryDownCountLowData = 0; | 881 | priv->TryDownCountLowData = 0; |
912 | priv->bTryuping = false; | 882 | priv->bTryuping = false; |
913 | // Update fail information. | 883 | // Update fail information. |
914 | if(priv->LastFailTxRate == priv->CurrentOperaRate) { | 884 | if (priv->LastFailTxRate == priv->CurrentOperaRate) { |
915 | priv->FailTxRateCount ++; | 885 | priv->FailTxRateCount++; |
916 | // Record the Tx fail rate signal strength. | 886 | // Record the Tx fail rate signal strength. |
917 | if(CurrSignalStrength > priv->LastFailTxRateSS) | 887 | if (CurrSignalStrength > priv->LastFailTxRateSS) |
918 | priv->LastFailTxRateSS = CurrSignalStrength; | 888 | priv->LastFailTxRateSS = CurrSignalStrength; |
919 | } else { | 889 | } else { |
920 | priv->LastFailTxRate = priv->CurrentOperaRate; | 890 | priv->LastFailTxRate = priv->CurrentOperaRate; |
@@ -925,18 +895,18 @@ StaRateAdaptive87SE( | |||
925 | 895 | ||
926 | // Reduce chariot training time at weak signal strength situation. SD3 ED demand. | 896 | // Reduce chariot training time at weak signal strength situation. SD3 ED demand. |
927 | //[TRC Dell Lab] Revise Signal Threshold from -75 to -80 , Isaiah 2008-02-18 20:00 | 897 | //[TRC Dell Lab] Revise Signal Threshold from -75 to -80 , Isaiah 2008-02-18 20:00 |
928 | if( (CurrSignalStrength < -80) && (priv->CurrentOperaRate > 72 )) { | 898 | if ((CurrSignalStrength < -80) && (priv->CurrentOperaRate > 72 )) { |
929 | priv->CurrentOperaRate = 72; | 899 | priv->CurrentOperaRate = 72; |
930 | // printk("DN: weak signal strength (%d), degrade to 36Mbps\n", CurrSignalStrength); | 900 | // printk("DN: weak signal strength (%d), degrade to 36Mbps\n", CurrSignalStrength); |
931 | } | 901 | } |
932 | 902 | ||
933 | //[TRC Dell Lab] Bypass 12/9/6, Isaiah 2008-02-18 20:00 | 903 | //[TRC Dell Lab] Bypass 12/9/6, Isaiah 2008-02-18 20:00 |
934 | if(priv->CurrentOperaRate ==36) { | 904 | if (priv->CurrentOperaRate == 36) { |
935 | priv->bUpdateARFR=true; | 905 | priv->bUpdateARFR = true; |
936 | write_nic_word(dev, ARFR, 0x0F8F); //bypass 12/9/6 | 906 | write_nic_word(dev, ARFR, 0x0F8F); //bypass 12/9/6 |
937 | // printk("DN: ARFR=0xF8F\n"); | 907 | // printk("DN: ARFR=0xF8F\n"); |
938 | } else if(priv->bUpdateARFR) { | 908 | } else if (priv->bUpdateARFR) { |
939 | priv->bUpdateARFR=false; | 909 | priv->bUpdateARFR = false; |
940 | write_nic_word(dev, ARFR, 0x0FFF); //set 1M ~ 54Mbps. | 910 | write_nic_word(dev, ARFR, 0x0FFF); //set 1M ~ 54Mbps. |
941 | // printk("DN: ARFR=0xFFF\n"); | 911 | // printk("DN: ARFR=0xFFF\n"); |
942 | } | 912 | } |
@@ -944,21 +914,21 @@ StaRateAdaptive87SE( | |||
944 | // | 914 | // |
945 | // When it is CCK rate, it may need to update initial gain to receive lower power packets. | 915 | // When it is CCK rate, it may need to update initial gain to receive lower power packets. |
946 | // | 916 | // |
947 | if(MgntIsCckRate(priv->CurrentOperaRate)) { | 917 | if (MgntIsCckRate(priv->CurrentOperaRate)) { |
948 | bUpdateInitialGain = true; | 918 | bUpdateInitialGain = true; |
949 | } | 919 | } |
950 | // printk("StaRateAdaptive87SE(): Degrade Tx Rate to %d\n", priv->CurrentOperaRate); | 920 | // printk("StaRateAdaptive87SE(): Degrade Tx Rate to %d\n", priv->CurrentOperaRate); |
951 | } | 921 | } |
952 | } else { | 922 | } else { |
953 | if(priv->TryDownCountLowData > 0) | 923 | if (priv->TryDownCountLowData > 0) |
954 | priv->TryDownCountLowData --; | 924 | priv->TryDownCountLowData--; |
955 | } | 925 | } |
956 | 926 | ||
957 | // Keep the Tx fail rate count to equal to 0x15 at most. | 927 | // Keep the Tx fail rate count to equal to 0x15 at most. |
958 | // Reduce the fail count at least to 10 sec if tx rate is tending stable. | 928 | // Reduce the fail count at least to 10 sec if tx rate is tending stable. |
959 | if(priv->FailTxRateCount >= 0x15 || | 929 | if (priv->FailTxRateCount >= 0x15 || |
960 | (!bTryUp && !bTryDown && priv->TryDownCountLowData == 0 && priv->TryupingCount && priv->FailTxRateCount > 0x6)) { | 930 | (!bTryUp && !bTryDown && priv->TryDownCountLowData == 0 && priv->TryupingCount && priv->FailTxRateCount > 0x6)) { |
961 | priv->FailTxRateCount --; | 931 | priv->FailTxRateCount--; |
962 | } | 932 | } |
963 | 933 | ||
964 | 934 | ||
@@ -966,41 +936,41 @@ StaRateAdaptive87SE( | |||
966 | CckTxPwrIdx = priv->chtxpwr[priv->ieee80211->current_network.channel]; | 936 | CckTxPwrIdx = priv->chtxpwr[priv->ieee80211->current_network.channel]; |
967 | 937 | ||
968 | //[TRC Dell Lab] Mac0x9e increase 2 level in 36M~18M situation, Isaiah 2008-02-18 24:00 | 938 | //[TRC Dell Lab] Mac0x9e increase 2 level in 36M~18M situation, Isaiah 2008-02-18 24:00 |
969 | if((priv->CurrentOperaRate < 96) &&(priv->CurrentOperaRate > 22)) { | 939 | if ((priv->CurrentOperaRate < 96) && (priv->CurrentOperaRate > 22)) { |
970 | u1bCck = read_nic_byte(dev, CCK_TXAGC); | 940 | u1bCck = read_nic_byte(dev, CCK_TXAGC); |
971 | u1bOfdm = read_nic_byte(dev, OFDM_TXAGC); | 941 | u1bOfdm = read_nic_byte(dev, OFDM_TXAGC); |
972 | 942 | ||
973 | // case 1: Never enter High power | 943 | // case 1: Never enter High power |
974 | if(u1bCck == CckTxPwrIdx ) { | 944 | if (u1bCck == CckTxPwrIdx) { |
975 | if(u1bOfdm != (OfdmTxPwrIdx+2) ) { | 945 | if (u1bOfdm != (OfdmTxPwrIdx + 2)) { |
976 | priv->bEnhanceTxPwr= true; | 946 | priv->bEnhanceTxPwr = true; |
977 | u1bOfdm = ((u1bOfdm+2) > 35) ? 35: (u1bOfdm+2); | 947 | u1bOfdm = ((u1bOfdm + 2) > 35) ? 35: (u1bOfdm + 2); |
978 | write_nic_byte(dev, OFDM_TXAGC, u1bOfdm); | 948 | write_nic_byte(dev, OFDM_TXAGC, u1bOfdm); |
979 | // printk("Enhance OFDM_TXAGC : +++++ u1bOfdm= 0x%x\n", u1bOfdm); | 949 | // printk("Enhance OFDM_TXAGC : +++++ u1bOfdm= 0x%x\n", u1bOfdm); |
980 | } | 950 | } |
981 | } else if(u1bCck < CckTxPwrIdx) { | 951 | } else if (u1bCck < CckTxPwrIdx) { |
982 | // case 2: enter high power | 952 | // case 2: enter high power |
983 | if(!priv->bEnhanceTxPwr) { | 953 | if (!priv->bEnhanceTxPwr) { |
984 | priv->bEnhanceTxPwr= true; | 954 | priv->bEnhanceTxPwr = true; |
985 | u1bOfdm = ((u1bOfdm+2) > 35) ? 35: (u1bOfdm+2); | 955 | u1bOfdm = ((u1bOfdm + 2) > 35) ? 35: (u1bOfdm + 2); |
986 | write_nic_byte(dev, OFDM_TXAGC, u1bOfdm); | 956 | write_nic_byte(dev, OFDM_TXAGC, u1bOfdm); |
987 | //RT_TRACE(COMP_RATE, DBG_TRACE, ("Enhance OFDM_TXAGC(2) : +++++ u1bOfdm= 0x%x\n", u1bOfdm)); | 957 | //RT_TRACE(COMP_RATE, DBG_TRACE, ("Enhance OFDM_TXAGC(2) : +++++ u1bOfdm= 0x%x\n", u1bOfdm)); |
988 | } | 958 | } |
989 | } | 959 | } |
990 | } else if(priv->bEnhanceTxPwr) { //54/48/11/5.5/2/1 | 960 | } else if (priv->bEnhanceTxPwr) { //54/48/11/5.5/2/1 |
991 | u1bCck = read_nic_byte(dev, CCK_TXAGC); | 961 | u1bCck = read_nic_byte(dev, CCK_TXAGC); |
992 | u1bOfdm = read_nic_byte(dev, OFDM_TXAGC); | 962 | u1bOfdm = read_nic_byte(dev, OFDM_TXAGC); |
993 | 963 | ||
994 | // case 1: Never enter High power | 964 | // case 1: Never enter High power |
995 | if(u1bCck == CckTxPwrIdx ) { | 965 | if (u1bCck == CckTxPwrIdx) { |
996 | priv->bEnhanceTxPwr= false; | 966 | priv->bEnhanceTxPwr = false; |
997 | write_nic_byte(dev, OFDM_TXAGC, OfdmTxPwrIdx); | 967 | write_nic_byte(dev, OFDM_TXAGC, OfdmTxPwrIdx); |
998 | //printk("Recover OFDM_TXAGC : ===== u1bOfdm= 0x%x\n", OfdmTxPwrIdx); | 968 | //printk("Recover OFDM_TXAGC : ===== u1bOfdm= 0x%x\n", OfdmTxPwrIdx); |
999 | } | 969 | } |
1000 | // case 2: enter high power | 970 | // case 2: enter high power |
1001 | else if(u1bCck < CckTxPwrIdx) { | 971 | else if (u1bCck < CckTxPwrIdx) { |
1002 | priv->bEnhanceTxPwr= false; | 972 | priv->bEnhanceTxPwr = false; |
1003 | u1bOfdm = ((u1bOfdm-2) > 0) ? (u1bOfdm-2): 0; | 973 | u1bOfdm = ((u1bOfdm - 2) > 0) ? (u1bOfdm - 2): 0; |
1004 | write_nic_byte(dev, OFDM_TXAGC, u1bOfdm); | 974 | write_nic_byte(dev, OFDM_TXAGC, u1bOfdm); |
1005 | //RT_TRACE(COMP_RATE, DBG_TRACE, ("Recover OFDM_TXAGC(2): ===== u1bOfdm= 0x%x\n", u1bOfdm)); | 975 | //RT_TRACE(COMP_RATE, DBG_TRACE, ("Recover OFDM_TXAGC(2): ===== u1bOfdm= 0x%x\n", u1bOfdm)); |
1006 | 976 | ||
@@ -1012,29 +982,29 @@ StaRateAdaptive87SE( | |||
1012 | // "from CCK to OFDM". | 982 | // "from CCK to OFDM". |
1013 | // | 983 | // |
1014 | SetInitialGain: | 984 | SetInitialGain: |
1015 | if(bUpdateInitialGain) { | 985 | if (bUpdateInitialGain) { |
1016 | if(MgntIsCckRate(priv->CurrentOperaRate)) { // CCK | 986 | if (MgntIsCckRate(priv->CurrentOperaRate)) { // CCK |
1017 | if(priv->InitialGain > priv->RegBModeGainStage) { | 987 | if (priv->InitialGain > priv->RegBModeGainStage) { |
1018 | priv->InitialGainBackUp= priv->InitialGain; | 988 | priv->InitialGainBackUp = priv->InitialGain; |
1019 | 989 | ||
1020 | if(CurrSignalStrength < -85) // Low power, OFDM [0x17] = 26. | 990 | if (CurrSignalStrength < -85) // Low power, OFDM [0x17] = 26. |
1021 | //SD3 SYs suggest that CurrSignalStrength < -65, ofdm 0x17=26. | 991 | //SD3 SYs suggest that CurrSignalStrength < -65, ofdm 0x17=26. |
1022 | priv->InitialGain = priv->RegBModeGainStage; | 992 | priv->InitialGain = priv->RegBModeGainStage; |
1023 | 993 | ||
1024 | else if(priv->InitialGain > priv->RegBModeGainStage + 1) | 994 | else if (priv->InitialGain > priv->RegBModeGainStage + 1) |
1025 | priv->InitialGain -= 2; | 995 | priv->InitialGain -= 2; |
1026 | 996 | ||
1027 | else | 997 | else |
1028 | priv->InitialGain --; | 998 | priv->InitialGain--; |
1029 | 999 | ||
1030 | printk("StaRateAdaptive87SE(): update init_gain to index %d for date rate %d\n",priv->InitialGain, priv->CurrentOperaRate); | 1000 | printk("StaRateAdaptive87SE(): update init_gain to index %d for date rate %d\n",priv->InitialGain, priv->CurrentOperaRate); |
1031 | UpdateInitialGain(dev); | 1001 | UpdateInitialGain(dev); |
1032 | } | 1002 | } |
1033 | } else { // OFDM | 1003 | } else { // OFDM |
1034 | if(priv->InitialGain < 4) { | 1004 | if (priv->InitialGain < 4) { |
1035 | priv->InitialGainBackUp= priv->InitialGain; | 1005 | priv->InitialGainBackUp = priv->InitialGain; |
1036 | 1006 | ||
1037 | priv->InitialGain ++; | 1007 | priv->InitialGain++; |
1038 | printk("StaRateAdaptive87SE(): update init_gain to index %d for date rate %d\n",priv->InitialGain, priv->CurrentOperaRate); | 1008 | printk("StaRateAdaptive87SE(): update init_gain to index %d for date rate %d\n",priv->InitialGain, priv->CurrentOperaRate); |
1039 | UpdateInitialGain(dev); | 1009 | UpdateInitialGain(dev); |
1040 | } | 1010 | } |
@@ -1047,10 +1017,10 @@ SetInitialGain: | |||
1047 | priv->ieee80211->rate = priv->CurrentOperaRate * 5; | 1017 | priv->ieee80211->rate = priv->CurrentOperaRate * 5; |
1048 | } | 1018 | } |
1049 | 1019 | ||
1050 | void rtl8180_rate_adapter(struct work_struct * work) | 1020 | void rtl8180_rate_adapter(struct work_struct *work) |
1051 | { | 1021 | { |
1052 | struct delayed_work *dwork = to_delayed_work(work); | 1022 | struct delayed_work *dwork = to_delayed_work(work); |
1053 | struct ieee80211_device *ieee = container_of(dwork,struct ieee80211_device,rate_adapter_wq); | 1023 | struct ieee80211_device *ieee = container_of(dwork, struct ieee80211_device, rate_adapter_wq); |
1054 | struct net_device *dev = ieee->dev; | 1024 | struct net_device *dev = ieee->dev; |
1055 | //struct r8180_priv *priv = ieee80211_priv(dev); | 1025 | //struct r8180_priv *priv = ieee80211_priv(dev); |
1056 | // DMESG("---->rtl8180_rate_adapter"); | 1026 | // DMESG("---->rtl8180_rate_adapter"); |
@@ -1059,15 +1029,15 @@ void rtl8180_rate_adapter(struct work_struct * work) | |||
1059 | } | 1029 | } |
1060 | void timer_rate_adaptive(unsigned long data) | 1030 | void timer_rate_adaptive(unsigned long data) |
1061 | { | 1031 | { |
1062 | struct r8180_priv* priv = ieee80211_priv((struct net_device *)data); | 1032 | struct r8180_priv *priv = ieee80211_priv((struct net_device *)data); |
1063 | //DMESG("---->timer_rate_adaptive()\n"); | 1033 | //DMESG("---->timer_rate_adaptive()\n"); |
1064 | if(!priv->up) { | 1034 | if (!priv->up) { |
1065 | // DMESG("<----timer_rate_adaptive():driver is not up!\n"); | 1035 | // DMESG("<----timer_rate_adaptive():driver is not up!\n"); |
1066 | return; | 1036 | return; |
1067 | } | 1037 | } |
1068 | if((priv->ieee80211->iw_mode != IW_MODE_MASTER) | 1038 | if ((priv->ieee80211->iw_mode != IW_MODE_MASTER) |
1069 | && (priv->ieee80211->state == IEEE80211_LINKED) && | 1039 | && (priv->ieee80211->state == IEEE80211_LINKED) && |
1070 | (priv->ForcedDataRate == 0) ) { | 1040 | (priv->ForcedDataRate == 0)) { |
1071 | // DMESG("timer_rate_adaptive():schedule rate_adapter_wq\n"); | 1041 | // DMESG("timer_rate_adaptive():schedule rate_adapter_wq\n"); |
1072 | queue_work(priv->ieee80211->wq, (void *)&priv->ieee80211->rate_adapter_wq); | 1042 | queue_work(priv->ieee80211->wq, (void *)&priv->ieee80211->rate_adapter_wq); |
1073 | // StaRateAdaptive87SE((struct net_device *)data); | 1043 | // StaRateAdaptive87SE((struct net_device *)data); |
@@ -1077,11 +1047,7 @@ void timer_rate_adaptive(unsigned long data) | |||
1077 | //DMESG("<----timer_rate_adaptive()\n"); | 1047 | //DMESG("<----timer_rate_adaptive()\n"); |
1078 | } | 1048 | } |
1079 | //by amy 080312} | 1049 | //by amy 080312} |
1080 | void | 1050 | void SwAntennaDiversityRxOk8185(struct net_device *dev, u8 SignalStrength) |
1081 | SwAntennaDiversityRxOk8185( | ||
1082 | struct net_device *dev, | ||
1083 | u8 SignalStrength | ||
1084 | ) | ||
1085 | { | 1051 | { |
1086 | struct r8180_priv *priv = (struct r8180_priv *)ieee80211_priv(dev); | 1052 | struct r8180_priv *priv = (struct r8180_priv *)ieee80211_priv(dev); |
1087 | 1053 | ||
@@ -1089,13 +1055,13 @@ SwAntennaDiversityRxOk8185( | |||
1089 | 1055 | ||
1090 | priv->AdRxOkCnt++; | 1056 | priv->AdRxOkCnt++; |
1091 | 1057 | ||
1092 | if( priv->AdRxSignalStrength != -1) { | 1058 | if (priv->AdRxSignalStrength != -1) { |
1093 | priv->AdRxSignalStrength = ((priv->AdRxSignalStrength*7) + (SignalStrength*3)) / 10; | 1059 | priv->AdRxSignalStrength = ((priv->AdRxSignalStrength * 7) + (SignalStrength * 3)) / 10; |
1094 | } else { // Initialization case. | 1060 | } else { // Initialization case. |
1095 | priv->AdRxSignalStrength = SignalStrength; | 1061 | priv->AdRxSignalStrength = SignalStrength; |
1096 | } | 1062 | } |
1097 | //{+by amy 080312 | 1063 | //{+by amy 080312 |
1098 | if( priv->LastRxPktAntenna ) //Main antenna. | 1064 | if (priv->LastRxPktAntenna) //Main antenna. |
1099 | priv->AdMainAntennaRxOkCnt++; | 1065 | priv->AdMainAntennaRxOkCnt++; |
1100 | else // Aux antenna. | 1066 | else // Aux antenna. |
1101 | priv->AdAuxAntennaRxOkCnt++; | 1067 | priv->AdAuxAntennaRxOkCnt++; |
@@ -1106,18 +1072,14 @@ SwAntennaDiversityRxOk8185( | |||
1106 | // Description: | 1072 | // Description: |
1107 | // Change Antenna Switch. | 1073 | // Change Antenna Switch. |
1108 | // | 1074 | // |
1109 | bool | 1075 | bool SetAntenna8185(struct net_device *dev, u8 u1bAntennaIndex) |
1110 | SetAntenna8185( | ||
1111 | struct net_device *dev, | ||
1112 | u8 u1bAntennaIndex | ||
1113 | ) | ||
1114 | { | 1076 | { |
1115 | struct r8180_priv *priv = (struct r8180_priv *)ieee80211_priv(dev); | 1077 | struct r8180_priv *priv = (struct r8180_priv *)ieee80211_priv(dev); |
1116 | bool bAntennaSwitched = false; | 1078 | bool bAntennaSwitched = false; |
1117 | 1079 | ||
1118 | // printk("+SetAntenna8185(): Antenna is switching to: %d \n", u1bAntennaIndex); | 1080 | // printk("+SetAntenna8185(): Antenna is switching to: %d \n", u1bAntennaIndex); |
1119 | 1081 | ||
1120 | switch(u1bAntennaIndex) { | 1082 | switch (u1bAntennaIndex) { |
1121 | case 0: | 1083 | case 0: |
1122 | /* Mac register, main antenna */ | 1084 | /* Mac register, main antenna */ |
1123 | write_nic_byte(dev, ANTSEL, 0x03); | 1085 | write_nic_byte(dev, ANTSEL, 0x03); |
@@ -1155,16 +1117,13 @@ SetAntenna8185( | |||
1155 | // Description: | 1117 | // Description: |
1156 | // Toggle Antenna switch. | 1118 | // Toggle Antenna switch. |
1157 | // | 1119 | // |
1158 | bool | 1120 | bool SwitchAntenna(struct net_device *dev) |
1159 | SwitchAntenna( | ||
1160 | struct net_device *dev | ||
1161 | ) | ||
1162 | { | 1121 | { |
1163 | struct r8180_priv *priv = (struct r8180_priv *)ieee80211_priv(dev); | 1122 | struct r8180_priv *priv = (struct r8180_priv *)ieee80211_priv(dev); |
1164 | 1123 | ||
1165 | bool bResult; | 1124 | bool bResult; |
1166 | 1125 | ||
1167 | if(priv->CurrAntennaIndex == 0) { | 1126 | if (priv->CurrAntennaIndex == 0) { |
1168 | bResult = SetAntenna8185(dev, 1); | 1127 | bResult = SetAntenna8185(dev, 1); |
1169 | //by amy 080312 | 1128 | //by amy 080312 |
1170 | // printk("SwitchAntenna(): switching to antenna 1 ......\n"); | 1129 | // printk("SwitchAntenna(): switching to antenna 1 ......\n"); |
@@ -1186,17 +1145,14 @@ SwitchAntenna( | |||
1186 | // | 1145 | // |
1187 | // 2006.04.17, by rcnjko. | 1146 | // 2006.04.17, by rcnjko. |
1188 | // | 1147 | // |
1189 | void | 1148 | void SwAntennaDiversity(struct net_device *dev) |
1190 | SwAntennaDiversity( | ||
1191 | struct net_device *dev | ||
1192 | ) | ||
1193 | { | 1149 | { |
1194 | struct r8180_priv *priv = (struct r8180_priv *)ieee80211_priv(dev); | 1150 | struct r8180_priv *priv = (struct r8180_priv *)ieee80211_priv(dev); |
1195 | bool bSwCheckSS=false; | 1151 | bool bSwCheckSS = false; |
1196 | // printk("+SwAntennaDiversity(): CurrAntennaIndex: %d\n", priv->CurrAntennaIndex); | 1152 | // printk("+SwAntennaDiversity(): CurrAntennaIndex: %d\n", priv->CurrAntennaIndex); |
1197 | // printk("AdTickCount is %d\n",priv->AdTickCount); | 1153 | // printk("AdTickCount is %d\n",priv->AdTickCount); |
1198 | //by amy 080312 | 1154 | //by amy 080312 |
1199 | if(bSwCheckSS) { | 1155 | if (bSwCheckSS) { |
1200 | priv->AdTickCount++; | 1156 | priv->AdTickCount++; |
1201 | 1157 | ||
1202 | printk("(1) AdTickCount: %d, AdCheckPeriod: %d\n", | 1158 | printk("(1) AdTickCount: %d, AdCheckPeriod: %d\n", |
@@ -1207,7 +1163,7 @@ SwAntennaDiversity( | |||
1207 | // priv->AdTickCount++;//-by amy 080312 | 1163 | // priv->AdTickCount++;//-by amy 080312 |
1208 | 1164 | ||
1209 | // Case 1. No Link. | 1165 | // Case 1. No Link. |
1210 | if(priv->ieee80211->state != IEEE80211_LINKED) { | 1166 | if (priv->ieee80211->state != IEEE80211_LINKED) { |
1211 | // printk("SwAntennaDiversity(): Case 1. No Link.\n"); | 1167 | // printk("SwAntennaDiversity(): Case 1. No Link.\n"); |
1212 | 1168 | ||
1213 | priv->bAdSwitchedChecking = false; | 1169 | priv->bAdSwitchedChecking = false; |
@@ -1215,14 +1171,14 @@ SwAntennaDiversity( | |||
1215 | SwitchAntenna(dev); | 1171 | SwitchAntenna(dev); |
1216 | 1172 | ||
1217 | // Case 2. Linked but no packet receive.d | 1173 | // Case 2. Linked but no packet receive.d |
1218 | } else if(priv->AdRxOkCnt == 0) { | 1174 | } else if (priv->AdRxOkCnt == 0) { |
1219 | // printk("SwAntennaDiversity(): Case 2. Linked but no packet received.\n"); | 1175 | // printk("SwAntennaDiversity(): Case 2. Linked but no packet received.\n"); |
1220 | 1176 | ||
1221 | priv->bAdSwitchedChecking = false; | 1177 | priv->bAdSwitchedChecking = false; |
1222 | SwitchAntenna(dev); | 1178 | SwitchAntenna(dev); |
1223 | 1179 | ||
1224 | // Case 3. Evaluate last antenna switch action and undo it if necessary. | 1180 | // Case 3. Evaluate last antenna switch action and undo it if necessary. |
1225 | } else if(priv->bAdSwitchedChecking == true) { | 1181 | } else if (priv->bAdSwitchedChecking == true) { |
1226 | // printk("SwAntennaDiversity(): Case 3. Evaluate last antenna switch action.\n"); | 1182 | // printk("SwAntennaDiversity(): Case 3. Evaluate last antenna switch action.\n"); |
1227 | 1183 | ||
1228 | priv->bAdSwitchedChecking = false; | 1184 | priv->bAdSwitchedChecking = false; |
@@ -1241,7 +1197,7 @@ SwAntennaDiversity( | |||
1241 | priv->AdCheckPeriod *= 2; | 1197 | priv->AdCheckPeriod *= 2; |
1242 | //by amy 080312 | 1198 | //by amy 080312 |
1243 | // Increase Antenna Diversity checking period. | 1199 | // Increase Antenna Diversity checking period. |
1244 | if(priv->AdCheckPeriod > priv->AdMaxCheckPeriod) | 1200 | if (priv->AdCheckPeriod > priv->AdMaxCheckPeriod) |
1245 | priv->AdCheckPeriod = priv->AdMaxCheckPeriod; | 1201 | priv->AdCheckPeriod = priv->AdMaxCheckPeriod; |
1246 | 1202 | ||
1247 | // Wrong deceision => switch back. | 1203 | // Wrong deceision => switch back. |
@@ -1277,7 +1233,7 @@ SwAntennaDiversity( | |||
1277 | // Evaluate RxOk count from each antenna if we shall switch default antenna now. | 1233 | // Evaluate RxOk count from each antenna if we shall switch default antenna now. |
1278 | // Added by Roger, 2008.02.21. | 1234 | // Added by Roger, 2008.02.21. |
1279 | //{by amy 080312 | 1235 | //{by amy 080312 |
1280 | if((priv->AdMainAntennaRxOkCnt < priv->AdAuxAntennaRxOkCnt) | 1236 | if ((priv->AdMainAntennaRxOkCnt < priv->AdAuxAntennaRxOkCnt) |
1281 | && (priv->CurrAntennaIndex == 0)) { | 1237 | && (priv->CurrAntennaIndex == 0)) { |
1282 | // We set Main antenna as default but RxOk count was less than Aux ones. | 1238 | // We set Main antenna as default but RxOk count was less than Aux ones. |
1283 | 1239 | ||
@@ -1287,7 +1243,7 @@ SwAntennaDiversity( | |||
1287 | // Switch to Aux antenna. | 1243 | // Switch to Aux antenna. |
1288 | SwitchAntenna(dev); | 1244 | SwitchAntenna(dev); |
1289 | priv->bHWAdSwitched = true; | 1245 | priv->bHWAdSwitched = true; |
1290 | } else if((priv->AdAuxAntennaRxOkCnt < priv->AdMainAntennaRxOkCnt) | 1246 | } else if ((priv->AdAuxAntennaRxOkCnt < priv->AdMainAntennaRxOkCnt) |
1291 | && (priv->CurrAntennaIndex == 1)) { | 1247 | && (priv->CurrAntennaIndex == 1)) { |
1292 | // We set Aux antenna as default but RxOk count was less than Main ones. | 1248 | // We set Aux antenna as default but RxOk count was less than Main ones. |
1293 | 1249 | ||
@@ -1317,10 +1273,10 @@ SwAntennaDiversity( | |||
1317 | // Our guess is that main antenna have lower throughput and get many change | 1273 | // Our guess is that main antenna have lower throughput and get many change |
1318 | // to receive more CCK packets(ex.Beacon) which have stronger SignalStrength. | 1274 | // to receive more CCK packets(ex.Beacon) which have stronger SignalStrength. |
1319 | // | 1275 | // |
1320 | if( (!priv->bHWAdSwitched) && (bSwCheckSS)) { | 1276 | if ((!priv->bHWAdSwitched) && (bSwCheckSS)) { |
1321 | //by amy 080312} | 1277 | //by amy 080312} |
1322 | // Evaluate Rx signal strength if we shall switch antenna now. | 1278 | // Evaluate Rx signal strength if we shall switch antenna now. |
1323 | if(priv->AdRxSignalStrength < priv->AdRxSsThreshold) { | 1279 | if (priv->AdRxSignalStrength < priv->AdRxSsThreshold) { |
1324 | // Rx signal strength is weak => Switch Antenna. | 1280 | // Rx signal strength is weak => Switch Antenna. |
1325 | // printk("SwAntennaDiversity(): Rx Signal Strength is weak, CurrRxSs: %d, RxSsThreshold: %d\n", | 1281 | // printk("SwAntennaDiversity(): Rx Signal Strength is weak, CurrRxSs: %d, RxSsThreshold: %d\n", |
1326 | // priv->AdRxSignalStrength, priv->AdRxSsThreshold); | 1282 | // priv->AdRxSignalStrength, priv->AdRxSsThreshold); |
@@ -1336,7 +1292,7 @@ SwAntennaDiversity( | |||
1336 | 1292 | ||
1337 | priv->bAdSwitchedChecking = false; | 1293 | priv->bAdSwitchedChecking = false; |
1338 | // Increase Rx signal strength threshold if necessary. | 1294 | // Increase Rx signal strength threshold if necessary. |
1339 | if( (priv->AdRxSignalStrength > (priv->AdRxSsThreshold + 10)) && // Signal is much stronger than current threshold | 1295 | if ((priv->AdRxSignalStrength > (priv->AdRxSsThreshold + 10)) && // Signal is much stronger than current threshold |
1340 | priv->AdRxSsThreshold <= priv->AdMaxRxSsThreshold) { // Current threhold is not yet reach upper limit. | 1296 | priv->AdRxSsThreshold <= priv->AdMaxRxSsThreshold) { // Current threhold is not yet reach upper limit. |
1341 | 1297 | ||
1342 | priv->AdRxSsThreshold = (priv->AdRxSsThreshold + priv->AdRxSignalStrength) / 2; | 1298 | priv->AdRxSsThreshold = (priv->AdRxSsThreshold + priv->AdRxSignalStrength) / 2; |
@@ -1345,7 +1301,7 @@ SwAntennaDiversity( | |||
1345 | } | 1301 | } |
1346 | 1302 | ||
1347 | // Reduce Antenna Diversity checking period if possible. | 1303 | // Reduce Antenna Diversity checking period if possible. |
1348 | if( priv->AdCheckPeriod > priv->AdMinCheckPeriod ) | 1304 | if (priv->AdCheckPeriod > priv->AdMinCheckPeriod) |
1349 | priv->AdCheckPeriod /= 2; | 1305 | priv->AdCheckPeriod /= 2; |
1350 | } | 1306 | } |
1351 | } | 1307 | } |
@@ -1366,12 +1322,11 @@ SwAntennaDiversity( | |||
1366 | // Description: | 1322 | // Description: |
1367 | // Return TRUE if we shall perform Tx Power Tracking Mecahnism, FALSE otherwise. | 1323 | // Return TRUE if we shall perform Tx Power Tracking Mecahnism, FALSE otherwise. |
1368 | // | 1324 | // |
1369 | bool | 1325 | bool CheckTxPwrTracking(struct net_device *dev) |
1370 | CheckTxPwrTracking( struct net_device *dev) | ||
1371 | { | 1326 | { |
1372 | struct r8180_priv *priv = (struct r8180_priv *)ieee80211_priv(dev); | 1327 | struct r8180_priv *priv = (struct r8180_priv *)ieee80211_priv(dev); |
1373 | 1328 | ||
1374 | if(!priv->bTxPowerTrack) | 1329 | if (!priv->bTxPowerTrack) |
1375 | return false; | 1330 | return false; |
1376 | 1331 | ||
1377 | //lzm reserved 080826 | 1332 | //lzm reserved 080826 |
@@ -1381,7 +1336,7 @@ CheckTxPwrTracking( struct net_device *dev) | |||
1381 | //} | 1336 | //} |
1382 | 1337 | ||
1383 | //if 87SE is in High Power , don't do Tx Power Tracking. asked by SD3 ED. 2008-08-08 Isaiah | 1338 | //if 87SE is in High Power , don't do Tx Power Tracking. asked by SD3 ED. 2008-08-08 Isaiah |
1384 | if(priv->bToUpdateTxPwr) | 1339 | if (priv->bToUpdateTxPwr) |
1385 | return false; | 1340 | return false; |
1386 | 1341 | ||
1387 | return true; | 1342 | return true; |
@@ -1392,10 +1347,7 @@ CheckTxPwrTracking( struct net_device *dev) | |||
1392 | // Description: | 1347 | // Description: |
1393 | // Timer callback function of SW Antenna Diversity. | 1348 | // Timer callback function of SW Antenna Diversity. |
1394 | // | 1349 | // |
1395 | void | 1350 | void SwAntennaDiversityTimerCallback(struct net_device *dev) |
1396 | SwAntennaDiversityTimerCallback( | ||
1397 | struct net_device *dev | ||
1398 | ) | ||
1399 | { | 1351 | { |
1400 | struct r8180_priv *priv = (struct r8180_priv *)ieee80211_priv(dev); | 1352 | struct r8180_priv *priv = (struct r8180_priv *)ieee80211_priv(dev); |
1401 | RT_RF_POWER_STATE rtState; | 1353 | RT_RF_POWER_STATE rtState; |
@@ -1418,9 +1370,9 @@ SwAntennaDiversityTimerCallback( | |||
1418 | } | 1370 | } |
1419 | SwAntennaDiversity(dev); | 1371 | SwAntennaDiversity(dev); |
1420 | 1372 | ||
1421 | } while(false); | 1373 | } while (false); |
1422 | 1374 | ||
1423 | if(priv->up) { | 1375 | if (priv->up) { |
1424 | priv->SwAntennaDiversityTimer.expires = jiffies + MSECS(ANTENNA_DIVERSITY_TIMER_PERIOD); | 1376 | priv->SwAntennaDiversityTimer.expires = jiffies + MSECS(ANTENNA_DIVERSITY_TIMER_PERIOD); |
1425 | add_timer(&priv->SwAntennaDiversityTimer); | 1377 | add_timer(&priv->SwAntennaDiversityTimer); |
1426 | } | 1378 | } |