Lines Matching refs:priv

10 	struct r8180_priv *priv = ieee80211_priv(dev);
11 struct ieee80211_device *ieee = priv->ieee80211;
13 if(!priv->bRegHighPowerMechanism)
35 struct r8180_priv *priv = ieee80211_priv(dev);
43 HiPwrUpperTh = priv->RegHiPwrUpperTh;
44 HiPwrLowerTh = priv->RegHiPwrLowerTh;
48 RSSIHiPwrUpperTh = priv->RegRSSIHiPwrUpperTh;
49 RSSIHiPwrLowerTh = priv->RegRSSIHiPwrLowerTh;
52 OfdmTxPwrIdx = priv->chtxpwr_ofdm[priv->ieee80211->current_network.channel];
53 CckTxPwrIdx = priv->chtxpwr[priv->ieee80211->current_network.channel];
55 if ((priv->UndecoratedSmoothedSS > HiPwrUpperTh) ||
56 (priv->bCurCCKPkt && (priv->CurCCKRSSI > RSSIHiPwrUpperTh))) {
59 priv->bToUpdateTxPwr = true;
72 } else if ((priv->UndecoratedSmoothedSS < HiPwrLowerTh) &&
73 (!priv->bCurCCKPkt || priv->CurCCKRSSI < RSSIHiPwrLowerTh)) {
74 if (priv->bToUpdateTxPwr) {
75 priv->bToUpdateTxPwr = false;
112 struct r8180_priv *priv = ieee80211_priv(dev);
113 struct ieee80211_device *ieee = priv->ieee80211;
115 if (!priv->bDigMechanism)
121 if ((priv->ieee80211->rate / 5) < 36) /* Schedule Dig under all OFDM rates. By Bruce, 2007-06-01. */
130 struct r8180_priv *priv = ieee80211_priv(dev);
137 CCKFalseAlarm = (u16)(priv->FalseAlarmRegValue & 0x0000ffff);
138 OFDMFalseAlarm = (u16)((priv->FalseAlarmRegValue >> 16) & 0x0000ffff);
140 OfdmFA2 = ((u16)(priv->RegDigOfdmFaUpTh)) << 8;
143 if (priv->InitialGain == 0) { /* autoDIG */
145 priv->InitialGain = 4; /* In 87B, m74dBm means State 4 (m82dBm) */
151 AwakePeriodIn2Sec = (2000 - priv->DozePeriodInPast2Sec);
152 priv ->DozePeriodInPast2Sec = 0;
163 LowestGainStage = priv->RegBModeGainStage; /* Lowest gain stage. */
167 priv->DIG_NumberFallbackVote++;
168 if (priv->DIG_NumberFallbackVote > 1) {
170 if (priv->InitialGain < InitialGainStep) {
171 priv->InitialGainBackUp = priv->InitialGain;
173 priv->InitialGain = (priv->InitialGain + 1);
176 priv->DIG_NumberFallbackVote = 0;
177 priv->DIG_NumberUpgradeVote = 0;
180 if (priv->DIG_NumberFallbackVote)
181 priv->DIG_NumberFallbackVote--;
183 priv->DIG_NumberUpgradeVote = 0;
185 if (priv->DIG_NumberFallbackVote)
186 priv->DIG_NumberFallbackVote--;
187 priv->DIG_NumberUpgradeVote++;
189 if (priv->DIG_NumberUpgradeVote > 9) {
190 if (priv->InitialGain > LowestGainStage) { /* In 87B, m78dBm means State 4 (m864dBm) */
191 priv->InitialGainBackUp = priv->InitialGain;
193 priv->InitialGain = (priv->InitialGain - 1);
196 priv->DIG_NumberFallbackVote = 0;
197 priv->DIG_NumberUpgradeVote = 0;
215 struct r8180_priv *priv = ieee80211_priv(dev);
218 priv->FalseAlarmRegValue = read_nic_dword(dev, CCK_FALSE_ALARM);
226 int IncludedInSupportedRates(struct r8180_priv *priv, u8 TxRate)
235 rate_len = priv->ieee80211->current_network.rates_len;
236 rate_ex_len = priv->ieee80211->current_network.rates_ex_len;
238 if ((priv->ieee80211->current_network.rates[idx] & RateMask) == NaiveTxRate) {
244 if ((priv->ieee80211->current_network.rates_ex[idx] & RateMask) == NaiveTxRate) {
260 struct r8180_priv *priv = ieee80211_priv(dev);
306 if (IncludedInSupportedRates(priv, UpRate)) {
320 struct r8180_priv *priv = ieee80211_priv(dev);
366 if (IncludedInSupportedRates(priv, DownRate)) {
394 struct r8180_priv *priv = (struct r8180_priv *)ieee80211_priv(dev);
402 if (CurrentThermal != priv->ThermalMeter) {
405 CckTxPwrIdx = priv->chtxpwr[Idx];
406 OfdmTxPwrIdx = priv->chtxpwr_ofdm[Idx];
408 if (CurrentThermal > priv->ThermalMeter) {
410 CckTxPwrIdx += (CurrentThermal - priv->ThermalMeter) * 2;
411 OfdmTxPwrIdx += (CurrentThermal - priv->ThermalMeter) * 2;
419 CckTxPwrIdx -= (priv->ThermalMeter - CurrentThermal) * 2;
420 OfdmTxPwrIdx -= (priv->ThermalMeter - CurrentThermal) * 2;
429 priv->chtxpwr[Idx] = CckTxPwrIdx;
430 priv->chtxpwr_ofdm[Idx] = OfdmTxPwrIdx;
434 rtl8225z2_SetTXPowerLevel(dev, priv->ieee80211->current_network.channel);
436 priv->ThermalMeter = CurrentThermal;
440 struct r8180_priv *priv = (struct r8180_priv *)ieee80211_priv(dev);
455 priv->RateAdaptivePeriod = RATE_ADAPTIVE_TIMER_PERIOD;
458 CurrRetryCnt = priv->CurrRetryCnt;
459 CurrTxokCnt = priv->NumTxOkTotal - priv->LastTxokCnt;
460 CurrRxokCnt = priv->ieee80211->NumRxOkTotal - priv->LastRxokCnt;
461 CurrSignalStrength = priv->Stats_RecvSignalPower;
462 TxThroughput = (u32)(priv->NumTxOkBytesTotal - priv->LastTxOKBytes);
463 priv->LastTxOKBytes = priv->NumTxOkBytesTotal;
464 priv->CurrentOperaRate = priv->ieee80211->rate / 5;
473 priv->LastRetryCnt = priv->CurrRetryCnt;
474 priv->LastTxokCnt = priv->NumTxOkTotal;
475 priv->LastRxokCnt = priv->ieee80211->NumRxOkTotal;
476 priv->CurrRetryCnt = 0;
483 priv->TryupingCountNoData++;
486 if (priv->TryupingCountNoData > 30) {
487 priv->TryupingCountNoData = 0;
488 priv->CurrentOperaRate = GetUpgradeTxRate(dev, priv->CurrentOperaRate);
490 priv->LastFailTxRate = 0;
491 priv->LastFailTxRateSS = -200;
492 priv->FailTxRateCount = 0;
496 priv->TryupingCountNoData = 0; /*Reset trying up times. */
519 if (priv->CurrentOperaRate == 22 || priv->CurrentOperaRate == 72)
524 if (MgntIsCckRate(priv->CurrentOperaRate) || priv->CurrentOperaRate == 36)
528 if (priv->bTryuping == true) {
537 if ((CurrRetryRate > 25) && TxThroughput < priv->LastTxThroughput) {
541 priv->bTryuping = false;
552 if (priv->CurrentOperaRate != priv->ieee80211->current_network.HighestOperaRate) {
555 priv->TryupingCount += TryUpTh;
566 priv->TryDownCountLowData += TryDownTh;
567 } else if (priv->CurrentOperaRate == 108) {
570 if ((CurrRetryRate > 26) && (priv->LastRetryRate > 25)) {
574 else if ((CurrRetryRate > 17) && (priv->LastRetryRate > 16) && (CurrSignalStrength > -72)) {
579 priv->TryDownCountLowData += TryDownTh;
581 else if (priv->CurrentOperaRate == 96) {
584 if (((CurrRetryRate > 48) && (priv->LastRetryRate > 47))) {
586 } else if (((CurrRetryRate > 21) && (priv->LastRetryRate > 20)) && (CurrSignalStrength > -74)) { /* Cable Link */
589 } else if ((CurrRetryRate > (priv->LastRetryRate + 50)) && (priv->FailTxRateCount > 2)) {
591 priv->TryDownCountLowData += TryDownTh;
592 } else if ((CurrRetryRate < 8) && (priv->LastRetryRate < 8)) { /* TO DO: need to consider (RSSI) */
597 priv->TryDownCountLowData += TryDownTh;
599 } else if (priv->CurrentOperaRate == 72) {
601 if ((CurrRetryRate > 43) && (priv->LastRetryRate > 41)) {
604 } else if ((CurrRetryRate > (priv->LastRetryRate + 50)) && (priv->FailTxRateCount > 2)) {
606 priv->TryDownCountLowData += TryDownTh;
607 } else if ((CurrRetryRate < 15) && (priv->LastRetryRate < 16)) { /* TO DO: need to consider (RSSI) */
612 priv->TryDownCountLowData += TryDownTh;
614 } else if (priv->CurrentOperaRate == 48) {
617 if (((CurrRetryRate > 63) && (priv->LastRetryRate > 62))) {
619 } else if (((CurrRetryRate > 33) && (priv->LastRetryRate > 32)) && (CurrSignalStrength > -82)) { /* Cable Link */
621 } else if ((CurrRetryRate > (priv->LastRetryRate + 50)) && (priv->FailTxRateCount > 2 )) {
623 priv->TryDownCountLowData += TryDownTh;
624 } else if ((CurrRetryRate < 20) && (priv->LastRetryRate < 21)) { /* TO DO: need to consider (RSSI) */
629 priv->TryDownCountLowData += TryDownTh;
631 } else if (priv->CurrentOperaRate == 36) {
632 if (((CurrRetryRate > 85) && (priv->LastRetryRate > 86))) {
634 } else if ((CurrRetryRate > (priv->LastRetryRate + 50)) && (priv->FailTxRateCount > 2)) {
636 priv->TryDownCountLowData += TryDownTh;
637 } else if ((CurrRetryRate < 22) && (priv->LastRetryRate < 23)) { /* TO DO: need to consider (RSSI) */
640 } else if (priv->CurrentOperaRate == 22) {
645 else if ((CurrRetryRate < 29) && (priv->LastRetryRate < 30)) { /*TO DO: need to consider (RSSI) */
648 } else if (priv->CurrentOperaRate == 11) {
652 } else if ((CurrRetryRate < 60) && (priv->LastRetryRate < 65)) {
655 } else if (priv->CurrentOperaRate == 4) {
657 if ((CurrRetryRate > 99) && (priv->LastRetryRate > 99)) {
659 } else if ((CurrRetryRate < 65) && (priv->LastRetryRate < 70)) {
662 } else if (priv->CurrentOperaRate == 2) {
664 if ((CurrRetryRate < 70) && (priv->LastRetryRate < 75)) {
676 if (!bTryUp && !bTryDown && (priv->TryupingCount == 0) && (priv->TryDownCountLowData == 0)
677 && priv->CurrentOperaRate != priv->ieee80211->current_network.HighestOperaRate && priv->FailTxRateCount < 2) {
680 priv->bTryuping = true;
686 priv->TryupingCount++;
687 priv->TryDownCountLowData = 0;
696 if ((priv->TryupingCount > (TryUpTh + priv->FailTxRateCount * priv->FailTxRateCount)) ||
697 (CurrSignalStrength > priv->LastFailTxRateSS) || priv->bTryuping) {
698 priv->TryupingCount = 0;
702 if (priv->CurrentOperaRate == 22)
709 if (((priv->CurrentOperaRate == 72) || (priv->CurrentOperaRate == 48) || (priv->CurrentOperaRate == 36)) &&
710 (priv->FailTxRateCount > 2))
711 priv->RateAdaptivePeriod = (RATE_ADAPTIVE_TIMER_PERIOD / 2);
716 priv->CurrentOperaRate = GetUpgradeTxRate(dev, priv->CurrentOperaRate);
718 if (priv->CurrentOperaRate == 36) {
719 priv->bUpdateARFR = true;
721 } else if(priv->bUpdateARFR) {
722 priv->bUpdateARFR = false;
727 if (priv->LastFailTxRate != priv->CurrentOperaRate) {
728 priv->LastFailTxRate = priv->CurrentOperaRate;
729 priv->FailTxRateCount = 0;
730 priv->LastFailTxRateSS = -200; /* Set lowest power. */
734 if (priv->TryupingCount > 0)
735 priv->TryupingCount --;
739 priv->TryDownCountLowData++;
740 priv->TryupingCount = 0;
743 if (priv->TryDownCountLowData > TryDownTh || priv->bTryuping) {
744 priv->TryDownCountLowData = 0;
745 priv->bTryuping = false;
747 if (priv->LastFailTxRate == priv->CurrentOperaRate) {
748 priv->FailTxRateCount++;
750 if (CurrSignalStrength > priv->LastFailTxRateSS)
751 priv->LastFailTxRateSS = CurrSignalStrength;
753 priv->LastFailTxRate = priv->CurrentOperaRate;
754 priv->FailTxRateCount = 1;
755 priv->LastFailTxRateSS = CurrSignalStrength;
757 priv->CurrentOperaRate = GetDegradeTxRate(dev, priv->CurrentOperaRate);
760 if ((CurrSignalStrength < -80) && (priv->CurrentOperaRate > 72 )) {
761 priv->CurrentOperaRate = 72;
764 if (priv->CurrentOperaRate == 36) {
765 priv->bUpdateARFR = true;
767 } else if (priv->bUpdateARFR) {
768 priv->bUpdateARFR = false;
775 if (MgntIsCckRate(priv->CurrentOperaRate)) {
780 if (priv->TryDownCountLowData > 0)
781 priv->TryDownCountLowData--;
788 if (priv->FailTxRateCount >= 0x15 ||
789 (!bTryUp && !bTryDown && priv->TryDownCountLowData == 0 && priv->TryupingCount && priv->FailTxRateCount > 0x6)) {
790 priv->FailTxRateCount--;
794 OfdmTxPwrIdx = priv->chtxpwr_ofdm[priv->ieee80211->current_network.channel];
795 CckTxPwrIdx = priv->chtxpwr[priv->ieee80211->current_network.channel];
798 if ((priv->CurrentOperaRate < 96) && (priv->CurrentOperaRate > 22)) {
805 priv->bEnhanceTxPwr = true;
811 if (!priv->bEnhanceTxPwr) {
812 priv->bEnhanceTxPwr = true;
817 } else if (priv->bEnhanceTxPwr) { /* 54/48/11/5.5/2/1 */
823 priv->bEnhanceTxPwr = false;
828 priv->bEnhanceTxPwr = false;
840 if (MgntIsCckRate(priv->CurrentOperaRate)) { /* CCK */
841 if (priv->InitialGain > priv->RegBModeGainStage) {
842 priv->InitialGainBackUp = priv->InitialGain;
846 priv->InitialGain = priv->RegBModeGainStage;
848 else if (priv->InitialGain > priv->RegBModeGainStage + 1)
849 priv->InitialGain -= 2;
852 priv->InitialGain--;
854 printk("StaRateAdaptive87SE(): update init_gain to index %d for date rate %d\n",priv->InitialGain, priv->CurrentOperaRate);
858 if (priv->InitialGain < 4) {
859 priv->InitialGainBackUp = priv->InitialGain;
861 priv->InitialGain++;
862 printk("StaRateAdaptive87SE(): update init_gain to index %d for date rate %d\n",priv->InitialGain, priv->CurrentOperaRate);
869 priv->LastRetryRate = CurrRetryRate;
870 priv->LastTxThroughput = TxThroughput;
871 priv->ieee80211->rate = priv->CurrentOperaRate * 5;
883 struct r8180_priv *priv = ieee80211_priv((struct net_device *)data);
884 if (!priv->up) {
887 if ((priv->ieee80211->iw_mode != IW_MODE_MASTER)
888 && (priv->ieee80211->state == IEEE80211_LINKED) &&
889 (priv->ForcedDataRate == 0)) {
890 queue_work(priv->ieee80211->wq, (void *)&priv->ieee80211->rate_adapter_wq);
892 priv->rateadapter_timer.expires = jiffies + MSECS(priv->RateAdaptivePeriod);
893 add_timer(&priv->rateadapter_timer);
898 struct r8180_priv *priv = (struct r8180_priv *)ieee80211_priv(dev);
900 priv->AdRxOkCnt++;
902 if (priv->AdRxSignalStrength != -1) {
903 priv->AdRxSignalStrength = ((priv->AdRxSignalStrength * 7) + (SignalStrength * 3)) / 10;
905 priv->AdRxSignalStrength = SignalStrength;
908 if (priv->LastRxPktAntenna) /* Main antenna. */
909 priv->AdMainAntennaRxOkCnt++;
911 priv->AdAuxAntennaRxOkCnt++;
916 struct r8180_priv *priv = (struct r8180_priv *)ieee80211_priv(dev);
947 priv->CurrAntennaIndex = u1bAntennaIndex;
954 struct r8180_priv *priv = (struct r8180_priv *)ieee80211_priv(dev);
958 if (priv->CurrAntennaIndex == 0) {
973 struct r8180_priv *priv = (struct r8180_priv *)ieee80211_priv(dev);
976 priv->AdTickCount++;
979 priv->AdTickCount, priv->AdCheckPeriod);
981 priv->AdRxSignalStrength, priv->AdRxSsThreshold);
985 if (priv->ieee80211->state != IEEE80211_LINKED) {
986 priv->bAdSwitchedChecking = false;
991 } else if (priv->AdRxOkCnt == 0) {
992 priv->bAdSwitchedChecking = false;
996 } else if (priv->bAdSwitchedChecking == true) {
997 priv->bAdSwitchedChecking = false;
1000 priv->AdRxSsThreshold = (priv->AdRxSignalStrength + priv->AdRxSsBeforeSwitched) / 2;
1002 priv->AdRxSsThreshold = (priv->AdRxSsThreshold > priv->AdMaxRxSsThreshold) ?
1003 priv->AdMaxRxSsThreshold: priv->AdRxSsThreshold;
1004 if(priv->AdRxSignalStrength < priv->AdRxSsBeforeSwitched) {
1007 priv->AdCheckPeriod *= 2;
1009 if (priv->AdCheckPeriod > priv->AdMaxCheckPeriod)
1010 priv->AdCheckPeriod = priv->AdMaxCheckPeriod;
1018 priv->AdCheckPeriod = priv->AdMinCheckPeriod;
1025 priv->AdTickCount = 0;
1038 if ((priv->AdMainAntennaRxOkCnt < priv->AdAuxAntennaRxOkCnt)
1039 && (priv->CurrAntennaIndex == 0)) {
1044 priv->bHWAdSwitched = true;
1045 } else if ((priv->AdAuxAntennaRxOkCnt < priv->AdMainAntennaRxOkCnt)
1046 && (priv->CurrAntennaIndex == 1)) {
1051 priv->bHWAdSwitched = true;
1056 priv->bHWAdSwitched = false;
1069 if ((!priv->bHWAdSwitched) && (bSwCheckSS)) {
1071 if (priv->AdRxSignalStrength < priv->AdRxSsThreshold) {
1073 priv->AdRxSsBeforeSwitched = priv->AdRxSignalStrength;
1074 priv->bAdSwitchedChecking = true;
1079 priv->bAdSwitchedChecking = false;
1081 if ((priv->AdRxSignalStrength > (priv->AdRxSsThreshold + 10)) && /* Signal is much stronger than current threshold */
1082 priv->AdRxSsThreshold <= priv->AdMaxRxSsThreshold) { /* Current threhold is not yet reach upper limit. */
1084 priv->AdRxSsThreshold = (priv->AdRxSsThreshold + priv->AdRxSignalStrength) / 2;
1085 priv->AdRxSsThreshold = (priv->AdRxSsThreshold > priv->AdMaxRxSsThreshold) ?
1086 priv->AdMaxRxSsThreshold: priv->AdRxSsThreshold;/* +by amy 080312 */
1090 if (priv->AdCheckPeriod > priv->AdMinCheckPeriod)
1091 priv->AdCheckPeriod /= 2;
1096 priv->AdRxOkCnt = 0;
1097 priv->AdMainAntennaRxOkCnt = 0;
1098 priv->AdAuxAntennaRxOkCnt = 0;
1104 struct r8180_priv *priv = (struct r8180_priv *)ieee80211_priv(dev);
1106 if (!priv->bTxPowerTrack)
1110 if (priv->bToUpdateTxPwr)
1120 struct r8180_priv *priv = (struct r8180_priv *)ieee80211_priv(dev);
1124 rtState = priv->eRFPowerState;
1136 if (priv->up) {
1137 priv->SwAntennaDiversityTimer.expires = jiffies + MSECS(ANTENNA_DIVERSITY_TIMER_PERIOD);
1138 add_timer(&priv->SwAntennaDiversityTimer);