本文整理汇总了C++中AsicSendCommandToMcu函数的典型用法代码示例。如果您正苦于以下问题:C++ AsicSendCommandToMcu函数的具体用法?C++ AsicSendCommandToMcu怎么用?C++ AsicSendCommandToMcu使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了AsicSendCommandToMcu函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: AsicSetRxAnt
/*
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
Then restore antenna after EEPROM access
The original name of this function is AsicSetRxAnt(), now change to
*/
VOID RT30xxSetRxAnt(
IN PRTMP_ADAPTER pAd,
IN UCHAR Ant)
{
UINT32 Value;
if (/*(!pAd->NicConfig2.field.AntDiversity) ||*/
(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;
}
/* the antenna selection is through firmware and MAC register(GPIO3) */
if (IS_RT2070(pAd) || (IS_RT3070(pAd) && pAd->RfIcType == RFIC_3020) ||
(IS_RT3090(pAd) && pAd->RfIcType == RFIC_3020))
{
if (Ant == 0)
{
/*
Main antenna
E2PROM_CSR only in PCI bus Reg., USB Bus need MCU commad to control the EESK pin.
*/
#ifdef RTMP_MAC_USB
AsicSendCommandToMcu(pAd, 0x73, 0xFF, 0x1, 0x0);
#endif /* RTMP_MAC_USB */
RTMP_IO_READ32(pAd, GPIO_CTRL_CFG, &Value);
Value &= ~(0x0808);
RTMP_IO_WRITE32(pAd, GPIO_CTRL_CFG, Value);
DBGPRINT(RT_DEBUG_TRACE, ("AsicSetRxAnt, switch to main antenna\n"));
}
else
{
/*
Aux antenna
E2PROM_CSR only in PCI bus Reg., USB Bus need MCU commad to control the EESK pin.
*/
#ifdef RTMP_MAC_USB
AsicSendCommandToMcu(pAd, 0x73, 0xFF, 0x0, 0x0);
#endif /* RTMP_MAC_USB */
RTMP_IO_READ32(pAd, GPIO_CTRL_CFG, &Value);
Value &= ~(0x0808);
Value |= 0x08;
RTMP_IO_WRITE32(pAd, GPIO_CTRL_CFG, Value);
DBGPRINT(RT_DEBUG_TRACE, ("AsicSetRxAnt, switch to aux antenna\n"));
}
}
}
示例2: RTUSBWriteBBPRegister
NTSTATUS RTUSBWriteBBPRegister(
IN PRTMP_ADAPTER pAd,
IN UCHAR Id,
IN UCHAR Value)
{
BBP_CSR_CFG_STRUC BbpCsr;
int BusyCnt;
for (BusyCnt=0; BusyCnt<MAX_BUSY_COUNT; BusyCnt++)
{
RTMP_IO_READ32(pAd, H2M_BBP_AGENT, &BbpCsr.word);
if (BbpCsr.field.Busy == BUSY)
continue;
BbpCsr.word = 0;
BbpCsr.field.fRead = 0;
BbpCsr.field.BBP_RW_MODE = 1;
BbpCsr.field.Busy = 1;
BbpCsr.field.Value = Value;
BbpCsr.field.RegNum = Id;
RTMP_IO_WRITE32(pAd, H2M_BBP_AGENT, BbpCsr.word);
AsicSendCommandToMcu(pAd, 0x80, 0xff, 0x0, 0x0);
pAd->BbpWriteLatch[Id] = Value;
break;
}
if (BusyCnt == MAX_BUSY_COUNT)
{
DBGPRINT_ERR(("BBP write R%d=0x%x fail\n", Id, BbpCsr.word));
return STATUS_UNSUCCESSFUL;
}
return STATUS_SUCCESS;
}
示例3: RT28xxUsbMlmeRadioOn
VOID RT28xxUsbMlmeRadioOn(
IN PRTMP_ADAPTER pAd)
{
DBGPRINT(RT_DEBUG_TRACE,("RT28xxUsbMlmeRadioOn()\n"));
if (!RTMP_TEST_FLAG(pAd, fRTMP_ADAPTER_RADIO_OFF))
return;
#ifdef CONFIG_STA_SUPPORT
IF_DEV_CONFIG_OPMODE_ON_STA(pAd)
{
AsicSendCommandToMcu(pAd, 0x31, 0xff, 0x00, 0x00);
RTMPusecDelay(10000);
}
#endif // CONFIG_STA_SUPPORT //
NICResetFromError(pAd);
// Enable Tx/Rx
RTMPEnableRxTx(pAd);
// Clear Radio off flag
RTMP_CLEAR_FLAG(pAd, fRTMP_ADAPTER_RADIO_OFF);
#ifdef CONFIG_STA_SUPPORT
IF_DEV_CONFIG_OPMODE_ON_STA(pAd)
RTUSBBulkReceive(pAd);
#endif // CONFIG_STA_SUPPORT //
// Set LED
RTMPSetLED(pAd, LED_RADIO_ON);
}
示例4: RTUSBFirmwareWrite
/*
========================================================================
Routine Description: Write Firmware to NIC.
Arguments:
Return Value:
IRQL =
Note:
========================================================================
*/
NTSTATUS RTUSBFirmwareWrite(
IN PRTMP_ADAPTER pAd,
IN PUCHAR pFwImage,
IN ULONG FwLen)
{
UINT32 MacReg;
NTSTATUS Status;
// ULONG i;
USHORT writeLen;
Status = RTUSBReadMACRegister(pAd, MAC_CSR0, &MacReg);
writeLen = FwLen;
RTUSBMultiWrite(pAd, FIRMWARE_IMAGE_BASE, pFwImage, writeLen);
Status = RTUSBWriteMACRegister(pAd, 0x7014, 0xffffffff);
Status = RTUSBWriteMACRegister(pAd, 0x701c, 0xffffffff);
Status = RTUSBFirmwareRun(pAd);
#ifdef RT30xx
RTMPusecDelay(10000);
RTUSBWriteMACRegister(pAd,H2M_MAILBOX_CSR,0);
AsicSendCommandToMcu(pAd, 0x72, 0x00, 0x00, 0x00);//reset rf by MCU supported by new firmware
#endif
return Status;
}
示例5: RT28xxUsbStaAsicForceWakeup
VOID RT28xxUsbStaAsicForceWakeup(
IN PRTMP_ADAPTER pAd,
IN BOOLEAN bFromTx)
{
BOOLEAN Canceled;
if (pAd->Mlme.AutoWakeupTimerRunning)
{
if ( !OPSTATUS_TEST_FLAG(pAd, fOP_STATUS_DOZE) )
{
return;
}
RTMPCancelTimer(&pAd->Mlme.AutoWakeupTimer, &Canceled);
pAd->Mlme.AutoWakeupTimerRunning = FALSE;
}
#ifdef MT7601
if ( IS_MT7601(pAd) )
{
ASIC_RADIO_ON(pAd, DOT11_RADIO_ON);
}
else
#endif /* MT7601 */
{
AsicSendCommandToMcu(pAd, 0x31, 0xff, 0x00, 0x02, FALSE);
}
OPSTATUS_CLEAR_FLAG(pAd, fOP_STATUS_DOZE);
}
示例6: RTMPSetSignalLED
/*
========================================================================
Routine Description:
Set LED Signal Stregth
Arguments:
pAd Pointer to our adapter
Dbm Signal Stregth
Return Value:
None
IRQL = PASSIVE_LEVEL
Note:
Can be run on any IRQL level.
According to Microsoft Zero Config Wireless Signal Stregth definition as belows.
<= -90 No Signal
<= -81 Very Low
<= -71 Low
<= -67 Good
<= -57 Very Good
> -57 Excellent
========================================================================
*/
VOID RTMPSetSignalLED(RTMP_ADAPTER *pAd, NDIS_802_11_RSSI Dbm)
{
UCHAR nLed = 0;
if (pAd->LedCntl.MCULedCntl.field.LedMode == LED_MODE_SIGNAL_STREGTH)
{
if (Dbm <= -90)
nLed = 0;
else if (Dbm <= -81)
nLed = 1;
else if (Dbm <= -71)
nLed = 3;
else if (Dbm <= -67)
nLed = 7;
else if (Dbm <= -57)
nLed = 15;
else
nLed = 31;
/* */
/* Update Signal Stregth to firmware if changed. */
/* */
if (pAd->LedCntl.LedIndicatorStrength != nLed)
{
AsicSendCommandToMcu(pAd, MCU_SET_LED_GPIO_SIGNAL_CFG, 0xff, nLed, pAd->LedCntl.MCULedCntl.field.Polarity, FALSE);
pAd->LedCntl.LedIndicatorStrength = nLed;
}
}
}
示例7: RT28xxUsbStaAsicSleepThenAutoWakeup
VOID RT28xxUsbStaAsicSleepThenAutoWakeup(
IN PRTMP_ADAPTER pAd,
IN USHORT TbttNumToNextWakeUp)
{
/* Not going to sleep if in the Count Down Time*/
if (pAd->CountDowntoPsm > 0)
return;
/* we have decided to SLEEP, so at least do it for a BEACON period.*/
if (TbttNumToNextWakeUp == 0)
TbttNumToNextWakeUp = 1;
RTMPSetTimer(&pAd->Mlme.AutoWakeupTimer, AUTO_WAKEUP_TIMEOUT);
pAd->Mlme.AutoWakeupTimerRunning = TRUE;
AsicSendCommandToMcu(pAd, 0x30, 0xff, 0xff, 0x02, FALSE); /* send POWER-SAVE command to MCU. Timeout 40us.*/
/* cancel bulk-in IRPs prevent blocking CPU enter C3.*/
if((pAd->PendingRx > 0) && (!RTMP_TEST_FLAG(pAd, fRTMP_ADAPTER_NIC_NOT_EXIST)))
{
RTUSBCancelPendingBulkInIRP(pAd);
/* resend bulk-in IRPs to receive beacons after a period of (pAd->CommonCfg.BeaconPeriod - 40) ms*/
pAd->PendingRx = 0;
}
OPSTATUS_SET_FLAG(pAd, fOP_STATUS_DOZE);
}
示例8: RTMPInitLEDMode
void RTMPInitLEDMode(IN RTMP_ADAPTER *pAd)
{
PLED_CONTROL pLedCntl = &pAd->LedCntl;
if (pLedCntl->MCULedCntl.word == 0xFF)
{
pLedCntl->MCULedCntl.word = 0x01;
pLedCntl->LedAGCfg = 0x5555;
pLedCntl->LedACTCfg= 0x2221;
#ifdef RTMP_MAC_PCI
pLedCntl->LedPolarity = 0xA9F8;
#endif /* RTMP_MAC_PCI */
}
AsicSendCommandToMcu(pAd, MCU_SET_LED_AG_CFG, 0xff, (UCHAR)pLedCntl->LedAGCfg, (UCHAR)(pLedCntl->LedAGCfg >> 8), FALSE);
AsicSendCommandToMcu(pAd, MCU_SET_LED_ACT_CFG, 0xff, (UCHAR)pLedCntl->LedACTCfg, (UCHAR)(pLedCntl->LedACTCfg >> 8), FALSE);
AsicSendCommandToMcu(pAd, MCU_SET_LED_POLARITY, 0xff, (UCHAR)pLedCntl->LedPolarity, (UCHAR)(pLedCntl->LedPolarity >> 8), FALSE);
AsicSendCommandToMcu(pAd, MCU_SET_LED_GPIO_SIGNAL_CFG, 0xff, 0, pLedCntl->MCULedCntl.field.Polarity, FALSE);
pAd->LedCntl.LedIndicatorStrength = 0xFF;
RTMPSetSignalLED(pAd, -100); /* Force signal strength Led to be turned off, before link up */
RTMPStartLEDMode(pAd);
}
示例9: RTMPAdjustFrequencyOffset
/*
========================================================================
Routine Description:
Adjust frequency offset when do channel switching or frequency calabration.
Arguments:
pAd - Adapter pointer
pRefFreqOffset in: referenced Frequency offset out: adjusted frequency offset
Return Value:
None
========================================================================
*/
BOOLEAN RTMPAdjustFrequencyOffset(
IN PRTMP_ADAPTER pAd,
INOUT PUCHAR pRefFreqOffset)
{
BOOLEAN RetVal = TRUE;
UCHAR RFValue = 0;
UCHAR PreRFValue = 0;
UCHAR FreqOffset = 0;
UCHAR HighCurrentBit = 0;
RTMP_ReadRF(pAd, RF_R17, &FreqOffset, &HighCurrentBit, 0x7F);
PreRFValue = HighCurrentBit | FreqOffset;
FreqOffset = min((*pRefFreqOffset & 0x7F), 0x5F);
RFValue = HighCurrentBit | FreqOffset;
if (PreRFValue != RFValue)
{
#ifdef RTMP_MAC_USB
RetVal = AsicSendCommandToMcu(pAd, 0x74, 0xff, FreqOffset, PreRFValue, FALSE);
#else
RetVal = (RT30xxWriteRFRegister(pAd, RF_R17, RFValue) == STATUS_SUCCESS ? TRUE:FALSE);
#endif /* !RTMP_MAC_USB */
}
if (RetVal == FALSE)
DBGPRINT(RT_DEBUG_TRACE, ("%s(): Error in tuning frequency offset !!\n", __FUNCTION__));
else
*pRefFreqOffset = FreqOffset;
return RetVal;
}
示例10: MyRTMPTurnOffLED
RTMP_BUILD_DRV_OPS_FUNCTION_BODY
#endif /* OS_ABL_FUNC_SUPPORT */
#endif /* LINUX */
#ifndef LED_CONTROL_SUPPORT
void MyRTMPTurnOffLED(IN RTMP_ADAPTER *pAd)
{
LED_CONTROL my_LED_CONTROL;
PLED_CONTROL pLedCntl = &my_LED_CONTROL;
//first time after init elways run this scope
//if (pLedCntl->MCULedCntl.word == 0xFF)
{
pLedCntl->MCULedCntl.word = 0x01;
pLedCntl->LedAGCfg = 0x5555;
pLedCntl->LedACTCfg= 0x2221;
#ifdef RTMP_MAC_USB
pLedCntl->LedPolarity = 0x5627;
#endif /* RTMP_MAC_USB */
}
AsicSendCommandToMcu(pAd, MCU_SET_LED_AG_CFG, 0xff, (UCHAR)pLedCntl->LedAGCfg, (UCHAR)(pLedCntl->LedAGCfg >> 8), FALSE);
AsicSendCommandToMcu(pAd, MCU_SET_LED_ACT_CFG, 0xff, (UCHAR)pLedCntl->LedACTCfg, (UCHAR)(pLedCntl->LedACTCfg >> 8), FALSE);
AsicSendCommandToMcu(pAd, MCU_SET_LED_POLARITY, 0xff, (UCHAR)pLedCntl->LedPolarity, (UCHAR)(pLedCntl->LedPolarity >> 8), FALSE);
AsicSendCommandToMcu(pAd, MCU_SET_LED_GPIO_SIGNAL_CFG, 0xff, 0, pLedCntl->MCULedCntl.field.Polarity, FALSE);
}
示例11: RT30xxSetRxAnt
/*void AsicSetRxAnt( */
void RT30xxSetRxAnt(struct rt_rtmp_adapter *pAd, u8 Ant)
{
u32 Value;
#ifdef RTMP_MAC_PCI
u32 x;
#endif
if ((pAd->EepromAccess) ||
(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;
}
/* the antenna selection is through firmware and MAC register(GPIO3) */
if (Ant == 0) {
/* Main antenna */
#ifdef RTMP_MAC_PCI
RTMP_IO_READ32(pAd, E2PROM_CSR, &x);
x |= (EESK);
RTMP_IO_WRITE32(pAd, E2PROM_CSR, x);
#else
AsicSendCommandToMcu(pAd, 0x73, 0xFF, 0x1, 0x0);
#endif /* RTMP_MAC_PCI // */
RTMP_IO_READ32(pAd, GPIO_CTRL_CFG, &Value);
Value &= ~(0x0808);
RTMP_IO_WRITE32(pAd, GPIO_CTRL_CFG, Value);
DBGPRINT_RAW(RT_DEBUG_TRACE,
("AsicSetRxAnt, switch to main antenna\n"));
} else {
/* Aux antenna */
#ifdef RTMP_MAC_PCI
RTMP_IO_READ32(pAd, E2PROM_CSR, &x);
x &= ~(EESK);
RTMP_IO_WRITE32(pAd, E2PROM_CSR, x);
#else
AsicSendCommandToMcu(pAd, 0x73, 0xFF, 0x0, 0x0);
#endif /* RTMP_MAC_PCI // */
RTMP_IO_READ32(pAd, GPIO_CTRL_CFG, &Value);
Value &= ~(0x0808);
Value |= 0x08;
RTMP_IO_WRITE32(pAd, GPIO_CTRL_CFG, Value);
DBGPRINT_RAW(RT_DEBUG_TRACE,
("AsicSetRxAnt, switch to aux antenna\n"));
}
}
示例12: AsicSetRxAnt
/*
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
Then restore antenna after EEPROM access
The original name of this function is AsicSetRxAnt(), now change to
*/
VOID RT30xxSetRxAnt(
IN PRTMP_ADAPTER pAd,
IN UCHAR Ant)
{
UINT32 Value;
/* the antenna selection is through firmware and MAC register(GPIO3) */
if (IS_RT3070(pAd) && pAd->RfIcType == RFIC_3020)
// if (IS_RT2070(pAd) || (IS_RT3070(pAd) && pAd->RfIcType == RFIC_3020) ||
// (IS_RT3090(pAd) && pAd->RfIcType == RFIC_3020))
{
if (Ant == 0)
{
/*
Main antenna
E2PROM_CSR only in PCI bus Reg., USB Bus need MCU commad to control the EESK pin.
*/
#ifdef RTMP_MAC_USB
AsicSendCommandToMcu(pAd, 0x73, 0xFF, 0x1, 0x0);
#endif /* RTMP_MAC_USB */
RTMP_IO_READ32(pAd, GPIO_CTRL_CFG, &Value);
Value &= ~(0x0808);
RTMP_IO_WRITE32(pAd, GPIO_CTRL_CFG, Value);
DBGPRINT(RT_DEBUG_TRACE, "AsicSetRxAnt, switch to main antenna\n");
}
else
{
/*
Aux antenna
E2PROM_CSR only in PCI bus Reg., USB Bus need MCU commad to control the EESK pin.
*/
#ifdef RTMP_MAC_USB
AsicSendCommandToMcu(pAd, 0x73, 0xFF, 0x0, 0x0);
#endif /* RTMP_MAC_USB */
RTMP_IO_READ32(pAd, GPIO_CTRL_CFG, &Value);
Value &= ~(0x0808);
Value |= 0x08;
RTMP_IO_WRITE32(pAd, GPIO_CTRL_CFG, Value);
DBGPRINT(RT_DEBUG_TRACE, "AsicSetRxAnt, switch to aux antenna\n");
}
}
else{
DBGPRINT(RT_DEBUG_ERROR, "RfIcType(%d) is unknow!!\n", pAd->RfIcType);
}
}
示例13: RadarDetectionStop
/*
========================================================================
Routine Description:
Radar detection routine
Arguments:
pAd Pointer to our adapter
Return Value:
TRUE Found radar signal
FALSE Not found radar signal
========================================================================
*/
VOID RadarDetectionStop(
IN PRTMP_ADAPTER pAd)
{
DBGPRINT(RT_DEBUG_TRACE,("RadarDetectionStop.\n"));
AsicSendCommandToMcu(pAd, 0x60, 0xff, 0x00, 0x00); /* send start-RD with CTS protection command to MCU*/
return;
}
示例14: RT33xxSetRxAnt
VOID RT33xxSetRxAnt(
IN PRTMP_ADAPTER pAd,
IN UCHAR Ant)
{
UINT32 Value;
UINT32 x;
if ((!pAd->NicConfig2.field.AntDiversity) ||
(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;
}
// the antenna selection is through firmware and MAC register(GPIO3)
if (Ant == 0)
{
// Main antenna
// E2PROM_CSR only in PCI bus Reg., USB Bus need MCU commad to control the EESK pin.
#ifdef RTMP_MAC_USB
AsicSendCommandToMcu(pAd, 0x73, 0xff, 0x1, 0x0);
#endif // RTMP_MAC_USB //
RTMP_IO_READ32(pAd, GPIO_CTRL_CFG, &Value);
Value &= ~(0x0808);
RTMP_IO_WRITE32(pAd, GPIO_CTRL_CFG, Value);
DBGPRINT_RAW(RT_DEBUG_TRACE, ("AsicSetRxAnt, switch to main antenna\n"));
}
else
{
// Aux antenna
// E2PROM_CSR only in PCI bus Reg., USB Bus need MCU commad to control the EESK pin.
#ifdef RTMP_MAC_USB
AsicSendCommandToMcu(pAd, 0x73, 0xff, 0x0, 0x0);
#endif // RTMP_MAC_USB //
RTMP_IO_READ32(pAd, GPIO_CTRL_CFG, &Value);
Value &= ~(0x0808);
Value |= 0x08;
RTMP_IO_WRITE32(pAd, GPIO_CTRL_CFG, Value);
DBGPRINT_RAW(RT_DEBUG_TRACE, ("AsicSetRxAnt, switch to aux antenna\n"));
}
}
示例15: RT28xxUsbStaAsicForceWakeup
void RT28xxUsbStaAsicForceWakeup(struct rt_rtmp_adapter *pAd, IN BOOLEAN bFromTx)
{
BOOLEAN Canceled;
if (pAd->Mlme.AutoWakeupTimerRunning)
RTMPCancelTimer(&pAd->Mlme.AutoWakeupTimer, &Canceled);
AsicSendCommandToMcu(pAd, 0x31, 0xff, 0x00, 0x02);
OPSTATUS_CLEAR_FLAG(pAd, fOP_STATUS_DOZE);
}