Merge branch 'for-2.6.31' of git://git.linux-nfs.org/projects/trondmy/nfs-2.6
[pandora-kernel.git] / drivers / staging / rt2860 / common / action.c
index d6f530f..a4d9fdc 100644 (file)
@@ -72,17 +72,12 @@ VOID ActionStateMachineInit(
        StateMachineSetAction(S, ACT_IDLE, MT2_PEER_QOS_CATE, (STATE_MACHINE_FUNC)PeerQOSAction);
 
        StateMachineSetAction(S, ACT_IDLE, MT2_PEER_DLS_CATE, (STATE_MACHINE_FUNC)ReservedAction);
-#ifdef QOS_DLS_SUPPORT
-               StateMachineSetAction(S, ACT_IDLE, MT2_PEER_DLS_CATE, (STATE_MACHINE_FUNC)PeerDLSAction);
-#endif // QOS_DLS_SUPPORT //
 
-#ifdef DOT11_N_SUPPORT
        StateMachineSetAction(S, ACT_IDLE, MT2_PEER_BA_CATE, (STATE_MACHINE_FUNC)PeerBAAction);
        StateMachineSetAction(S, ACT_IDLE, MT2_PEER_HT_CATE, (STATE_MACHINE_FUNC)PeerHTAction);
        StateMachineSetAction(S, ACT_IDLE, MT2_MLME_ADD_BA_CATE, (STATE_MACHINE_FUNC)MlmeADDBAAction);
        StateMachineSetAction(S, ACT_IDLE, MT2_MLME_ORI_DELBA_CATE, (STATE_MACHINE_FUNC)MlmeDELBAAction);
        StateMachineSetAction(S, ACT_IDLE, MT2_MLME_REC_DELBA_CATE, (STATE_MACHINE_FUNC)MlmeDELBAAction);
-#endif // DOT11_N_SUPPORT //
 
        StateMachineSetAction(S, ACT_IDLE, MT2_PEER_PUBLIC_CATE, (STATE_MACHINE_FUNC)PeerPublicAction);
        StateMachineSetAction(S, ACT_IDLE, MT2_PEER_RM_CATE, (STATE_MACHINE_FUNC)PeerRMAction);
@@ -92,7 +87,6 @@ VOID ActionStateMachineInit(
        StateMachineSetAction(S, ACT_IDLE, MT2_ACT_INVALID, (STATE_MACHINE_FUNC)MlmeInvalidAction);
 }
 
-#ifdef DOT11_N_SUPPORT
 VOID MlmeADDBAAction(
     IN PRTMP_ADAPTER pAd,
     IN MLME_QUEUE_ELEM *Elem)
@@ -131,21 +125,12 @@ VOID MlmeADDBAAction(
                        pBAEntry =&pAd->BATable.BAOriEntry[Idx];
                }
 
-#ifdef CONFIG_STA_SUPPORT
-               IF_DEV_CONFIG_OPMODE_ON_STA(pAd)
                {
                        if (ADHOC_ON(pAd))
                                ActHeaderInit(pAd, &Frame.Hdr, pInfo->pAddr, pAd->CurrentAddress, pAd->CommonCfg.Bssid);
                        else
-#ifdef QOS_DLS_SUPPORT
-                       if (pAd->MacTab.Content[pInfo->Wcid].ValidAsDls)
-                               ActHeaderInit(pAd, &Frame.Hdr, pInfo->pAddr, pAd->CurrentAddress, pAd->CommonCfg.Bssid);
-                       else
-#endif // QOS_DLS_SUPPORT //
                                ActHeaderInit(pAd, &Frame.Hdr, pAd->CommonCfg.Bssid, pAd->CurrentAddress, pInfo->pAddr);
-
                }
-#endif // CONFIG_STA_SUPPORT //
 
                Frame.Category = CATEGORY_BA;
                Frame.Action = ADDBA_REQ;
@@ -220,10 +205,8 @@ VOID MlmeDELBAAction(
 
                // SEND BAR (Send BAR to refresh peer reordering buffer.)
                Idx = pAd->MacTab.Content[pInfo->Wcid].BAOriWcidArray[pInfo->TID];
-#ifdef CONFIG_STA_SUPPORT
-               IF_DEV_CONFIG_OPMODE_ON_STA(pAd)
-                       BarHeaderInit(pAd, &FrameBar, pAd->MacTab.Content[pInfo->Wcid].Addr, pAd->CurrentAddress);
-#endif // CONFIG_STA_SUPPORT //
+
+               BarHeaderInit(pAd, &FrameBar, pAd->MacTab.Content[pInfo->Wcid].Addr, pAd->CurrentAddress);
 
                FrameBar.StartingSeq.field.FragNum = 0; // make sure sequence not clear in DEL funciton.
                FrameBar.StartingSeq.field.StartSeq = pAd->MacTab.Content[pInfo->Wcid].TxSeq[pInfo->TID]; // make sure sequence not clear in DEL funciton.
@@ -241,20 +224,14 @@ VOID MlmeDELBAAction(
 
                // SEND DELBA FRAME
                FrameLen = 0;
-#ifdef CONFIG_STA_SUPPORT
-               IF_DEV_CONFIG_OPMODE_ON_STA(pAd)
+
                {
                        if (ADHOC_ON(pAd))
                                ActHeaderInit(pAd, &Frame.Hdr, pAd->MacTab.Content[pInfo->Wcid].Addr, pAd->CurrentAddress, pAd->CommonCfg.Bssid);
                        else
-#ifdef QOS_DLS_SUPPORT
-                       if (pAd->MacTab.Content[pInfo->Wcid].ValidAsDls)
-                               ActHeaderInit(pAd, &Frame.Hdr, pAd->MacTab.Content[pInfo->Wcid].Addr, pAd->CurrentAddress, pAd->CommonCfg.Bssid);
-                       else
-#endif // QOS_DLS_SUPPORT //
                                ActHeaderInit(pAd, &Frame.Hdr,  pAd->CommonCfg.Bssid, pAd->CurrentAddress, pAd->MacTab.Content[pInfo->Wcid].Addr);
                }
-#endif // CONFIG_STA_SUPPORT //
+
                Frame.Category = CATEGORY_BA;
                Frame.Action = DELBA;
                Frame.DelbaParm.Initiator = pInfo->Initiator;
@@ -271,7 +248,6 @@ VOID MlmeDELBAAction(
                DBGPRINT(RT_DEBUG_TRACE, ("BA - MlmeDELBAAction() . 3 DELBA sent. Initiator(%d)\n", pInfo->Initiator));
        }
 }
-#endif // DOT11_N_SUPPORT //
 
 VOID MlmeQOSAction(
     IN PRTMP_ADAPTER pAd,
@@ -299,40 +275,6 @@ VOID PeerQOSAction(
 {
 }
 
-#ifdef QOS_DLS_SUPPORT
-VOID PeerDLSAction(
-       IN PRTMP_ADAPTER pAd,
-       IN MLME_QUEUE_ELEM *Elem)
-{
-       UCHAR   Action = Elem->Msg[LENGTH_802_11+1];
-
-       switch(Action)
-       {
-               case ACTION_DLS_REQUEST:
-#ifdef CONFIG_STA_SUPPORT
-                       IF_DEV_CONFIG_OPMODE_ON_STA(pAd)
-                       PeerDlsReqAction(pAd, Elem);
-#endif // CONFIG_STA_SUPPORT //
-                       break;
-
-               case ACTION_DLS_RESPONSE:
-#ifdef CONFIG_STA_SUPPORT
-                       IF_DEV_CONFIG_OPMODE_ON_STA(pAd)
-                       PeerDlsRspAction(pAd, Elem);
-#endif // CONFIG_STA_SUPPORT //
-                       break;
-
-               case ACTION_DLS_TEARDOWN:
-#ifdef CONFIG_STA_SUPPORT
-                       IF_DEV_CONFIG_OPMODE_ON_STA(pAd)
-                       PeerDlsTearDownAction(pAd, Elem);
-#endif // CONFIG_STA_SUPPORT //
-                       break;
-       }
-}
-#endif // QOS_DLS_SUPPORT //
-
-#ifdef DOT11_N_SUPPORT
 VOID PeerBAAction(
        IN PRTMP_ADAPTER pAd,
        IN MLME_QUEUE_ELEM *Elem)
@@ -353,320 +295,12 @@ VOID PeerBAAction(
        }
 }
 
-
-#ifdef DOT11N_DRAFT3
-
-#ifdef CONFIG_STA_SUPPORT
-VOID StaPublicAction(
-       IN PRTMP_ADAPTER pAd,
-       IN UCHAR Bss2040Coexist)
-{
-       BSS_2040_COEXIST_IE             BssCoexist;
-       MLME_SCAN_REQ_STRUCT                    ScanReq;
-
-       BssCoexist.word = Bss2040Coexist;
-       // AP asks Station to return a 20/40 BSS Coexistence mgmt frame.  So we first starts a scan, then send back 20/40 BSS Coexistence mgmt frame
-       if ((BssCoexist.field.InfoReq == 1) && (OPSTATUS_TEST_FLAG(pAd, fOP_STATUS_SCAN_2040)))
-       {
-               // Clear record first.  After scan , will update those bit and send back to transmiter.
-               pAd->CommonCfg.BSSCoexist2040.field.InfoReq = 1;
-               pAd->CommonCfg.BSSCoexist2040.field.Intolerant40 = 0;
-               pAd->CommonCfg.BSSCoexist2040.field.BSS20WidthReq = 0;
-               // Fill out stuff for scan request
-               ScanParmFill(pAd, &ScanReq, ZeroSsid, 0, BSS_ANY, SCAN_2040_BSS_COEXIST);
-               MlmeEnqueue(pAd, SYNC_STATE_MACHINE, MT2_MLME_SCAN_REQ, sizeof(MLME_SCAN_REQ_STRUCT), &ScanReq);
-               pAd->Mlme.CntlMachine.CurrState = CNTL_WAIT_OID_LIST_SCAN;
-       }
-}
-
-
-/*
-Description : Build Intolerant Channel Rerpot from Trigger event table.
-return : how many bytes copied.
-*/
-ULONG BuildIntolerantChannelRep(
-       IN      PRTMP_ADAPTER   pAd,
-       IN    PUCHAR  pDest)
-{
-       ULONG                   FrameLen = 0;
-       ULONG                   ReadOffset = 0;
-       UCHAR                   i;
-       UCHAR                   LastRegClass = 0xff;
-       PUCHAR                  pLen;
-
-       for ( i = 0;i < MAX_TRIGGER_EVENT;i++)
-       {
-               if (pAd->CommonCfg.TriggerEventTab.EventA[i].bValid == TRUE)
-               {
-                       if (pAd->CommonCfg.TriggerEventTab.EventA[i].RegClass == LastRegClass)
-                       {
-                               *(pDest + ReadOffset) = (UCHAR)pAd->CommonCfg.TriggerEventTab.EventA[i].Channel;
-                               *pLen++;
-                               ReadOffset++;
-                               FrameLen++;
-                       }
-                       else
-                       {
-                               *(pDest + ReadOffset) = IE_2040_BSS_INTOLERANT_REPORT;  // IE
-                               *(pDest + ReadOffset + 1) = 2;  // Len = RegClass byte + channel byte.
-                               pLen = pDest + ReadOffset + 1;
-                               LastRegClass = pAd->CommonCfg.TriggerEventTab.EventA[i].RegClass;
-                               *(pDest + ReadOffset + 2) = LastRegClass;       // Len = RegClass byte + channel byte.
-                               *(pDest + ReadOffset + 3) = (UCHAR)pAd->CommonCfg.TriggerEventTab.EventA[i].Channel;
-                               FrameLen += 4;
-                               ReadOffset += 4;
-                       }
-
-               }
-       }
-       return FrameLen;
-}
-
-
-/*
-Description : Send 20/40 BSS Coexistence Action frame If one trigger event is triggered.
-*/
-VOID Send2040CoexistAction(
-       IN      PRTMP_ADAPTER   pAd,
-       IN    UCHAR  Wcid,
-       IN      BOOLEAN bAddIntolerantCha)
-{
-       PUCHAR                  pOutBuffer = NULL;
-       NDIS_STATUS     NStatus;
-       FRAME_ACTION_HDR        Frame;
-       ULONG                   FrameLen;
-       ULONG                   IntolerantChaRepLen;
-
-       IntolerantChaRepLen = 0;
-       NStatus = MlmeAllocateMemory(pAd, &pOutBuffer);  //Get an unused nonpaged memory
-       if(NStatus != NDIS_STATUS_SUCCESS)
-       {
-               DBGPRINT(RT_DEBUG_ERROR,("ACT - Send2040CoexistAction() allocate memory failed \n"));
-               return;
-       }
-       ActHeaderInit(pAd, &Frame.Hdr, pAd->MacTab.Content[Wcid].Addr, pAd->CommonCfg.Bssid);
-       Frame.Category = CATEGORY_PUBLIC;
-       Frame.Action = ACTION_BSS_2040_COEXIST;
-
-       MakeOutgoingFrame(pOutBuffer,                           &FrameLen,
-                                 sizeof(FRAME_ACTION_HDR),       &Frame,
-                                 END_OF_ARGS);
-
-       *(pOutBuffer + FrameLen) = pAd->CommonCfg.BSSCoexist2040.word;
-       FrameLen++;
-
-       if (bAddIntolerantCha == TRUE)
-               IntolerantChaRepLen = BuildIntolerantChannelRep(pAd, pOutBuffer + FrameLen);
-
-       MiniportMMRequest(pAd, QID_AC_BE, pOutBuffer, FrameLen + IntolerantChaRepLen);
-       DBGPRINT(RT_DEBUG_ERROR,("ACT - Send2040CoexistAction( BSSCoexist2040 = 0x%x )  \n", pAd->CommonCfg.BSSCoexist2040.word));
-
-}
-
-
-/*
-       ==========================================================================
-       Description:
-       After scan, Update 20/40 BSS Coexistence IE and send out.
-       According to 802.11n D3.03 11.14.10
-
-       Parameters:
-       ==========================================================================
- */
-VOID Update2040CoexistFrameAndNotify(
-       IN      PRTMP_ADAPTER   pAd,
-       IN    UCHAR  Wcid,
-       IN      BOOLEAN bAddIntolerantCha)
-{
-       BSS_2040_COEXIST_IE     OldValue;
-
-       OldValue.word = pAd->CommonCfg.BSSCoexist2040.word;
-       if ((pAd->CommonCfg.TriggerEventTab.EventANo > 0) || (pAd->CommonCfg.TriggerEventTab.EventBCountDown > 0))
-               pAd->CommonCfg.BSSCoexist2040.field.BSS20WidthReq = 1;
-
-       // Need to check !!!!
-       // How STA will set Intolerant40 if implementation dependent. Now we don't set this bit first.!!!!!
-       // So Only check BSS20WidthReq change.
-       if (OldValue.field.BSS20WidthReq != pAd->CommonCfg.BSSCoexist2040.field.BSS20WidthReq)
-       {
-               Send2040CoexistAction(pAd, Wcid, bAddIntolerantCha);
-       }
-}
-#endif // CONFIG_STA_SUPPORT //
-
-
-BOOLEAN ChannelSwitchSanityCheck(
-       IN      PRTMP_ADAPTER   pAd,
-       IN    UCHAR  Wcid,
-       IN    UCHAR  NewChannel,
-       IN    UCHAR  Secondary)
-{
-       UCHAR           i;
-
-       if (Wcid >= MAX_LEN_OF_MAC_TABLE)
-               return FALSE;
-
-       if ((NewChannel > 7) && (Secondary == 1))
-               return FALSE;
-
-       if ((NewChannel < 5) && (Secondary == 3))
-               return FALSE;
-
-       // 0. Check if new channel is in the channellist.
-       for (i = 0;i < pAd->ChannelListNum;i++)
-       {
-               if (pAd->ChannelList[i].Channel == NewChannel)
-               {
-                       break;
-               }
-       }
-
-       if (i == pAd->ChannelListNum)
-               return FALSE;
-
-       return TRUE;
-}
-
-
-VOID ChannelSwitchAction(
-       IN      PRTMP_ADAPTER   pAd,
-       IN    UCHAR  Wcid,
-       IN    UCHAR  NewChannel,
-       IN    UCHAR  Secondary)
-{
-       UCHAR           BBPValue = 0;
-       ULONG           MACValue;
-
-       DBGPRINT(RT_DEBUG_TRACE,("SPECTRUM - ChannelSwitchAction(NewChannel = %d , Secondary = %d)  \n", NewChannel, Secondary));
-
-       if (ChannelSwitchSanityCheck(pAd, Wcid, NewChannel, Secondary) == FALSE)
-               return;
-
-       // 1.  Switches to BW = 20.
-       if (Secondary == 0)
-       {
-               RTMP_BBP_IO_READ8_BY_REG_ID(pAd, BBP_R4, &BBPValue);
-               BBPValue&= (~0x18);
-               RTMP_BBP_IO_WRITE8_BY_REG_ID(pAd, BBP_R4, BBPValue);
-               if (pAd->MACVersion == 0x28600100)
-               {
-                       RTMP_BBP_IO_WRITE8_BY_REG_ID(pAd, BBP_R69, 0x16);
-                       RTMP_BBP_IO_WRITE8_BY_REG_ID(pAd, BBP_R70, 0x08);
-                       RTMP_BBP_IO_WRITE8_BY_REG_ID(pAd, BBP_R73, 0x11);
-                       DBGPRINT(RT_DEBUG_TRACE, ("!!!rt2860C !!! \n" ));
-               }
-               pAd->CommonCfg.BBPCurrentBW = BW_20;
-               pAd->CommonCfg.Channel = NewChannel;
-               pAd->CommonCfg.CentralChannel = pAd->CommonCfg.Channel;
-               AsicSwitchChannel(pAd, pAd->CommonCfg.Channel,FALSE);
-               AsicLockChannel(pAd, pAd->CommonCfg.Channel);
-               pAd->MacTab.Content[Wcid].HTPhyMode.field.BW = 0;
-               DBGPRINT(RT_DEBUG_TRACE, ("!!!20MHz   !!! \n" ));
-       }
-       // 1.  Switches to BW = 40 And Station supports BW = 40.
-       else if (((Secondary == 1) || (Secondary == 3)) && (pAd->CommonCfg.HtCapability.HtCapInfo.ChannelWidth == 1))
-       {
-               pAd->CommonCfg.Channel = NewChannel;
-
-               if (Secondary == 1)
-               {
-                       // Secondary above.
-                       pAd->CommonCfg.CentralChannel = pAd->CommonCfg.Channel + 2;
-                       RTMP_IO_READ32(pAd, TX_BAND_CFG, &MACValue);
-                       MACValue &= 0xfe;
-                       RTMP_IO_WRITE32(pAd, TX_BAND_CFG, MACValue);
-                       RTMP_BBP_IO_READ8_BY_REG_ID(pAd, BBP_R4, &BBPValue);
-                       BBPValue&= (~0x18);
-                       BBPValue|= (0x10);
-                       RTMP_BBP_IO_WRITE8_BY_REG_ID(pAd, BBP_R4, BBPValue);
-                       RTMP_BBP_IO_READ8_BY_REG_ID(pAd, BBP_R3, &BBPValue);
-                       BBPValue&= (~0x20);
-                       RTMP_BBP_IO_WRITE8_BY_REG_ID(pAd, BBP_R3, BBPValue);
-                       DBGPRINT(RT_DEBUG_TRACE, ("!!!40MHz Lower LINK UP !!! Control Channel at Below. Central = %d \n", pAd->CommonCfg.CentralChannel ));
-               }
-               else
-               {
-                       // Secondary below.
-                       pAd->CommonCfg.CentralChannel = pAd->CommonCfg.Channel - 2;
-                       RTMP_IO_READ32(pAd, TX_BAND_CFG, &MACValue);
-                       MACValue &= 0xfe;
-                       MACValue |= 0x1;
-                       RTMP_IO_WRITE32(pAd, TX_BAND_CFG, MACValue);
-                       RTMP_BBP_IO_READ8_BY_REG_ID(pAd, BBP_R4, &BBPValue);
-                       BBPValue&= (~0x18);
-                       BBPValue|= (0x10);
-                       RTMP_BBP_IO_WRITE8_BY_REG_ID(pAd, BBP_R4, BBPValue);
-                       RTMP_BBP_IO_READ8_BY_REG_ID(pAd, BBP_R3, &BBPValue);
-                       BBPValue&= (~0x20);
-                       BBPValue|= (0x20);
-                       RTMP_BBP_IO_WRITE8_BY_REG_ID(pAd, BBP_R3, BBPValue);
-                       DBGPRINT(RT_DEBUG_TRACE, ("!!!40MHz Upper LINK UP !!! Control Channel at UpperCentral = %d \n", pAd->CommonCfg.CentralChannel ));
-               }
-               pAd->CommonCfg.BBPCurrentBW = BW_40;
-               AsicSwitchChannel(pAd, pAd->CommonCfg.CentralChannel, FALSE);
-               AsicLockChannel(pAd, pAd->CommonCfg.CentralChannel);
-               pAd->MacTab.Content[Wcid].HTPhyMode.field.BW = 1;
-       }
-}
-#endif // DOT11N_DRAFT3 //
-#endif // DOT11_N_SUPPORT //
-
 VOID PeerPublicAction(
        IN PRTMP_ADAPTER pAd,
        IN MLME_QUEUE_ELEM *Elem)
 {
-#ifdef DOT11N_DRAFT3
-       UCHAR   Action = Elem->Msg[LENGTH_802_11+1];
-#endif // DOT11N_DRAFT3 //
-
        if (Elem->Wcid >= MAX_LEN_OF_MAC_TABLE)
                return;
-
-#ifdef DOT11N_DRAFT3
-       switch(Action)
-       {
-               case ACTION_BSS_2040_COEXIST:   // Format defined in IEEE 7.4.7a.1 in 11n Draf3.03
-                       {
-                               //UCHAR BssCoexist;
-                               BSS_2040_COEXIST_ELEMENT                *pCoexistInfo;
-                               BSS_2040_COEXIST_IE                     *pBssCoexistIe;
-                               BSS_2040_INTOLERANT_CH_REPORT   *pIntolerantReport = NULL;
-
-                               if (Elem->MsgLen <= (LENGTH_802_11 + sizeof(BSS_2040_COEXIST_ELEMENT)) )
-                               {
-                                       DBGPRINT(RT_DEBUG_ERROR, ("ACTION - 20/40 BSS Coexistence Management Frame length too short! len = %ld!\n", Elem->MsgLen));
-                                       break;
-                               }
-                               DBGPRINT(RT_DEBUG_TRACE, ("ACTION - 20/40 BSS Coexistence Management action----> \n"));
-                               hex_dump("CoexistenceMgmtFrame", Elem->Msg, Elem->MsgLen);
-
-
-                               pCoexistInfo = (BSS_2040_COEXIST_ELEMENT *) &Elem->Msg[LENGTH_802_11+2];
-                               //hex_dump("CoexistInfo", (PUCHAR)pCoexistInfo, sizeof(BSS_2040_COEXIST_ELEMENT));
-                               if (Elem->MsgLen >= (LENGTH_802_11 + sizeof(BSS_2040_COEXIST_ELEMENT) + sizeof(BSS_2040_INTOLERANT_CH_REPORT)))
-                               {
-                                       pIntolerantReport = (BSS_2040_INTOLERANT_CH_REPORT *)((PUCHAR)pCoexistInfo + sizeof(BSS_2040_COEXIST_ELEMENT));
-                               }
-                               //hex_dump("IntolerantReport ", (PUCHAR)pIntolerantReport, sizeof(BSS_2040_INTOLERANT_CH_REPORT));
-
-                               pBssCoexistIe = (BSS_2040_COEXIST_IE *)(&pCoexistInfo->BssCoexistIe);
-
-#ifdef CONFIG_STA_SUPPORT
-                               IF_DEV_CONFIG_OPMODE_ON_STA(pAd)
-                               {
-                                       if (INFRA_ON(pAd))
-                                       {
-                                               StaPublicAction(pAd, pCoexistInfo);
-                                       }
-                               }
-#endif // CONFIG_STA_SUPPORT //
-
-                       }
-                       break;
-       }
-
-#endif // DOT11N_DRAFT3 //
-
 }
 
 
@@ -694,7 +328,6 @@ VOID PeerRMAction(
        return;
 }
 
-#ifdef DOT11_N_SUPPORT
 static VOID respond_ht_information_exchange_action(
        IN PRTMP_ADAPTER pAd,
        IN MLME_QUEUE_ELEM *Elem)
@@ -721,15 +354,12 @@ static VOID respond_ht_information_exchange_action(
 
        NdisZeroMemory(&HTINFOframe, sizeof(FRAME_HT_INFO));
        // 2-1. Prepare ADDBA Response frame.
-#ifdef CONFIG_STA_SUPPORT
-       IF_DEV_CONFIG_OPMODE_ON_STA(pAd)
        {
                if (ADHOC_ON(pAd))
                        ActHeaderInit(pAd, &HTINFOframe.Hdr, pAddr, pAd->CurrentAddress, pAd->CommonCfg.Bssid);
                else
                        ActHeaderInit(pAd, &HTINFOframe.Hdr, pAd->CommonCfg.Bssid, pAd->CurrentAddress, pAddr);
        }
-#endif // CONFIG_STA_SUPPORT //
 
        HTINFOframe.Category = CATEGORY_HT;
        HTINFOframe.Action = HT_INFO_EXCHANGE;
@@ -745,51 +375,6 @@ static VOID respond_ht_information_exchange_action(
        MlmeFreeMemory(pAd, pOutBuffer);
 }
 
-
-#ifdef DOT11N_DRAFT3
-VOID SendNotifyBWActionFrame(
-       IN PRTMP_ADAPTER pAd,
-       IN UCHAR  Wcid,
-       IN UCHAR apidx)
-{
-       PUCHAR                  pOutBuffer = NULL;
-       NDIS_STATUS     NStatus;
-       FRAME_ACTION_HDR        Frame;
-       ULONG                   FrameLen;
-       PUCHAR                  pAddr1;
-
-
-       NStatus = MlmeAllocateMemory(pAd, &pOutBuffer);  //Get an unused nonpaged memory
-       if(NStatus != NDIS_STATUS_SUCCESS)
-       {
-               DBGPRINT(RT_DEBUG_ERROR,("ACT - SendNotifyBWAction() allocate memory failed \n"));
-               return;
-       }
-
-       if (Wcid == MCAST_WCID)
-               pAddr1 = &BROADCAST_ADDR[0];
-       else
-               pAddr1 = pAd->MacTab.Content[Wcid].Addr;
-       ActHeaderInit(pAd, &Frame.Hdr, pAddr1, pAd->ApCfg.MBSSID[apidx].Bssid, pAd->ApCfg.MBSSID[apidx].Bssid);
-
-       Frame.Category = CATEGORY_HT;
-       Frame.Action = NOTIFY_BW_ACTION;
-
-       MakeOutgoingFrame(pOutBuffer,                           &FrameLen,
-                                 sizeof(FRAME_ACTION_HDR),       &Frame,
-                                 END_OF_ARGS);
-
-       *(pOutBuffer + FrameLen) = pAd->CommonCfg.AddHTInfo.AddHtInfo.RecomWidth;
-       FrameLen++;
-
-
-       MiniportMMRequest(pAd, QID_AC_BE, pOutBuffer, FrameLen);
-       DBGPRINT(RT_DEBUG_TRACE,("ACT - SendNotifyBWAction(NotifyBW= %d)!\n", pAd->CommonCfg.AddHTInfo.AddHtInfo.RecomWidth));
-
-}
-#endif // DOT11N_DRAFT3 //
-
-
 VOID PeerHTAction(
        IN PRTMP_ADAPTER pAd,
        IN MLME_QUEUE_ELEM *Elem)
@@ -803,7 +388,7 @@ VOID PeerHTAction(
        {
                case NOTIFY_BW_ACTION:
                        DBGPRINT(RT_DEBUG_TRACE,("ACTION - HT Notify Channel bandwidth action----> \n"));
-#ifdef CONFIG_STA_SUPPORT
+
                        if(pAd->StaActive.SupportedPhyInfo.bHtEnable == FALSE)
                        {
                                // Note, this is to patch DIR-1353 AP. When the AP set to Wep, it will use legacy mode. But AP still keeps
@@ -813,7 +398,6 @@ VOID PeerHTAction(
                                                                Elem->Msg[LENGTH_802_11+2] ));
                                break;
                        }
-#endif // CONFIG_STA_SUPPORT //
 
                        if (Elem->Msg[LENGTH_802_11+2] == 0)    // 7.4.8.2. if value is 1, keep the same as supported channel bandwidth.
                                pAd->MacTab.Content[Elem->Wcid].HTPhyMode.field.BW = 0;
@@ -881,11 +465,6 @@ VOID ORIBATimerTimeout(
        INT                     i, total;
        UCHAR                   TID;
 
-#ifdef RALINK_ATE
-       if (ATE_ON(pAd))
-               return;
-#endif // RALINK_ATE //
-
        total = pAd->MacTab.Size * NUM_OF_TID;
 
        for (i = 1; ((i <MAX_LEN_OF_BA_ORI_TABLE) && (total > 0)) ; i++)
@@ -938,10 +517,8 @@ VOID SendRefreshBAR(
                        }
 
                        Sequence = pEntry->TxSeq[TID];
-#ifdef CONFIG_STA_SUPPORT
-                       IF_DEV_CONFIG_OPMODE_ON_STA(pAd)
-                               BarHeaderInit(pAd, &FrameBar, pEntry->Addr, pAd->CurrentAddress);
-#endif // CONFIG_STA_SUPPORT //
+
+                       BarHeaderInit(pAd, &FrameBar, pEntry->Addr, pAd->CurrentAddress);
 
                        FrameBar.StartingSeq.field.FragNum = 0; // make sure sequence not clear in DEL function.
                        FrameBar.StartingSeq.field.StartSeq = Sequence; // make sure sequence not clear in DEL funciton.
@@ -950,15 +527,20 @@ VOID SendRefreshBAR(
                        MakeOutgoingFrame(pOutBuffer,                           &FrameLen,
                                                          sizeof(FRAME_BAR),      &FrameBar,
                                                          END_OF_ARGS);
+
                        if (1)  // Now we always send BAR.
                        {
+#ifndef RT30xx
                                MiniportMMRequest(pAd, 0, pOutBuffer, FrameLen);
+#endif
+#ifdef RT30xx
+                               MiniportMMRequest(pAd, QID_AC_BE, pOutBuffer, FrameLen);
+#endif
                        }
                        MlmeFreeMemory(pAd, pOutBuffer);
                }
        }
 }
-#endif // DOT11_N_SUPPORT //
 
 VOID ActHeaderInit(
     IN PRTMP_ADAPTER   pAd,