]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/staging/rt2860/rtmp.h
Merge branch 'omap-pool'
[linux-2.6-omap-h63xx.git] / drivers / staging / rt2860 / rtmp.h
index 411954206c286d26264476ec3f3ab1ef899eeb9c..b904b7886c282cd74542b1b9075e756a0ea178d0 100644 (file)
@@ -203,9 +203,7 @@ typedef     struct _ATE_INFO {
        BOOLEAN bRxFer;
        BOOLEAN bQATxStart; // Have compiled QA in and use it to ATE tx.
        BOOLEAN bQARxStart;     // Have compiled QA in and use it to ATE rx.
-#ifdef RT2860
        BOOLEAN bFWLoading;     // Reload firmware when ATE is done.
-#endif // RT2860 //
        UINT32  RxTotalCnt;
        UINT32  RxCntPerSec;
 
@@ -366,6 +364,13 @@ typedef struct  _QUEUE_HEADER   {
 #define RTMP_TEST_FLAG(_M, _F)      (((_M)->Flags & (_F)) != 0)
 #define RTMP_TEST_FLAGS(_M, _F)     (((_M)->Flags & (_F)) == (_F))
 
+// Macro for power save flag.
+#define RTMP_SET_PSFLAG(_M, _F)       ((_M)->PSFlags |= (_F))
+#define RTMP_CLEAR_PSFLAG(_M, _F)     ((_M)->PSFlags &= ~(_F))
+#define RTMP_CLEAR_PSFLAGS(_M)        ((_M)->PSFlags = 0)
+#define RTMP_TEST_PSFLAG(_M, _F)      (((_M)->PSFlags & (_F)) != 0)
+#define RTMP_TEST_PSFLAGS(_M, _F)     (((_M)->PSFlags & (_F)) == (_F))
+
 #define OPSTATUS_SET_FLAG(_pAd, _F)     ((_pAd)->CommonCfg.OpStatusFlags |= (_F))
 #define OPSTATUS_CLEAR_FLAG(_pAd, _F)   ((_pAd)->CommonCfg.OpStatusFlags &= ~(_F))
 #define OPSTATUS_TEST_FLAG(_pAd, _F)    (((_pAd)->CommonCfg.OpStatusFlags & (_F)) != 0)
@@ -478,7 +483,6 @@ typedef struct  _QUEUE_HEADER   {
 //
 #define MAX_BUSY_COUNT  100         // Number of retry before failing access BBP & RF indirect register
 //
-#ifdef RT2860
 #define RTMP_RF_IO_WRITE32(_A, _V)                  \
 {                                                   \
     PHY_CSR4_STRUC  Value;                          \
@@ -642,7 +646,6 @@ typedef struct  _QUEUE_HEADER   {
     }                                                   \
     }                                                   \
 }
-#endif // RT2860 //
 
 
 #define     MAP_CHANNEL_ID_TO_KHZ(ch, khz)  {               \
@@ -894,7 +897,6 @@ typedef struct _RTMP_SCATTER_GATHER_LIST {
 // Enqueue this frame to MLME engine
 // We need to enqueue the whole frame because MLME need to pass data type
 // information from 802.11 header
-#ifdef RT2860
 #define REPORT_MGMT_FRAME_TO_MLME(_pAd, Wcid, _pFrame, _FrameSize, _Rssi0, _Rssi1, _Rssi2, _PlcpSignal)        \
 {                                                                                       \
     UINT32 High32TSF, Low32TSF;                                                          \
@@ -902,7 +904,6 @@ typedef struct _RTMP_SCATTER_GATHER_LIST {
     RTMP_IO_READ32(_pAd, TSF_TIMER_DW0, &Low32TSF);                                        \
     MlmeEnqueueForRecv(_pAd, Wcid, High32TSF, Low32TSF, (UCHAR)_Rssi0, (UCHAR)_Rssi1,(UCHAR)_Rssi2,_FrameSize, _pFrame, (UCHAR)_PlcpSignal);   \
 }
-#endif // RT2860 //
 
 #define NDIS_QUERY_BUFFER(_NdisBuf, _ppVA, _pBufLen)                    \
     NdisQueryBuffer(_NdisBuf, _ppVA, _pBufLen)
@@ -919,9 +920,10 @@ typedef struct _RTMP_SCATTER_GATHER_LIST {
 #define STA_PORT_SECURED(_pAd) \
 { \
        _pAd->StaCfg.PortSecured = WPA_802_1X_PORT_SECURED; \
-       NdisAcquireSpinLock(&_pAd->MacTabLock); \
+       RTMP_SET_PSFLAG(_pAd, fRTMP_PS_CAN_GO_SLEEP); \
+       NdisAcquireSpinLock(&(_pAd)->MacTabLock); \
        _pAd->MacTab.Content[BSSID_WCID].PortSecured = _pAd->StaCfg.PortSecured; \
-       NdisReleaseSpinLock(&_pAd->MacTabLock); \
+       NdisReleaseSpinLock(&(_pAd)->MacTabLock); \
 }
 #endif // CONFIG_STA_SUPPORT //
 
@@ -1000,9 +1002,7 @@ typedef struct  _RTMP_REORDERBUF
        UCHAR           DataOffset;
        USHORT          Datasize;
        ULONG                   AllocSize;
-#ifdef RT2860
        NDIS_PHYSICAL_ADDRESS   AllocPa;            // TxBuf physical address
-#endif // RT2860 //
 }   RTMP_REORDERBUF, *PRTMP_REORDERBUF;
 
 //
@@ -1101,6 +1101,7 @@ typedef struct _COUNTER_802_11 {
 
 typedef struct _COUNTER_RALINK {
        ULONG           TransmittedByteCount;   // both successful and failure, used to calculate TX throughput
+       ULONG           LastReceivedByteCount;
        ULONG           ReceivedByteCount;      // both CRC okay and CRC error, used to calculate RX throughput
        ULONG           BeenDisassociatedCount;
        ULONG           BadCQIAutoRecoveryCount;
@@ -1436,11 +1437,9 @@ typedef struct _MLME_STRUCT {
        RALINK_TIMER_STRUCT     APSDPeriodicTimer;
        RALINK_TIMER_STRUCT     LinkDownTimer;
        RALINK_TIMER_STRUCT     LinkUpTimer;
-#ifdef RT2860
     UCHAR                   bPsPollTimerRunning;
     RALINK_TIMER_STRUCT     PsPollTimer;
        RALINK_TIMER_STRUCT     RadioOnOffTimer;
-#endif // RT2860 //
        ULONG                   PeriodicRound;
        ULONG                   OneSecPeriodicRound;
 
@@ -2228,9 +2227,7 @@ typedef struct _STA_ADMIN_CONFIG {
        RT_HT_PHY_INFO                                  DesiredHtPhyInfo;
        BOOLEAN                                                 bAutoTxRateSwitch;
 
-#ifdef RT2860
     UCHAR       BBPR3;
-#endif // RT2860 //
 
 #ifdef EXT_BUILD_CHANNEL_LIST
        UCHAR                           IEEE80211dClientMode;
@@ -2663,7 +2660,6 @@ typedef struct _RTMP_ADAPTER
        PNET_DEV                                net_dev;
        ULONG                                   VirtualIfCnt;
 
-#ifdef RT2860
     USHORT                         LnkCtrlBitMask;
     USHORT                         RLnkCtrlConfiguration;
     USHORT                  RLnkCtrlOffset;
@@ -2671,7 +2667,9 @@ typedef struct _RTMP_ADAPTER
     USHORT                  HostLnkCtrlOffset;
        USHORT                      PCIePowerSaveLevel;
        BOOLEAN                                 bPCIclkOff;                                             // flag that indicate if the PICE power status in Configuration SPace..
-       BOOLEAN                                 bPCIclkOffDisableTx;                    //
+       ULONG                                   CheckDmaBusyCount;  // Check Interrupt Status Register Count.
+       USHORT                                  ThisTbttNumToNextWakeUp;
+       ULONG                                   SameRxByteCount;
 
 
 /*****************************************************************************************/
@@ -2688,7 +2686,6 @@ typedef struct _RTMP_ADAPTER
        RTMP_DMABUF             RxDescRing;                 // Shared memory for RX descriptors
        RTMP_DMABUF             TxDescRing[NUM_OF_TX_RING];     // Shared memory for Tx descriptors
        RTMP_TX_RING            TxRing[NUM_OF_TX_RING];         // AC0~4 + HCCA
-#endif // RT2860 //
 
 
        NDIS_SPIN_LOCK          irq_lock;
@@ -2721,10 +2718,8 @@ typedef struct _RTMP_ADAPTER
 /*      Rx related parameters                                                           */
 /*****************************************************************************************/
 
-#ifdef RT2860
        RTMP_RX_RING            RxRing;
        NDIS_SPIN_LOCK          RxRingLock;                 // Rx Ring spinlock
-#endif // RT2860 //
 
 
 
@@ -2895,6 +2890,7 @@ typedef struct _RTMP_ADAPTER
 
        // flags, see fRTMP_ADAPTER_xxx flags
        ULONG                   Flags;                      // Represent current device status
+       ULONG                   PSFlags;                    // Power Save operation flag.
 
        // current TX sequence #
        USHORT                  Sequence;
@@ -3181,7 +3177,6 @@ typedef struct _TX_BLK_
 //------------------------------------------------------------------------------------------
 
 
-#ifdef RT2860
 //
 // Enable & Disable NIC interrupt via writing interrupt mask register
 // Since it use ADAPTER structure, it have to be put after structure definition.
@@ -3214,7 +3209,6 @@ __inline    VOID    NICEnableInterrupt(
        //RTMP_IO_WRITE32(pAd, PBF_INT_ENA, 0x00000030); // 1 : enable
        RTMP_SET_FLAG(pAd, fRTMP_ADAPTER_INTERRUPT_ACTIVE);
 }
-#endif // RT2860 //
 
 #ifdef RT_BIG_ENDIAN
 static inline VOID     WriteBackToDescriptor(
@@ -3291,7 +3285,6 @@ static inline VOID        RTMPWIEndianChange(
                Call this function when read or update descriptor
        ========================================================================
 */
-#ifdef RT2860
 static inline VOID     RTMPDescriptorEndianChange(
        IN      PUCHAR                  pData,
        IN      ULONG                   DescriptorType)
@@ -3301,7 +3294,6 @@ static inline VOID        RTMPDescriptorEndianChange(
        *((UINT32 *)(pData +12)) = SWAP32(*((UINT32 *)(pData + 12)));   // Byte 12~15
        *((UINT32 *)(pData + 4)) = SWAP32(*((UINT32 *)(pData + 4)));                            // Byte 4~7, this must be swapped last
 }
-#endif // RT2860 //
 
 /*
        ========================================================================
@@ -3550,6 +3542,9 @@ NDIS_STATUS NICInitializeAsic(
        IN  PRTMP_ADAPTER   pAd,
        IN  BOOLEAN             bHardReset);
 
+VOID NICRestoreBBPValue(
+       IN PRTMP_ADAPTER pAd);
+
 VOID NICIssueReset(
        IN  PRTMP_ADAPTER   pAd);
 
@@ -4208,7 +4203,7 @@ VOID AsicForceSleep(
 
 VOID AsicForceWakeup(
        IN PRTMP_ADAPTER pAd,
-       IN BOOLEAN    bFromTx);
+       IN UCHAR         Level);
 #endif // CONFIG_STA_SUPPORT //
 
 VOID AsicSetBssid(
@@ -4304,11 +4299,9 @@ BOOLEAN AsicSendCommandToMcu(
        IN UCHAR         Arg0,
        IN UCHAR         Arg1);
 
-#ifdef RT2860
 BOOLEAN AsicCheckCommanOk(
        IN PRTMP_ADAPTER pAd,
        IN UCHAR                 Command);
-#endif // RT2860 //
 
 VOID MacAddrRandomBssid(
        IN  PRTMP_ADAPTER   pAd,
@@ -6978,7 +6971,6 @@ void kill_thread_task(PRTMP_ADAPTER pAd);
 
 void tbtt_tasklet(unsigned long data);
 
-#ifdef RT2860
 //
 // Function Prototype in cmm_data_2860.c
 //
@@ -7069,7 +7061,7 @@ BOOLEAN RT28xxPciAsicRadioOn(
 
 VOID RT28xxPciStaAsicForceWakeup(
        IN PRTMP_ADAPTER pAd,
-       IN BOOLEAN       bFromTx);
+       IN UCHAR         Level);
 
 VOID RT28xxPciStaAsicSleepThenAutoWakeup(
        IN PRTMP_ADAPTER pAd,
@@ -7093,7 +7085,6 @@ VOID RT28xxPciMlmeRadioOn(
 
 VOID RT28xxPciMlmeRadioOFF(
        IN PRTMP_ADAPTER pAd);
-#endif // RT2860 //
 
 VOID AsicTurnOffRFClk(
        IN PRTMP_ADAPTER    pAd,
@@ -7132,6 +7123,18 @@ PCHAR   RTMPGetRalinkEncryModeStr(
 #ifdef CONFIG_STA_SUPPORT
 VOID AsicStaBbpTuning(
        IN PRTMP_ADAPTER pAd);
+
+VOID AsicResetFromDMABusy(
+       IN PRTMP_ADAPTER pAd);
+
+VOID AsicResetBBP(
+       IN PRTMP_ADAPTER pAd);
+
+VOID AsicResetMAC(
+       IN PRTMP_ADAPTER pAd);
+
+VOID AsicResetPBF(
+       IN PRTMP_ADAPTER pAd);
 #endif // CONFIG_STA_SUPPORT //
 
 void RTMP_IndicateMediaState(