aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/staging/rtl8187se/r8180_dm.c418
1 files changed, 209 insertions, 209 deletions
diff --git a/drivers/staging/rtl8187se/r8180_dm.c b/drivers/staging/rtl8187se/r8180_dm.c
index 97e4fefe8422..bd2cf4acb578 100644
--- a/drivers/staging/rtl8187se/r8180_dm.c
+++ b/drivers/staging/rtl8187se/r8180_dm.c
@@ -75,12 +75,12 @@ DoTxHighPower(
75 75
76 // If it never enter High Power. 76 // If it never enter High Power.
77 if( CckTxPwrIdx == u1bTmp) { 77 if( CckTxPwrIdx == u1bTmp) {
78 u1bTmp = (u1bTmp > 16) ? (u1bTmp -16): 0; // 8dbm 78 u1bTmp = (u1bTmp > 16) ? (u1bTmp -16): 0; // 8dbm
79 write_nic_byte(dev, CCK_TXAGC, u1bTmp); 79 write_nic_byte(dev, CCK_TXAGC, u1bTmp);
80 80
81 u1bTmp= read_nic_byte(dev, OFDM_TXAGC); 81 u1bTmp= read_nic_byte(dev, OFDM_TXAGC);
82 u1bTmp = (u1bTmp > 16) ? (u1bTmp -16): 0; // 8dbm 82 u1bTmp = (u1bTmp > 16) ? (u1bTmp -16): 0; // 8dbm
83 write_nic_byte(dev, OFDM_TXAGC, u1bTmp); 83 write_nic_byte(dev, OFDM_TXAGC, u1bTmp);
84 } 84 }
85 85
86 } else if((priv->UndecoratedSmoothedSS < HiPwrLowerTh) && 86 } else if((priv->UndecoratedSmoothedSS < HiPwrLowerTh) &&
@@ -91,16 +91,16 @@ DoTxHighPower(
91 //SD3 required. 91 //SD3 required.
92 u1bTmp= read_nic_byte(dev, CCK_TXAGC); 92 u1bTmp= read_nic_byte(dev, CCK_TXAGC);
93 if(u1bTmp < CckTxPwrIdx) { 93 if(u1bTmp < CckTxPwrIdx) {
94 //u1bTmp = ((u1bTmp+16) > 35) ? 35: (u1bTmp+16); // 8dbm 94 //u1bTmp = ((u1bTmp+16) > 35) ? 35: (u1bTmp+16); // 8dbm
95 //write_nic_byte(dev, CCK_TXAGC, u1bTmp); 95 //write_nic_byte(dev, CCK_TXAGC, u1bTmp);
96 write_nic_byte(dev, CCK_TXAGC, CckTxPwrIdx); 96 write_nic_byte(dev, CCK_TXAGC, CckTxPwrIdx);
97 } 97 }
98 98
99 u1bTmp= read_nic_byte(dev, OFDM_TXAGC); 99 u1bTmp= read_nic_byte(dev, OFDM_TXAGC);
100 if(u1bTmp < OfdmTxPwrIdx) { 100 if(u1bTmp < OfdmTxPwrIdx) {
101 //u1bTmp = ((u1bTmp+16) > 35) ? 35: (u1bTmp+16); // 8dbm 101 //u1bTmp = ((u1bTmp+16) > 35) ? 35: (u1bTmp+16); // 8dbm
102 //write_nic_byte(dev, OFDM_TXAGC, u1bTmp); 102 //write_nic_byte(dev, OFDM_TXAGC, u1bTmp);
103 write_nic_byte(dev, OFDM_TXAGC, OfdmTxPwrIdx); 103 write_nic_byte(dev, OFDM_TXAGC, OfdmTxPwrIdx);
104 } 104 }
105 } 105 }
106 } 106 }
@@ -121,8 +121,8 @@ void rtl8180_tx_pw_wq (struct work_struct *work)
121// struct ieee80211_device * ieee = (struct ieee80211_device*) 121// struct ieee80211_device * ieee = (struct ieee80211_device*)
122// container_of(work, struct ieee80211_device, watch_dog_wq); 122// container_of(work, struct ieee80211_device, watch_dog_wq);
123 struct delayed_work *dwork = to_delayed_work(work); 123 struct delayed_work *dwork = to_delayed_work(work);
124 struct ieee80211_device *ieee = container_of(dwork,struct ieee80211_device,tx_pw_wq); 124 struct ieee80211_device *ieee = container_of(dwork,struct ieee80211_device,tx_pw_wq);
125 struct net_device *dev = ieee->dev; 125 struct net_device *dev = ieee->dev;
126 126
127// printk("----> UpdateTxPowerWorkItemCallback()\n"); 127// printk("----> UpdateTxPowerWorkItemCallback()\n");
128 128
@@ -181,7 +181,7 @@ DIG_Zebra(
181// printk("DIG**********CCK False Alarm: %#X \n",CCKFalseAlarm); 181// printk("DIG**********CCK False Alarm: %#X \n",CCKFalseAlarm);
182// printk("DIG**********OFDM False Alarm: %#X \n",OFDMFalseAlarm); 182// printk("DIG**********OFDM False Alarm: %#X \n",OFDMFalseAlarm);
183 183
184 // The number of initial gain steps is different, by Bruce, 2007-04-13. 184 // The number of initial gain steps is different, by Bruce, 2007-04-13.
185 if (priv->InitialGain == 0 ) { //autoDIG 185 if (priv->InitialGain == 0 ) { //autoDIG
186 // Advised from SD3 DZ 186 // Advised from SD3 DZ
187 priv->InitialGain = 4; // In 87B, m74dBm means State 4 (m82dBm) 187 priv->InitialGain = 4; // In 87B, m74dBm means State 4 (m82dBm)
@@ -265,8 +265,8 @@ DynamicInitGain(struct net_device *dev)
265void rtl8180_hw_dig_wq (struct work_struct *work) 265void rtl8180_hw_dig_wq (struct work_struct *work)
266{ 266{
267 struct delayed_work *dwork = to_delayed_work(work); 267 struct delayed_work *dwork = to_delayed_work(work);
268 struct ieee80211_device *ieee = container_of(dwork,struct ieee80211_device,hw_dig_wq); 268 struct ieee80211_device *ieee = container_of(dwork,struct ieee80211_device,hw_dig_wq);
269 struct net_device *dev = ieee->dev; 269 struct net_device *dev = ieee->dev;
270 struct r8180_priv *priv = ieee80211_priv(dev); 270 struct r8180_priv *priv = ieee80211_priv(dev);
271 271
272 // Read CCK and OFDM False Alarm. 272 // Read CCK and OFDM False Alarm.
@@ -280,33 +280,33 @@ void rtl8180_hw_dig_wq (struct work_struct *work)
280 280
281int 281int
282IncludedInSupportedRates( 282IncludedInSupportedRates(
283 struct r8180_priv *priv, 283 struct r8180_priv *priv,
284 u8 TxRate ) 284 u8 TxRate )
285{ 285{
286 u8 rate_len; 286 u8 rate_len;
287 u8 rate_ex_len; 287 u8 rate_ex_len;
288 u8 RateMask = 0x7F; 288 u8 RateMask = 0x7F;
289 u8 idx; 289 u8 idx;
290 unsigned short Found = 0; 290 unsigned short Found = 0;
291 u8 NaiveTxRate = TxRate&RateMask; 291 u8 NaiveTxRate = TxRate&RateMask;
292 292
293 rate_len = priv->ieee80211->current_network.rates_len; 293 rate_len = priv->ieee80211->current_network.rates_len;
294 rate_ex_len = priv->ieee80211->current_network.rates_ex_len; 294 rate_ex_len = priv->ieee80211->current_network.rates_ex_len;
295 for( idx=0; idx< rate_len; idx++ ) { 295 for( idx=0; idx< rate_len; idx++ ) {
296 if( (priv->ieee80211->current_network.rates[idx] & RateMask) == NaiveTxRate ) { 296 if( (priv->ieee80211->current_network.rates[idx] & RateMask) == NaiveTxRate ) {
297 Found = 1; 297 Found = 1;
298 goto found_rate; 298 goto found_rate;
299 } 299 }
300 } 300 }
301 for( idx=0; idx< rate_ex_len; idx++ ) { 301 for( idx=0; idx< rate_ex_len; idx++ ) {
302 if( (priv->ieee80211->current_network.rates_ex[idx] & RateMask) == NaiveTxRate ) { 302 if( (priv->ieee80211->current_network.rates_ex[idx] & RateMask) == NaiveTxRate ) {
303 Found = 1; 303 Found = 1;
304 goto found_rate; 304 goto found_rate;
305 } 305 }
306 } 306 }
307 return Found; 307 return Found;
308 found_rate: 308 found_rate:
309 return Found; 309 return Found;
310} 310}
311 311
312// 312//
@@ -317,64 +317,64 @@ IncludedInSupportedRates(
317// 317//
318u8 318u8
319GetUpgradeTxRate( 319GetUpgradeTxRate(
320 struct net_device *dev, 320 struct net_device *dev,
321 u8 rate 321 u8 rate
322 ) 322 )
323{ 323{
324 struct r8180_priv *priv = ieee80211_priv(dev); 324 struct r8180_priv *priv = ieee80211_priv(dev);
325 u8 UpRate; 325 u8 UpRate;
326 326
327 // Upgrade 1 degree. 327 // Upgrade 1 degree.
328 switch(rate) { 328 switch(rate) {
329 case 108: // Up to 54Mbps. 329 case 108: // Up to 54Mbps.
330 UpRate = 108; 330 UpRate = 108;
331 break; 331 break;
332 332
333 case 96: // Up to 54Mbps. 333 case 96: // Up to 54Mbps.
334 UpRate = 108; 334 UpRate = 108;
335 break; 335 break;
336 336
337 case 72: // Up to 48Mbps. 337 case 72: // Up to 48Mbps.
338 UpRate = 96; 338 UpRate = 96;
339 break; 339 break;
340 340
341 case 48: // Up to 36Mbps. 341 case 48: // Up to 36Mbps.
342 UpRate = 72; 342 UpRate = 72;
343 break; 343 break;
344 344
345 case 36: // Up to 24Mbps. 345 case 36: // Up to 24Mbps.
346 UpRate = 48; 346 UpRate = 48;
347 break; 347 break;
348 348
349 case 22: // Up to 18Mbps. 349 case 22: // Up to 18Mbps.
350 UpRate = 36; 350 UpRate = 36;
351 break; 351 break;
352 352
353 case 11: // Up to 11Mbps. 353 case 11: // Up to 11Mbps.
354 UpRate = 22; 354 UpRate = 22;
355 break; 355 break;
356 356
357 case 4: // Up to 5.5Mbps. 357 case 4: // Up to 5.5Mbps.
358 UpRate = 11; 358 UpRate = 11;
359 break; 359 break;
360 360
361 case 2: // Up to 2Mbps. 361 case 2: // Up to 2Mbps.
362 UpRate = 4; 362 UpRate = 4;
363 break; 363 break;
364 364
365 default: 365 default:
366 printk("GetUpgradeTxRate(): Input Tx Rate(%d) is undefined!\n", rate); 366 printk("GetUpgradeTxRate(): Input Tx Rate(%d) is undefined!\n", rate);
367 return rate; 367 return rate;
368 } 368 }
369 // Check if the rate is valid. 369 // Check if the rate is valid.
370 if(IncludedInSupportedRates(priv, UpRate)) { 370 if(IncludedInSupportedRates(priv, UpRate)) {
371// printk("GetUpgradeTxRate(): GetUpgrade Tx rate(%d) from %d !\n", UpRate, priv->CurrentOperaRate); 371// printk("GetUpgradeTxRate(): GetUpgrade Tx rate(%d) from %d !\n", UpRate, priv->CurrentOperaRate);
372 return UpRate; 372 return UpRate;
373 } else { 373 } else {
374 //printk("GetUpgradeTxRate(): Tx rate (%d) is not in supported rates\n", UpRate); 374 //printk("GetUpgradeTxRate(): Tx rate (%d) is not in supported rates\n", UpRate);
375 return rate; 375 return rate;
376 } 376 }
377 return rate; 377 return rate;
378} 378}
379// 379//
380// Description: 380// Description:
@@ -384,64 +384,64 @@ GetUpgradeTxRate(
384// 384//
385u8 385u8
386GetDegradeTxRate( 386GetDegradeTxRate(
387 struct net_device *dev, 387 struct net_device *dev,
388 u8 rate 388 u8 rate
389 ) 389 )
390{ 390{
391 struct r8180_priv *priv = ieee80211_priv(dev); 391 struct r8180_priv *priv = ieee80211_priv(dev);
392 u8 DownRate; 392 u8 DownRate;
393 393
394 // Upgrade 1 degree. 394 // Upgrade 1 degree.
395 switch(rate) { 395 switch(rate) {
396 case 108: // Down to 48Mbps. 396 case 108: // Down to 48Mbps.
397 DownRate = 96; 397 DownRate = 96;
398 break; 398 break;
399 399
400 case 96: // Down to 36Mbps. 400 case 96: // Down to 36Mbps.
401 DownRate = 72; 401 DownRate = 72;
402 break; 402 break;
403 403
404 case 72: // Down to 24Mbps. 404 case 72: // Down to 24Mbps.
405 DownRate = 48; 405 DownRate = 48;
406 break; 406 break;
407 407
408 case 48: // Down to 18Mbps. 408 case 48: // Down to 18Mbps.
409 DownRate = 36; 409 DownRate = 36;
410 break; 410 break;
411 411
412 case 36: // Down to 11Mbps. 412 case 36: // Down to 11Mbps.
413 DownRate = 22; 413 DownRate = 22;
414 break; 414 break;
415 415
416 case 22: // Down to 5.5Mbps. 416 case 22: // Down to 5.5Mbps.
417 DownRate = 11; 417 DownRate = 11;
418 break; 418 break;
419 419
420 case 11: // Down to 2Mbps. 420 case 11: // Down to 2Mbps.
421 DownRate = 4; 421 DownRate = 4;
422 break; 422 break;
423 423
424 case 4: // Down to 1Mbps. 424 case 4: // Down to 1Mbps.
425 DownRate = 2; 425 DownRate = 2;
426 break; 426 break;
427 427
428 case 2: // Down to 1Mbps. 428 case 2: // Down to 1Mbps.
429 DownRate = 2; 429 DownRate = 2;
430 break; 430 break;
431 431
432 default: 432 default:
433 printk("GetDegradeTxRate(): Input Tx Rate(%d) is undefined!\n", rate); 433 printk("GetDegradeTxRate(): Input Tx Rate(%d) is undefined!\n", rate);
434 return rate; 434 return rate;
435 } 435 }
436 // Check if the rate is valid. 436 // Check if the rate is valid.
437 if(IncludedInSupportedRates(priv, DownRate)) { 437 if(IncludedInSupportedRates(priv, DownRate)) {
438// printk("GetDegradeTxRate(): GetDegrade Tx rate(%d) from %d!\n", DownRate, priv->CurrentOperaRate); 438// printk("GetDegradeTxRate(): GetDegrade Tx rate(%d) from %d!\n", DownRate, priv->CurrentOperaRate);
439 return DownRate; 439 return DownRate;
440 } else { 440 } else {
441 //printk("GetDegradeTxRate(): Tx rate (%d) is not in supported rates\n", DownRate); 441 //printk("GetDegradeTxRate(): Tx rate (%d) is not in supported rates\n", DownRate);
442 return rate; 442 return rate;
443 } 443 }
444 return rate; 444 return rate;
445} 445}
446// 446//
447// Helper function to determine if specified data rate is 447// Helper function to determine if specified data rate is
@@ -450,16 +450,16 @@ GetDegradeTxRate(
450// 450//
451bool 451bool
452MgntIsCckRate( 452MgntIsCckRate(
453 u16 rate 453 u16 rate
454 ) 454 )
455{ 455{
456 bool bReturn = false; 456 bool bReturn = false;
457 457
458 if((rate <= 22) && (rate != 12) && (rate != 18)) { 458 if((rate <= 22) && (rate != 12) && (rate != 18)) {
459 bReturn = true; 459 bReturn = true;
460 } 460 }
461 461
462 return bReturn; 462 return bReturn;
463} 463}
464// 464//
465// Description: 465// Description:
@@ -490,7 +490,7 @@ TxPwrTracking87SE(
490 CckTxPwrIdx = priv->chtxpwr[Idx]; 490 CckTxPwrIdx = priv->chtxpwr[Idx];
491 OfdmTxPwrIdx = priv->chtxpwr_ofdm[Idx]; 491 OfdmTxPwrIdx = priv->chtxpwr_ofdm[Idx];
492 492
493 if( CurrentThermal > priv->ThermalMeter ) { 493 if( CurrentThermal > priv->ThermalMeter ) {
494 // higher thermal meter. 494 // higher thermal meter.
495 CckTxPwrIdx += (CurrentThermal - priv->ThermalMeter)*2; 495 CckTxPwrIdx += (CurrentThermal - priv->ThermalMeter)*2;
496 OfdmTxPwrIdx += (CurrentThermal - priv->ThermalMeter)*2; 496 OfdmTxPwrIdx += (CurrentThermal - priv->ThermalMeter)*2;
@@ -526,19 +526,19 @@ StaRateAdaptive87SE(
526 ) 526 )
527{ 527{
528 struct r8180_priv *priv = (struct r8180_priv *)ieee80211_priv(dev); 528 struct r8180_priv *priv = (struct r8180_priv *)ieee80211_priv(dev);
529 unsigned long CurrTxokCnt; 529 unsigned long CurrTxokCnt;
530 u16 CurrRetryCnt; 530 u16 CurrRetryCnt;
531 u16 CurrRetryRate; 531 u16 CurrRetryRate;
532 //u16 i,idx; 532 //u16 i,idx;
533 unsigned long CurrRxokCnt; 533 unsigned long CurrRxokCnt;
534 bool bTryUp = false; 534 bool bTryUp = false;
535 bool bTryDown = false; 535 bool bTryDown = false;
536 u8 TryUpTh = 1; 536 u8 TryUpTh = 1;
537 u8 TryDownTh = 2; 537 u8 TryDownTh = 2;
538 u32 TxThroughput; 538 u32 TxThroughput;
539 long CurrSignalStrength; 539 long CurrSignalStrength;
540 bool bUpdateInitialGain = false; 540 bool bUpdateInitialGain = false;
541 u8 u1bOfdm=0, u1bCck = 0; 541 u8 u1bOfdm=0, u1bCck = 0;
542 char OfdmTxPwrIdx, CckTxPwrIdx; 542 char OfdmTxPwrIdx, CckTxPwrIdx;
543 543
544 priv->RateAdaptivePeriod= RATE_ADAPTIVE_TIMER_PERIOD; 544 priv->RateAdaptivePeriod= RATE_ADAPTIVE_TIMER_PERIOD;
@@ -629,7 +629,7 @@ StaRateAdaptive87SE(
629 // Let these rates down more difficult. 629 // Let these rates down more difficult.
630 // 630 //
631 if(MgntIsCckRate(priv->CurrentOperaRate) || priv->CurrentOperaRate == 36) 631 if(MgntIsCckRate(priv->CurrentOperaRate) || priv->CurrentOperaRate == 36)
632 TryDownTh += 1; 632 TryDownTh += 1;
633 633
634 //1 Adjust Rate. 634 //1 Adjust Rate.
635 if (priv->bTryuping == true) { 635 if (priv->bTryuping == true) {
@@ -701,7 +701,7 @@ StaRateAdaptive87SE(
701// if ( ((CurrRetryRate>65) && (priv->LastRetryRate>64))) 701// if ( ((CurrRetryRate>65) && (priv->LastRetryRate>64)))
702 //Down to rate 36Mbps. 702 //Down to rate 36Mbps.
703 bTryDown = true; 703 bTryDown = true;
704 } else if ( ((CurrRetryRate>21) && (priv->LastRetryRate>20)) && (CurrSignalStrength > -74)) { //Cable Link 704 } else if ( ((CurrRetryRate>21) && (priv->LastRetryRate>20)) && (CurrSignalStrength > -74)) { //Cable Link
705 //Down to rate 36Mbps. 705 //Down to rate 36Mbps.
706 bTryDown = true; 706 bTryDown = true;
707 } else if((CurrRetryRate> (priv->LastRetryRate + 50 )) && (priv->FailTxRateCount >2 )) { 707 } else if((CurrRetryRate> (priv->LastRetryRate + 50 )) && (priv->FailTxRateCount >2 )) {
@@ -771,7 +771,7 @@ StaRateAdaptive87SE(
771 bTryDown = true; 771 bTryDown = true;
772 772
773 //[TRC Dell Lab] Isaiah 2008-02-18 23:24 773 //[TRC Dell Lab] Isaiah 2008-02-18 23:24
774 } else if((CurrRetryRate> (priv->LastRetryRate + 50 )) && (priv->FailTxRateCount >2 )) { 774 } else if((CurrRetryRate> (priv->LastRetryRate + 50 )) && (priv->FailTxRateCount >2 )) {
775// else if((CurrRetryRate> (priv->LastRetryRate + 70 )) && (priv->FailTxRateCount >2 )) 775// else if((CurrRetryRate> (priv->LastRetryRate + 70 )) && (priv->FailTxRateCount >2 ))
776 bTryDown = true; 776 bTryDown = true;
777 priv->TryDownCountLowData += TryDownTh; 777 priv->TryDownCountLowData += TryDownTh;
@@ -993,9 +993,9 @@ StaRateAdaptive87SE(
993 993
994 // case 1: Never enter High power 994 // case 1: Never enter High power
995 if(u1bCck == CckTxPwrIdx ) { 995 if(u1bCck == CckTxPwrIdx ) {
996 priv->bEnhanceTxPwr= false; 996 priv->bEnhanceTxPwr= false;
997 write_nic_byte(dev, OFDM_TXAGC, OfdmTxPwrIdx); 997 write_nic_byte(dev, OFDM_TXAGC, OfdmTxPwrIdx);
998 //printk("Recover OFDM_TXAGC : ===== u1bOfdm= 0x%x\n", OfdmTxPwrIdx); 998 //printk("Recover OFDM_TXAGC : ===== u1bOfdm= 0x%x\n", OfdmTxPwrIdx);
999 } 999 }
1000 // case 2: enter high power 1000 // case 2: enter high power
1001 else if(u1bCck < CckTxPwrIdx) { 1001 else if(u1bCck < CckTxPwrIdx) {
@@ -1024,7 +1024,7 @@ SetInitialGain:
1024 else if(priv->InitialGain > priv->RegBModeGainStage + 1) 1024 else if(priv->InitialGain > priv->RegBModeGainStage + 1)
1025 priv->InitialGain -= 2; 1025 priv->InitialGain -= 2;
1026 1026
1027 else 1027 else
1028 priv->InitialGain --; 1028 priv->InitialGain --;
1029 1029
1030 printk("StaRateAdaptive87SE(): update init_gain to index %d for date rate %d\n",priv->InitialGain, priv->CurrentOperaRate); 1030 printk("StaRateAdaptive87SE(): update init_gain to index %d for date rate %d\n",priv->InitialGain, priv->CurrentOperaRate);
@@ -1050,11 +1050,11 @@ SetInitialGain:
1050void rtl8180_rate_adapter(struct work_struct * work) 1050void rtl8180_rate_adapter(struct work_struct * work)
1051{ 1051{
1052 struct delayed_work *dwork = to_delayed_work(work); 1052 struct delayed_work *dwork = to_delayed_work(work);
1053 struct ieee80211_device *ieee = container_of(dwork,struct ieee80211_device,rate_adapter_wq); 1053 struct ieee80211_device *ieee = container_of(dwork,struct ieee80211_device,rate_adapter_wq);
1054 struct net_device *dev = ieee->dev; 1054 struct net_device *dev = ieee->dev;
1055 //struct r8180_priv *priv = ieee80211_priv(dev); 1055 //struct r8180_priv *priv = ieee80211_priv(dev);
1056// DMESG("---->rtl8180_rate_adapter"); 1056// DMESG("---->rtl8180_rate_adapter");
1057 StaRateAdaptive87SE(dev); 1057 StaRateAdaptive87SE(dev);
1058// DMESG("<----rtl8180_rate_adapter"); 1058// DMESG("<----rtl8180_rate_adapter");
1059} 1059}
1060void timer_rate_adaptive(unsigned long data) 1060void timer_rate_adaptive(unsigned long data)
@@ -1165,12 +1165,12 @@ SwitchAntenna(
1165 bool bResult; 1165 bool bResult;
1166 1166
1167 if(priv->CurrAntennaIndex == 0) { 1167 if(priv->CurrAntennaIndex == 0) {
1168 bResult = SetAntenna8185(dev, 1); 1168 bResult = SetAntenna8185(dev, 1);
1169//by amy 080312 1169//by amy 080312
1170// printk("SwitchAntenna(): switching to antenna 1 ......\n"); 1170// printk("SwitchAntenna(): switching to antenna 1 ......\n");
1171// bResult = SetAntenna8185(dev, 1);//-by amy 080312 1171// bResult = SetAntenna8185(dev, 1);//-by amy 080312
1172 } else { 1172 } else {
1173 bResult = SetAntenna8185(dev, 0); 1173 bResult = SetAntenna8185(dev, 0);
1174//by amy 080312 1174//by amy 080312
1175// printk("SwitchAntenna(): switching to antenna 0 ......\n"); 1175// printk("SwitchAntenna(): switching to antenna 0 ......\n");
1176// bResult = SetAntenna8185(dev, 0);//-by amy 080312 1176// bResult = SetAntenna8185(dev, 0);//-by amy 080312
@@ -1246,7 +1246,7 @@ SwAntennaDiversity(
1246 1246
1247 // Wrong deceision => switch back. 1247 // Wrong deceision => switch back.
1248 SwitchAntenna(dev); 1248 SwitchAntenna(dev);
1249 } else { 1249 } else {
1250 // Rx Signal Strength is improved. 1250 // Rx Signal Strength is improved.
1251// printk("SwAntennaDiversity(): Rx Signal Strength is improved, CurrRxSs: %d, LastRxSs: %d\n", 1251// printk("SwAntennaDiversity(): Rx Signal Strength is improved, CurrRxSs: %d, LastRxSs: %d\n",
1252// priv->AdRxSignalStrength, priv->AdRxSsBeforeSwitched); 1252// priv->AdRxSignalStrength, priv->AdRxSsBeforeSwitched);
@@ -1319,35 +1319,35 @@ SwAntennaDiversity(
1319 // 1319 //
1320 if( (!priv->bHWAdSwitched) && (bSwCheckSS)) { 1320 if( (!priv->bHWAdSwitched) && (bSwCheckSS)) {
1321//by amy 080312} 1321//by amy 080312}
1322 // Evaluate Rx signal strength if we shall switch antenna now. 1322 // Evaluate Rx signal strength if we shall switch antenna now.
1323 if(priv->AdRxSignalStrength < priv->AdRxSsThreshold) { 1323 if(priv->AdRxSignalStrength < priv->AdRxSsThreshold) {
1324 // Rx signal strength is weak => Switch Antenna. 1324 // Rx signal strength is weak => Switch Antenna.
1325// printk("SwAntennaDiversity(): Rx Signal Strength is weak, CurrRxSs: %d, RxSsThreshold: %d\n", 1325// printk("SwAntennaDiversity(): Rx Signal Strength is weak, CurrRxSs: %d, RxSsThreshold: %d\n",
1326// priv->AdRxSignalStrength, priv->AdRxSsThreshold); 1326// priv->AdRxSignalStrength, priv->AdRxSsThreshold);
1327 1327
1328 priv->AdRxSsBeforeSwitched = priv->AdRxSignalStrength; 1328 priv->AdRxSsBeforeSwitched = priv->AdRxSignalStrength;
1329 priv->bAdSwitchedChecking = true; 1329 priv->bAdSwitchedChecking = true;
1330 1330
1331 SwitchAntenna(dev); 1331 SwitchAntenna(dev);
1332 } else { 1332 } else {
1333 // Rx signal strength is OK. 1333 // Rx signal strength is OK.
1334// printk("SwAntennaDiversity(): Rx Signal Strength is OK, CurrRxSs: %d, RxSsThreshold: %d\n", 1334// printk("SwAntennaDiversity(): Rx Signal Strength is OK, CurrRxSs: %d, RxSsThreshold: %d\n",
1335// priv->AdRxSignalStrength, priv->AdRxSsThreshold); 1335// priv->AdRxSignalStrength, priv->AdRxSsThreshold);
1336 1336
1337 priv->bAdSwitchedChecking = false; 1337 priv->bAdSwitchedChecking = false;
1338 // Increase Rx signal strength threshold if necessary. 1338 // Increase Rx signal strength threshold if necessary.
1339 if( (priv->AdRxSignalStrength > (priv->AdRxSsThreshold + 10)) && // Signal is much stronger than current threshold 1339 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. 1340 priv->AdRxSsThreshold <= priv->AdMaxRxSsThreshold) { // Current threhold is not yet reach upper limit.
1341 1341
1342 priv->AdRxSsThreshold = (priv->AdRxSsThreshold + priv->AdRxSignalStrength) / 2; 1342 priv->AdRxSsThreshold = (priv->AdRxSsThreshold + priv->AdRxSignalStrength) / 2;
1343 priv->AdRxSsThreshold = (priv->AdRxSsThreshold > priv->AdMaxRxSsThreshold) ? 1343 priv->AdRxSsThreshold = (priv->AdRxSsThreshold > priv->AdMaxRxSsThreshold) ?
1344 priv->AdMaxRxSsThreshold: priv->AdRxSsThreshold;//+by amy 080312 1344 priv->AdMaxRxSsThreshold: priv->AdRxSsThreshold;//+by amy 080312
1345 } 1345 }
1346 1346
1347 // Reduce Antenna Diversity checking period if possible. 1347 // Reduce Antenna Diversity checking period if possible.
1348 if( priv->AdCheckPeriod > priv->AdMinCheckPeriod ) 1348 if( priv->AdCheckPeriod > priv->AdMinCheckPeriod )
1349 priv->AdCheckPeriod /= 2; 1349 priv->AdCheckPeriod /= 2;
1350 } 1350 }
1351 } 1351 }
1352 } 1352 }
1353//by amy 080312 1353//by amy 080312