本文整理汇总了C++中ATE_ON函数的典型用法代码示例。如果您正苦于以下问题:C++ ATE_ON函数的具体用法?C++ ATE_ON怎么用?C++ ATE_ON使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了ATE_ON函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: RTUSBKickBulkOut
/*
========================================================================
Routine Description:
Arguments:
Return Value:
Note:
========================================================================
*/
VOID RTUSBKickBulkOut(
IN PRTMP_ADAPTER pAd)
{
/* BulkIn Reset will reset whole USB PHY. So we need to make sure fRTMP_ADAPTER_BULKIN_RESET not flaged.*/
if (!RTMP_TEST_FLAG(pAd ,fRTMP_ADAPTER_NEED_STOP_TX)
#ifdef RALINK_ATE
&& !(ATE_ON(pAd))
#endif /* RALINK_ATE */
)
{
/* 2. PS-Poll frame is next*/
if (RTUSB_TEST_BULK_FLAG(pAd, fRTUSB_BULK_OUT_PSPOLL))
{
RTUSBBulkOutPsPoll(pAd);
}
/* 5. Mlme frame is next*/
else if ((RTUSB_TEST_BULK_FLAG(pAd, fRTUSB_BULK_OUT_MLME)) ||
(pAd->MgmtRing.TxSwFreeIdx < MGMT_RING_SIZE))
{
RTUSBBulkOutMLMEPacket(pAd, pAd->MgmtRing.TxDmaIdx);
}
/* 6. Data frame normal is next [BE, BK, VI, VO]*/
RTUSBDataBulkOut(pAd, fRTUSB_BULK_OUT_DATA_NORMAL, EDCA_AC0_PIPE);
RTUSBDataBulkOut(pAd, fRTUSB_BULK_OUT_DATA_NORMAL_2, EDCA_AC1_PIPE);
RTUSBDataBulkOut(pAd, fRTUSB_BULK_OUT_DATA_NORMAL_3, EDCA_AC2_PIPE);
RTUSBDataBulkOut(pAd, fRTUSB_BULK_OUT_DATA_NORMAL_4, EDCA_AC3_PIPE);
/* 7. Null frame is the last*/
if (RTUSB_TEST_BULK_FLAG(pAd, fRTUSB_BULK_OUT_DATA_NULL))
{
{
RTUSBBulkOutNullFrame(pAd);
}
}
/* 8. No data avaliable*/
else
{
}
}
#ifdef RALINK_ATE
else if((ATE_ON(pAd)) &&
!RTMP_TEST_FLAG(pAd , fRTMP_ADAPTER_NEED_STOP_TX))
{
if (RTUSB_TEST_BULK_FLAG(pAd, fRTUSB_BULK_OUT_DATA_ATE))
{
ATE_RTUSBBulkOutDataPacket(pAd, EDCA_AC0_PIPE);
}
}
#endif /* RALINK_ATE */
}
示例2: APAsicEvaluateRxAnt
/*
========================================================================
Routine Description:
Periodic evaluate antenna link status
Arguments:
pAd - Adapter pointer
Return Value:
None
========================================================================
*/
VOID APAsicEvaluateRxAnt(
IN PRTMP_ADAPTER pAd)
{
UCHAR BBPR3 = 0;
ULONG TxTotalCnt;
#ifdef RALINK_ATE
if (ATE_ON(pAd))
return;
#endif /* RALINK_ATE */
#ifdef CARRIER_DETECTION_SUPPORT
if(pAd->CommonCfg.CarrierDetect.CD_State == CD_SILENCE)
return;
#endif /* CARRIER_DETECTION_SUPPORT */
RTMP_BBP_IO_READ8_BY_REG_ID(pAd, BBP_R3, &BBPR3);
BBPR3 &= (~0x18);
if((pAd->Antenna.field.RxPath == 3)
#ifdef DOT11_N_SUPPORT
#ifdef GREENAP_SUPPORT
&& (pAd->ApCfg.bGreenAPActive == FALSE)
#endif /* GREENAP_SUPPORT */
#endif /* DOT11_N_SUPPORT */
)
{
BBPR3 |= (0x10);
}
else if((pAd->Antenna.field.RxPath == 2)
#ifdef DOT11_N_SUPPORT
#ifdef GREENAP_SUPPORT
&& (pAd->ApCfg.bGreenAPActive == FALSE)
#endif /* GREENAP_SUPPORT */
#endif /* DOT11_N_SUPPORT */
)
{
BBPR3 |= (0x8);
}
else if(pAd->Antenna.field.RxPath == 1)
{
BBPR3 |= (0x0);
}
RTMP_BBP_IO_WRITE8_BY_REG_ID(pAd, BBP_R3, BBPR3);
TxTotalCnt = pAd->RalinkCounters.OneSecTxNoRetryOkCount +
pAd->RalinkCounters.OneSecTxRetryOkCount +
pAd->RalinkCounters.OneSecTxFailCount;
if (TxTotalCnt > 50)
{
RTMPSetTimer(&pAd->Mlme.RxAntEvalTimer, 20);
pAd->Mlme.bLowThroughput = FALSE;
}
else
{
RTMPSetTimer(&pAd->Mlme.RxAntEvalTimer, 300);
pAd->Mlme.bLowThroughput = TRUE;
}
}
示例3: ORIBATimerTimeout
/*
==========================================================================
Description:
Retry sending ADDBA Reqest.
IRQL = DISPATCH_LEVEL
Parametrs:
p8023Header: if this is already 802.3 format, p8023Header is NULL
Return : TRUE if put into rx reordering buffer, shouldn't indicaterxhere.
FALSE , then continue indicaterx at this moment.
==========================================================================
*/
VOID ORIBATimerTimeout(RTMP_ADAPTER *pAd)
{
//MAC_TABLE_ENTRY *pEntry;
INT i, total;
//UCHAR TID;
#ifdef CONFIG_ATE
if (ATE_ON(pAd))
return;
#endif /* CONFIG_ATE */
total = pAd->MacTab.Size * NUM_OF_TID;
for (i = 1; ((i <MAX_LEN_OF_BA_ORI_TABLE) && (total > 0)) ; i++)
{
if (pAd->BATable.BAOriEntry[i].ORI_BA_Status == Originator_Done)
{
//pEntry = &pAd->MacTab.Content[pAd->BATable.BAOriEntry[i].Wcid];
//TID = pAd->BATable.BAOriEntry[i].TID;
ASSERT(pAd->BATable.BAOriEntry[i].Wcid < MAX_LEN_OF_MAC_TABLE);
}
total --;
}
}
示例4: MBSS_VirtualIF_PacketSend
/*
========================================================================
Routine Description:
Send a packet to WLAN.
Arguments:
pPktSrc points to our adapter
pDev which WLAN network interface
Return Value:
0: transmit successfully
otherwise: transmit fail
Note:
========================================================================
*/
INT MBSS_VirtualIF_PacketSend(
IN PNDIS_PACKET pPktSrc,
IN PNET_DEV pDev)
{
RTMP_ADAPTER *pAd;
MULTISSID_STRUCT *pMbss;
PNDIS_PACKET pPkt = (PNDIS_PACKET)pPktSrc;
INT IdBss;
pAd = RTMP_OS_NETDEV_GET_PRIV(pDev);
ASSERT(pAd);
#ifdef RALINK_ATE
if (ATE_ON(pAd))
{
RELEASE_NDIS_PACKET(pAd, pPkt, NDIS_STATUS_FAILURE);
return 0;
}
#endif // RALINK_ATE //
if ((RTMP_TEST_FLAG(pAd, fRTMP_ADAPTER_BSS_SCAN_IN_PROGRESS)) ||
(RTMP_TEST_FLAG(pAd, fRTMP_ADAPTER_RADIO_OFF)) ||
(RTMP_TEST_FLAG(pAd, fRTMP_ADAPTER_RESET_IN_PROGRESS)))
{
/* wlan is scanning/disabled/reset */
RELEASE_NDIS_PACKET(pAd, pPkt, NDIS_STATUS_FAILURE);
return 0;
}
if(!(RTMP_OS_NETDEV_STATE_RUNNING(pDev)))
{
/* the interface is down */
RELEASE_NDIS_PACKET(pAd, pPkt, NDIS_STATUS_FAILURE);
return 0;
}
/* 0 is main BSS, dont handle it here */
/* FIRST_MBSSID = 1 */
pMbss = pAd->ApCfg.MBSSID;
for(IdBss=FIRST_MBSSID; IdBss<pAd->ApCfg.BssidNum; IdBss++)
{
/* find the device in our MBSS list */
if (pMbss[IdBss].MSSIDDev == pDev)
{
NdisZeroMemory((PUCHAR)&(RTPKT_TO_OSPKT(pPktSrc))->cb[CB_OFF], 15);
RTMP_SET_PACKET_NET_DEVICE_MBSSID(pPktSrc, IdBss);
// SET_OS_PKT_NETDEV(pPktSrc, pDev); /* MBSS used original interface for TX */
/* transmit the packet */
return rt28xx_packet_xmit(pPktSrc);
}
}
/* can not find the BSS so discard the packet */
RELEASE_NDIS_PACKET(pAd, pPkt, NDIS_STATUS_FAILURE);
return 0;
} /* End of MBSS_VirtualIF_PacketSend */
示例5: rt28xx_packet_xmit
/*
========================================================================
Routine Description:
The entry point for Linux kernel sent packet to our driver.
Arguments:
sk_buff *skb the pointer refer to a sk_buffer.
Return Value:
0
Note:
This function is the entry point of Tx Path for Os delivery packet to
our driver. You only can put OS-depened & STA/AP common handle procedures
in here.
========================================================================
*/
int rt28xx_packet_xmit(struct sk_buff *skb)
{
struct net_device *net_dev = skb->dev;
PRTMP_ADAPTER pAd = NULL;
int status = 0;
PNDIS_PACKET pPacket = (PNDIS_PACKET) skb;
GET_PAD_FROM_NET_DEV(pAd, net_dev);
/* RT2870STA does this in RTMPSendPackets() */
#ifdef RALINK_ATE
if (ATE_ON(pAd))
{
RELEASE_NDIS_PACKET(pAd, pPacket, NDIS_STATUS_RESOURCES);
return 0;
}
#endif // RALINK_ATE //
// EapolStart size is 18
if (skb->len < 14)
{
//printk("bad packet size: %d\n", pkt->len);
hex_dump("bad packet", skb->data, skb->len);
RELEASE_NDIS_PACKET(pAd, pPacket, NDIS_STATUS_FAILURE);
goto done;
}
#if !defined(CONFIG_RA_NAT_NONE) // ASUS EXT
/* add tx hook point*/
if(ra_sw_nat_hook_tx!= NULL)
{
unsigned long flags;
ra_sw_nat_hook_tx(pPacket);
}
#endif
RTMP_SET_PACKET_5VT(pPacket, 0);
// MiniportMMRequest(pAd, pkt->data, pkt->len);
#ifdef CONFIG_5VT_ENHANCE
if (*(int*)(skb->cb) == BRIDGE_TAG) {
RTMP_SET_PACKET_5VT(pPacket, 1);
}
#endif
#ifdef CONFIG_AP_SUPPORT
IF_DEV_CONFIG_OPMODE_ON_AP(pAd)
APSendPackets((NDIS_HANDLE)pAd, (PPNDIS_PACKET) &pPacket, 1);
#endif // CONFIG_AP_SUPPORT //
status = 0;
done:
return status;
}
示例6: APAsicEvaluateRxAnt
/*
========================================================================
Routine Description:
Periodic evaluate antenna link status
Arguments:
pAd - Adapter pointer
Return Value:
None
========================================================================
*/
VOID APAsicEvaluateRxAnt(
IN PRTMP_ADAPTER pAd)
{
ULONG TxTotalCnt;
#ifdef RALINK_ATE
if (ATE_ON(pAd))
return;
#endif /* RALINK_ATE */
#ifdef CARRIER_DETECTION_SUPPORT
if(pAd->CommonCfg.CarrierDetect.CD_State == CD_SILENCE)
return;
#endif /* CARRIER_DETECTION_SUPPORT */
#ifdef RT8592
// TODO: shiang-6590, for 8592, this EvaaluateRxAnt still need??
if (IS_RT8592(pAd))
return;
#endif /* RT8592 */
#ifdef RT65xx
if (IS_RT65XX(pAd))
return;
#endif /* RT76x0 */
#ifdef TXBF_SUPPORT
/* TODO: we didn't do RxAnt evaluate for 3x3 chips */
if (IS_RT3883(pAd) || IS_RT2883(pAd))
return;
#endif /* TXBF_SUPPORT */
#ifdef DOT11_N_SUPPORT
#ifdef GREENAP_SUPPORT
if (pAd->ApCfg.bGreenAPActive == TRUE)
bbp_set_rxpath(pAd, 1);
else
#endif /* GREENAP_SUPPORT */
#endif /* DOT11_N_SUPPORT */
bbp_set_rxpath(pAd, pAd->Antenna.field.RxPath);
TxTotalCnt = pAd->RalinkCounters.OneSecTxNoRetryOkCount +
pAd->RalinkCounters.OneSecTxRetryOkCount +
pAd->RalinkCounters.OneSecTxFailCount;
if (TxTotalCnt > 50)
{
RTMPSetTimer(&pAd->Mlme.RxAntEvalTimer, 20);
pAd->Mlme.bLowThroughput = FALSE;
}
else
{
RTMPSetTimer(&pAd->Mlme.RxAntEvalTimer, 300);
pAd->Mlme.bLowThroughput = TRUE;
}
}
示例7: MBSS_PacketSend
/*
========================================================================
Routine Description:
Send a packet to WLAN.
Arguments:
pPktSrc points to our adapter
pDev which WLAN network interface
Return Value:
0: transmit successfully
otherwise: transmit fail
Note:
========================================================================
*/
int MBSS_PacketSend(
IN PNDIS_PACKET pPktSrc,
IN PNET_DEV pDev,
IN RTMP_NET_PACKET_TRANSMIT Func)
{
RTMP_ADAPTER *pAd;
MULTISSID_STRUCT *pMbss;
PNDIS_PACKET pPkt = (PNDIS_PACKET)pPktSrc;
int IdBss;
pAd = RTMP_OS_NETDEV_GET_PRIV(pDev);
ASSERT(pAd);
#ifdef RALINK_ATE
if (ATE_ON(pAd))
{
RELEASE_NDIS_PACKET(pAd, pPkt, NDIS_STATUS_FAILURE);
return 0;
}
#endif /* RALINK_ATE */
if ((RTMP_TEST_FLAG(pAd, fRTMP_ADAPTER_BSS_SCAN_IN_PROGRESS)) ||
(RTMP_TEST_FLAG(pAd, fRTMP_ADAPTER_RADIO_OFF)) ||
(RTMP_TEST_FLAG(pAd, fRTMP_ADAPTER_RESET_IN_PROGRESS)))
{
/* wlan is scanning/disabled/reset */
RELEASE_NDIS_PACKET(pAd, pPkt, NDIS_STATUS_FAILURE);
return 0;
}
/* 0 is main BSS, dont handle it here */
/* FIRST_MBSSID = 1 */
pMbss = pAd->ApCfg.MBSSID;
for(IdBss=FIRST_MBSSID; IdBss<pAd->ApCfg.BssidNum; IdBss++)
{
/* find the device in our MBSS list */
if (pMbss[IdBss].MSSIDDev == pDev)
{
/* NdisZeroMemory((PUCHAR)&(RTPKT_TO_OSPKT(pPktSrc))->cb[CB_OFF], 15); */
NdisZeroMemory((PUCHAR)(GET_OS_PKT_CB(pPktSrc) + CB_OFF), 15);
RTMP_SET_PACKET_NET_DEVICE_MBSSID(pPktSrc, IdBss);
/* SET_OS_PKT_NETDEV(pPktSrc, pDev); */
/* transmit the packet */
return Func(pPktSrc);
}
}
/* can not find the BSS so discard the packet */
RELEASE_NDIS_PACKET(pAd, pPkt, NDIS_STATUS_FAILURE);
return 0;
}
示例8: BAOriSessionSetupTimeout
/*
==========================================================================
Description:
Retry sending ADDBA Reqest.
IRQL = DISPATCH_LEVEL
Parametrs:
p8023Header: if this is already 802.3 format, p8023Header is NULL
Return : TRUE if put into rx reordering buffer, shouldn't indicaterxhere.
FALSE , then continue indicaterx at this moment.
==========================================================================
*/
VOID BAOriSessionSetupTimeout(
IN PVOID SystemSpecific1,
IN PVOID FunctionContext,
IN PVOID SystemSpecific2,
IN PVOID SystemSpecific3)
{
BA_ORI_ENTRY *pBAEntry = (BA_ORI_ENTRY *)FunctionContext;
MAC_TABLE_ENTRY *pEntry;
PRTMP_ADAPTER pAd;
if (pBAEntry == NULL)
return;
pAd = pBAEntry->pAdapter;
#ifdef CONFIG_STA_SUPPORT
IF_DEV_CONFIG_OPMODE_ON_STA(pAd)
{
// Do nothing if monitor mode is on
if (MONITOR_ON(pAd))
return;
}
#endif // CONFIG_STA_SUPPORT //
#ifdef RALINK_ATE
// Nothing to do in ATE mode.
if (ATE_ON(pAd))
return;
#endif // RALINK_ATE //
pEntry = &pAd->MacTab.Content[pBAEntry->Wcid];
if ((pBAEntry->ORI_BA_Status == Originator_WaitRes) && (pBAEntry->Token < ORI_SESSION_MAX_RETRY))
{
MLME_ADDBA_REQ_STRUCT AddbaReq;
NdisZeroMemory(&AddbaReq, sizeof(AddbaReq));
COPY_MAC_ADDR(AddbaReq.pAddr, pEntry->Addr);
AddbaReq.Wcid = (UCHAR)(pEntry->Aid);
AddbaReq.TID = pBAEntry->TID;
AddbaReq.BaBufSize = pAd->CommonCfg.BACapability.field.RxBAWinLimit;
AddbaReq.TimeOutValue = 0;
AddbaReq.Token = pBAEntry->Token;
MlmeEnqueue(pAd, ACTION_STATE_MACHINE, MT2_MLME_ADD_BA_CATE, sizeof(MLME_ADDBA_REQ_STRUCT), (PVOID)&AddbaReq);
RTMP_MLME_HANDLER(pAd);
DBGPRINT(RT_DEBUG_TRACE,("BA Ori Session Timeout(%d) : Send ADD BA again\n", pBAEntry->Token));
pBAEntry->Token++;
RTMPSetTimer(&pBAEntry->ORIBATimer, ORI_BA_SESSION_TIMEOUT);
}
else
{
BATableFreeOriEntry(pAd, pEntry->BAOriWcidArray[pBAEntry->TID]);
}
}
示例9: RTUSBBulkOutDataPacketComplete
USBHST_STATUS RTUSBBulkOutDataPacketComplete(URBCompleteStatus Status, purbb_t pURB, pregs *pt_regs)
{
PHT_TX_CONTEXT pHTTXContext;
PRTMP_ADAPTER pAd;
POS_COOKIE pObj;
UCHAR BulkOutPipeId;
pHTTXContext = (PHT_TX_CONTEXT)RTMP_OS_USB_CONTEXT_GET(pURB);
pAd = pHTTXContext->pAd;
pObj = (POS_COOKIE) pAd->OS_Cookie;
/* Store BulkOut PipeId*/
BulkOutPipeId = pHTTXContext->BulkOutPipeId;
pAd->BulkOutDataOneSecCount++;
switch (BulkOutPipeId)
{
case EDCA_AC0_PIPE:
#ifdef RALINK_ATE
if (!ATE_ON(pAd))
{
#endif /* RALINK_ATE */
RTMP_NET_TASK_DATA_ASSIGN(&pObj->ac0_dma_done_task, (unsigned long)pURB);
RTMP_OS_TASKLET_SCHE(&pObj->ac0_dma_done_task);
#ifdef RALINK_ATE
}
else
{
RTMP_NET_TASK_DATA_ASSIGN(&pObj->ate_ac0_dma_done_task, (unsigned long)pURB);
RTMP_OS_TASKLET_SCHE(&pObj->ate_ac0_dma_done_task);
}
#endif /* RALINK_ATE */
break;
case EDCA_AC1_PIPE:
RTMP_NET_TASK_DATA_ASSIGN(&pObj->ac1_dma_done_task, (unsigned long)pURB);
RTMP_OS_TASKLET_SCHE(&pObj->ac1_dma_done_task);
break;
case EDCA_AC2_PIPE:
RTMP_NET_TASK_DATA_ASSIGN(&pObj->ac2_dma_done_task, (unsigned long)pURB);
RTMP_OS_TASKLET_SCHE(&pObj->ac2_dma_done_task);
break;
case EDCA_AC3_PIPE:
RTMP_NET_TASK_DATA_ASSIGN(&pObj->ac3_dma_done_task, (unsigned long)pURB);
RTMP_OS_TASKLET_SCHE(&pObj->ac3_dma_done_task);
break;
case HCCA_PIPE:
RTMP_NET_TASK_DATA_ASSIGN(&pObj->hcca_dma_done_task, (unsigned long)pURB);
RTMP_OS_TASKLET_SCHE(&pObj->hcca_dma_done_task);
break;
}
}
示例10: APAsicRxAntEvalTimeout
/*
========================================================================
Routine Description:
After evaluation, check antenna link status
Arguments:
pAd - Adapter pointer
Return Value:
None
========================================================================
*/
VOID APAsicRxAntEvalTimeout(RTMP_ADAPTER *pAd)
{
CHAR rssi0, rssi1, rssi2;
#ifdef RALINK_ATE
if (ATE_ON(pAd))
return;
#endif /* RALINK_ATE */
/* if the traffic is low, use average rssi as the criteria */
if (pAd->Mlme.bLowThroughput == TRUE)
{
rssi0 = pAd->ApCfg.RssiSample.LastRssi0;
rssi1 = pAd->ApCfg.RssiSample.LastRssi1;
rssi2 = pAd->ApCfg.RssiSample.LastRssi2;
}
else
{
rssi0 = pAd->ApCfg.RssiSample.AvgRssi0;
rssi1 = pAd->ApCfg.RssiSample.AvgRssi1;
rssi2 = pAd->ApCfg.RssiSample.AvgRssi2;
}
#ifdef DOT11N_SS3_SUPPORT
if(pAd->Antenna.field.RxPath == 3)
{
CHAR larger = -127;
larger = max(rssi0, rssi1);
if (pAd->CommonCfg.RxStream >= 3)
pAd->Mlme.RealRxPath = 3;
else
{
if (larger > (rssi2 + 20))
pAd->Mlme.RealRxPath = 2;
else
pAd->Mlme.RealRxPath = 3;
}
}
#endif /* DOT11N_SS3_SUPPORT */
/* Disable the below to fix 1T/2R issue. It's suggested by Rory at 2007/7/11. */
#ifdef DOT11_N_SUPPORT
#ifdef GREENAP_SUPPORT
if (pAd->ApCfg.bGreenAPActive == TRUE)
bbp_set_rxpath(pAd, 1);
else
#endif /* GREENAP_SUPPORT */
#endif /* DOT11_N_SUPPORT */
bbp_set_rxpath(pAd, pAd->Mlme.RealRxPath);
}
示例11: WDS_PacketSend
int WDS_PacketSend(
IN PNDIS_PACKET pSkb,
IN PNET_DEV dev,
IN RTMP_NET_PACKET_TRANSMIT Func)
{
UCHAR i;
RTMP_ADAPTER *pAd;
PNDIS_PACKET pPacket = (PNDIS_PACKET) pSkb;
pAd = (PRTMP_ADAPTER) RTMP_OS_NETDEV_GET_PRIV(dev);
#ifdef RALINK_ATE
if (ATE_ON(pAd))
{
RELEASE_NDIS_PACKET(pAd, pPacket, NDIS_STATUS_FAILURE);
return 0;
}
#endif /* RALINK_ATE */
if ((RTMP_TEST_FLAG(pAd, fRTMP_ADAPTER_BSS_SCAN_IN_PROGRESS)) ||
(RTMP_TEST_FLAG(pAd, fRTMP_ADAPTER_RADIO_OFF)) ||
(RTMP_TEST_FLAG(pAd, fRTMP_ADAPTER_RESET_IN_PROGRESS)))
{
RELEASE_NDIS_PACKET(pAd, pPacket, NDIS_STATUS_FAILURE);
return 0;
}
if (!(RTMP_OS_NETDEV_STATE_RUNNING(dev)))
{
RELEASE_NDIS_PACKET(pAd, pPacket, NDIS_STATUS_FAILURE);
return 0;
}
for (i = 0; i < MAX_WDS_ENTRY; i++)
{
if (ValidWdsEntry(pAd, i) && (pAd->WdsTab.WdsEntry[i].dev == dev))
{
RTMP_SET_PACKET_NET_DEVICE_WDS(pSkb, i);
SET_OS_PKT_NETDEV(pSkb, pAd->net_dev);
return Func(pSkb);
}
}
RELEASE_NDIS_PACKET(pAd, pPacket, NDIS_STATUS_FAILURE);
return 0;
}
示例12: RxSensitivityTuning
static VOID RxSensitivityTuning(RTMP_ADAPTER *pAd)
{
UCHAR R66 = 0x26 + pAd->hw_cfg.lan_gain;
#ifdef CONFIG_ATE
if (ATE_ON(pAd))
{
ATE_BBP_IO_WRITE8_BY_REG_ID(pAd, BBP_R66, R66);
}
else
#endif /* CONFIG_ATE */
{
bbp_set_agc(pAd, R66, RX_CHAIN_ALL);
}
MTWF_LOG(DBG_CAT_ALL, DBG_SUBCAT_ALL, DBG_LVL_TRACE,("turn off R17 tuning, restore to 0x%02x\n", R66));
}
示例13: RxSensitivityTuning
static VOID RxSensitivityTuning(RTMP_ADAPTER *pAd)
{
UCHAR R66 = 0x26 + GET_LNA_GAIN(pAd);
#ifdef RALINK_ATE
if (ATE_ON(pAd))
{
ATE_BBP_IO_WRITE8_BY_REG_ID(pAd, BBP_R66, R66);
}
else
#endif /* RALINK_ATE */
{
rtmp_bbp_set_agc(pAd, R66, RX_CHAIN_ALL);
}
DBGPRINT(RT_DEBUG_TRACE,("turn off R17 tuning, restore to 0x%02x\n", R66));
}
示例14: APAsicRxAntEvalTimeout
/*
========================================================================
Routine Description:
After evaluation, check antenna link status
Arguments:
pAd - Adapter pointer
Return Value:
None
========================================================================
*/
VOID APAsicRxAntEvalTimeout(RTMP_ADAPTER *pAd)
{
CHAR rssi[3], *target_rssi;
#ifdef CONFIG_ATE
if (ATE_ON(pAd))
return;
#endif /* CONFIG_ATE */
/* if the traffic is low, use average rssi as the criteria */
if (pAd->Mlme.bLowThroughput == TRUE)
target_rssi = &pAd->ApCfg.RssiSample.LastRssi[0];
else
target_rssi = &pAd->ApCfg.RssiSample.AvgRssi[0];
NdisMoveMemory(&rssi[0], target_rssi, 3);
#ifdef DOT11N_SS3_SUPPORT
if(pAd->Antenna.field.RxPath == 3)
{
CHAR larger = -127;
larger = max(rssi[0], rssi[1]);
if (pAd->CommonCfg.RxStream >= 3)
pAd->Mlme.RealRxPath = 3;
else
{
if (larger > (rssi[2] + 20))
pAd->Mlme.RealRxPath = 2;
else
pAd->Mlme.RealRxPath = 3;
}
}
#endif /* DOT11N_SS3_SUPPORT */
/* Disable the below to fix 1T/2R issue. It's suggested by Rory at 2007/7/11. */
#ifdef DOT11_N_SUPPORT
#ifdef GREENAP_SUPPORT
if (pAd->ApCfg.bGreenAPActive == TRUE)
bbp_set_rxpath(pAd, 1);
else
#endif /* GREENAP_SUPPORT */
#endif /* DOT11_N_SUPPORT */
bbp_set_rxpath(pAd, pAd->Mlme.RealRxPath);
}
示例15: APAsicEvaluateRxAnt
/*
========================================================================
Routine Description:
Periodic evaluate antenna link status
Arguments:
pAd - Adapter pointer
Return Value:
None
========================================================================
*/
VOID APAsicEvaluateRxAnt(
IN PRTMP_ADAPTER pAd)
{
ULONG TxTotalCnt;
#ifdef CONFIG_ATE
if (ATE_ON(pAd))
return;
#endif /* CONFIG_ATE */
#ifdef CARRIER_DETECTION_SUPPORT
if(pAd->CommonCfg.CarrierDetect.CD_State == CD_SILENCE)
return;
#endif /* CARRIER_DETECTION_SUPPORT */
#ifdef DOT11_N_SUPPORT
#ifdef GREENAP_SUPPORT
if (pAd->ApCfg.bGreenAPActive == TRUE)
bbp_set_rxpath(pAd, 1);
else
#endif /* GREENAP_SUPPORT */
#endif /* DOT11_N_SUPPORT */
bbp_set_rxpath(pAd, pAd->Antenna.field.RxPath);
TxTotalCnt = pAd->RalinkCounters.OneSecTxNoRetryOkCount +
pAd->RalinkCounters.OneSecTxRetryOkCount +
pAd->RalinkCounters.OneSecTxFailCount;
if (TxTotalCnt > 50)
{
RTMPSetTimer(&pAd->Mlme.RxAntEvalTimer, 20);
pAd->Mlme.bLowThroughput = FALSE;
}
else
{
RTMPSetTimer(&pAd->Mlme.RxAntEvalTimer, 300);
pAd->Mlme.bLowThroughput = TRUE;
}
}