Commit 98e54917 authored by Simon Schuster's avatar Simon Schuster Committed by Greg Kroah-Hartman

Staging: vt6656: Reduce line length of bssdb.c

Long lines are split into multiple ones to reduce the line length.
Additionally some alignment fixes are made that previous patches
missed.

Unfortunately, due to the high indentation levels present in parts of
bssdb.c, this patch leaves some lines which are longer than 80
characters.
Signed-off-by: default avatarSebastian Rachuj <sebastian.rachuj@studium.uni-erlangen.de>
Signed-off-by: default avatarSimon Schuster <linux@rationality.eu>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 5918ed42
......@@ -136,8 +136,10 @@ PKnownBSS BSSpSearchBSSList(struct vnt_private *pDevice,
return pCurrBSS;
}
} else if (pMgmt->eConfigMode == WMAC_CONFIG_AUTO ||
(pMgmt->eConfigMode == WMAC_CONFIG_IBSS_STA && WLAN_GET_CAP_INFO_IBSS(pCurrBSS->wCapInfo)) ||
(pMgmt->eConfigMode == WMAC_CONFIG_ESS_STA && WLAN_GET_CAP_INFO_ESS(pCurrBSS->wCapInfo))) {
(pMgmt->eConfigMode == WMAC_CONFIG_IBSS_STA &&
WLAN_GET_CAP_INFO_IBSS(pCurrBSS->wCapInfo)) ||
(pMgmt->eConfigMode == WMAC_CONFIG_ESS_STA &&
WLAN_GET_CAP_INFO_ESS(pCurrBSS->wCapInfo))) {
pCurrBSS->bSelected = true;
return pCurrBSS;
}
......@@ -166,11 +168,15 @@ PKnownBSS BSSpSearchBSSList(struct vnt_private *pDevice,
continue;
}
if ((pMgmt->eConfigMode == WMAC_CONFIG_IBSS_STA && WLAN_GET_CAP_INFO_ESS(pCurrBSS->wCapInfo)) ||
(pMgmt->eConfigMode == WMAC_CONFIG_ESS_STA && WLAN_GET_CAP_INFO_IBSS(pCurrBSS->wCapInfo))
) {
if ((pMgmt->eConfigMode == WMAC_CONFIG_IBSS_STA &&
WLAN_GET_CAP_INFO_ESS(pCurrBSS->wCapInfo)) ||
(pMgmt->eConfigMode == WMAC_CONFIG_ESS_STA &&
WLAN_GET_CAP_INFO_IBSS(pCurrBSS->wCapInfo))) {
/* Type not match skip this BSS */
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"BSS type mismatch.... Config[%d] BSS[0x%04x]\n", pMgmt->eConfigMode, pCurrBSS->wCapInfo);
DBG_PRT(MSG_LEVEL_DEBUG,
KERN_INFO "BSS type mismatch.... Config[%d] BSS[0x%04x]\n",
pMgmt->eConfigMode,
pCurrBSS->wCapInfo);
continue;
}
......@@ -180,7 +186,10 @@ PKnownBSS BSSpSearchBSSList(struct vnt_private *pDevice,
(ePhyType != PHY_TYPE_11A &&
PHY_TYPE_11A == pCurrBSS->eNetworkTypeInUse))) {
/* PhyType not match skip this BSS */
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"Physical type mismatch.... ePhyType[%d] BSS[%d]\n", ePhyType, pCurrBSS->eNetworkTypeInUse);
DBG_PRT(MSG_LEVEL_DEBUG,
KERN_INFO "Physical type mismatch.... ePhyType[%d] BSS[%d]\n",
ePhyType,
pCurrBSS->eNetworkTypeInUse);
continue;
}
......@@ -321,7 +330,8 @@ int BSSbInsertToBSSList(struct vnt_private *pDevice,
}
if (ii == MAX_BSS_NUM) {
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Get free KnowBSS node failed.\n");
DBG_PRT(MSG_LEVEL_DEBUG,
KERN_INFO "Get free KnowBSS node failed.\n");
return false;
}
/* save the BSS info */
......@@ -340,16 +350,21 @@ int BSSbInsertToBSSList(struct vnt_private *pDevice,
if (pSuppRates->len > WLAN_RATES_MAXLEN)
pSuppRates->len = WLAN_RATES_MAXLEN;
memcpy(pBSSList->abySuppRates, pSuppRates, pSuppRates->len + WLAN_IEHDR_LEN);
memcpy(pBSSList->abySuppRates, pSuppRates,
pSuppRates->len + WLAN_IEHDR_LEN);
if (pExtSuppRates) {
if (pExtSuppRates->len > WLAN_RATES_MAXLEN)
pExtSuppRates->len = WLAN_RATES_MAXLEN;
memcpy(pBSSList->abyExtSuppRates, pExtSuppRates, pExtSuppRates->len + WLAN_IEHDR_LEN);
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"BSSbInsertToBSSList: pExtSuppRates->len = %d\n", pExtSuppRates->len);
memcpy(pBSSList->abyExtSuppRates, pExtSuppRates,
pExtSuppRates->len + WLAN_IEHDR_LEN);
DBG_PRT(MSG_LEVEL_DEBUG,
KERN_INFO "BSSbInsertToBSSList: pExtSuppRates->len = %d\n",
pExtSuppRates->len);
} else {
memset(pBSSList->abyExtSuppRates, 0, WLAN_IEHDR_LEN + WLAN_RATES_MAXLEN + 1);
memset(pBSSList->abyExtSuppRates, 0,
WLAN_IEHDR_LEN + WLAN_RATES_MAXLEN + 1);
}
pBSSList->sERP.byERP = psERP->byERP;
pBSSList->sERP.bERPExist = psERP->bERPExist;
......@@ -399,19 +414,24 @@ int BSSbInsertToBSSList(struct vnt_private *pDevice,
}
}
if (pMgmt->eAuthenMode == WMAC_AUTH_WPA2 || pBSSList->bWPA2Valid == true) {
if (pMgmt->eAuthenMode == WMAC_AUTH_WPA2 ||
pBSSList->bWPA2Valid == true) {
PSKeyItem pTransmitKey = NULL;
bool bIs802_1x = false;
for (ii = 0; ii < pBSSList->wAKMSSAuthCount; ii++) {
if (pBSSList->abyAKMSSAuthType[ii] == WLAN_11i_AKMSS_802_1X) {
if (pBSSList->abyAKMSSAuthType[ii] ==
WLAN_11i_AKMSS_802_1X) {
bIs802_1x = true;
break;
}
}
if (bIs802_1x == true && pSSID->len == ((PWLAN_IE_SSID) pMgmt->abyDesireSSID)->len &&
!memcmp(pSSID->abySSID, ((PWLAN_IE_SSID) pMgmt->abyDesireSSID)->abySSID, pSSID->len)) {
if (bIs802_1x == true &&
pSSID->len == ((PWLAN_IE_SSID) pMgmt->abyDesireSSID)->len &&
!memcmp(pSSID->abySSID,
((PWLAN_IE_SSID) pMgmt->abyDesireSSID)->abySSID,
pSSID->len)) {
bAdd_PMKID_Candidate((void *) pDevice,
pBSSList->abyBSSID,
......@@ -427,7 +447,8 @@ int BSSbInsertToBSSList(struct vnt_private *pDevice,
pDevice->abyBSSID,
GROUP_KEY,
&pTransmitKey) == true)) {
pDevice->gsPMKIDCandidate.StatusType = Ndis802_11StatusType_PMKID_CandidateList;
pDevice->gsPMKIDCandidate.StatusType =
Ndis802_11StatusType_PMKID_CandidateList;
pDevice->gsPMKIDCandidate.Version = 1;
......@@ -438,7 +459,8 @@ 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);
RFvRSSITodBm(pDevice, (u8) (pRxPacket->uRSSI),
&pBSSList->ldBmMAX);
pBSSList->ldBmAverage[0] = pBSSList->ldBmMAX;
pBSSList->ldBmAverRange = pBSSList->ldBmMAX;
for (ii = 1; ii < RSSI_STAT_COUNT; ii++)
......@@ -502,12 +524,15 @@ int BSSbUpdateToBSSList(struct vnt_private *pDevice,
if (pSSID->len != 0 && pSSID->abySSID[0] != 0)
memcpy(pBSSList->abySSID, pSSID, pSSID->len + WLAN_IEHDR_LEN);
memcpy(pBSSList->abySuppRates, pSuppRates, pSuppRates->len + WLAN_IEHDR_LEN);
memcpy(pBSSList->abySuppRates, pSuppRates,
pSuppRates->len + WLAN_IEHDR_LEN);
if (pExtSuppRates)
memcpy(pBSSList->abyExtSuppRates, pExtSuppRates, pExtSuppRates->len + WLAN_IEHDR_LEN);
memcpy(pBSSList->abyExtSuppRates, pExtSuppRates,
pExtSuppRates->len + WLAN_IEHDR_LEN);
else
memset(pBSSList->abyExtSuppRates, 0, WLAN_IEHDR_LEN + WLAN_RATES_MAXLEN + 1);
memset(pBSSList->abyExtSuppRates, 0,
WLAN_IEHDR_LEN + WLAN_RATES_MAXLEN + 1);
pBSSList->sERP.byERP = psERP->byERP;
pBSSList->sERP.bERPExist = psERP->bERPExist;
......@@ -631,7 +656,8 @@ void BSSvCreateOneNode(struct vnt_private *pDevice, u32 *puNodeIndex)
for (ii = 1; ii < (MAX_NODE_NUM + 1); ii++) {
if (pMgmt->sNodeDBTable[ii].bActive) {
if (pMgmt->sNodeDBTable[ii].uInActiveCount > BigestCount) {
BigestCount = pMgmt->sNodeDBTable[ii].uInActiveCount;
BigestCount =
pMgmt->sNodeDBTable[ii].uInActiveCount;
SelectIndex = ii;
}
} else {
......@@ -642,7 +668,8 @@ void BSSvCreateOneNode(struct vnt_private *pDevice, u32 *puNodeIndex)
/* if not found replace uInActiveCount with the largest one. */
if (ii == (MAX_NODE_NUM + 1)) {
*puNodeIndex = SelectIndex;
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Replace inactive node = %d\n", SelectIndex);
DBG_PRT(MSG_LEVEL_DEBUG,
KERN_INFO "Replace inactive node = %d\n", SelectIndex);
/* clear ps buffer */
if (pMgmt->sNodeDBTable[*puNodeIndex].sTxPSQueue.next) {
while ((skb = skb_dequeue(&pMgmt->sNodeDBTable[*puNodeIndex].sTxPSQueue)))
......@@ -681,7 +708,8 @@ void BSSvRemoveOneNode(struct vnt_private *pDevice, u32 uNodeIndex)
/* clear context */
memset(&pMgmt->sNodeDBTable[uNodeIndex], 0, sizeof(KnownNodeDB));
/* clear tx bit map */
pMgmt->abyPSTxMap[pMgmt->sNodeDBTable[uNodeIndex].wAID >> 3] &= ~byMask[pMgmt->sNodeDBTable[uNodeIndex].wAID & 7];
pMgmt->abyPSTxMap[pMgmt->sNodeDBTable[uNodeIndex].wAID >> 3] &=
~byMask[pMgmt->sNodeDBTable[uNodeIndex].wAID & 7];
}
/*
......@@ -720,13 +748,17 @@ void BSSvUpdateAPNode(struct vnt_private *pDevice,
&(pMgmt->sNodeDBTable[0].wSuppRate),
&(pMgmt->sNodeDBTable[0].byTopCCKBasicRate),
&(pMgmt->sNodeDBTable[0].byTopOFDMBasicRate));
memcpy(pMgmt->sNodeDBTable[0].abyMACAddr, pMgmt->abyCurrBSSID, WLAN_ADDR_LEN);
memcpy(pMgmt->sNodeDBTable[0].abyMACAddr, pMgmt->abyCurrBSSID,
WLAN_ADDR_LEN);
pMgmt->sNodeDBTable[0].wTxDataRate = pMgmt->sNodeDBTable[0].wMaxSuppRate;
pMgmt->sNodeDBTable[0].bShortPreamble = WLAN_GET_CAP_INFO_SHORTPREAMBLE(*pwCapInfo);
pMgmt->sNodeDBTable[0].bShortPreamble =
WLAN_GET_CAP_INFO_SHORTPREAMBLE(*pwCapInfo);
pMgmt->sNodeDBTable[0].uRatePollTimeout = FALLBACK_POLL_SECOND;
/* Auto rate fallback function initiation.
* RATEbInit(pDevice); */
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"pMgmt->sNodeDBTable[0].wTxDataRate = %d\n", pMgmt->sNodeDBTable[0].wTxDataRate);
DBG_PRT(MSG_LEVEL_DEBUG,
KERN_INFO"pMgmt->sNodeDBTable[0].wTxDataRate = %d\n",
pMgmt->sNodeDBTable[0].wTxDataRate);
}
......@@ -811,7 +843,8 @@ void BSSvSecondCallBack(struct work_struct *work)
if (pDevice->byReAssocCount > 0) {
pDevice->byReAssocCount++;
if (pDevice->byReAssocCount > 10 && pDevice->bLinkPass != true) { /* 10 sec timeout */
if (pDevice->byReAssocCount > 10 &&
pDevice->bLinkPass != true) { /* 10 sec timeout */
printk("Re-association timeout!!!\n");
pDevice->byReAssocCount = 0;
/* if (pDevice->bWPASuppWextEnabled == true) */
......@@ -820,7 +853,8 @@ void BSSvSecondCallBack(struct work_struct *work)
memset(&wrqu, 0, sizeof(wrqu));
wrqu.ap_addr.sa_family = ARPHRD_ETHER;
PRINT_K("wireless_send_event--->SIOCGIWAP(disassociated)\n");
wireless_send_event(pDevice->dev, SIOCGIWAP, &wrqu, NULL);
wireless_send_event(pDevice->dev, SIOCGIWAP,
&wrqu, NULL);
}
} else if (pDevice->bLinkPass == true) {
pDevice->byReAssocCount = 0;
......@@ -838,26 +872,33 @@ void BSSvSecondCallBack(struct work_struct *work)
pMgmt->sNodeDBTable[ii].uInActiveCount++;
if (ii > 0) {
if (pMgmt->sNodeDBTable[ii].uInActiveCount > MAX_INACTIVE_COUNT) {
if (pMgmt->sNodeDBTable[ii].uInActiveCount >
MAX_INACTIVE_COUNT) {
BSSvRemoveOneNode(pDevice, ii);
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO
"Inactive timeout [%d] sec, STA index = [%d] remove\n", MAX_INACTIVE_COUNT, ii);
"Inactive timeout [%d] sec, STA index = [%d] remove\n",
MAX_INACTIVE_COUNT, ii);
continue;
}
if (pMgmt->sNodeDBTable[ii].eNodeState >= NODE_ASSOC) {
if (pMgmt->sNodeDBTable[ii].eNodeState >=
NODE_ASSOC) {
pDevice->uAssocCount++;
/* check if Non ERP exist */
if (pMgmt->sNodeDBTable[ii].uInActiveCount < ERP_RECOVER_COUNT) {
if (pMgmt->sNodeDBTable[ii].uInActiveCount <
ERP_RECOVER_COUNT) {
if (!pMgmt->sNodeDBTable[ii].bShortPreamble) {
pDevice->byERPFlag |= WLAN_SET_ERP_BARKER_MODE(1);
pDevice->byERPFlag |=
WLAN_SET_ERP_BARKER_MODE(1);
uLongPreambleSTACnt++;
}
if (!pMgmt->sNodeDBTable[ii].bERPExist) {
pDevice->byERPFlag |= WLAN_SET_ERP_NONERP_PRESENT(1);
pDevice->byERPFlag |= WLAN_SET_ERP_USE_PROTECTION(1);
pDevice->byERPFlag |=
WLAN_SET_ERP_NONERP_PRESENT(1);
pDevice->byERPFlag |=
WLAN_SET_ERP_USE_PROTECTION(1);
}
if (!pMgmt->sNodeDBTable[ii].bShortSlotTime)
uNonShortSlotSTACnt++;
......@@ -886,11 +927,16 @@ void BSSvSecondCallBack(struct work_struct *work)
/* check if pending PS queue */
if (pMgmt->sNodeDBTable[ii].wEnQueueCnt != 0) {
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Index= %d, Queue = %d pending\n",
ii, pMgmt->sNodeDBTable[ii].wEnQueueCnt);
if (ii > 0 && pMgmt->sNodeDBTable[ii].wEnQueueCnt > 15) {
DBG_PRT(MSG_LEVEL_DEBUG,
KERN_INFO "Index= %d, Queue = %d pending\n",
ii,
pMgmt->sNodeDBTable[ii].wEnQueueCnt);
if (ii > 0 &&
pMgmt->sNodeDBTable[ii].wEnQueueCnt > 15) {
BSSvRemoveOneNode(pDevice, ii);
DBG_PRT(MSG_LEVEL_NOTICE, KERN_INFO "Pending many queues PS STA Index = %d remove\n", ii);
DBG_PRT(MSG_LEVEL_NOTICE,
KERN_INFO "Pending many queues PS STA Index = %d remove\n",
ii);
continue;
}
}
......@@ -898,7 +944,8 @@ void BSSvSecondCallBack(struct work_struct *work)
}
if (pMgmt->eCurrMode == WMAC_MODE_ESS_AP && pDevice->byBBType == BB_TYPE_11G) {
if (pMgmt->eCurrMode == WMAC_MODE_ESS_AP &&
pDevice->byBBType == BB_TYPE_11G) {
/* on/off protect mode */
if (WLAN_GET_ERP_USE_PROTECTION(pDevice->byERPFlag)) {
......@@ -959,7 +1006,8 @@ void BSSvSecondCallBack(struct work_struct *work)
s_vCheckPreEDThreshold(pDevice);
}
if (pMgmt->sNodeDBTable[0].uInActiveCount >= (LOST_BEACON_COUNT/2) &&
if (pMgmt->sNodeDBTable[0].uInActiveCount >=
(LOST_BEACON_COUNT/2) &&
pDevice->byBBVGACurrent != pDevice->abyBBVGA[0]) {
pDevice->byBBVGANew = pDevice->abyBBVGA[0];
bScheduleCommand((void *) pDevice,
......@@ -967,34 +1015,51 @@ void BSSvSecondCallBack(struct work_struct *work)
NULL);
}
if (pMgmt->sNodeDBTable[0].uInActiveCount >= LOST_BEACON_COUNT) {
if (pMgmt->sNodeDBTable[0].uInActiveCount >=
LOST_BEACON_COUNT) {
pMgmt->sNodeDBTable[0].bActive = false;
pMgmt->eCurrMode = WMAC_MODE_STANDBY;
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);
ControlvMaskByte(pDevice,
MESSAGE_REQUEST_MACREG,
MAC_REG_PAPEDELAY, LEDSTS_STS,
LEDSTS_SLOW);
pDevice->bRoaming = true;
pDevice->bIsRoaming = false;
DBG_PRT(MSG_LEVEL_NOTICE, KERN_INFO "Lost AP beacon [%d] sec, disconnected !\n", pMgmt->sNodeDBTable[0].uInActiveCount);
DBG_PRT(MSG_LEVEL_NOTICE,
KERN_INFO "Lost AP beacon [%d] sec, disconnected !\n",
pMgmt->sNodeDBTable[0].uInActiveCount);
/* let wpa supplicant know AP may disconnect */
{
union iwreq_data wrqu;
memset(&wrqu, 0, sizeof(wrqu));
wrqu.ap_addr.sa_family = ARPHRD_ETHER;
PRINT_K("wireless_send_event--->SIOCGIWAP(disassociated)\n");
wireless_send_event(pDevice->dev, SIOCGIWAP, &wrqu, NULL);
wireless_send_event(pDevice->dev,
SIOCGIWAP,
&wrqu,
NULL);
}
}
} else if (pItemSSID->len != 0) {
/* Davidwang */
if ((pDevice->bEnableRoaming == true)&&(!(pMgmt->Cisco_cckm))) {
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "bRoaming %d, !\n", pDevice->bRoaming);
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "bIsRoaming %d, !\n", pDevice->bIsRoaming);
if ((pDevice->bRoaming == true) && (pDevice->bIsRoaming == true)) {
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Fast Roaming ...\n");
BSSvClearBSSList((void *) pDevice, pDevice->bLinkPass);
if ((pDevice->bEnableRoaming == true) &&
(!(pMgmt->Cisco_cckm))) {
DBG_PRT(MSG_LEVEL_DEBUG,
KERN_INFO "bRoaming %d, !\n",
pDevice->bRoaming);
DBG_PRT(MSG_LEVEL_DEBUG,
KERN_INFO "bIsRoaming %d, !\n",
pDevice->bIsRoaming);
if ((pDevice->bRoaming == true) &&
(pDevice->bIsRoaming == true)) {
DBG_PRT(MSG_LEVEL_DEBUG,
KERN_INFO "Fast Roaming ...\n");
BSSvClearBSSList((void *) pDevice,
pDevice->bLinkPass);
bScheduleCommand((void *) pDevice,
WLAN_CMD_BSSID_SCAN,
pMgmt->abyDesireSSID);
......@@ -1004,7 +1069,8 @@ void BSSvSecondCallBack(struct work_struct *work)
pDevice->uAutoReConnectTime = 0;
pDevice->uIsroamingTime = 0;
pDevice->bRoaming = false;
} else if (pDevice->bRoaming == false && pDevice->bIsRoaming == true) {
} else if (pDevice->bRoaming == false &&
pDevice->bIsRoaming == true) {
pDevice->uIsroamingTime++;
if (pDevice->uIsroamingTime >= 20)
pDevice->bIsRoaming = false;
......@@ -1017,10 +1083,13 @@ void BSSvSecondCallBack(struct work_struct *work)
} else {
/* mike use old encryption status for wpa reauthen */
if (pDevice->bWPADEVUp)
pDevice->eEncryptionStatus = pDevice->eOldEncryptionStatus;
pDevice->eEncryptionStatus =
pDevice->eOldEncryptionStatus;
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Roaming ...\n");
BSSvClearBSSList((void *) pDevice, pDevice->bLinkPass);
DBG_PRT(MSG_LEVEL_DEBUG,
KERN_INFO "Roaming ...\n");
BSSvClearBSSList((void *) pDevice,
pDevice->bLinkPass);
pMgmt->eScanType = WMAC_SCAN_ACTIVE;
bScheduleCommand((void *) pDevice,
WLAN_CMD_BSSID_SCAN,
......@@ -1035,14 +1104,18 @@ void BSSvSecondCallBack(struct work_struct *work)
if (pMgmt->eCurrMode == WMAC_MODE_IBSS_STA) {
/* if adhoc started which essid is NULL string, rescanning. */
if (pMgmt->eCurrState == WMAC_STATE_STARTED && pCurrSSID->len == 0) {
if (pMgmt->eCurrState == WMAC_STATE_STARTED &&
pCurrSSID->len == 0) {
if (pDevice->uAutoReConnectTime < 10) {
pDevice->uAutoReConnectTime++;
} else {
DBG_PRT(MSG_LEVEL_NOTICE, KERN_INFO "Adhoc re-scanning ...\n");
DBG_PRT(MSG_LEVEL_NOTICE,
KERN_INFO "Adhoc re-scanning ...\n");
pMgmt->eScanType = WMAC_SCAN_ACTIVE;
bScheduleCommand((void *) pDevice, WLAN_CMD_BSSID_SCAN, NULL);
bScheduleCommand((void *) pDevice, WLAN_CMD_SSID, NULL);
bScheduleCommand((void *) pDevice,
WLAN_CMD_BSSID_SCAN, NULL);
bScheduleCommand((void *) pDevice,
WLAN_CMD_SSID, NULL);
pDevice->uAutoReConnectTime = 0;
}
}
......@@ -1052,13 +1125,19 @@ void BSSvSecondCallBack(struct work_struct *work)
s_vCheckSensitivity(pDevice);
s_vCheckPreEDThreshold(pDevice);
}
if (pMgmt->sNodeDBTable[0].uInActiveCount >= ADHOC_LOST_BEACON_COUNT) {
DBG_PRT(MSG_LEVEL_NOTICE, KERN_INFO "Lost other STA beacon [%d] sec, started !\n", pMgmt->sNodeDBTable[0].uInActiveCount);
if (pMgmt->sNodeDBTable[0].uInActiveCount >=
ADHOC_LOST_BEACON_COUNT) {
DBG_PRT(MSG_LEVEL_NOTICE,
KERN_INFO "Lost other STA beacon [%d] sec, started !\n",
pMgmt->sNodeDBTable[0].uInActiveCount);
pMgmt->sNodeDBTable[0].uInActiveCount = 0;
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);
ControlvMaskByte(pDevice,
MESSAGE_REQUEST_MACREG,
MAC_REG_PAPEDELAY, LEDSTS_STS,
LEDSTS_SLOW);
}
}
}
......@@ -1133,12 +1212,15 @@ void BSSvUpdateNodeTxCounter(struct vnt_private *pDevice, u8 byTSR, u8 byPktNO)
wFallBackRate = wRate;
} else if (byFallBack == AUTO_FB_0) {
if (byTxRetry < 5)
wFallBackRate = awHWRetry0[wRate-RATE_18M][byTxRetry];
wFallBackRate =
awHWRetry0[wRate-RATE_18M][byTxRetry];
else
wFallBackRate = awHWRetry0[wRate-RATE_18M][4];
wFallBackRate =
awHWRetry0[wRate-RATE_18M][4];
} else if (byFallBack == AUTO_FB_1) {
if (byTxRetry < 5)
wFallBackRate = awHWRetry1[wRate-RATE_18M][byTxRetry];
wFallBackRate =
awHWRetry1[wRate-RATE_18M][byTxRetry];
else
wFallBackRate = awHWRetry1[wRate-RATE_18M][4];
}
......@@ -1190,14 +1272,18 @@ void BSSvUpdateNodeTxCounter(struct vnt_private *pDevice, u8 byTSR, u8 byPktNO)
wFallBackRate = wRate;
} else if (byFallBack == AUTO_FB_0) {
if (byTxRetry < 5)
wFallBackRate = awHWRetry0[wRate-RATE_18M][byTxRetry];
wFallBackRate =
awHWRetry0[wRate-RATE_18M][byTxRetry];
else
wFallBackRate = awHWRetry0[wRate-RATE_18M][4];
wFallBackRate =
awHWRetry0[wRate-RATE_18M][4];
} else if (byFallBack == AUTO_FB_1) {
if (byTxRetry < 5)
wFallBackRate = awHWRetry1[wRate-RATE_18M][byTxRetry];
wFallBackRate =
awHWRetry1[wRate-RATE_18M][byTxRetry];
else
wFallBackRate = awHWRetry1[wRate-RATE_18M][4];
wFallBackRate =
awHWRetry1[wRate-RATE_18M][4];
}
pMgmt->sNodeDBTable[uNodeIndex].uTxOk[wFallBackRate]++;
} else {
......@@ -1259,7 +1345,9 @@ void BSSvClearNodeDBTable(struct vnt_private *pDevice, u32 uStartIndex)
/* check if sTxPSQueue has been initial */
if (pMgmt->sNodeDBTable[ii].sTxPSQueue.next) {
while ((skb = skb_dequeue(&pMgmt->sNodeDBTable[ii].sTxPSQueue))) {
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "PS skb != NULL %d\n", ii);
DBG_PRT(MSG_LEVEL_DEBUG,
KERN_INFO "PS skb != NULL %d\n",
ii);
dev_kfree_skb(skb);
}
}
......@@ -1275,8 +1363,10 @@ static void s_vCheckSensitivity(struct vnt_private *pDevice)
int ii;
if (pMgmt->eCurrState == WMAC_STATE_ASSOC ||
(pMgmt->eCurrMode == WMAC_MODE_IBSS_STA && pMgmt->eCurrState == WMAC_STATE_JOINTED)) {
pBSSList = BSSpAddrIsInBSSList(pDevice, pMgmt->abyCurrBSSID, (PWLAN_IE_SSID) pMgmt->abyCurrSSID);
(pMgmt->eCurrMode == WMAC_MODE_IBSS_STA &&
pMgmt->eCurrState == WMAC_STATE_JOINTED)) {
pBSSList = BSSpAddrIsInBSSList(pDevice, pMgmt->abyCurrBSSID,
(PWLAN_IE_SSID) pMgmt->abyCurrSSID);
if (pBSSList) {
/* Update BB register if RSSI is too strong */
signed long LocalldBmAverage = 0;
......@@ -1290,15 +1380,22 @@ static void s_vCheckSensitivity(struct vnt_private *pDevice)
if (uNumofdBm > 0) {
LocalldBmAverage = LocalldBmAverage/uNumofdBm;
for (ii = 0; ii < BB_VGA_LEVEL; ii++) {
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"LocalldBmAverage:%ld, %ld %02x\n", LocalldBmAverage, pDevice->ldBmThreshold[ii], pDevice->abyBBVGA[ii]);
DBG_PRT(MSG_LEVEL_DEBUG,
KERN_INFO"LocalldBmAverage:%ld, %ld %02x\n",
LocalldBmAverage,
pDevice->ldBmThreshold[ii],
pDevice->abyBBVGA[ii]);
if (LocalldBmAverage < pDevice->ldBmThreshold[ii]) {
pDevice->byBBVGANew = pDevice->abyBBVGA[ii];
pDevice->byBBVGANew =
pDevice->abyBBVGA[ii];
break;
}
}
if (pDevice->byBBVGANew != pDevice->byBBVGACurrent) {
if (pDevice->byBBVGANew !=
pDevice->byBBVGACurrent) {
pDevice->uBBVGADiffCount++;
if (pDevice->uBBVGADiffCount >= BB_VGA_CHANGE_THRESHOLD)
if (pDevice->uBBVGADiffCount >=
BB_VGA_CHANGE_THRESHOLD)
bScheduleCommand(pDevice,
WLAN_CMD_CHANGE_BBSENSITIVITY,
NULL);
......@@ -1365,10 +1462,14 @@ static void s_vCheckPreEDThreshold(struct vnt_private *pDevice)
struct vnt_manager *pMgmt = &pDevice->vnt_mgmt;
if (pMgmt->eCurrState == WMAC_STATE_ASSOC ||
(pMgmt->eCurrMode == WMAC_MODE_IBSS_STA && pMgmt->eCurrState == WMAC_STATE_JOINTED)) {
pBSSList = BSSpAddrIsInBSSList(pDevice, pMgmt->abyCurrBSSID, (PWLAN_IE_SSID) pMgmt->abyCurrSSID);
(pMgmt->eCurrMode == WMAC_MODE_IBSS_STA &&
pMgmt->eCurrState == WMAC_STATE_JOINTED)) {
pBSSList = BSSpAddrIsInBSSList(pDevice,
pMgmt->abyCurrBSSID,
(PWLAN_IE_SSID) pMgmt->abyCurrSSID);
if (pBSSList) {
pDevice->byBBPreEDRSSI = (u8) (~(pBSSList->ldBmAverRange) + 1);
pDevice->byBBPreEDRSSI =
(u8) (~(pBSSList->ldBmAverRange) + 1);
BBvUpdatePreEDThreshold(pDevice, false);
}
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment