|
@@ -8343,85 +8343,19 @@ VOID AsicRxAntEvalTimeout(
|
|
|
UCHAR BBPR3 = 0;
|
|
|
CHAR larger = -127, rssi0, rssi1, rssi2;
|
|
|
|
|
|
-#ifndef RT30xx
|
|
|
- {
|
|
|
- if (RTMP_TEST_FLAG(pAd, fRTMP_ADAPTER_RESET_IN_PROGRESS) ||
|
|
|
- RTMP_TEST_FLAG(pAd, fRTMP_ADAPTER_HALT_IN_PROGRESS) ||
|
|
|
- RTMP_TEST_FLAG(pAd, fRTMP_ADAPTER_RADIO_OFF) ||
|
|
|
- RTMP_TEST_FLAG(pAd, fRTMP_ADAPTER_NIC_NOT_EXIST))
|
|
|
- return;
|
|
|
-
|
|
|
- if (pAd->StaCfg.Psm == PWR_SAVE)
|
|
|
- return;
|
|
|
-
|
|
|
-
|
|
|
- // if the traffic is low, use average rssi as the criteria
|
|
|
- if (pAd->Mlme.bLowThroughput == TRUE)
|
|
|
- {
|
|
|
- rssi0 = pAd->StaCfg.RssiSample.LastRssi0;
|
|
|
- rssi1 = pAd->StaCfg.RssiSample.LastRssi1;
|
|
|
- rssi2 = pAd->StaCfg.RssiSample.LastRssi2;
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- rssi0 = pAd->StaCfg.RssiSample.AvgRssi0;
|
|
|
- rssi1 = pAd->StaCfg.RssiSample.AvgRssi1;
|
|
|
- rssi2 = pAd->StaCfg.RssiSample.AvgRssi2;
|
|
|
- }
|
|
|
-
|
|
|
- if(pAd->Antenna.field.RxPath == 3)
|
|
|
- {
|
|
|
- larger = max(rssi0, rssi1);
|
|
|
-
|
|
|
- if (larger > (rssi2 + 20))
|
|
|
- pAd->Mlme.RealRxPath = 2;
|
|
|
- else
|
|
|
- pAd->Mlme.RealRxPath = 3;
|
|
|
- }
|
|
|
- else if(pAd->Antenna.field.RxPath == 2)
|
|
|
- {
|
|
|
- if (rssi0 > (rssi1 + 20))
|
|
|
- pAd->Mlme.RealRxPath = 1;
|
|
|
- else
|
|
|
- pAd->Mlme.RealRxPath = 2;
|
|
|
- }
|
|
|
-
|
|
|
- RTMP_BBP_IO_READ8_BY_REG_ID(pAd, BBP_R3, &BBPR3);
|
|
|
- BBPR3 &= (~0x18);
|
|
|
- if(pAd->Mlme.RealRxPath == 3)
|
|
|
- {
|
|
|
- BBPR3 |= (0x10);
|
|
|
- }
|
|
|
- else if(pAd->Mlme.RealRxPath == 2)
|
|
|
- {
|
|
|
- BBPR3 |= (0x8);
|
|
|
- }
|
|
|
- else if(pAd->Mlme.RealRxPath == 1)
|
|
|
- {
|
|
|
- BBPR3 |= (0x0);
|
|
|
- }
|
|
|
- RTMP_BBP_IO_WRITE8_BY_REG_ID(pAd, BBP_R3, BBPR3);
|
|
|
-#ifdef RT2860
|
|
|
- pAd->StaCfg.BBPR3 = BBPR3;
|
|
|
-#endif
|
|
|
- }
|
|
|
-#endif /* RT30xx */
|
|
|
-#ifdef RT30xx
|
|
|
if (RTMP_TEST_FLAG(pAd, fRTMP_ADAPTER_RESET_IN_PROGRESS |
|
|
|
fRTMP_ADAPTER_HALT_IN_PROGRESS |
|
|
|
fRTMP_ADAPTER_RADIO_OFF |
|
|
|
- fRTMP_ADAPTER_NIC_NOT_EXIST) ||
|
|
|
- OPSTATUS_TEST_FLAG(pAd, fOP_STATUS_DOZE)
|
|
|
+ fRTMP_ADAPTER_NIC_NOT_EXIST)
|
|
|
#ifdef RT30xx
|
|
|
+ || OPSTATUS_TEST_FLAG(pAd, fOP_STATUS_DOZE)
|
|
|
|| (pAd->EepromAccess)
|
|
|
#endif // RT30xx //
|
|
|
)
|
|
|
return;
|
|
|
|
|
|
{
|
|
|
- //if (pAd->StaCfg.Psm == PWR_SAVE)
|
|
|
- // return;
|
|
|
-
|
|
|
+#ifdef RT30xx
|
|
|
if (pAd->NicConfig2.field.AntDiversity)
|
|
|
{
|
|
|
if ((pAd->RxAnt.RcvPktNumWhenEvaluate != 0) && (pAd->RxAnt.Pair1AvgRssi[pAd->RxAnt.Pair1SecondaryRxAnt] >= pAd->RxAnt.Pair1AvgRssi[pAd->RxAnt.Pair1PrimaryRxAnt]))
|
|
@@ -8453,6 +8387,7 @@ VOID AsicRxAntEvalTimeout(
|
|
|
pAd->RxAnt.Pair1PrimaryRxAnt, (pAd->RxAnt.Pair1AvgRssi[0] >> 3), (pAd->RxAnt.Pair1AvgRssi[1] >> 3), pAd->RxAnt.RcvPktNumWhenEvaluate));
|
|
|
}
|
|
|
else
|
|
|
+#endif
|
|
|
{
|
|
|
if (pAd->StaCfg.Psm == PWR_SAVE)
|
|
|
return;
|
|
@@ -8503,13 +8438,13 @@ VOID AsicRxAntEvalTimeout(
|
|
|
BBPR3 |= (0x0);
|
|
|
}
|
|
|
RTMP_BBP_IO_WRITE8_BY_REG_ID(pAd, BBP_R3, BBPR3);
|
|
|
+#ifdef RT2860
|
|
|
+ pAd->StaCfg.BBPR3 = BBPR3;
|
|
|
+#endif
|
|
|
}
|
|
|
}
|
|
|
-#endif /* RT30xx */
|
|
|
}
|
|
|
|
|
|
-
|
|
|
-
|
|
|
VOID APSDPeriodicExec(
|
|
|
IN PVOID SystemSpecific1,
|
|
|
IN PVOID FunctionContext,
|