本文整理汇总了C++中VNSvOutPortB函数的典型用法代码示例。如果您正苦于以下问题:C++ VNSvOutPortB函数的具体用法?C++ VNSvOutPortB怎么用?C++ VNSvOutPortB使用的例子?那么, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了VNSvOutPortB函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: BBbWriteEmbedded
/*
* Description: Write a Byte to BASEBAND, by embedded programming
*
* Parameters:
* In:
* dwIoBase - I/O base address
* byBBAddr - address of register in Baseband
* byData - data to write
* Out:
* none
*
* Return Value: true if succeeded; false if failed.
*
*/
bool BBbWriteEmbedded(struct vnt_private *priv,
unsigned char byBBAddr, unsigned char byData)
{
void __iomem *dwIoBase = priv->PortOffset;
unsigned short ww;
unsigned char byValue;
/* BB reg offset */
VNSvOutPortB(dwIoBase + MAC_REG_BBREGADR, byBBAddr);
/* set BB data */
VNSvOutPortB(dwIoBase + MAC_REG_BBREGDATA, byData);
/* turn on BBREGCTL_REGW */
MACvRegBitsOn(dwIoBase, MAC_REG_BBREGCTL, BBREGCTL_REGW);
/* W_MAX_TIMEOUT is the timeout period */
for (ww = 0; ww < W_MAX_TIMEOUT; ww++) {
VNSvInPortB(dwIoBase + MAC_REG_BBREGCTL, &byValue);
if (byValue & BBREGCTL_DONE)
break;
}
if (ww == W_MAX_TIMEOUT) {
DBG_PORT80(0x31);
pr_debug(" DBG_PORT80(0x31)\n");
return false;
}
return true;
}
示例2: s_bAL7230SelectChannel
/* Need to Pull PLLON low when writing channel registers through
* 3-wire interface
*/
static bool s_bAL7230SelectChannel(struct vnt_private *priv, unsigned char byChannel)
{
void __iomem *iobase = priv->PortOffset;
bool ret;
ret = true;
/* PLLON Off */
MACvWordRegBitsOff(iobase, MAC_REG_SOFTPWRCTL, SOFTPWRCTL_SWPE3);
ret &= IFRFbWriteEmbedded(priv, dwAL7230ChannelTable0[byChannel - 1]);
ret &= IFRFbWriteEmbedded(priv, dwAL7230ChannelTable1[byChannel - 1]);
ret &= IFRFbWriteEmbedded(priv, dwAL7230ChannelTable2[byChannel - 1]);
/* PLLOn On */
MACvWordRegBitsOn(iobase, MAC_REG_SOFTPWRCTL, SOFTPWRCTL_SWPE3);
/* Set Channel[7] = 0 to tell H/W channel is changing now. */
VNSvOutPortB(iobase + MAC_REG_CHANNEL, (byChannel & 0x7F));
MACvTimer0MicroSDelay(priv, SWITCH_CHANNEL_DELAY_AL7230);
/* Set Channel[7] = 1 to tell H/W channel change is done. */
VNSvOutPortB(iobase + MAC_REG_CHANNEL, (byChannel | 0x80));
return ret;
}
示例3: SROMbAutoLoad
/*
* Description: Auto Load EEPROM to MAC register
*
* Parameters:
* In:
* dwIoBase - I/O base address
* Out:
* none
*
* Return Value: true if success; otherwise false
*
*/
bool SROMbAutoLoad(unsigned long dwIoBase)
{
unsigned char byWait;
int ii;
unsigned char byOrg;
VNSvInPortB(dwIoBase + MAC_REG_I2MCFG, &byOrg);
/* turn on hardware retry */
VNSvOutPortB(dwIoBase + MAC_REG_I2MCFG, (byOrg | I2MCFG_NORETRY));
MACvRegBitsOn(dwIoBase, MAC_REG_I2MCSR, I2MCSR_AUTOLD);
/* ii = Rom Address */
for (ii = 0; ii < EEP_MAX_CONTEXT_SIZE; ii++) {
MACvTimer0MicroSDelay(dwIoBase, CB_EEPROM_READBYTE_WAIT);
VNSvInPortB(dwIoBase + MAC_REG_I2MCSR, &byWait);
if ( !(byWait & I2MCSR_AUTOLD))
break;
}
VNSvOutPortB(dwIoBase + MAC_REG_I2MCFG, byOrg);
if (ii == EEP_MAX_CONTEXT_SIZE)
return false;
return true;
}
示例4: SROMbyReadEmbedded
/*
* Description: Read a byte from EEPROM, by MAC I2C
*
* Parameters:
* In:
* dwIoBase - I/O base address
* byContntOffset - address of EEPROM
* Out:
* none
*
* Return Value: data read
*
*/
BYTE SROMbyReadEmbedded(DWORD_PTR dwIoBase, BYTE byContntOffset)
{
WORD wDelay, wNoACK;
BYTE byWait;
BYTE byData;
BYTE byOrg;
byData = 0xFF;
VNSvInPortB(dwIoBase + MAC_REG_I2MCFG, &byOrg);
// turn off hardware retry for getting NACK
VNSvOutPortB(dwIoBase + MAC_REG_I2MCFG, (byOrg & (~I2MCFG_NORETRY)));
for (wNoACK = 0; wNoACK < W_MAX_I2CRETRY; wNoACK++) {
VNSvOutPortB(dwIoBase + MAC_REG_I2MTGID, EEP_I2C_DEV_ID);
VNSvOutPortB(dwIoBase + MAC_REG_I2MTGAD, byContntOffset);
// issue read command
VNSvOutPortB(dwIoBase + MAC_REG_I2MCSR, I2MCSR_EEMR);
// wait DONE be set
for (wDelay = 0; wDelay < W_MAX_TIMEOUT; wDelay++) {
VNSvInPortB(dwIoBase + MAC_REG_I2MCSR, &byWait);
if (byWait & (I2MCSR_DONE | I2MCSR_NACK))
break;
PCAvDelayByIO(CB_DELAY_LOOP_WAIT);
}
if ((wDelay < W_MAX_TIMEOUT) &&
( !(byWait & I2MCSR_NACK))) {
break;
}
}
VNSvInPortB(dwIoBase + MAC_REG_I2MDIPT, &byData);
VNSvOutPortB(dwIoBase + MAC_REG_I2MCFG, byOrg);
return byData;
}
示例5: SROMbAutoLoad
/*
* Description: Auto Load EEPROM to MAC register
*
* Parameters:
* In:
* dwIoBase - I/O base address
* Out:
* none
*
* Return Value: TRUE if success; otherwise FALSE
*
*/
BOOL SROMbAutoLoad (DWORD_PTR dwIoBase)
{
BYTE byWait;
int ii;
BYTE byOrg;
VNSvInPortB(dwIoBase + MAC_REG_I2MCFG, &byOrg);
// turn on hardware retry
VNSvOutPortB(dwIoBase + MAC_REG_I2MCFG, (byOrg | I2MCFG_NORETRY));
MACvRegBitsOn(dwIoBase, MAC_REG_I2MCSR, I2MCSR_AUTOLD);
// ii = Rom Address
for (ii = 0; ii < EEP_MAX_CONTEXT_SIZE; ii++) {
MACvTimer0MicroSDelay(dwIoBase, CB_EEPROM_READBYTE_WAIT);
VNSvInPortB(dwIoBase + MAC_REG_I2MCSR, &byWait);
if ( !(byWait & I2MCSR_AUTOLD))
break;
}
VNSvOutPortB(dwIoBase + MAC_REG_I2MCFG, byOrg);
if (ii == EEP_MAX_CONTEXT_SIZE)
return FALSE;
return TRUE;
}
示例6: GMACvResetMultiAddrByHash
/*
* Description: Reset this hash index into multicast address register
* bit
*
* Parameters:
*
*/
VOID GMACvResetMultiAddrByHash(DWORD dwIoBase, BYTE byHashIdx)
{
UINT uByteIdx;
BYTE byBitMask;
BYTE byOrgValue;
BYTE byOrgCAMCR, byData;
/* modify CAMCR to select MAR regs */
VNSvInPortB(dwIoBase + MAC_REG_CAMCR, &byOrgCAMCR);
byData = (BYTE)(byOrgCAMCR & ~(CAMCR_PS1|CAMCR_PS0));
VNSvOutPortB(dwIoBase + MAC_REG_CAMCR, byData);
/* calculate byte position */
uByteIdx = byHashIdx / 8;
DBG_ASSERT(uByteIdx < 8);
/* calculate bit position */
byBitMask = 1;
byBitMask <<= (byHashIdx % 8);
/* turn off the bit */
byOrgValue = GMACbyReadMultiAddr(dwIoBase, uByteIdx);
GMACvWriteMultiAddr(dwIoBase, uByteIdx, (BYTE)(byOrgValue & (~byBitMask)));
/* restore to original CAMCR */
VNSvOutPortB(dwIoBase + MAC_REG_CAMCR, byOrgCAMCR);
}
示例7: SROMbyReadEmbedded
/*
* Description: Read a byte from EEPROM, by MAC I2C
*
* Parameters:
* In:
* dwIoBase - I/O base address
* byContntOffset - address of EEPROM
* Out:
* none
*
* Return Value: data read
*
*/
unsigned char SROMbyReadEmbedded(unsigned long dwIoBase, unsigned char byContntOffset)
{
unsigned short wDelay, wNoACK;
unsigned char byWait;
unsigned char byData;
unsigned char byOrg;
byData = 0xFF;
VNSvInPortB(dwIoBase + MAC_REG_I2MCFG, &byOrg);
/* turn off hardware retry for getting NACK */
VNSvOutPortB(dwIoBase + MAC_REG_I2MCFG, (byOrg & (~I2MCFG_NORETRY)));
for (wNoACK = 0; wNoACK < W_MAX_I2CRETRY; wNoACK++) {
VNSvOutPortB(dwIoBase + MAC_REG_I2MTGID, EEP_I2C_DEV_ID);
VNSvOutPortB(dwIoBase + MAC_REG_I2MTGAD, byContntOffset);
/* issue read command */
VNSvOutPortB(dwIoBase + MAC_REG_I2MCSR, I2MCSR_EEMR);
/* wait DONE be set */
for (wDelay = 0; wDelay < W_MAX_TIMEOUT; wDelay++) {
VNSvInPortB(dwIoBase + MAC_REG_I2MCSR, &byWait);
if (byWait & (I2MCSR_DONE | I2MCSR_NACK))
break;
PCAvDelayByIO(CB_DELAY_LOOP_WAIT);
}
if ((wDelay < W_MAX_TIMEOUT) &&
( !(byWait & I2MCSR_NACK))) {
break;
}
}
VNSvInPortB(dwIoBase + MAC_REG_I2MDIPT, &byData);
VNSvOutPortB(dwIoBase + MAC_REG_I2MCFG, byOrg);
return byData;
}
示例8: GMACvGetVCAM
VOID GMACvGetVCAM(DWORD dwIoBase, BYTE byAddress, PWORD pwData)
{
BYTE byOrgCAMCR, byData;
/* modify CAMCR to select CAM DATA regs */
VNSvInPortB(dwIoBase + MAC_REG_CAMCR, &byOrgCAMCR);
byData = (BYTE)((byOrgCAMCR | CAMCR_PS1) & ~CAMCR_PS0);
VNSvOutPortB(dwIoBase + MAC_REG_CAMCR, byData);
/* enable/select VCAM */
VNSvOutPortB(dwIoBase + MAC_REG_CAMADDR, (BYTE)(CAMADDR_CAMEN | CAMADDR_VCAMSL | byAddress));
/* issue read command */
MACvRegBitsOn(dwIoBase, MAC_REG_CAMCR, CAMCR_CAMRD);
/* Wait for CAMRD self clear */
while (TRUE) {
if (GMACbIsRegBitsOff(dwIoBase, MAC_REG_CAMCR, CAMCR_CAMRD))
break;
}
/* read VID CAM data */
VNSvInPortW(dwIoBase + MAC_REG_CAM, pwData);
/* disable CAMEN */
VNSvOutPortB(dwIoBase + MAC_REG_CAMADDR, 0);
/* restore to original CAMCR */
VNSvOutPortB(dwIoBase + MAC_REG_CAMCR, byOrgCAMCR);
}
示例9: MACvRestoreContext
/*
* Description:
* Restore MAC registers from context buffer
*
* Parameters:
* In:
* dwIoBase - Base Address for MAC
* pbyCxtBuf - Context buffer
* Out:
* none
*
* Return Value: none
*
*/
void MACvRestoreContext(void __iomem *dwIoBase, unsigned char *pbyCxtBuf)
{
int ii;
MACvSelectPage1(dwIoBase);
// restore page1
for (ii = 0; ii < MAC_MAX_CONTEXT_SIZE_PAGE1; ii++)
VNSvOutPortB((dwIoBase + ii), *(pbyCxtBuf + MAC_MAX_CONTEXT_SIZE_PAGE0 + ii));
MACvSelectPage0(dwIoBase);
// restore RCR,TCR,IMR...
for (ii = MAC_REG_RCR; ii < MAC_REG_ISR; ii++)
VNSvOutPortB(dwIoBase + ii, *(pbyCxtBuf + ii));
// restore MAC Config.
for (ii = MAC_REG_LRT; ii < MAC_REG_PAGE1SEL; ii++)
VNSvOutPortB(dwIoBase + ii, *(pbyCxtBuf + ii));
VNSvOutPortB(dwIoBase + MAC_REG_CFG, *(pbyCxtBuf + MAC_REG_CFG));
// restore PS Config.
for (ii = MAC_REG_PSCFG; ii < MAC_REG_BBREGCTL; ii++)
VNSvOutPortB(dwIoBase + ii, *(pbyCxtBuf + ii));
// restore CURR_RX_DESC_ADDR, CURR_TX_DESC_ADDR
VNSvOutPortD(dwIoBase + MAC_REG_TXDMAPTR0, *(unsigned long *)(pbyCxtBuf + MAC_REG_TXDMAPTR0));
VNSvOutPortD(dwIoBase + MAC_REG_AC0DMAPTR, *(unsigned long *)(pbyCxtBuf + MAC_REG_AC0DMAPTR));
VNSvOutPortD(dwIoBase + MAC_REG_BCNDMAPTR, *(unsigned long *)(pbyCxtBuf + MAC_REG_BCNDMAPTR));
VNSvOutPortD(dwIoBase + MAC_REG_RXDMAPTR0, *(unsigned long *)(pbyCxtBuf + MAC_REG_RXDMAPTR0));
VNSvOutPortD(dwIoBase + MAC_REG_RXDMAPTR1, *(unsigned long *)(pbyCxtBuf + MAC_REG_RXDMAPTR1));
}
示例10: GMACvSetMCAM
VOID GMACvSetMCAM(DWORD dwIoBase, BYTE byAddress, PBYTE pbyData)
{
BYTE byOrgCAMCR, byData;
/* DWORD dwData; */
/* modify CAMCR to select CAM DATA regs */
VNSvInPortB(dwIoBase + MAC_REG_CAMCR, &byOrgCAMCR);
byData = (BYTE)((byOrgCAMCR | CAMCR_PS1) & ~CAMCR_PS0);
VNSvOutPortB(dwIoBase + MAC_REG_CAMCR, byData);
/* enable/select MCAM */
VNSvOutPortB(dwIoBase + MAC_REG_CAMADDR, (BYTE)(CAMADDR_CAMEN | byAddress));
/* set MCAM Data */
VNSvOutPortD(dwIoBase + MAC_REG_CAM, *(PDWORD)pbyData);
/* VNSvInPortD(dwIoBase + MAC_REG_CAM, &dwData); */
VNSvOutPortW(dwIoBase + MAC_REG_CAM + 4, *(PWORD)(pbyData + 4));
/* VNSvInPortW(dwIoBase + MAC_REG_CAM + 4, (PWORD)(&dwData)); */
/* issue write command */
MACvRegBitsOn(dwIoBase, MAC_REG_CAMCR, CAMCR_CAMWR);
/* Wait for CAMWR self clear */
while (TRUE) {
if (GMACbIsRegBitsOff(dwIoBase, MAC_REG_CAMCR, CAMCR_CAMWR))
break;
}
/* disable CAMEN */
VNSvOutPortB(dwIoBase + MAC_REG_CAMADDR, 0);
/* restore to original CAMCR */
VNSvOutPortB(dwIoBase + MAC_REG_CAMCR, byOrgCAMCR);
}
示例11: GMACvTimer0MiniSDelay
VOID GMACvTimer0MiniSDelay(DWORD dwIoBase, BYTE byRevId, UINT udelay)
{
BYTE byData;
/* Disable Timer0 Interrupt */
MACvRegBitsOff(dwIoBase, MAC_REG_IMR + 2, (BYTE)(ISR_TMR0I >> 16));
/* Set resolution to mini second */
MACvRegBitsOff(dwIoBase, MAC_REG_CHIPGCR, CHIPGCR_TM0US);
/* set delay time to udelay, unit is mini-second */
VNSvOutPortW(dwIoBase + MAC_REG_SOFT_TIMER0, (WORD)udelay);
/* enable timer0 */
VNSvOutPortB(dwIoBase + MAC_REG_CR1_SET, CR1_TM0EN);
/* wait for TM0EN self clear */
while (TRUE) {
if (GMACbIsRegBitsOff(dwIoBase, MAC_REG_CR1_SET, CR1_TM0EN)) {
/* clear TMR0I */
VNSvInPortB(dwIoBase + MAC_REG_ISR + 2, &byData);
VNSvOutPortB(dwIoBase + MAC_REG_ISR + 2, byData);
break;
}
}
/* Enable Timer0 Interrupt */
MACvRegBitsOn(dwIoBase, MAC_REG_IMR + 2, (BYTE)(ISR_TMR0I >> 16));
}
示例12: GMACvEnableMiiAutoPoll
/*
* NOTE....
* first, disable MIICR_MAUTO, then
* set MII reg offset to BMSR == 0x01
* must set offset before re-enable MIICR_MAUTO
*/
VOID GMACvEnableMiiAutoPoll(DWORD dwIoBase)
{
WORD ww;
BYTE byData;
VNSvOutPortB(dwIoBase + MAC_REG_MIICR, 0);
/* polling once before MAUTO is turned on */
VNSvOutPortB(dwIoBase + MAC_REG_MIIADR, MIIADR_SWMPL);
/* as soon as MIIDL is on, polling is really completed */
for (ww = 0; ww < W_MAX_TIMEOUT; ww++) {
udelay(1000);
VNSvInPortB(dwIoBase + MAC_REG_MIISR, &byData);
if (BITbIsBitOn(byData, MIISR_MIIDL))
break;
}
/* Turn on MAUTO */
VNSvOutPortB(dwIoBase + MAC_REG_MIICR, MIICR_MAUTO);
/* as soon as MIIDL is off, MAUTO is really started */
for (ww = 0; ww < W_MAX_TIMEOUT; ww++) {
VNSvInPortB(dwIoBase + MAC_REG_MIISR, &byData);
if (BITbIsBitOff(byData, MIISR_MIIDL))
break;
}
}
示例13: set_channel
/**
* set_channel() - Set NIC media channel
*
* @pDeviceHandler: The adapter to be set
* @uConnectionChannel: Channel to be set
*
* Return Value: true if succeeded; false if failed.
*
*/
bool set_channel(struct vnt_private *priv, struct ieee80211_channel *ch)
{
bool ret = true;
if (priv->byCurrentCh == ch->hw_value)
return ret;
/* Set VGA to max sensitivity */
if (priv->bUpdateBBVGA &&
priv->byBBVGACurrent != priv->abyBBVGA[0]) {
priv->byBBVGACurrent = priv->abyBBVGA[0];
BBvSetVGAGainOffset(priv, priv->byBBVGACurrent);
}
/* clear NAV */
MACvRegBitsOn(priv->PortOffset, MAC_REG_MACCR, MACCR_CLRNAV);
/* TX_PE will reserve 3 us for MAX2829 A mode only,
it is for better TX throughput */
if (priv->byRFType == RF_AIROHA7230)
RFbAL7230SelectChannelPostProcess(priv, priv->byCurrentCh,
ch->hw_value);
priv->byCurrentCh = ch->hw_value;
ret &= RFbSelectChannel(priv, priv->byRFType,
ch->hw_value);
/* Init Synthesizer Table */
if (priv->bEnablePSMode)
RFvWriteWakeProgSyn(priv, priv->byRFType, ch->hw_value);
BBvSoftwareReset(priv);
if (priv->byLocalID > REV_ID_VT3253_B1) {
unsigned long flags;
spin_lock_irqsave(&priv->lock, flags);
/* set HW default power register */
MACvSelectPage1(priv->PortOffset);
RFbSetPower(priv, RATE_1M, priv->byCurrentCh);
VNSvOutPortB(priv->PortOffset + MAC_REG_PWRCCK,
priv->byCurPwr);
RFbSetPower(priv, RATE_6M, priv->byCurrentCh);
VNSvOutPortB(priv->PortOffset + MAC_REG_PWROFDM,
priv->byCurPwr);
MACvSelectPage0(priv->PortOffset);
spin_unlock_irqrestore(&priv->lock, flags);
}
if (priv->byBBType == BB_TYPE_11B)
RFbSetPower(priv, RATE_1M, priv->byCurrentCh);
else
RFbSetPower(priv, RATE_6M, priv->byCurrentCh);
return ret;
}
示例14: GMACvSetPacketFilter
VOID GMACvSetPacketFilter(DWORD dwIoBase, WORD wFilterType)
{
BYTE byOldRCR;
BYTE byNewRCR = 0;
BYTE byOrgCAMCR, byData;
/* modify CAMCR to select MAR regs */
VNSvInPortB(dwIoBase + MAC_REG_CAMCR, &byOrgCAMCR);
byData = (BYTE)(byOrgCAMCR & ~(CAMCR_PS1|CAMCR_PS0));
VNSvOutPortB(dwIoBase + MAC_REG_CAMCR, byData);
/* if only in DIRECTED mode, multicast-address will set to zero, */
/* but if other mode exist (e.g. PROMISCUOUS), multicast-address */
/* will be open */
if (BITbIsBitOn(wFilterType, PKT_TYPE_DIRECTED)) {
/* set multicast address to accept none */
VNSvOutPortD(dwIoBase + MAC_REG_MAR, 0L);
/* PCAvDelayByIO(1); */
VNSvOutPortD(dwIoBase + MAC_REG_MAR + sizeof(DWORD), 0L);
/* PCAvDelayByIO(1); */
}
if (BITbIsAnyBitsOn(wFilterType, PKT_TYPE_PROMISCUOUS | PKT_TYPE_ALL_MULTICAST)) {
/* set multicast address to accept all */
VNSvOutPortD(dwIoBase + MAC_REG_MAR, 0xFFFFFFFFL);
/* PCAvDelayByIO(1); */
VNSvOutPortD(dwIoBase + MAC_REG_MAR + sizeof(DWORD), 0xFFFFFFFFL);
/* PCAvDelayByIO(1); */
}
/* restore to original CAMCR */
VNSvOutPortB(dwIoBase + MAC_REG_CAMCR, byOrgCAMCR);
if (BITbIsBitOn(wFilterType, PKT_TYPE_PROMISCUOUS))
byNewRCR |= (RCR_PROM | RCR_AM | RCR_AB);
if (BITbIsAnyBitsOn(wFilterType, PKT_TYPE_MULTICAST | PKT_TYPE_ALL_MULTICAST))
byNewRCR |= RCR_AM;
if (BITbIsBitOn(wFilterType, PKT_TYPE_BROADCAST))
byNewRCR |= RCR_AB;
if (BITbIsBitOn(wFilterType, PKT_TYPE_RUNT))
byNewRCR |= RCR_AR;
if (BITbIsBitOn(wFilterType, PKT_TYPE_ERROR))
byNewRCR |= RCR_SEP;
VNSvInPortB(dwIoBase + MAC_REG_RCR, &byOldRCR);
if (byNewRCR != (byOldRCR & 0x1F)) {
/* Modify the Receive Command Register */
byNewRCR |= (BYTE)(byOldRCR & 0xE0);
VNSvOutPortB(dwIoBase + MAC_REG_RCR, byNewRCR);
}
}
示例15: vnt_beacon_enable
int vnt_beacon_enable(struct vnt_private *priv, struct ieee80211_vif *vif,
struct ieee80211_bss_conf *conf)
{
VNSvOutPortB(priv->PortOffset + MAC_REG_TFTCTL, TFTCTL_TSFCNTRST);
VNSvOutPortB(priv->PortOffset + MAC_REG_TFTCTL, TFTCTL_TSFCNTREN);
CARDvSetFirstNextTBTT(priv, conf->beacon_int);
CARDbSetBeaconPeriod(priv, conf->beacon_int);
return vnt_beacon_make(priv, vif);
}