diff options
Diffstat (limited to 'drivers/staging/vt6656/bssdb.c')
-rw-r--r-- | drivers/staging/vt6656/bssdb.c | 61 |
1 files changed, 25 insertions, 36 deletions
diff --git a/drivers/staging/vt6656/bssdb.c b/drivers/staging/vt6656/bssdb.c index 9c78dab..8e9ce96 100644 --- a/drivers/staging/vt6656/bssdb.c +++ b/drivers/staging/vt6656/bssdb.c @@ -53,8 +53,7 @@ #include "card.h" #include "mac.h" #include "wpa2.h" -#include "control.h" -#include "rndis.h" +#include "usbpipe.h" #include "iowpa.h" #include "power.h" @@ -456,16 +455,15 @@ int BSSbInsertToBSSList(struct vnt_private *pDevice, } } - if (pDevice->bUpdateBBVGA) { - /* Monitor if RSSI is too strong. */ - pBSSList->byRSSIStatCnt = 0; - RFvRSSITodBm(pDevice, (u8) (pRxPacket->uRSSI), - &pBSSList->ldBmMAX); - pBSSList->ldBmAverage[0] = pBSSList->ldBmMAX; - pBSSList->ldBmAverRange = pBSSList->ldBmMAX; - for (ii = 1; ii < RSSI_STAT_COUNT; ii++) - pBSSList->ldBmAverage[ii] = 0; - } + /* Monitor if RSSI is too strong. */ + pBSSList->byRSSIStatCnt = 0; + + vnt_rf_rssi_to_dbm(pDevice, (u8)pRxPacket->uRSSI, &pBSSList->ldBmMAX); + + pBSSList->ldBmAverage[0] = pBSSList->ldBmMAX; + pBSSList->ldBmAverRange = pBSSList->ldBmMAX; + for (ii = 1; ii < RSSI_STAT_COUNT; ii++) + pBSSList->ldBmAverage[ii] = 0; pBSSList->uIELength = uIELength; if (pBSSList->uIELength > WLAN_BEACON_FR_MAXLEN) @@ -581,7 +579,7 @@ int BSSbUpdateToBSSList(struct vnt_private *pDevice, } if (pRxPacket->uRSSI != 0) { - RFvRSSITodBm(pDevice, (u8) (pRxPacket->uRSSI), &ldBm); + vnt_rf_rssi_to_dbm(pDevice, (u8)pRxPacket->uRSSI, &ldBm); /* Monitor if RSSI is too strong. */ pBSSList->byRSSIStatCnt++; pBSSList->byRSSIStatCnt %= RSSI_STAT_COUNT; @@ -774,8 +772,8 @@ void BSSvAddMulticastNode(struct vnt_private *pDevice) { struct vnt_manager *pMgmt = &pDevice->vnt_mgmt; - if (!pDevice->bEnableHostWEP) - memset(&pMgmt->sNodeDBTable[0], 0, sizeof(KnownNodeDB)); + memset(&pMgmt->sNodeDBTable[0], 0, sizeof(KnownNodeDB)); + memset(pMgmt->sNodeDBTable[0].abyMACAddr, 0xff, WLAN_ADDR_LEN); pMgmt->sNodeDBTable[0].bActive = true; pMgmt->sNodeDBTable[0].bPSEnable = false; @@ -818,8 +816,6 @@ void BSSvSecondCallBack(struct work_struct *work) if (pDevice->Flags & fMP_DISCONNECTED) return; - spin_lock_irq(&pDevice->lock); - pDevice->uAssocCount = 0; /* Power Saving Mode Tx Burst */ @@ -1001,10 +997,8 @@ void BSSvSecondCallBack(struct work_struct *work) if (pMgmt->sNodeDBTable[0].bActive) { /* Assoc with BSS */ - if (pDevice->bUpdateBBVGA) { - s_vCheckSensitivity(pDevice); - s_vCheckPreEDThreshold(pDevice); - } + s_vCheckSensitivity(pDevice); + s_vCheckPreEDThreshold(pDevice); if (pMgmt->sNodeDBTable[0].uInActiveCount >= (LOST_BEACON_COUNT/2) && @@ -1022,10 +1016,10 @@ void BSSvSecondCallBack(struct work_struct *work) pMgmt->eCurrState = WMAC_STATE_IDLE; netif_stop_queue(pDevice->dev); pDevice->bLinkPass = false; - ControlvMaskByte(pDevice, - MESSAGE_REQUEST_MACREG, - MAC_REG_PAPEDELAY, LEDSTS_STS, - LEDSTS_SLOW); + + vnt_mac_set_led(pDevice, LEDSTS_STS, + LEDSTS_SLOW); + pDevice->bRoaming = true; pDevice->bIsRoaming = false; @@ -1121,10 +1115,9 @@ void BSSvSecondCallBack(struct work_struct *work) } if (pMgmt->eCurrState == WMAC_STATE_JOINTED) { - if (pDevice->bUpdateBBVGA) { - s_vCheckSensitivity(pDevice); - s_vCheckPreEDThreshold(pDevice); - } + s_vCheckSensitivity(pDevice); + s_vCheckPreEDThreshold(pDevice); + if (pMgmt->sNodeDBTable[0].uInActiveCount >= ADHOC_LOST_BEACON_COUNT) { DBG_PRT(MSG_LEVEL_NOTICE, @@ -1134,10 +1127,8 @@ void BSSvSecondCallBack(struct work_struct *work) pMgmt->eCurrState = WMAC_STATE_STARTED; netif_stop_queue(pDevice->dev); pDevice->bLinkPass = false; - ControlvMaskByte(pDevice, - MESSAGE_REQUEST_MACREG, - MAC_REG_PAPEDELAY, LEDSTS_STS, - LEDSTS_SLOW); + vnt_mac_set_led(pDevice, LEDSTS_STS, + LEDSTS_SLOW); } } } @@ -1158,8 +1149,6 @@ void BSSvSecondCallBack(struct work_struct *work) netif_wake_queue(pDevice->dev); } - spin_unlock_irq(&pDevice->lock); - schedule_delayed_work(&pDevice->second_callback_work, HZ); } @@ -1429,7 +1418,7 @@ static void s_uCalculateLinkQual(struct vnt_private *pDevice) if (pDevice->bLinkPass != true) { pDevice->wstats.qual.qual = 0; } else { - RFvRSSITodBm(pDevice, (u8) (pDevice->uCurrRSSI), &ldBm); + vnt_rf_rssi_to_dbm(pDevice, (u8) (pDevice->uCurrRSSI), &ldBm); if (-ldBm < 50) RssiRatio = 4000; else if (-ldBm > 90) |