From: Bartlomiej Zolnierkiewicz Date: Sun, 23 Aug 2009 13:32:00 +0000 (+0200) Subject: Staging: rt2870: add Antenna Diversity support X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=606661ea0476fb506ca87cd41b58cbb7dc14fcc0;p=linux-beck.git Staging: rt2870: add Antenna Diversity support rt3070: * remove non-working AntDiversity config parameter * remove unused bRxAntDiversity field from COMMON_CONFIG rt2870: * propagate Antenna Diversity support from rt3070 Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/staging/rt2860/common/eeprom.c b/drivers/staging/rt2860/common/eeprom.c index fb5e52a00bfd..ffcb4ce1a034 100644 --- a/drivers/staging/rt2860/common/eeprom.c +++ b/drivers/staging/rt2860/common/eeprom.c @@ -181,14 +181,11 @@ USHORT RTMP_EEPROM_READ16( UINT32 x; USHORT data; -#ifdef RT30xx +#ifdef RT2870 if (pAd->NicConfig2.field.AntDiversity) { pAd->EepromAccess = TRUE; } -//2008/09/11:KH add to support efuse<-- -//2008/09/11:KH add to support efuse--> -{ #endif Offset /= 2; // reset bits and set EECS @@ -214,7 +211,7 @@ USHORT RTMP_EEPROM_READ16( EEpromCleanup(pAd); -#ifdef RT30xx +#ifdef RT2870 // Antenna and EEPROM access are both using EESK pin, // Therefor we should avoid accessing EESK at the same time // Then restore antenna after EEPROM access @@ -223,7 +220,6 @@ USHORT RTMP_EEPROM_READ16( pAd->EepromAccess = FALSE; AsicSetRxAnt(pAd, pAd->RxAnt.Pair1PrimaryRxAnt); } -} #endif return data; } //ReadEEprom @@ -235,14 +231,11 @@ VOID RTMP_EEPROM_WRITE16( { UINT32 x; -#ifdef RT30xx +#ifdef RT2870 if (pAd->NicConfig2.field.AntDiversity) { pAd->EepromAccess = TRUE; } - //2008/09/11:KH add to support efuse<-- -//2008/09/11:KH add to support efuse--> - { #endif Offset /= 2; @@ -278,7 +271,7 @@ VOID RTMP_EEPROM_WRITE16( EEpromCleanup(pAd); -#ifdef RT30xx +#ifdef RT2870 // Antenna and EEPROM access are both using EESK pin, // Therefor we should avoid accessing EESK at the same time // Then restore antenna after EEPROM access @@ -287,7 +280,6 @@ VOID RTMP_EEPROM_WRITE16( pAd->EepromAccess = FALSE; AsicSetRxAnt(pAd, pAd->RxAnt.Pair1PrimaryRxAnt); } -} #endif } diff --git a/drivers/staging/rt2860/common/mlme.c b/drivers/staging/rt2860/common/mlme.c index d0a3b6b70feb..9de5e240a497 100644 --- a/drivers/staging/rt2860/common/mlme.c +++ b/drivers/staging/rt2860/common/mlme.c @@ -8004,7 +8004,7 @@ CHAR RTMPMaxRssi( return larger; } -#ifdef RT30xx +#ifdef RT2870 // Antenna divesity use GPIO3 and EESK pin for control // Antenna and EEPROM access are both using EESK pin, // Therefor we should avoid accessing EESK at the same time @@ -8052,7 +8052,7 @@ VOID AsicSetRxAnt( DBGPRINT_RAW(RT_DEBUG_TRACE, ("AsicSetRxAnt, switch to aux antenna\n")); } } -#endif /* RT30xx */ +#endif /* ======================================================================== @@ -8078,7 +8078,7 @@ VOID AsicEvaluateRxAnt( fRTMP_ADAPTER_NIC_NOT_EXIST | fRTMP_ADAPTER_BSS_SCAN_IN_PROGRESS) || OPSTATUS_TEST_FLAG(pAd, fOP_STATUS_DOZE) -#ifdef RT30xx +#ifdef RT2870 || (pAd->EepromAccess) #endif ) @@ -8182,9 +8182,9 @@ VOID AsicRxAntEvalTimeout( fRTMP_ADAPTER_RADIO_OFF | fRTMP_ADAPTER_NIC_NOT_EXIST) || OPSTATUS_TEST_FLAG(pAd, fOP_STATUS_DOZE) -#ifdef RT30xx +#ifdef RT2870 || (pAd->EepromAccess) -#endif // RT30xx // +#endif ) return; diff --git a/drivers/staging/rt2860/common/rtmp_init.c b/drivers/staging/rt2860/common/rtmp_init.c index df0e1e9a8d2d..e6a43b645022 100644 --- a/drivers/staging/rt2860/common/rtmp_init.c +++ b/drivers/staging/rt2860/common/rtmp_init.c @@ -3416,7 +3416,7 @@ VOID UserCfgInit( } } -#ifdef RT30xx +#ifdef RT2870 pAd->EepromAccess = FALSE; #endif pAd->Antenna.word = 0; diff --git a/drivers/staging/rt2860/rt_profile.c b/drivers/staging/rt2860/rt_profile.c index 3df85cff4ec4..3bc41f83f624 100644 --- a/drivers/staging/rt2860/rt_profile.c +++ b/drivers/staging/rt2860/rt_profile.c @@ -1429,23 +1429,6 @@ NDIS_STATUS RTMPReadParametersHook( DBGPRINT(RT_DEBUG_TRACE, ("TGnWifiTest=%d\n", pAd->StaCfg.bTGnWifiTest)); } } - -#ifdef RT30xx - { - if(RTMPGetKeyParameter("AntDiversity", tmpbuf, 10, buffer)) - { - for (i = 0, macptr = rstrtok(tmpbuf,";"); macptr; macptr = rstrtok(NULL,";"), i++) - { - if(simple_strtol(macptr, 0, 10) != 0) //Enable - pAd->CommonCfg.bRxAntDiversity = TRUE; - else //Disable - pAd->CommonCfg.bRxAntDiversity = FALSE; - - DBGPRINT(RT_DEBUG_ERROR, ("AntDiversity=%d\n", pAd->CommonCfg.bRxAntDiversity)); - } - } - } -#endif // RT30xx // } } else diff --git a/drivers/staging/rt2860/rtmp.h b/drivers/staging/rt2860/rtmp.h index 92411246cf97..8c1737901c75 100644 --- a/drivers/staging/rt2860/rtmp.h +++ b/drivers/staging/rt2860/rtmp.h @@ -1295,7 +1295,7 @@ typedef struct _BBP_TUNING_STRUCT { typedef struct _SOFT_RX_ANT_DIVERSITY_STRUCT { UCHAR EvaluatePeriod; // 0:not evalute status, 1: evaluate status, 2: switching status -#ifdef RT30xx +#ifdef RT2870 UCHAR EvaluateStableCnt; #endif UCHAR Pair1PrimaryRxAnt; // 0:Ant-E1, 1:Ant-E2 @@ -1899,9 +1899,6 @@ typedef struct _COMMON_CONFIG { BOOLEAN NdisRadioStateOff; //For HCT 12.0, set this flag to TRUE instead of called MlmeRadioOff. ABGBAND_STATE BandState; // For setting BBP used on B/G or A mode. -#ifdef RT30xx - BOOLEAN bRxAntDiversity; // 0:disable, 1:enable Software Rx Antenna Diversity. -#endif // IEEE802.11H--DFS. RADAR_DETECT_STRUCT RadarDetect; @@ -2667,7 +2664,7 @@ typedef struct _RTMP_ADAPTER ULONG EepromVersion; // byte 0: version, byte 1: revision, byte 2~3: unused UCHAR EEPROMAddressNum; // 93c46=6 93c66=8 USHORT EEPROMDefaultValue[NUM_EEPROM_BBP_PARMS]; -#ifdef RT30xx +#ifdef RT2870 BOOLEAN EepromAccess; #endif ULONG FirmwareVersion; // byte 0: Minor version, byte 1: Major version, otherwise unused. diff --git a/drivers/staging/rt2860/sta/rtmp_data.c b/drivers/staging/rt2860/sta/rtmp_data.c index 91a98afcee17..f751ab61c438 100644 --- a/drivers/staging/rt2860/sta/rtmp_data.c +++ b/drivers/staging/rt2860/sta/rtmp_data.c @@ -575,10 +575,7 @@ VOID STAHandleRxMgmtFrame( { // We should collect RSSI not only U2M data but also my beacon - if ( -#ifdef RT30xx - pAd->RxAnt.EvaluatePeriod == 0 && -#endif + if (pAd->RxAnt.EvaluatePeriod == 0 && pHeader->FC.SubType == SUBTYPE_BEACON && MAC_ADDR_EQUAL(&pAd->CommonCfg.Bssid, &pHeader->Addr2)) { Update_Rssi_Sample(pAd, &pAd->StaCfg.RssiSample, pRxWI); @@ -587,7 +584,7 @@ VOID STAHandleRxMgmtFrame( pAd->StaCfg.LastSNR1 = (UCHAR)(pRxWI->SNR1); } -#ifdef RT30xx +#ifdef RT2870 // collect rssi information for antenna diversity if (pAd->NicConfig2.field.AntDiversity) { @@ -597,7 +594,7 @@ VOID STAHandleRxMgmtFrame( pAd->StaCfg.NumOfAvgRssiSample ++; } } -#endif // RT30xx // +#endif // First check the size, it MUST not exceed the mlme queue size if (pRxWI->MPDUtotalByteCount > MGMT_DMA_BUFFER_SIZE)