aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/staging/vt6656/baseband.c22
-rw-r--r--drivers/staging/vt6656/baseband.h11
-rw-r--r--drivers/staging/vt6656/bssdb.c277
-rw-r--r--drivers/staging/vt6656/bssdb.h202
-rw-r--r--drivers/staging/vt6656/dpc.c14
-rw-r--r--drivers/staging/vt6656/int.c14
-rw-r--r--drivers/staging/vt6656/ioctl.c31
-rw-r--r--drivers/staging/vt6656/iwctl.c42
-rw-r--r--drivers/staging/vt6656/main_usb.c24
-rw-r--r--drivers/staging/vt6656/power.c58
-rw-r--r--drivers/staging/vt6656/power.h41
-rw-r--r--drivers/staging/vt6656/rxtx.c15
-rw-r--r--drivers/staging/vt6656/ttype.h7
-rw-r--r--drivers/staging/vt6656/wcmd.c124
-rw-r--r--drivers/staging/vt6656/wcmd.h30
-rw-r--r--drivers/staging/vt6656/wmgr.c248
-rw-r--r--drivers/staging/vt6656/wmgr.h109
-rw-r--r--drivers/staging/vt6656/wpactl.c18
18 files changed, 506 insertions, 781 deletions
diff --git a/drivers/staging/vt6656/baseband.c b/drivers/staging/vt6656/baseband.c
index d8154f366d5..01680e6b0f5 100644
--- a/drivers/staging/vt6656/baseband.c
+++ b/drivers/staging/vt6656/baseband.c
@@ -1513,7 +1513,9 @@ BBvAntennaDiversity (PSDevice pDevice, BYTE byRxRate, BYTE bySQ3)
1513 if ( pDevice->byTMax == 0 ) 1513 if ( pDevice->byTMax == 0 )
1514 return; 1514 return;
1515 1515
1516 bScheduleCommand((HANDLE) pDevice, WLAN_CMD_CHANGE_ANTENNA, NULL); 1516 bScheduleCommand((void *) pDevice,
1517 WLAN_CMD_CHANGE_ANTENNA,
1518 NULL);
1517 1519
1518 pDevice->byAntennaState = 1; 1520 pDevice->byAntennaState = 1;
1519 1521
@@ -1543,7 +1545,9 @@ BBvAntennaDiversity (PSDevice pDevice, BYTE byRxRate, BYTE bySQ3)
1543 ((pDevice->ulSQ3_State1 != 0) && (pDevice->ulSQ3_State0 != 0) && (pDevice->ulSQ3_State0 < pDevice->ulSQ3_State1)) 1545 ((pDevice->ulSQ3_State1 != 0) && (pDevice->ulSQ3_State0 != 0) && (pDevice->ulSQ3_State0 < pDevice->ulSQ3_State1))
1544 ) { 1546 ) {
1545 1547
1546 bScheduleCommand((HANDLE) pDevice, WLAN_CMD_CHANGE_ANTENNA, NULL); 1548 bScheduleCommand((void *) pDevice,
1549 WLAN_CMD_CHANGE_ANTENNA,
1550 NULL);
1547 1551
1548 pDevice->TimerSQ3Tmax3.expires = RUN_AT(pDevice->byTMax3 * HZ); 1552 pDevice->TimerSQ3Tmax3.expires = RUN_AT(pDevice->byTMax3 * HZ);
1549 pDevice->TimerSQ3Tmax2.expires = RUN_AT(pDevice->byTMax2 * HZ); 1553 pDevice->TimerSQ3Tmax2.expires = RUN_AT(pDevice->byTMax2 * HZ);
@@ -1576,17 +1580,14 @@ BBvAntennaDiversity (PSDevice pDevice, BYTE byRxRate, BYTE bySQ3)
1576 * 1580 *
1577-*/ 1581-*/
1578 1582
1579void 1583void TimerSQ3CallBack(void *hDeviceContext)
1580TimerSQ3CallBack (
1581 HANDLE hDeviceContext
1582 )
1583{ 1584{
1584 PSDevice pDevice = (PSDevice)hDeviceContext; 1585 PSDevice pDevice = (PSDevice)hDeviceContext;
1585 1586
1586 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"TimerSQ3CallBack..."); 1587 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"TimerSQ3CallBack...");
1587 spin_lock_irq(&pDevice->lock); 1588 spin_lock_irq(&pDevice->lock);
1588 1589
1589 bScheduleCommand((HANDLE) pDevice, WLAN_CMD_CHANGE_ANTENNA, NULL); 1590 bScheduleCommand((void *) pDevice, WLAN_CMD_CHANGE_ANTENNA, NULL);
1590 pDevice->byAntennaState = 0; 1591 pDevice->byAntennaState = 0;
1591 s_vClearSQ3Value(pDevice); 1592 s_vClearSQ3Value(pDevice);
1592 pDevice->TimerSQ3Tmax3.expires = RUN_AT(pDevice->byTMax3 * HZ); 1593 pDevice->TimerSQ3Tmax3.expires = RUN_AT(pDevice->byTMax3 * HZ);
@@ -1618,10 +1619,7 @@ TimerSQ3CallBack (
1618 * 1619 *
1619-*/ 1620-*/
1620 1621
1621void 1622void TimerSQ3Tmax3CallBack(void *hDeviceContext)
1622TimerSQ3Tmax3CallBack (
1623 HANDLE hDeviceContext
1624 )
1625{ 1623{
1626 PSDevice pDevice = (PSDevice)hDeviceContext; 1624 PSDevice pDevice = (PSDevice)hDeviceContext;
1627 1625
@@ -1639,7 +1637,7 @@ TimerSQ3Tmax3CallBack (
1639 return; 1637 return;
1640 } 1638 }
1641 1639
1642 bScheduleCommand((HANDLE) pDevice, WLAN_CMD_CHANGE_ANTENNA, NULL); 1640 bScheduleCommand((void *) pDevice, WLAN_CMD_CHANGE_ANTENNA, NULL);
1643 pDevice->byAntennaState = 1; 1641 pDevice->byAntennaState = 1;
1644 del_timer(&pDevice->TimerSQ3Tmax3); 1642 del_timer(&pDevice->TimerSQ3Tmax3);
1645 del_timer(&pDevice->TimerSQ3Tmax2); 1643 del_timer(&pDevice->TimerSQ3Tmax2);
diff --git a/drivers/staging/vt6656/baseband.h b/drivers/staging/vt6656/baseband.h
index d54d4150dd0..d59992c17ec 100644
--- a/drivers/staging/vt6656/baseband.h
+++ b/drivers/staging/vt6656/baseband.h
@@ -117,15 +117,8 @@ BBvCaculateParameter (
117 117
118// timer for antenna diversity 118// timer for antenna diversity
119 119
120void 120void TimerSQ3CallBack(void *hDeviceContext);
121TimerSQ3CallBack ( 121void TimerSQ3Tmax3CallBack(void *hDeviceContext);
122 HANDLE hDeviceContext
123 );
124
125void
126TimerSQ3Tmax3CallBack (
127 HANDLE hDeviceContext
128 );
129 122
130void BBvAntennaDiversity(PSDevice pDevice, BYTE byRxRate, BYTE bySQ3); 123void BBvAntennaDiversity(PSDevice pDevice, BYTE byRxRate, BYTE bySQ3);
131void BBvLoopbackOn(PSDevice pDevice); 124void BBvLoopbackOn(PSDevice pDevice);
diff --git a/drivers/staging/vt6656/bssdb.c b/drivers/staging/vt6656/bssdb.c
index 7cc0d9533f7..8c68e04cf98 100644
--- a/drivers/staging/vt6656/bssdb.c
+++ b/drivers/staging/vt6656/bssdb.c
@@ -91,19 +91,13 @@ const WORD awHWRetry1[5][5] = {
91 91
92/*--------------------- Static Functions --------------------------*/ 92/*--------------------- Static Functions --------------------------*/
93 93
94void s_vCheckSensitivity( 94void s_vCheckSensitivity(void *hDeviceContext);
95 HANDLE hDeviceContext 95void s_vCheckPreEDThreshold(void *hDeviceContext);
96 );
97
98void s_vCheckPreEDThreshold(
99 HANDLE hDeviceContext
100 );
101 96
102#ifdef Calcu_LinkQual 97#ifdef Calcu_LinkQual
103void s_uCalculateLinkQual( 98void s_uCalculateLinkQual(void *hDeviceContext);
104 HANDLE hDeviceContext
105 );
106#endif 99#endif
100
107/*--------------------- Export Variables --------------------------*/ 101/*--------------------- Export Variables --------------------------*/
108 102
109 103
@@ -123,13 +117,10 @@ void s_uCalculateLinkQual(
123 * 117 *
124-*/ 118-*/
125 119
126PKnownBSS 120PKnownBSS BSSpSearchBSSList(void *hDeviceContext,
127BSSpSearchBSSList( 121 PBYTE pbyDesireBSSID,
128 HANDLE hDeviceContext, 122 PBYTE pbyDesireSSID,
129 PBYTE pbyDesireBSSID, 123 CARD_PHY_TYPE ePhyType)
130 PBYTE pbyDesireSSID,
131 CARD_PHY_TYPE ePhyType
132 )
133{ 124{
134 PSDevice pDevice = (PSDevice)hDeviceContext; 125 PSDevice pDevice = (PSDevice)hDeviceContext;
135 PSMgmtObject pMgmt = &(pDevice->sMgmtObj); 126 PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
@@ -296,11 +287,7 @@ pDevice->bSameBSSMaxNum = jj;
296-*/ 287-*/
297 288
298 289
299void 290void BSSvClearBSSList(void *hDeviceContext, BOOL bKeepCurrBSSID)
300BSSvClearBSSList(
301 HANDLE hDeviceContext,
302 BOOL bKeepCurrBSSID
303 )
304{ 291{
305 PSDevice pDevice = (PSDevice)hDeviceContext; 292 PSDevice pDevice = (PSDevice)hDeviceContext;
306 PSMgmtObject pMgmt = &(pDevice->sMgmtObj); 293 PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
@@ -342,12 +329,9 @@ BSSvClearBSSList(
342 * TRUE if found. 329 * TRUE if found.
343 * 330 *
344-*/ 331-*/
345PKnownBSS 332PKnownBSS BSSpAddrIsInBSSList(void *hDeviceContext,
346BSSpAddrIsInBSSList( 333 PBYTE abyBSSID,
347 HANDLE hDeviceContext, 334 PWLAN_IE_SSID pSSID)
348 PBYTE abyBSSID,
349 PWLAN_IE_SSID pSSID
350 )
351{ 335{
352 PSDevice pDevice = (PSDevice)hDeviceContext; 336 PSDevice pDevice = (PSDevice)hDeviceContext;
353 PSMgmtObject pMgmt = &(pDevice->sMgmtObj); 337 PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
@@ -383,26 +367,23 @@ BSSpAddrIsInBSSList(
383 * 367 *
384-*/ 368-*/
385 369
386BOOL 370BOOL BSSbInsertToBSSList(void *hDeviceContext,
387BSSbInsertToBSSList ( 371 PBYTE abyBSSIDAddr,
388 HANDLE hDeviceContext, 372 QWORD qwTimestamp,
389 PBYTE abyBSSIDAddr, 373 WORD wBeaconInterval,
390 QWORD qwTimestamp, 374 WORD wCapInfo,
391 WORD wBeaconInterval, 375 BYTE byCurrChannel,
392 WORD wCapInfo, 376 PWLAN_IE_SSID pSSID,
393 BYTE byCurrChannel, 377 PWLAN_IE_SUPP_RATES pSuppRates,
394 PWLAN_IE_SSID pSSID, 378 PWLAN_IE_SUPP_RATES pExtSuppRates,
395 PWLAN_IE_SUPP_RATES pSuppRates, 379 PERPObject psERP,
396 PWLAN_IE_SUPP_RATES pExtSuppRates, 380 PWLAN_IE_RSN pRSN,
397 PERPObject psERP, 381 PWLAN_IE_RSN_EXT pRSNWPA,
398 PWLAN_IE_RSN pRSN, 382 PWLAN_IE_COUNTRY pIE_Country,
399 PWLAN_IE_RSN_EXT pRSNWPA, 383 PWLAN_IE_QUIET pIE_Quiet,
400 PWLAN_IE_COUNTRY pIE_Country, 384 UINT uIELength,
401 PWLAN_IE_QUIET pIE_Quiet, 385 PBYTE pbyIEs,
402 UINT uIELength, 386 void *pRxPacketContext)
403 PBYTE pbyIEs,
404 HANDLE pRxPacketContext
405 )
406{ 387{
407 388
408 PSDevice pDevice = (PSDevice)hDeviceContext; 389 PSDevice pDevice = (PSDevice)hDeviceContext;
@@ -518,7 +499,9 @@ BSSbInsertToBSSList (
518 if ((bIs802_1x == TRUE) && (pSSID->len == ((PWLAN_IE_SSID)pMgmt->abyDesireSSID)->len) && 499 if ((bIs802_1x == TRUE) && (pSSID->len == ((PWLAN_IE_SSID)pMgmt->abyDesireSSID)->len) &&
519 ( !memcmp(pSSID->abySSID, ((PWLAN_IE_SSID)pMgmt->abyDesireSSID)->abySSID, pSSID->len))) { 500 ( !memcmp(pSSID->abySSID, ((PWLAN_IE_SSID)pMgmt->abyDesireSSID)->abySSID, pSSID->len))) {
520 501
521 bAdd_PMKID_Candidate((HANDLE)pDevice, pBSSList->abyBSSID, &pBSSList->sRSNCapObj); 502 bAdd_PMKID_Candidate((void *) pDevice,
503 pBSSList->abyBSSID,
504 &pBSSList->sRSNCapObj);
522 505
523 if ((pDevice->bLinkPass == TRUE) && (pMgmt->eCurrState == WMAC_STATE_ASSOC)) { 506 if ((pDevice->bLinkPass == TRUE) && (pMgmt->eCurrState == WMAC_STATE_ASSOC)) {
524 if ((KeybGetTransmitKey(&(pDevice->sKey), pDevice->abyBSSID, PAIRWISE_KEY, &pTransmitKey) == TRUE) || 507 if ((KeybGetTransmitKey(&(pDevice->sKey), pDevice->abyBSSID, PAIRWISE_KEY, &pTransmitKey) == TRUE) ||
@@ -602,27 +585,24 @@ BSSbInsertToBSSList (
602-*/ 585-*/
603// TODO: input structure modify 586// TODO: input structure modify
604 587
605BOOL 588BOOL BSSbUpdateToBSSList(void *hDeviceContext,
606BSSbUpdateToBSSList ( 589 QWORD qwTimestamp,
607 HANDLE hDeviceContext, 590 WORD wBeaconInterval,
608 QWORD qwTimestamp, 591 WORD wCapInfo,
609 WORD wBeaconInterval, 592 BYTE byCurrChannel,
610 WORD wCapInfo, 593 BOOL bChannelHit,
611 BYTE byCurrChannel, 594 PWLAN_IE_SSID pSSID,
612 BOOL bChannelHit, 595 PWLAN_IE_SUPP_RATES pSuppRates,
613 PWLAN_IE_SSID pSSID, 596 PWLAN_IE_SUPP_RATES pExtSuppRates,
614 PWLAN_IE_SUPP_RATES pSuppRates, 597 PERPObject psERP,
615 PWLAN_IE_SUPP_RATES pExtSuppRates, 598 PWLAN_IE_RSN pRSN,
616 PERPObject psERP, 599 PWLAN_IE_RSN_EXT pRSNWPA,
617 PWLAN_IE_RSN pRSN, 600 PWLAN_IE_COUNTRY pIE_Country,
618 PWLAN_IE_RSN_EXT pRSNWPA, 601 PWLAN_IE_QUIET pIE_Quiet,
619 PWLAN_IE_COUNTRY pIE_Country, 602 PKnownBSS pBSSList,
620 PWLAN_IE_QUIET pIE_Quiet, 603 UINT uIELength,
621 PKnownBSS pBSSList, 604 PBYTE pbyIEs,
622 UINT uIELength, 605 void *pRxPacketContext)
623 PBYTE pbyIEs,
624 HANDLE pRxPacketContext
625 )
626{ 606{
627 int ii, jj; 607 int ii, jj;
628 PSDevice pDevice = (PSDevice)hDeviceContext; 608 PSDevice pDevice = (PSDevice)hDeviceContext;
@@ -768,12 +748,9 @@ BSSbUpdateToBSSList (
768 * 748 *
769-*/ 749-*/
770 750
771BOOL 751BOOL BSSbIsSTAInNodeDB(void *hDeviceContext,
772BSSbIsSTAInNodeDB( 752 PBYTE abyDstAddr,
773 HANDLE hDeviceContext, 753 PUINT puNodeIndex)
774 PBYTE abyDstAddr,
775 PUINT puNodeIndex
776 )
777{ 754{
778 PSDevice pDevice = (PSDevice)hDeviceContext; 755 PSDevice pDevice = (PSDevice)hDeviceContext;
779 PSMgmtObject pMgmt = &(pDevice->sMgmtObj); 756 PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
@@ -804,11 +781,7 @@ BSSbIsSTAInNodeDB(
804 * None 781 * None
805 * 782 *
806-*/ 783-*/
807void 784void BSSvCreateOneNode(void *hDeviceContext, PUINT puNodeIndex)
808BSSvCreateOneNode(
809 HANDLE hDeviceContext,
810 PUINT puNodeIndex
811 )
812{ 785{
813 786
814 PSDevice pDevice = (PSDevice)hDeviceContext; 787 PSDevice pDevice = (PSDevice)hDeviceContext;
@@ -869,11 +842,8 @@ BSSvCreateOneNode(
869 * None 842 * None
870 * 843 *
871-*/ 844-*/
872void 845
873BSSvRemoveOneNode( 846void BSSvRemoveOneNode(void *hDeviceContext, UINT uNodeIndex)
874 HANDLE hDeviceContext,
875 UINT uNodeIndex
876 )
877{ 847{
878 848
879 PSDevice pDevice = (PSDevice)hDeviceContext; 849 PSDevice pDevice = (PSDevice)hDeviceContext;
@@ -902,13 +872,10 @@ BSSvRemoveOneNode(
902 * 872 *
903-*/ 873-*/
904 874
905void 875void BSSvUpdateAPNode(void *hDeviceContext,
906BSSvUpdateAPNode( 876 PWORD pwCapInfo,
907 HANDLE hDeviceContext, 877 PWLAN_IE_SUPP_RATES pSuppRates,
908 PWORD pwCapInfo, 878 PWLAN_IE_SUPP_RATES pExtSuppRates)
909 PWLAN_IE_SUPP_RATES pSuppRates,
910 PWLAN_IE_SUPP_RATES pExtSuppRates
911 )
912{ 879{
913 PSDevice pDevice = (PSDevice)hDeviceContext; 880 PSDevice pDevice = (PSDevice)hDeviceContext;
914 PSMgmtObject pMgmt = &(pDevice->sMgmtObj); 881 PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
@@ -946,10 +913,6 @@ BSSvUpdateAPNode(
946 913
947}; 914};
948 915
949
950
951
952
953/*+ 916/*+
954 * 917 *
955 * Routine Description: 918 * Routine Description:
@@ -961,11 +924,7 @@ BSSvUpdateAPNode(
961 * 924 *
962-*/ 925-*/
963 926
964 927void BSSvAddMulticastNode(void *hDeviceContext)
965void
966BSSvAddMulticastNode(
967 HANDLE hDeviceContext
968 )
969{ 928{
970 PSDevice pDevice = (PSDevice)hDeviceContext; 929 PSDevice pDevice = (PSDevice)hDeviceContext;
971 PSMgmtObject pMgmt = &(pDevice->sMgmtObj); 930 PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
@@ -991,10 +950,6 @@ BSSvAddMulticastNode(
991 950
992}; 951};
993 952
994
995
996
997
998/*+ 953/*+
999 * 954 *
1000 * Routine Description: 955 * Routine Description:
@@ -1008,11 +963,7 @@ BSSvAddMulticastNode(
1008 * 963 *
1009-*/ 964-*/
1010 965
1011 966void BSSvSecondCallBack(void *hDeviceContext)
1012void
1013BSSvSecondCallBack(
1014 HANDLE hDeviceContext
1015 )
1016{ 967{
1017 PSDevice pDevice = (PSDevice)hDeviceContext; 968 PSDevice pDevice = (PSDevice)hDeviceContext;
1018 PSMgmtObject pMgmt = &(pDevice->sMgmtObj); 969 PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
@@ -1080,7 +1031,7 @@ if((pMgmt->eCurrState!=WMAC_STATE_ASSOC) &&
1080#endif 1031#endif
1081 1032
1082#ifdef Calcu_LinkQual 1033#ifdef Calcu_LinkQual
1083 s_uCalculateLinkQual((HANDLE)pDevice); 1034 s_uCalculateLinkQual((void *)pDevice);
1084#endif 1035#endif
1085 1036
1086 for (ii = 0; ii < (MAX_NODE_NUM + 1); ii++) { 1037 for (ii = 0; ii < (MAX_NODE_NUM + 1); ii++) {
@@ -1226,14 +1177,16 @@ if((pMgmt->eCurrState!=WMAC_STATE_ASSOC) &&
1226 // DBG_PRT(MSG_LEVEL_INFO, KERN_INFO "Callback inactive Count = [%d]\n", pMgmt->sNodeDBTable[0].uInActiveCount); 1177 // DBG_PRT(MSG_LEVEL_INFO, KERN_INFO "Callback inactive Count = [%d]\n", pMgmt->sNodeDBTable[0].uInActiveCount);
1227 1178
1228 if (pDevice->bUpdateBBVGA) { 1179 if (pDevice->bUpdateBBVGA) {
1229 // s_vCheckSensitivity((HANDLE) pDevice); 1180 /* s_vCheckSensitivity((void *) pDevice); */
1230 s_vCheckPreEDThreshold((HANDLE)pDevice); 1181 s_vCheckPreEDThreshold((void *) pDevice);
1231 } 1182 }
1232 1183
1233 if ((pMgmt->sNodeDBTable[0].uInActiveCount >= (LOST_BEACON_COUNT/2)) && 1184 if ((pMgmt->sNodeDBTable[0].uInActiveCount >= (LOST_BEACON_COUNT/2)) &&
1234 (pDevice->byBBVGACurrent != pDevice->abyBBVGA[0]) ) { 1185 (pDevice->byBBVGACurrent != pDevice->abyBBVGA[0]) ) {
1235 pDevice->byBBVGANew = pDevice->abyBBVGA[0]; 1186 pDevice->byBBVGANew = pDevice->abyBBVGA[0];
1236 bScheduleCommand((HANDLE) pDevice, WLAN_CMD_CHANGE_BBSENSITIVITY, NULL); 1187 bScheduleCommand((void *) pDevice,
1188 WLAN_CMD_CHANGE_BBSENSITIVITY,
1189 NULL);
1237 } 1190 }
1238 1191
1239 if (pMgmt->sNodeDBTable[0].uInActiveCount >= LOST_BEACON_COUNT) { 1192 if (pMgmt->sNodeDBTable[0].uInActiveCount >= LOST_BEACON_COUNT) {
@@ -1281,9 +1234,13 @@ DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "bRoaming %d, !\n", pDevice->bRoaming );
1281DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "bIsRoaming %d, !\n", pDevice->bIsRoaming ); 1234DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "bIsRoaming %d, !\n", pDevice->bIsRoaming );
1282 if ((pDevice->bRoaming == TRUE)&&(pDevice->bIsRoaming == TRUE)){ 1235 if ((pDevice->bRoaming == TRUE)&&(pDevice->bIsRoaming == TRUE)){
1283 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Fast Roaming ...\n"); 1236 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Fast Roaming ...\n");
1284 BSSvClearBSSList((HANDLE)pDevice, pDevice->bLinkPass); 1237 BSSvClearBSSList((void *) pDevice, pDevice->bLinkPass);
1285 bScheduleCommand((HANDLE) pDevice, WLAN_CMD_BSSID_SCAN, pMgmt->abyDesireSSID); 1238 bScheduleCommand((void *) pDevice,
1286 bScheduleCommand((HANDLE) pDevice, WLAN_CMD_SSID, pMgmt->abyDesireSSID); 1239 WLAN_CMD_BSSID_SCAN,
1240 pMgmt->abyDesireSSID);
1241 bScheduleCommand((void *) pDevice,
1242 WLAN_CMD_SSID,
1243 pMgmt->abyDesireSSID);
1287 pDevice->uAutoReConnectTime = 0; 1244 pDevice->uAutoReConnectTime = 0;
1288 pDevice->uIsroamingTime = 0; 1245 pDevice->uIsroamingTime = 0;
1289 pDevice->bRoaming = FALSE; 1246 pDevice->bRoaming = FALSE;
@@ -1326,10 +1283,14 @@ else {
1326 pDevice->eEncryptionStatus = pDevice->eOldEncryptionStatus; 1283 pDevice->eEncryptionStatus = pDevice->eOldEncryptionStatus;
1327 1284
1328 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Roaming ...\n"); 1285 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Roaming ...\n");
1329 BSSvClearBSSList((HANDLE)pDevice, pDevice->bLinkPass); 1286 BSSvClearBSSList((void *) pDevice, pDevice->bLinkPass);
1330 pMgmt->eScanType = WMAC_SCAN_ACTIVE; 1287 pMgmt->eScanType = WMAC_SCAN_ACTIVE;
1331 bScheduleCommand((HANDLE) pDevice, WLAN_CMD_BSSID_SCAN, pMgmt->abyDesireSSID); 1288 bScheduleCommand((void *) pDevice,
1332 bScheduleCommand((HANDLE) pDevice, WLAN_CMD_SSID, pMgmt->abyDesireSSID); 1289 WLAN_CMD_BSSID_SCAN,
1290 pMgmt->abyDesireSSID);
1291 bScheduleCommand((void *) pDevice,
1292 WLAN_CMD_SSID,
1293 pMgmt->abyDesireSSID);
1333 pDevice->uAutoReConnectTime = 0; 1294 pDevice->uAutoReConnectTime = 0;
1334 } 1295 }
1335 } 1296 }
@@ -1345,17 +1306,17 @@ else {
1345 else { 1306 else {
1346 DBG_PRT(MSG_LEVEL_NOTICE, KERN_INFO "Adhoc re-scaning ...\n"); 1307 DBG_PRT(MSG_LEVEL_NOTICE, KERN_INFO "Adhoc re-scaning ...\n");
1347 pMgmt->eScanType = WMAC_SCAN_ACTIVE; 1308 pMgmt->eScanType = WMAC_SCAN_ACTIVE;
1348 bScheduleCommand((HANDLE) pDevice, WLAN_CMD_BSSID_SCAN, NULL); 1309 bScheduleCommand((void *) pDevice, WLAN_CMD_BSSID_SCAN, NULL);
1349 bScheduleCommand((HANDLE) pDevice, WLAN_CMD_SSID, NULL); 1310 bScheduleCommand((void *) pDevice, WLAN_CMD_SSID, NULL);
1350 pDevice->uAutoReConnectTime = 0; 1311 pDevice->uAutoReConnectTime = 0;
1351 }; 1312 };
1352 } 1313 }
1353 if (pMgmt->eCurrState == WMAC_STATE_JOINTED) { 1314 if (pMgmt->eCurrState == WMAC_STATE_JOINTED) {
1354 1315
1355 if (pDevice->bUpdateBBVGA) { 1316 if (pDevice->bUpdateBBVGA) {
1356 //s_vCheckSensitivity((HANDLE) pDevice); 1317 /* s_vCheckSensitivity((void *) pDevice); */
1357 s_vCheckPreEDThreshold((HANDLE)pDevice); 1318 s_vCheckPreEDThreshold((void *) pDevice);
1358 } 1319 }
1359 if (pMgmt->sNodeDBTable[0].uInActiveCount >=ADHOC_LOST_BEACON_COUNT) { 1320 if (pMgmt->sNodeDBTable[0].uInActiveCount >=ADHOC_LOST_BEACON_COUNT) {
1360 DBG_PRT(MSG_LEVEL_NOTICE, KERN_INFO "Lost other STA beacon [%d] sec, started !\n", pMgmt->sNodeDBTable[0].uInActiveCount); 1321 DBG_PRT(MSG_LEVEL_NOTICE, KERN_INFO "Lost other STA beacon [%d] sec, started !\n", pMgmt->sNodeDBTable[0].uInActiveCount);
1361 pMgmt->sNodeDBTable[0].uInActiveCount = 0; 1322 pMgmt->sNodeDBTable[0].uInActiveCount = 0;
@@ -1379,9 +1340,6 @@ else {
1379 return; 1340 return;
1380} 1341}
1381 1342
1382
1383
1384
1385/*+ 1343/*+
1386 * 1344 *
1387 * Routine Description: 1345 * Routine Description:
@@ -1395,15 +1353,10 @@ else {
1395 * 1353 *
1396-*/ 1354-*/
1397 1355
1398 1356void BSSvUpdateNodeTxCounter(void *hDeviceContext,
1399 1357 PSStatCounter pStatistic,
1400void 1358 BYTE byTSR,
1401BSSvUpdateNodeTxCounter( 1359 BYTE byPktNO)
1402 HANDLE hDeviceContext,
1403 PSStatCounter pStatistic,
1404 BYTE byTSR,
1405 BYTE byPktNO
1406 )
1407{ 1360{
1408 PSDevice pDevice = (PSDevice)hDeviceContext; 1361 PSDevice pDevice = (PSDevice)hDeviceContext;
1409 PSMgmtObject pMgmt = &(pDevice->sMgmtObj); 1362 PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
@@ -1417,8 +1370,6 @@ BSSvUpdateNodeTxCounter(
1417 BYTE byPktNum; 1370 BYTE byPktNum;
1418 WORD wFIFOCtl; 1371 WORD wFIFOCtl;
1419 1372
1420
1421
1422 byPktNum = (byPktNO & 0x0F) >> 4; 1373 byPktNum = (byPktNO & 0x0F) >> 4;
1423 byTxRetry = (byTSR & 0xF0) >> 4; 1374 byTxRetry = (byTSR & 0xF0) >> 4;
1424 wRate = (WORD) (byPktNO & 0xF0) >> 4; 1375 wRate = (WORD) (byPktNO & 0xF0) >> 4;
@@ -1485,11 +1436,13 @@ BSSvUpdateNodeTxCounter(
1485 } 1436 }
1486 }; 1437 };
1487 1438
1488 if ((pMgmt->eCurrMode == WMAC_MODE_IBSS_STA) || 1439 if ((pMgmt->eCurrMode == WMAC_MODE_IBSS_STA) ||
1489 (pMgmt->eCurrMode == WMAC_MODE_ESS_AP)) { 1440 (pMgmt->eCurrMode == WMAC_MODE_ESS_AP)) {
1490 1441
1491 if (BSSbIsSTAInNodeDB((HANDLE)pDevice, pbyDestAddr, &uNodeIndex)){ 1442 if (BSSbIsSTAInNodeDB((void *) pDevice,
1492 pMgmt->sNodeDBTable[uNodeIndex].uTxAttempts += 1; 1443 pbyDestAddr,
1444 &uNodeIndex)) {
1445 pMgmt->sNodeDBTable[uNodeIndex].uTxAttempts += 1;
1493 if ( !(byTSR & (TSR_TMO | TSR_RETRYTMO))) { 1446 if ( !(byTSR & (TSR_TMO | TSR_RETRYTMO))) {
1494 // transmit success, TxAttempts at least plus one 1447 // transmit success, TxAttempts at least plus one
1495 pMgmt->sNodeDBTable[uNodeIndex].uTxOk[MAX_RATE]++; 1448 pMgmt->sNodeDBTable[uNodeIndex].uTxOk[MAX_RATE]++;
@@ -1544,9 +1497,6 @@ BSSvUpdateNodeTxCounter(
1544 1497
1545} 1498}
1546 1499
1547
1548
1549
1550/*+ 1500/*+
1551 * 1501 *
1552 * Routine Description: 1502 * Routine Description:
@@ -1565,13 +1515,8 @@ BSSvUpdateNodeTxCounter(
1565 * 1515 *
1566-*/ 1516-*/
1567 1517
1568 1518void BSSvClearNodeDBTable(void *hDeviceContext,
1569void 1519 UINT uStartIndex)
1570BSSvClearNodeDBTable(
1571 HANDLE hDeviceContext,
1572 UINT uStartIndex
1573 )
1574
1575{ 1520{
1576 PSDevice pDevice = (PSDevice)hDeviceContext; 1521 PSDevice pDevice = (PSDevice)hDeviceContext;
1577 PSMgmtObject pMgmt = &(pDevice->sMgmtObj); 1522 PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
@@ -1594,10 +1539,7 @@ BSSvClearNodeDBTable(
1594 return; 1539 return;
1595}; 1540};
1596 1541
1597 1542void s_vCheckSensitivity(void *hDeviceContext)
1598void s_vCheckSensitivity(
1599 HANDLE hDeviceContext
1600 )
1601{ 1543{
1602 PSDevice pDevice = (PSDevice)hDeviceContext; 1544 PSDevice pDevice = (PSDevice)hDeviceContext;
1603 PKnownBSS pBSSList = NULL; 1545 PKnownBSS pBSSList = NULL;
@@ -1629,7 +1571,9 @@ void s_vCheckSensitivity(
1629 if (pDevice->byBBVGANew != pDevice->byBBVGACurrent) { 1571 if (pDevice->byBBVGANew != pDevice->byBBVGACurrent) {
1630 pDevice->uBBVGADiffCount++; 1572 pDevice->uBBVGADiffCount++;
1631 if (pDevice->uBBVGADiffCount >= BB_VGA_CHANGE_THRESHOLD) 1573 if (pDevice->uBBVGADiffCount >= BB_VGA_CHANGE_THRESHOLD)
1632 bScheduleCommand((HANDLE) pDevice, WLAN_CMD_CHANGE_BBSENSITIVITY, NULL); 1574 bScheduleCommand((void *) pDevice,
1575 WLAN_CMD_CHANGE_BBSENSITIVITY,
1576 NULL);
1633 } else { 1577 } else {
1634 pDevice->uBBVGADiffCount = 0; 1578 pDevice->uBBVGADiffCount = 0;
1635 } 1579 }
@@ -1639,9 +1583,7 @@ void s_vCheckSensitivity(
1639} 1583}
1640 1584
1641#ifdef Calcu_LinkQual 1585#ifdef Calcu_LinkQual
1642void s_uCalculateLinkQual( 1586void s_uCalculateLinkQual(void *hDeviceContext)
1643 HANDLE hDeviceContext
1644 )
1645{ 1587{
1646 PSDevice pDevice = (PSDevice)hDeviceContext; 1588 PSDevice pDevice = (PSDevice)hDeviceContext;
1647 ULONG TxOkRatio, TxCnt; 1589 ULONG TxOkRatio, TxCnt;
@@ -1687,10 +1629,7 @@ else
1687} 1629}
1688#endif 1630#endif
1689 1631
1690void 1632void BSSvClearAnyBSSJoinRecord(void *hDeviceContext)
1691BSSvClearAnyBSSJoinRecord (
1692 HANDLE hDeviceContext
1693 )
1694{ 1633{
1695 PSDevice pDevice = (PSDevice)hDeviceContext; 1634 PSDevice pDevice = (PSDevice)hDeviceContext;
1696 PSMgmtObject pMgmt = &(pDevice->sMgmtObj); 1635 PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
@@ -1702,9 +1641,7 @@ BSSvClearAnyBSSJoinRecord (
1702 return; 1641 return;
1703} 1642}
1704 1643
1705void s_vCheckPreEDThreshold( 1644void s_vCheckPreEDThreshold(void *hDeviceContext)
1706 HANDLE hDeviceContext
1707 )
1708{ 1645{
1709 PSDevice pDevice = (PSDevice)hDeviceContext; 1646 PSDevice pDevice = (PSDevice)hDeviceContext;
1710 PKnownBSS pBSSList = NULL; 1647 PKnownBSS pBSSList = NULL;
diff --git a/drivers/staging/vt6656/bssdb.h b/drivers/staging/vt6656/bssdb.h
index 48b34b51402..8140b9b37fb 100644
--- a/drivers/staging/vt6656/bssdb.h
+++ b/drivers/staging/vt6656/bssdb.h
@@ -226,134 +226,82 @@ typedef struct tagKnownNodeDB {
226 226
227} KnownNodeDB, *PKnownNodeDB; 227} KnownNodeDB, *PKnownNodeDB;
228 228
229
230/*--------------------- Export Functions --------------------------*/ 229/*--------------------- Export Functions --------------------------*/
231 230
232 231PKnownBSS BSSpSearchBSSList(void *hDeviceContext,
233 232 PBYTE pbyDesireBSSID,
234PKnownBSS 233 PBYTE pbyDesireSSID,
235BSSpSearchBSSList( 234 CARD_PHY_TYPE ePhyType);
236 HANDLE hDeviceContext, 235
237 PBYTE pbyDesireBSSID, 236PKnownBSS BSSpAddrIsInBSSList(void *hDeviceContext,
238 PBYTE pbyDesireSSID, 237 PBYTE abyBSSID,
239 CARD_PHY_TYPE ePhyType 238 PWLAN_IE_SSID pSSID);
240 ); 239
241 240void BSSvClearBSSList(void *hDeviceContext, BOOL bKeepCurrBSSID);
242PKnownBSS 241
243BSSpAddrIsInBSSList( 242BOOL BSSbInsertToBSSList(void *hDeviceContext,
244 HANDLE hDeviceContext, 243 PBYTE abyBSSIDAddr,
245 PBYTE abyBSSID, 244 QWORD qwTimestamp,
246 PWLAN_IE_SSID pSSID 245 WORD wBeaconInterval,
247 ); 246 WORD wCapInfo,
248 247 BYTE byCurrChannel,
249void 248 PWLAN_IE_SSID pSSID,
250BSSvClearBSSList( 249 PWLAN_IE_SUPP_RATES pSuppRates,
251 HANDLE hDeviceContext, 250 PWLAN_IE_SUPP_RATES pExtSuppRates,
252 BOOL bKeepCurrBSSID 251 PERPObject psERP,
253 ); 252 PWLAN_IE_RSN pRSN,
254 253 PWLAN_IE_RSN_EXT pRSNWPA,
255BOOL 254 PWLAN_IE_COUNTRY pIE_Country,
256BSSbInsertToBSSList( 255 PWLAN_IE_QUIET pIE_Quiet,
257 HANDLE hDeviceContext, 256 UINT uIELength,
258 PBYTE abyBSSIDAddr, 257 PBYTE pbyIEs,
259 QWORD qwTimestamp, 258 void *pRxPacketContext);
260 WORD wBeaconInterval, 259
261 WORD wCapInfo, 260BOOL BSSbUpdateToBSSList(void *hDeviceContext,
262 BYTE byCurrChannel, 261 QWORD qwTimestamp,
263 PWLAN_IE_SSID pSSID, 262 WORD wBeaconInterval,
264 PWLAN_IE_SUPP_RATES pSuppRates, 263 WORD wCapInfo,
265 PWLAN_IE_SUPP_RATES pExtSuppRates, 264 BYTE byCurrChannel,
266 PERPObject psERP, 265 BOOL bChannelHit,
267 PWLAN_IE_RSN pRSN, 266 PWLAN_IE_SSID pSSID,
268 PWLAN_IE_RSN_EXT pRSNWPA, 267 PWLAN_IE_SUPP_RATES pSuppRates,
269 PWLAN_IE_COUNTRY pIE_Country, 268 PWLAN_IE_SUPP_RATES pExtSuppRates,
270 PWLAN_IE_QUIET pIE_Quiet, 269 PERPObject psERP,
271 UINT uIELength, 270 PWLAN_IE_RSN pRSN,
272 PBYTE pbyIEs, 271 PWLAN_IE_RSN_EXT pRSNWPA,
273 HANDLE pRxPacketContext 272 PWLAN_IE_COUNTRY pIE_Country,
274 ); 273 PWLAN_IE_QUIET pIE_Quiet,
275 274 PKnownBSS pBSSList,
276 275 UINT uIELength,
277BOOL 276 PBYTE pbyIEs,
278BSSbUpdateToBSSList( 277 void *pRxPacketContext);
279 HANDLE hDeviceContext, 278
280 QWORD qwTimestamp, 279BOOL BSSbIsSTAInNodeDB(void *hDeviceContext,
281 WORD wBeaconInterval, 280 PBYTE abyDstAddr,
282 WORD wCapInfo, 281 PUINT puNodeIndex);
283 BYTE byCurrChannel, 282
284 BOOL bChannelHit, 283void BSSvCreateOneNode(void *hDeviceContext, PUINT puNodeIndex);
285 PWLAN_IE_SSID pSSID, 284
286 PWLAN_IE_SUPP_RATES pSuppRates, 285void BSSvUpdateAPNode(void *hDeviceContext,
287 PWLAN_IE_SUPP_RATES pExtSuppRates, 286 PWORD pwCapInfo,
288 PERPObject psERP, 287 PWLAN_IE_SUPP_RATES pItemRates,
289 PWLAN_IE_RSN pRSN, 288 PWLAN_IE_SUPP_RATES pExtSuppRates);
290 PWLAN_IE_RSN_EXT pRSNWPA, 289
291 PWLAN_IE_COUNTRY pIE_Country, 290void BSSvSecondCallBack(void *hDeviceContext);
292 PWLAN_IE_QUIET pIE_Quiet, 291
293 PKnownBSS pBSSList, 292void BSSvUpdateNodeTxCounter(void *hDeviceContext,
294 UINT uIELength, 293 PSStatCounter pStatistic,
295 PBYTE pbyIEs, 294 BYTE byTSR,
296 HANDLE pRxPacketContext 295 BYTE byPktNO);
297 ); 296
298 297void BSSvRemoveOneNode(void *hDeviceContext,
299 298 UINT uNodeIndex);
300BOOL 299
301BSSbIsSTAInNodeDB( 300void BSSvAddMulticastNode(void *hDeviceContext);
302 HANDLE hDeviceContext, 301
303 PBYTE abyDstAddr, 302void BSSvClearNodeDBTable(void *hDeviceContext,
304 PUINT puNodeIndex 303 UINT uStartIndex);
305 ); 304
306 305void BSSvClearAnyBSSJoinRecord(void *hDeviceContext);
307void
308BSSvCreateOneNode(
309 HANDLE hDeviceContext,
310 PUINT puNodeIndex
311 );
312
313void
314BSSvUpdateAPNode(
315 HANDLE hDeviceContext,
316 PWORD pwCapInfo,
317 PWLAN_IE_SUPP_RATES pItemRates,
318 PWLAN_IE_SUPP_RATES pExtSuppRates
319 );
320
321
322void
323BSSvSecondCallBack(
324 HANDLE hDeviceContext
325 );
326
327
328void
329BSSvUpdateNodeTxCounter(
330 HANDLE hDeviceContext,
331 PSStatCounter pStatistic,
332 BYTE byTSR,
333 BYTE byPktNO
334 );
335
336void
337BSSvRemoveOneNode(
338 HANDLE hDeviceContext,
339 UINT uNodeIndex
340 );
341
342void
343BSSvAddMulticastNode(
344 HANDLE hDeviceContext
345 );
346
347
348void
349BSSvClearNodeDBTable(
350 HANDLE hDeviceContext,
351 UINT uStartIndex
352 );
353
354void
355BSSvClearAnyBSSJoinRecord(
356 HANDLE hDeviceContext
357 );
358 306
359#endif /* __BSSDB_H__ */ 307#endif /* __BSSDB_H__ */
diff --git a/drivers/staging/vt6656/dpc.c b/drivers/staging/vt6656/dpc.c
index b18427b3916..6982224dfa9 100644
--- a/drivers/staging/vt6656/dpc.c
+++ b/drivers/staging/vt6656/dpc.c
@@ -1069,7 +1069,9 @@ static BOOL s_bAPModeRxCtl (
1069 // delcare received ps-poll event 1069 // delcare received ps-poll event
1070 if (IS_CTL_PSPOLL(pbyFrame)) { 1070 if (IS_CTL_PSPOLL(pbyFrame)) {
1071 pMgmt->sNodeDBTable[iSANodeIndex].bRxPSPoll = TRUE; 1071 pMgmt->sNodeDBTable[iSANodeIndex].bRxPSPoll = TRUE;
1072 bScheduleCommand((HANDLE)pDevice, WLAN_CMD_RX_PSPOLL, NULL); 1072 bScheduleCommand((void *) pDevice,
1073 WLAN_CMD_RX_PSPOLL,
1074 NULL);
1073 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "dpc: WLAN_CMD_RX_PSPOLL 1\n"); 1075 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "dpc: WLAN_CMD_RX_PSPOLL 1\n");
1074 } 1076 }
1075 else { 1077 else {
@@ -1078,7 +1080,9 @@ static BOOL s_bAPModeRxCtl (
1078 if (!IS_FC_POWERMGT(pbyFrame)) { 1080 if (!IS_FC_POWERMGT(pbyFrame)) {
1079 pMgmt->sNodeDBTable[iSANodeIndex].bPSEnable = FALSE; 1081 pMgmt->sNodeDBTable[iSANodeIndex].bPSEnable = FALSE;
1080 pMgmt->sNodeDBTable[iSANodeIndex].bRxPSPoll = TRUE; 1082 pMgmt->sNodeDBTable[iSANodeIndex].bRxPSPoll = TRUE;
1081 bScheduleCommand((HANDLE)pDevice, WLAN_CMD_RX_PSPOLL, NULL); 1083 bScheduleCommand((void *) pDevice,
1084 WLAN_CMD_RX_PSPOLL,
1085 NULL);
1082 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "dpc: WLAN_CMD_RX_PSPOLL 2\n"); 1086 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "dpc: WLAN_CMD_RX_PSPOLL 2\n");
1083 } 1087 }
1084 } 1088 }
@@ -1094,7 +1098,9 @@ static BOOL s_bAPModeRxCtl (
1094 if (pMgmt->sNodeDBTable[iSANodeIndex].wEnQueueCnt > 0) { 1098 if (pMgmt->sNodeDBTable[iSANodeIndex].wEnQueueCnt > 0) {
1095 pMgmt->sNodeDBTable[iSANodeIndex].bPSEnable = FALSE; 1099 pMgmt->sNodeDBTable[iSANodeIndex].bPSEnable = FALSE;
1096 pMgmt->sNodeDBTable[iSANodeIndex].bRxPSPoll = TRUE; 1100 pMgmt->sNodeDBTable[iSANodeIndex].bRxPSPoll = TRUE;
1097 bScheduleCommand((HANDLE)pDevice, WLAN_CMD_RX_PSPOLL, NULL); 1101 bScheduleCommand((void *) pDevice,
1102 WLAN_CMD_RX_PSPOLL,
1103 NULL);
1098 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "dpc: WLAN_CMD_RX_PSPOLL 3\n"); 1104 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "dpc: WLAN_CMD_RX_PSPOLL 3\n");
1099 1105
1100 } 1106 }
@@ -1596,7 +1602,7 @@ void RXvMngWorkItem(void *Context)
1596 } 1602 }
1597 ASSERT(pRCB);// cannot be NULL 1603 ASSERT(pRCB);// cannot be NULL
1598 pRxPacket = &(pRCB->sMngPacket); 1604 pRxPacket = &(pRCB->sMngPacket);
1599 vMgrRxManagePacket((HANDLE)pDevice, &(pDevice->sMgmtObj), pRxPacket); 1605 vMgrRxManagePacket((void *) pDevice, &(pDevice->sMgmtObj), pRxPacket);
1600 pRCB->Ref--; 1606 pRCB->Ref--;
1601 if(pRCB->Ref == 0) { 1607 if(pRCB->Ref == 0) {
1602 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"RxvFreeMng %d %d\n",pDevice->NumRecvFreeList, pDevice->NumRecvMngList); 1608 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"RxvFreeMng %d %d\n",pDevice->NumRecvFreeList, pDevice->NumRecvMngList);
diff --git a/drivers/staging/vt6656/int.c b/drivers/staging/vt6656/int.c
index 2ba20893ce7..89f5b18bdf1 100644
--- a/drivers/staging/vt6656/int.c
+++ b/drivers/staging/vt6656/int.c
@@ -160,11 +160,11 @@ INTnsProcessData(PSDevice pDevice)
160 pMgmt->byDTIMPeriod-1; 160 pMgmt->byDTIMPeriod-1;
161 pMgmt->sNodeDBTable[0].bRxPSPoll = TRUE; 161 pMgmt->sNodeDBTable[0].bRxPSPoll = TRUE;
162 if (pMgmt->sNodeDBTable[0].bPSEnable) 162 if (pMgmt->sNodeDBTable[0].bPSEnable)
163 bScheduleCommand((HANDLE)pDevice, 163 bScheduleCommand((void *) pDevice,
164 WLAN_CMD_RX_PSPOLL, 164 WLAN_CMD_RX_PSPOLL,
165 NULL); 165 NULL);
166 } 166 }
167 bScheduleCommand((HANDLE)pDevice, 167 bScheduleCommand((void *) pDevice,
168 WLAN_CMD_BECON_SEND, 168 WLAN_CMD_BECON_SEND,
169 NULL); 169 NULL);
170 } /* if (pDevice->eOPMode == OP_MODE_AP) */ 170 } /* if (pDevice->eOPMode == OP_MODE_AP) */
@@ -174,13 +174,13 @@ INTnsProcessData(PSDevice pDevice)
174 } 174 }
175 if (pINTData->byISR0 & ISR_TBTT) { 175 if (pINTData->byISR0 & ISR_TBTT) {
176 if (pDevice->bEnablePSMode) 176 if (pDevice->bEnablePSMode)
177 bScheduleCommand((HANDLE) pDevice, 177 bScheduleCommand((void *) pDevice,
178 WLAN_CMD_TBTT_WAKEUP, 178 WLAN_CMD_TBTT_WAKEUP,
179 NULL); 179 NULL);
180 if (pDevice->bChannelSwitch) { 180 if (pDevice->bChannelSwitch) {
181 pDevice->byChannelSwitchCount--; 181 pDevice->byChannelSwitchCount--;
182 if (pDevice->byChannelSwitchCount == 0) 182 if (pDevice->byChannelSwitchCount == 0)
183 bScheduleCommand((HANDLE) pDevice, 183 bScheduleCommand((void *) pDevice,
184 WLAN_CMD_11H_CHSW, 184 WLAN_CMD_11H_CHSW,
185 NULL); 185 NULL);
186 } 186 }
@@ -207,7 +207,7 @@ INTnsProcessData(PSDevice pDevice)
207 207
208 if (pINTData->byISR1 != 0) 208 if (pINTData->byISR1 != 0)
209 if (pINTData->byISR1 & ISR_GPIO3) 209 if (pINTData->byISR1 & ISR_GPIO3)
210 bScheduleCommand((HANDLE) pDevice, 210 bScheduleCommand((void *) pDevice,
211 WLAN_CMD_RADIO, 211 WLAN_CMD_RADIO,
212 NULL); 212 NULL);
213 pDevice->intBuf.uDataLen = 0; 213 pDevice->intBuf.uDataLen = 0;
diff --git a/drivers/staging/vt6656/ioctl.c b/drivers/staging/vt6656/ioctl.c
index 08d5429db26..69d1d735f71 100644
--- a/drivers/staging/vt6656/ioctl.c
+++ b/drivers/staging/vt6656/ioctl.c
@@ -100,16 +100,21 @@ int private_ioctl(PSDevice pDevice, struct ifreq *rq) {
100 memcpy(abyScanSSID, pItemSSID, pItemSSID->len + WLAN_IEHDR_LEN); 100 memcpy(abyScanSSID, pItemSSID, pItemSSID->len + WLAN_IEHDR_LEN);
101 } 101 }
102 spin_lock_irq(&pDevice->lock); 102 spin_lock_irq(&pDevice->lock);
103 if (memcmp(pMgmt->abyCurrBSSID, &abyNullAddr[0], 6) == 0)
104 BSSvClearBSSList((HANDLE)pDevice, FALSE);
105 else
106 BSSvClearBSSList((HANDLE)pDevice, pDevice->bLinkPass);
107 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "WLAN_CMD_BSS_SCAN..begin \n");
108 103
109 if (pItemSSID->len != 0) 104 if (memcmp(pMgmt->abyCurrBSSID, &abyNullAddr[0], 6) == 0)
110 bScheduleCommand((HANDLE) pDevice, WLAN_CMD_BSSID_SCAN, abyScanSSID); 105 BSSvClearBSSList((void *) pDevice, FALSE);
111 else 106 else
112 bScheduleCommand((HANDLE) pDevice, WLAN_CMD_BSSID_SCAN, NULL); 107 BSSvClearBSSList((void *) pDevice, pDevice->bLinkPass);
108
109 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "WLAN_CMD_BSS_SCAN..begin\n");
110
111 if (pItemSSID->len != 0)
112 bScheduleCommand((void *) pDevice,
113 WLAN_CMD_BSSID_SCAN,
114 abyScanSSID);
115 else
116 bScheduleCommand((void *) pDevice, WLAN_CMD_BSSID_SCAN, NULL);
117
113 spin_unlock_irq(&pDevice->lock); 118 spin_unlock_irq(&pDevice->lock);
114 break; 119 break;
115 120
@@ -207,8 +212,10 @@ int private_ioctl(PSDevice pDevice, struct ifreq *rq) {
207 netif_stop_queue(pDevice->dev); 212 netif_stop_queue(pDevice->dev);
208 spin_lock_irq(&pDevice->lock); 213 spin_lock_irq(&pDevice->lock);
209 pMgmt->eCurrState = WMAC_STATE_IDLE; 214 pMgmt->eCurrState = WMAC_STATE_IDLE;
210 bScheduleCommand((HANDLE) pDevice, WLAN_CMD_BSSID_SCAN, pMgmt->abyDesireSSID); 215 bScheduleCommand((void *) pDevice,
211 bScheduleCommand((HANDLE) pDevice, WLAN_CMD_SSID, NULL); 216 WLAN_CMD_BSSID_SCAN,
217 pMgmt->abyDesireSSID);
218 bScheduleCommand((void *) pDevice, WLAN_CMD_SSID, NULL);
212 spin_unlock_irq(&pDevice->lock); 219 spin_unlock_irq(&pDevice->lock);
213 break; 220 break;
214 221
@@ -576,7 +583,7 @@ int private_ioctl(PSDevice pDevice, struct ifreq *rq) {
576 583
577 netif_stop_queue(pDevice->dev); 584 netif_stop_queue(pDevice->dev);
578 spin_lock_irq(&pDevice->lock); 585 spin_lock_irq(&pDevice->lock);
579 bScheduleCommand((HANDLE)pDevice, WLAN_CMD_RUN_AP, NULL); 586 bScheduleCommand((void *) pDevice, WLAN_CMD_RUN_AP, NULL);
580 spin_unlock_irq(&pDevice->lock); 587 spin_unlock_irq(&pDevice->lock);
581 break; 588 break;
582 589
diff --git a/drivers/staging/vt6656/iwctl.c b/drivers/staging/vt6656/iwctl.c
index d7ed3b45633..4d0db21b1b9 100644
--- a/drivers/staging/vt6656/iwctl.c
+++ b/drivers/staging/vt6656/iwctl.c
@@ -209,9 +209,9 @@ if(pDevice->byReAssocCount > 0) { //reject scan when re-associating!
209 209
210 spin_lock_irq(&pDevice->lock); 210 spin_lock_irq(&pDevice->lock);
211 211
212 #ifdef update_BssList 212#ifdef update_BssList
213 BSSvClearBSSList((HANDLE)pDevice, pDevice->bLinkPass); 213 BSSvClearBSSList((void *) pDevice, pDevice->bLinkPass);
214 #endif 214#endif
215 215
216//mike add: active scan OR passive scan OR desire_ssid scan 216//mike add: active scan OR passive scan OR desire_ssid scan
217 if(wrq->length == sizeof(struct iw_scan_req)) { 217 if(wrq->length == sizeof(struct iw_scan_req)) {
@@ -229,7 +229,7 @@ if(pDevice->byReAssocCount > 0) { //reject scan when re-associating!
229 pMgmt->eScanType = WMAC_SCAN_PASSIVE; 229 pMgmt->eScanType = WMAC_SCAN_PASSIVE;
230 PRINT_K("SIOCSIWSCAN:[desired_ssid=%s,len=%d]\n",((PWLAN_IE_SSID)abyScanSSID)->abySSID, 230 PRINT_K("SIOCSIWSCAN:[desired_ssid=%s,len=%d]\n",((PWLAN_IE_SSID)abyScanSSID)->abySSID,
231 ((PWLAN_IE_SSID)abyScanSSID)->len); 231 ((PWLAN_IE_SSID)abyScanSSID)->len);
232 bScheduleCommand((HANDLE) pDevice, WLAN_CMD_BSSID_SCAN, abyScanSSID); 232 bScheduleCommand((void *) pDevice, WLAN_CMD_BSSID_SCAN, abyScanSSID);
233 spin_unlock_irq(&pDevice->lock); 233 spin_unlock_irq(&pDevice->lock);
234 234
235 return 0; 235 return 0;
@@ -244,7 +244,7 @@ if(pDevice->byReAssocCount > 0) { //reject scan when re-associating!
244 244
245 pMgmt->eScanType = WMAC_SCAN_PASSIVE; 245 pMgmt->eScanType = WMAC_SCAN_PASSIVE;
246 //printk("SIOCSIWSCAN:WLAN_CMD_BSSID_SCAN\n"); 246 //printk("SIOCSIWSCAN:WLAN_CMD_BSSID_SCAN\n");
247 bScheduleCommand((HANDLE) pDevice, WLAN_CMD_BSSID_SCAN, NULL); 247 bScheduleCommand((void *) pDevice, WLAN_CMD_BSSID_SCAN, NULL);
248 spin_unlock_irq(&pDevice->lock); 248 spin_unlock_irq(&pDevice->lock);
249 249
250 return 0; 250 return 0;
@@ -944,10 +944,14 @@ int iwctl_siwessid(struct net_device *dev,
944 944
945 if (pCurr == NULL){ 945 if (pCurr == NULL){
946 PRINT_K("SIOCSIWESSID:hidden ssid site survey before associate.......\n"); 946 PRINT_K("SIOCSIWESSID:hidden ssid site survey before associate.......\n");
947 vResetCommandTimer((HANDLE) pDevice); 947 vResetCommandTimer((void *) pDevice);
948 pMgmt->eScanType = WMAC_SCAN_ACTIVE; 948 pMgmt->eScanType = WMAC_SCAN_ACTIVE;
949 bScheduleCommand((HANDLE) pDevice, WLAN_CMD_BSSID_SCAN, pMgmt->abyDesireSSID); 949 bScheduleCommand((void *) pDevice,
950 bScheduleCommand((HANDLE) pDevice, WLAN_CMD_SSID, pMgmt->abyDesireSSID); 950 WLAN_CMD_BSSID_SCAN,
951 pMgmt->abyDesireSSID);
952 bScheduleCommand((void *) pDevice,
953 WLAN_CMD_SSID,
954 pMgmt->abyDesireSSID);
951 } 955 }
952 else { //mike:to find out if that desired SSID is a hidden-ssid AP , 956 else { //mike:to find out if that desired SSID is a hidden-ssid AP ,
953 // by means of judging if there are two same BSSID exist in list ? 957 // by means of judging if there are two same BSSID exist in list ?
@@ -959,10 +963,14 @@ int iwctl_siwessid(struct net_device *dev,
959 } 963 }
960 if(uSameBssidNum >= 2) { //hit: desired AP is in hidden ssid mode!!! 964 if(uSameBssidNum >= 2) { //hit: desired AP is in hidden ssid mode!!!
961 PRINT_K("SIOCSIWESSID:hidden ssid directly associate.......\n"); 965 PRINT_K("SIOCSIWESSID:hidden ssid directly associate.......\n");
962 vResetCommandTimer((HANDLE) pDevice); 966 vResetCommandTimer((void *) pDevice);
963 pMgmt->eScanType = WMAC_SCAN_PASSIVE; //this scan type,you'll submit scan result! 967 pMgmt->eScanType = WMAC_SCAN_PASSIVE; //this scan type,you'll submit scan result!
964 bScheduleCommand((HANDLE) pDevice, WLAN_CMD_BSSID_SCAN, pMgmt->abyDesireSSID); 968 bScheduleCommand((void *) pDevice,
965 bScheduleCommand((HANDLE) pDevice, WLAN_CMD_SSID, pMgmt->abyDesireSSID); 969 WLAN_CMD_BSSID_SCAN,
970 pMgmt->abyDesireSSID);
971 bScheduleCommand((void *) pDevice,
972 WLAN_CMD_SSID,
973 pMgmt->abyDesireSSID);
966 } 974 }
967 } 975 }
968 } 976 }
@@ -1554,11 +1562,11 @@ int iwctl_siwpower(struct net_device *dev,
1554 } 1562 }
1555 if ((wrq->flags & IW_POWER_TYPE) == IW_POWER_TIMEOUT) { 1563 if ((wrq->flags & IW_POWER_TYPE) == IW_POWER_TIMEOUT) {
1556 pDevice->ePSMode = WMAC_POWER_FAST; 1564 pDevice->ePSMode = WMAC_POWER_FAST;
1557 PSvEnablePowerSaving((HANDLE)pDevice, pMgmt->wListenInterval); 1565 PSvEnablePowerSaving((void *) pDevice, pMgmt->wListenInterval);
1558 1566
1559 } else if ((wrq->flags & IW_POWER_TYPE) == IW_POWER_PERIOD) { 1567 } else if ((wrq->flags & IW_POWER_TYPE) == IW_POWER_PERIOD) {
1560 pDevice->ePSMode = WMAC_POWER_FAST; 1568 pDevice->ePSMode = WMAC_POWER_FAST;
1561 PSvEnablePowerSaving((HANDLE)pDevice, pMgmt->wListenInterval); 1569 PSvEnablePowerSaving((void *) pDevice, pMgmt->wListenInterval);
1562 } 1570 }
1563 switch (wrq->flags & IW_POWER_MODE) { 1571 switch (wrq->flags & IW_POWER_MODE) {
1564 case IW_POWER_UNICAST_R: 1572 case IW_POWER_UNICAST_R:
@@ -2007,12 +2015,16 @@ int iwctl_siwmlme(struct net_device *dev,
2007 case IW_MLME_DEAUTH: 2015 case IW_MLME_DEAUTH:
2008 //this command seems to be not complete,please test it --einsnliu 2016 //this command seems to be not complete,please test it --einsnliu
2009 //printk("iwctl_siwmlme--->send DEAUTH\n"); 2017 //printk("iwctl_siwmlme--->send DEAUTH\n");
2010 //bScheduleCommand((HANDLE) pDevice, WLAN_CMD_DEAUTH, (PBYTE)&reason); 2018 /* bScheduleCommand((void *) pDevice,
2019 WLAN_CMD_DEAUTH,
2020 (PBYTE)&reason); */
2011 //break; 2021 //break;
2012 case IW_MLME_DISASSOC: 2022 case IW_MLME_DISASSOC:
2013 if(pDevice->bLinkPass == TRUE){ 2023 if(pDevice->bLinkPass == TRUE){
2014 PRINT_K("iwctl_siwmlme--->send DISASSOCIATE\n"); 2024 PRINT_K("iwctl_siwmlme--->send DISASSOCIATE\n");
2015 bScheduleCommand((HANDLE)pDevice, WLAN_CMD_DISASSOCIATE, NULL); 2025 bScheduleCommand((void *) pDevice,
2026 WLAN_CMD_DISASSOCIATE,
2027 NULL);
2016 } 2028 }
2017 break; 2029 break;
2018 default: 2030 default:
diff --git a/drivers/staging/vt6656/main_usb.c b/drivers/staging/vt6656/main_usb.c
index 2fcaf70aa46..f1d81b1656c 100644
--- a/drivers/staging/vt6656/main_usb.c
+++ b/drivers/staging/vt6656/main_usb.c
@@ -1158,12 +1158,12 @@ static int device_open(struct net_device *dev) {
1158 } 1158 }
1159 1159
1160 if (pDevice->sMgmtObj.eConfigMode == WMAC_CONFIG_AP) { 1160 if (pDevice->sMgmtObj.eConfigMode == WMAC_CONFIG_AP) {
1161 bScheduleCommand((HANDLE)pDevice, WLAN_CMD_RUN_AP, NULL); 1161 bScheduleCommand((void *) pDevice, WLAN_CMD_RUN_AP, NULL);
1162 } 1162 }
1163 else { 1163 else {
1164 //mike:mark@2008-11-10 1164 //mike:mark@2008-11-10
1165 bScheduleCommand((HANDLE)pDevice, WLAN_CMD_BSSID_SCAN, NULL); 1165 bScheduleCommand((void *) pDevice, WLAN_CMD_BSSID_SCAN, NULL);
1166 //bScheduleCommand((HANDLE)pDevice, WLAN_CMD_SSID, NULL); 1166 /* bScheduleCommand((void *) pDevice, WLAN_CMD_SSID, NULL); */
1167 } 1167 }
1168 1168
1169 1169
@@ -1220,7 +1220,7 @@ static int device_close(struct net_device *dev) {
1220 1220
1221//2007-1121-02<Add>by EinsnLiu 1221//2007-1121-02<Add>by EinsnLiu
1222 if (pDevice->bLinkPass) { 1222 if (pDevice->bLinkPass) {
1223 bScheduleCommand((HANDLE)pDevice, WLAN_CMD_DISASSOCIATE, NULL); 1223 bScheduleCommand((void *) pDevice, WLAN_CMD_DISASSOCIATE, NULL);
1224 mdelay(30); 1224 mdelay(30);
1225 } 1225 }
1226//End Add 1226//End Add
@@ -2101,16 +2101,16 @@ static int device_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) {
2101 if (pMgmt->eConfigMode == WMAC_CONFIG_AP) { 2101 if (pMgmt->eConfigMode == WMAC_CONFIG_AP) {
2102 netif_stop_queue(pDevice->dev); 2102 netif_stop_queue(pDevice->dev);
2103 spin_lock_irq(&pDevice->lock); 2103 spin_lock_irq(&pDevice->lock);
2104 bScheduleCommand((HANDLE)pDevice, WLAN_CMD_RUN_AP, NULL); 2104 bScheduleCommand((void *) pDevice, WLAN_CMD_RUN_AP, NULL);
2105 spin_unlock_irq(&pDevice->lock); 2105 spin_unlock_irq(&pDevice->lock);
2106 } 2106 }
2107 else { 2107 else {
2108 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Commit the settings\n"); 2108 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Commit the settings\n");
2109 spin_lock_irq(&pDevice->lock); 2109 spin_lock_irq(&pDevice->lock);
2110//2007-1121-01<Modify>by EinsnLiu 2110//2007-1121-01<Modify>by EinsnLiu
2111 if (pDevice->bLinkPass&& 2111 if (pDevice->bLinkPass &&
2112 memcmp(pMgmt->abyCurrSSID,pMgmt->abyDesireSSID,WLAN_IEHDR_LEN + WLAN_SSID_MAXLEN)) { 2112 memcmp(pMgmt->abyCurrSSID,pMgmt->abyDesireSSID,WLAN_IEHDR_LEN + WLAN_SSID_MAXLEN)) {
2113 bScheduleCommand((HANDLE)pDevice, WLAN_CMD_DISASSOCIATE, NULL); 2113 bScheduleCommand((void *) pDevice, WLAN_CMD_DISASSOCIATE, NULL);
2114 } else { 2114 } else {
2115 pDevice->bLinkPass = FALSE; 2115 pDevice->bLinkPass = FALSE;
2116 pMgmt->eCurrState = WMAC_STATE_IDLE; 2116 pMgmt->eCurrState = WMAC_STATE_IDLE;
@@ -2121,10 +2121,14 @@ static int device_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) {
2121 netif_stop_queue(pDevice->dev); 2121 netif_stop_queue(pDevice->dev);
2122#ifdef WPA_SUPPLICANT_DRIVER_WEXT_SUPPORT 2122#ifdef WPA_SUPPLICANT_DRIVER_WEXT_SUPPORT
2123 pMgmt->eScanType = WMAC_SCAN_ACTIVE; 2123 pMgmt->eScanType = WMAC_SCAN_ACTIVE;
2124 if(pDevice->bWPASuppWextEnabled !=TRUE) 2124 if (!pDevice->bWPASuppWextEnabled)
2125#endif 2125#endif
2126 bScheduleCommand((HANDLE) pDevice, WLAN_CMD_BSSID_SCAN, pMgmt->abyDesireSSID); 2126 bScheduleCommand((void *) pDevice,
2127 bScheduleCommand((HANDLE) pDevice, WLAN_CMD_SSID, NULL); 2127 WLAN_CMD_BSSID_SCAN,
2128 pMgmt->abyDesireSSID);
2129 bScheduleCommand((void *) pDevice,
2130 WLAN_CMD_SSID,
2131 NULL);
2128 spin_unlock_irq(&pDevice->lock); 2132 spin_unlock_irq(&pDevice->lock);
2129 } 2133 }
2130 pDevice->bCommit = FALSE; 2134 pDevice->bCommit = FALSE;
diff --git a/drivers/staging/vt6656/power.c b/drivers/staging/vt6656/power.c
index 05d51fbb00b..766c5be6fd2 100644
--- a/drivers/staging/vt6656/power.c
+++ b/drivers/staging/vt6656/power.c
@@ -50,19 +50,14 @@
50 50
51/*--------------------- Static Definitions -------------------------*/ 51/*--------------------- Static Definitions -------------------------*/
52 52
53
54
55
56/*--------------------- Static Classes ----------------------------*/ 53/*--------------------- Static Classes ----------------------------*/
57 54
58/*--------------------- Static Variables --------------------------*/ 55/*--------------------- Static Variables --------------------------*/
59static int msglevel =MSG_LEVEL_INFO; 56static int msglevel =MSG_LEVEL_INFO;
60/*--------------------- Static Functions --------------------------*/ 57/*--------------------- Static Functions --------------------------*/
61 58
62
63/*--------------------- Export Variables --------------------------*/ 59/*--------------------- Export Variables --------------------------*/
64 60
65
66/*--------------------- Export Functions --------------------------*/ 61/*--------------------- Export Functions --------------------------*/
67 62
68/*+ 63/*+
@@ -75,12 +70,8 @@ static int msglevel =MSG_LEVEL_INFO;
75 * 70 *
76-*/ 71-*/
77 72
78 73void PSvEnablePowerSaving(void *hDeviceContext,
79void 74 WORD wListenInterval)
80PSvEnablePowerSaving(
81 HANDLE hDeviceContext,
82 WORD wListenInterval
83 )
84{ 75{
85 PSDevice pDevice = (PSDevice)hDeviceContext; 76 PSDevice pDevice = (PSDevice)hDeviceContext;
86 PSMgmtObject pMgmt = &(pDevice->sMgmtObj); 77 PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
@@ -128,7 +119,7 @@ PSvEnablePowerSaving(
128 pDevice->bEnablePSMode = TRUE; 119 pDevice->bEnablePSMode = TRUE;
129 120
130 if (pDevice->eOPMode == OP_MODE_ADHOC) { 121 if (pDevice->eOPMode == OP_MODE_ADHOC) {
131// bMgrPrepareBeaconToSend((HANDLE)pDevice, pMgmt); 122 /* bMgrPrepareBeaconToSend((void *) pDevice, pMgmt); */
132 } 123 }
133 // We don't send null pkt in ad hoc mode since beacon will handle this. 124 // We don't send null pkt in ad hoc mode since beacon will handle this.
134 else if (pDevice->eOPMode == OP_MODE_INFRASTRUCTURE) { 125 else if (pDevice->eOPMode == OP_MODE_INFRASTRUCTURE) {
@@ -139,11 +130,6 @@ PSvEnablePowerSaving(
139 return; 130 return;
140} 131}
141 132
142
143
144
145
146
147/*+ 133/*+
148 * 134 *
149 * Routine Description: 135 * Routine Description:
@@ -154,10 +140,7 @@ PSvEnablePowerSaving(
154 * 140 *
155-*/ 141-*/
156 142
157void 143void PSvDisablePowerSaving(void *hDeviceContext)
158PSvDisablePowerSaving(
159 HANDLE hDeviceContext
160 )
161{ 144{
162 PSDevice pDevice = (PSDevice)hDeviceContext; 145 PSDevice pDevice = (PSDevice)hDeviceContext;
163// PSMgmtObject pMgmt = &(pDevice->sMgmtObj); 146// PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
@@ -187,7 +170,6 @@ PSvDisablePowerSaving(
187 return; 170 return;
188} 171}
189 172
190
191/*+ 173/*+
192 * 174 *
193 * Routine Description: 175 * Routine Description:
@@ -198,13 +180,9 @@ PSvDisablePowerSaving(
198 * FALSE, if fail 180 * FALSE, if fail
199-*/ 181-*/
200 182
201 183BOOL PSbConsiderPowerDown(void *hDeviceContext,
202BOOL 184 BOOL bCheckRxDMA,
203PSbConsiderPowerDown( 185 BOOL bCheckCountToWakeUp)
204 HANDLE hDeviceContext,
205 BOOL bCheckRxDMA,
206 BOOL bCheckCountToWakeUp
207 )
208{ 186{
209 PSDevice pDevice = (PSDevice)hDeviceContext; 187 PSDevice pDevice = (PSDevice)hDeviceContext;
210 PSMgmtObject pMgmt = &(pDevice->sMgmtObj); 188 PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
@@ -248,8 +226,6 @@ PSbConsiderPowerDown(
248 return TRUE; 226 return TRUE;
249} 227}
250 228
251
252
253/*+ 229/*+
254 * 230 *
255 * Routine Description: 231 * Routine Description:
@@ -260,12 +236,7 @@ PSbConsiderPowerDown(
260 * 236 *
261-*/ 237-*/
262 238
263 239void PSvSendPSPOLL(void *hDeviceContext)
264
265void
266PSvSendPSPOLL(
267 HANDLE hDeviceContext
268 )
269{ 240{
270 PSDevice pDevice = (PSDevice)hDeviceContext; 241 PSDevice pDevice = (PSDevice)hDeviceContext;
271 PSMgmtObject pMgmt = &(pDevice->sMgmtObj); 242 PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
@@ -297,8 +268,6 @@ PSvSendPSPOLL(
297 return; 268 return;
298} 269}
299 270
300
301
302/*+ 271/*+
303 * 272 *
304 * Routine Description: 273 * Routine Description:
@@ -308,10 +277,8 @@ PSvSendPSPOLL(
308 * None. 277 * None.
309 * 278 *
310-*/ 279-*/
311BOOL 280
312PSbSendNullPacket( 281BOOL PSbSendNullPacket(void *hDeviceContext)
313 HANDLE hDeviceContext
314 )
315{ 282{
316 PSDevice pDevice = (PSDevice)hDeviceContext; 283 PSDevice pDevice = (PSDevice)hDeviceContext;
317 PSTxMgmtPacket pTxPacket = NULL; 284 PSTxMgmtPacket pTxPacket = NULL;
@@ -388,10 +355,7 @@ PSbSendNullPacket(
388 * 355 *
389-*/ 356-*/
390 357
391BOOL 358BOOL PSbIsNextTBTTWakeUp(void *hDeviceContext)
392PSbIsNextTBTTWakeUp(
393 HANDLE hDeviceContext
394 )
395{ 359{
396 360
397 PSDevice pDevice = (PSDevice)hDeviceContext; 361 PSDevice pDevice = (PSDevice)hDeviceContext;
diff --git a/drivers/staging/vt6656/power.h b/drivers/staging/vt6656/power.h
index c34e3899d95..50792bb8c97 100644
--- a/drivers/staging/vt6656/power.h
+++ b/drivers/staging/vt6656/power.h
@@ -48,37 +48,14 @@
48/* PSDevice pDevice */ 48/* PSDevice pDevice */
49/* PSDevice hDeviceContext */ 49/* PSDevice hDeviceContext */
50 50
51BOOL 51BOOL PSbConsiderPowerDown(void *hDeviceContext,
52PSbConsiderPowerDown( 52 BOOL bCheckRxDMA,
53 HANDLE hDeviceContext, 53 BOOL bCheckCountToWakeUp);
54 BOOL bCheckRxDMA, 54
55 BOOL bCheckCountToWakeUp 55void PSvDisablePowerSaving(void *hDeviceContext);
56 ); 56void PSvEnablePowerSaving(void *hDeviceContext, WORD wListenInterval);
57 57void PSvSendPSPOLL(void *hDeviceContext);
58void 58BOOL PSbSendNullPacket(void *hDeviceContext);
59PSvDisablePowerSaving( 59BOOL PSbIsNextTBTTWakeUp(void *hDeviceContext);
60 HANDLE hDeviceContext
61 );
62
63void
64PSvEnablePowerSaving(
65 HANDLE hDeviceContext,
66 WORD wListenInterval
67 );
68
69void
70PSvSendPSPOLL(
71 HANDLE hDeviceContext
72 );
73
74BOOL
75PSbSendNullPacket(
76 HANDLE hDeviceContext
77 );
78
79BOOL
80PSbIsNextTBTTWakeUp(
81 HANDLE hDeviceContext
82 );
83 60
84#endif /* __POWER_H__ */ 61#endif /* __POWER_H__ */
diff --git a/drivers/staging/vt6656/rxtx.c b/drivers/staging/vt6656/rxtx.c
index b9f67882199..bfc786059ad 100644
--- a/drivers/staging/vt6656/rxtx.c
+++ b/drivers/staging/vt6656/rxtx.c
@@ -3032,10 +3032,12 @@ nsDMA_tx_packet(
3032 } 3032 }
3033 } 3033 }
3034 3034
3035 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "dma_tx: pDevice->wCurrentRate = %d \n", pDevice->wCurrentRate); 3035 DBG_PRT(MSG_LEVEL_DEBUG,
3036 KERN_INFO "dma_tx: pDevice->wCurrentRate = %d\n",
3037 pDevice->wCurrentRate);
3036 3038
3037 if (wKeepRate != pDevice->wCurrentRate) { 3039 if (wKeepRate != pDevice->wCurrentRate) {
3038 bScheduleCommand((HANDLE)pDevice, WLAN_CMD_SETPOWER, NULL); 3040 bScheduleCommand((void *) pDevice, WLAN_CMD_SETPOWER, NULL);
3039 } 3041 }
3040 3042
3041 if (pDevice->wCurrentRate <= RATE_11M) { 3043 if (pDevice->wCurrentRate <= RATE_11M) {
@@ -3118,7 +3120,9 @@ nsDMA_tx_packet(
3118 3120
3119 if ( pDevice->bEnablePSMode == TRUE ) { 3121 if ( pDevice->bEnablePSMode == TRUE ) {
3120 if ( !pDevice->bPSModeTxBurst ) { 3122 if ( !pDevice->bPSModeTxBurst ) {
3121 bScheduleCommand((HANDLE) pDevice, WLAN_CMD_MAC_DISPOWERSAVING, NULL); 3123 bScheduleCommand((void *) pDevice,
3124 WLAN_CMD_MAC_DISPOWERSAVING,
3125 NULL);
3122 pDevice->bPSModeTxBurst = TRUE; 3126 pDevice->bPSModeTxBurst = TRUE;
3123 } 3127 }
3124 } 3128 }
@@ -3138,7 +3142,7 @@ nsDMA_tx_packet(
3138 if (bNeedDeAuth == TRUE) { 3142 if (bNeedDeAuth == TRUE) {
3139 WORD wReason = WLAN_MGMT_REASON_MIC_FAILURE; 3143 WORD wReason = WLAN_MGMT_REASON_MIC_FAILURE;
3140 3144
3141 bScheduleCommand((HANDLE) pDevice, WLAN_CMD_DEAUTH, (PBYTE)&wReason); 3145 bScheduleCommand((void *) pDevice, WLAN_CMD_DEAUTH, (PBYTE) &wReason);
3142 } 3146 }
3143 3147
3144 if(status!=STATUS_PENDING) { 3148 if(status!=STATUS_PENDING) {
@@ -3258,9 +3262,8 @@ bRelayPacketSend (
3258 pDevice->wCurrentRate = pMgmt->sNodeDBTable[uNodeIndex].wTxDataRate; 3262 pDevice->wCurrentRate = pMgmt->sNodeDBTable[uNodeIndex].wTxDataRate;
3259 } 3263 }
3260 3264
3261
3262 if (wKeepRate != pDevice->wCurrentRate) { 3265 if (wKeepRate != pDevice->wCurrentRate) {
3263 bScheduleCommand((HANDLE) pDevice, WLAN_CMD_SETPOWER, NULL); 3266 bScheduleCommand((void *) pDevice, WLAN_CMD_SETPOWER, NULL);
3264 } 3267 }
3265 3268
3266 if (pDevice->wCurrentRate <= RATE_11M) 3269 if (pDevice->wCurrentRate <= RATE_11M)
diff --git a/drivers/staging/vt6656/ttype.h b/drivers/staging/vt6656/ttype.h
index 692b63e4dab..13e8bbb6711 100644
--- a/drivers/staging/vt6656/ttype.h
+++ b/drivers/staging/vt6656/ttype.h
@@ -133,11 +133,4 @@ typedef DWORD * PDWORD;
133 133
134typedef QWORD * PQWORD; 134typedef QWORD * PQWORD;
135 135
136// handle declaration
137#ifdef STRICT
138typedef void *HANDLE;
139#else
140typedef void *HANDLE;
141#endif
142
143#endif /* __TTYPE_H__ */ 136#endif /* __TTYPE_H__ */
diff --git a/drivers/staging/vt6656/wcmd.c b/drivers/staging/vt6656/wcmd.c
index 23db5f63c78..6fec9094ccd 100644
--- a/drivers/staging/vt6656/wcmd.c
+++ b/drivers/staging/vt6656/wcmd.c
@@ -94,18 +94,12 @@ s_bCommandComplete (
94 ); 94 );
95 95
96 96
97static 97static BOOL s_bClearBSSID_SCAN(void *hDeviceContext);
98BOOL s_bClearBSSID_SCAN (
99 HANDLE hDeviceContext
100 );
101 98
102/*--------------------- Export Variables --------------------------*/ 99/*--------------------- Export Variables --------------------------*/
103 100
104
105/*--------------------- Export Functions --------------------------*/ 101/*--------------------- Export Functions --------------------------*/
106 102
107
108
109/* 103/*
110 * Description: 104 * Description:
111 * Stop AdHoc beacon during scan process 105 * Stop AdHoc beacon during scan process
@@ -119,6 +113,7 @@ BOOL s_bClearBSSID_SCAN (
119 * Return Value: none 113 * Return Value: none
120 * 114 *
121 */ 115 */
116
122static 117static
123void 118void
124vAdHocBeaconStop(PSDevice pDevice) 119vAdHocBeaconStop(PSDevice pDevice)
@@ -321,15 +316,7 @@ s_MgrMakeProbeRequest(
321 return pTxPacket; 316 return pTxPacket;
322} 317}
323 318
324 319void vCommandTimerWait(void *hDeviceContext, UINT MSecond)
325
326
327
328void
329vCommandTimerWait(
330 HANDLE hDeviceContext,
331 UINT MSecond
332 )
333{ 320{
334 PSDevice pDevice = (PSDevice)hDeviceContext; 321 PSDevice pDevice = (PSDevice)hDeviceContext;
335 322
@@ -342,13 +329,7 @@ vCommandTimerWait(
342 return; 329 return;
343} 330}
344 331
345 332void vRunCommand(void *hDeviceContext)
346
347
348void
349vRunCommand(
350 HANDLE hDeviceContext
351 )
352{ 333{
353 PSDevice pDevice = (PSDevice)hDeviceContext; 334 PSDevice pDevice = (PSDevice)hDeviceContext;
354 PSMgmtObject pMgmt = &(pDevice->sMgmtObj); 335 PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
@@ -435,7 +416,8 @@ vRunCommand(
435 pMgmt->abyScanBSSID[5] = 0xFF; 416 pMgmt->abyScanBSSID[5] = 0xFF;
436 pItemSSID->byElementID = WLAN_EID_SSID; 417 pItemSSID->byElementID = WLAN_EID_SSID;
437 // clear bssid list 418 // clear bssid list
438 // BSSvClearBSSList((HANDLE)pDevice, pDevice->bLinkPass); 419 /* BSSvClearBSSList((void *) pDevice,
420 pDevice->bLinkPass); */
439 pMgmt->eScanState = WMAC_IS_SCANNING; 421 pMgmt->eScanState = WMAC_IS_SCANNING;
440 pDevice->byScanBBType = pDevice->byBBType; //lucas 422 pDevice->byScanBBType = pDevice->byBBType; //lucas
441 pDevice->bStopDataPkt = TRUE; 423 pDevice->bStopDataPkt = TRUE;
@@ -480,11 +462,11 @@ vRunCommand(
480 (pMgmt->uScanChannel < CB_MAX_CHANNEL_24G)) { 462 (pMgmt->uScanChannel < CB_MAX_CHANNEL_24G)) {
481 s_vProbeChannel(pDevice); 463 s_vProbeChannel(pDevice);
482 spin_unlock_irq(&pDevice->lock); 464 spin_unlock_irq(&pDevice->lock);
483 vCommandTimerWait((HANDLE)pDevice, 100); 465 vCommandTimerWait((void *) pDevice, 100);
484 return; 466 return;
485 } else { 467 } else {
486 spin_unlock_irq(&pDevice->lock); 468 spin_unlock_irq(&pDevice->lock);
487 vCommandTimerWait((HANDLE)pDevice, WCMD_PASSIVE_SCAN_TIME); 469 vCommandTimerWait((void *) pDevice, WCMD_PASSIVE_SCAN_TIME);
488 return; 470 return;
489 } 471 }
490 472
@@ -552,7 +534,11 @@ vRunCommand(
552 534
553 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"Send Disassociation Packet..\n"); 535 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"Send Disassociation Packet..\n");
554 // reason = 8 : disassoc because sta has left 536 // reason = 8 : disassoc because sta has left
555 vMgrDisassocBeginSta((HANDLE)pDevice, pMgmt, pMgmt->abyCurrBSSID, (8), &Status); 537 vMgrDisassocBeginSta((void *) pDevice,
538 pMgmt,
539 pMgmt->abyCurrBSSID,
540 (8),
541 &Status);
556 pDevice->bLinkPass = FALSE; 542 pDevice->bLinkPass = FALSE;
557 ControlvMaskByte(pDevice,MESSAGE_REQUEST_MACREG,MAC_REG_PAPEDELAY,LEDSTS_STS,LEDSTS_SLOW); 543 ControlvMaskByte(pDevice,MESSAGE_REQUEST_MACREG,MAC_REG_PAPEDELAY,LEDSTS_STS,LEDSTS_SLOW);
558 // unlock command busy 544 // unlock command busy
@@ -614,22 +600,26 @@ vRunCommand(
614 // set initial state 600 // set initial state
615 pMgmt->eCurrState = WMAC_STATE_IDLE; 601 pMgmt->eCurrState = WMAC_STATE_IDLE;
616 pMgmt->eCurrMode = WMAC_MODE_STANDBY; 602 pMgmt->eCurrMode = WMAC_MODE_STANDBY;
617 PSvDisablePowerSaving((HANDLE)pDevice); 603 PSvDisablePowerSaving((void *) pDevice);
618 BSSvClearNodeDBTable(pDevice, 0); 604 BSSvClearNodeDBTable(pDevice, 0);
619 vMgrJoinBSSBegin((HANDLE)pDevice, &Status); 605 vMgrJoinBSSBegin((void *) pDevice, &Status);
620 // if Infra mode 606 // if Infra mode
621 if ((pMgmt->eCurrMode == WMAC_MODE_ESS_STA) && (pMgmt->eCurrState == WMAC_STATE_JOINTED)) { 607 if ((pMgmt->eCurrMode == WMAC_MODE_ESS_STA) && (pMgmt->eCurrState == WMAC_STATE_JOINTED)) {
622 // Call mgr to begin the deauthentication 608 // Call mgr to begin the deauthentication
623 // reason = (3) beacuse sta has left ESS 609 // reason = (3) beacuse sta has left ESS
624 if (pMgmt->eCurrState>= WMAC_STATE_AUTH) { 610 if (pMgmt->eCurrState >= WMAC_STATE_AUTH) {
625 vMgrDeAuthenBeginSta((HANDLE)pDevice, pMgmt, pMgmt->abyCurrBSSID, (3), &Status); 611 vMgrDeAuthenBeginSta((void *)pDevice,
626 } 612 pMgmt,
613 pMgmt->abyCurrBSSID,
614 (3),
615 &Status);
616 }
627 // Call mgr to begin the authentication 617 // Call mgr to begin the authentication
628 vMgrAuthenBeginSta((HANDLE)pDevice, pMgmt, &Status); 618 vMgrAuthenBeginSta((void *) pDevice, pMgmt, &Status);
629 if (Status == CMD_STATUS_SUCCESS) { 619 if (Status == CMD_STATUS_SUCCESS) {
630 pDevice->byLinkWaitCount = 0; 620 pDevice->byLinkWaitCount = 0;
631 pDevice->eCommandState = WLAN_AUTHENTICATE_WAIT; 621 pDevice->eCommandState = WLAN_AUTHENTICATE_WAIT;
632 vCommandTimerWait((HANDLE)pDevice, AUTHENTICATE_TIMEOUT); 622 vCommandTimerWait((void *) pDevice, AUTHENTICATE_TIMEOUT);
633 spin_unlock_irq(&pDevice->lock); 623 spin_unlock_irq(&pDevice->lock);
634 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO" Set eCommandState = WLAN_AUTHENTICATE_WAIT\n"); 624 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO" Set eCommandState = WLAN_AUTHENTICATE_WAIT\n");
635 return; 625 return;
@@ -648,10 +638,12 @@ vRunCommand(
648 } 638 }
649 else { 639 else {
650 // start own IBSS 640 // start own IBSS
651 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "CreateOwn IBSS by CurrMode = IBSS_STA \n"); 641 DBG_PRT(MSG_LEVEL_DEBUG,
652 vMgrCreateOwnIBSS((HANDLE)pDevice, &Status); 642 KERN_INFO "CreateOwn IBSS by CurrMode = IBSS_STA\n");
643 vMgrCreateOwnIBSS((void *) pDevice, &Status);
653 if (Status != CMD_STATUS_SUCCESS){ 644 if (Status != CMD_STATUS_SUCCESS){
654 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO " WLAN_CMD_IBSS_CREATE fail ! \n"); 645 DBG_PRT(MSG_LEVEL_DEBUG,
646 KERN_INFO "WLAN_CMD_IBSS_CREATE fail!\n");
655 }; 647 };
656 BSSvAddMulticastNode(pDevice); 648 BSSvAddMulticastNode(pDevice);
657 } 649 }
@@ -662,10 +654,12 @@ vRunCommand(
662 if (pMgmt->eConfigMode == WMAC_CONFIG_IBSS_STA || 654 if (pMgmt->eConfigMode == WMAC_CONFIG_IBSS_STA ||
663 pMgmt->eConfigMode == WMAC_CONFIG_AUTO) { 655 pMgmt->eConfigMode == WMAC_CONFIG_AUTO) {
664 // start own IBSS 656 // start own IBSS
665 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "CreateOwn IBSS by CurrMode = STANDBY \n"); 657 DBG_PRT(MSG_LEVEL_DEBUG,
666 vMgrCreateOwnIBSS((HANDLE)pDevice, &Status); 658 KERN_INFO "CreateOwn IBSS by CurrMode = STANDBY\n");
659 vMgrCreateOwnIBSS((void *) pDevice, &Status);
667 if (Status != CMD_STATUS_SUCCESS){ 660 if (Status != CMD_STATUS_SUCCESS){
668 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO" WLAN_CMD_IBSS_CREATE fail ! \n"); 661 DBG_PRT(MSG_LEVEL_DEBUG,
662 KERN_INFO "WLAN_CMD_IBSS_CREATE fail!\n");
669 }; 663 };
670 BSSvAddMulticastNode(pDevice); 664 BSSvAddMulticastNode(pDevice);
671 s_bClearBSSID_SCAN(pDevice); 665 s_bClearBSSID_SCAN(pDevice);
@@ -701,12 +695,12 @@ vRunCommand(
701 pDevice->byLinkWaitCount = 0; 695 pDevice->byLinkWaitCount = 0;
702 // Call mgr to begin the association 696 // Call mgr to begin the association
703 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"eCurrState == WMAC_STATE_AUTH\n"); 697 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"eCurrState == WMAC_STATE_AUTH\n");
704 vMgrAssocBeginSta((HANDLE)pDevice, pMgmt, &Status); 698 vMgrAssocBeginSta((void *) pDevice, pMgmt, &Status);
705 if (Status == CMD_STATUS_SUCCESS) { 699 if (Status == CMD_STATUS_SUCCESS) {
706 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"eCommandState = WLAN_ASSOCIATE_WAIT\n"); 700 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"eCommandState = WLAN_ASSOCIATE_WAIT\n");
707 pDevice->byLinkWaitCount = 0; 701 pDevice->byLinkWaitCount = 0;
708 pDevice->eCommandState = WLAN_ASSOCIATE_WAIT; 702 pDevice->eCommandState = WLAN_ASSOCIATE_WAIT;
709 vCommandTimerWait((HANDLE)pDevice, ASSOCIATE_TIMEOUT); 703 vCommandTimerWait((void *) pDevice, ASSOCIATE_TIMEOUT);
710 spin_unlock_irq(&pDevice->lock); 704 spin_unlock_irq(&pDevice->lock);
711 return; 705 return;
712 } 706 }
@@ -718,7 +712,7 @@ vRunCommand(
718 pDevice->byLinkWaitCount ++; 712 pDevice->byLinkWaitCount ++;
719 printk("WLAN_AUTHENTICATE_WAIT:wait %d times!!\n",pDevice->byLinkWaitCount); 713 printk("WLAN_AUTHENTICATE_WAIT:wait %d times!!\n",pDevice->byLinkWaitCount);
720 spin_unlock_irq(&pDevice->lock); 714 spin_unlock_irq(&pDevice->lock);
721 vCommandTimerWait((HANDLE)pDevice, AUTHENTICATE_TIMEOUT/2); 715 vCommandTimerWait((void *) pDevice, AUTHENTICATE_TIMEOUT/2);
722 return; 716 return;
723 } 717 }
724 pDevice->byLinkWaitCount = 0; 718 pDevice->byLinkWaitCount = 0;
@@ -742,7 +736,8 @@ vRunCommand(
742 if (pMgmt->eCurrState == WMAC_STATE_ASSOC) { 736 if (pMgmt->eCurrState == WMAC_STATE_ASSOC) {
743 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"eCurrState == WMAC_STATE_ASSOC\n"); 737 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"eCurrState == WMAC_STATE_ASSOC\n");
744 if (pDevice->ePSMode != WMAC_POWER_CAM) { 738 if (pDevice->ePSMode != WMAC_POWER_CAM) {
745 PSvEnablePowerSaving((HANDLE)pDevice, pMgmt->wListenInterval); 739 PSvEnablePowerSaving((void *) pDevice,
740 pMgmt->wListenInterval);
746 } 741 }
747/* 742/*
748 if (pMgmt->eAuthenMode >= WMAC_AUTH_WPA) { 743 if (pMgmt->eAuthenMode >= WMAC_AUTH_WPA) {
@@ -786,7 +781,7 @@ vRunCommand(
786 pDevice->byLinkWaitCount ++; 781 pDevice->byLinkWaitCount ++;
787 printk("WLAN_ASSOCIATE_WAIT:wait %d times!!\n",pDevice->byLinkWaitCount); 782 printk("WLAN_ASSOCIATE_WAIT:wait %d times!!\n",pDevice->byLinkWaitCount);
788 spin_unlock_irq(&pDevice->lock); 783 spin_unlock_irq(&pDevice->lock);
789 vCommandTimerWait((HANDLE)pDevice, ASSOCIATE_TIMEOUT/2); 784 vCommandTimerWait((void *) pDevice, ASSOCIATE_TIMEOUT/2);
790 return; 785 return;
791 } 786 }
792 pDevice->byLinkWaitCount = 0; 787 pDevice->byLinkWaitCount = 0;
@@ -823,9 +818,10 @@ vRunCommand(
823 pMgmt->eCurrState = WMAC_STATE_IDLE; 818 pMgmt->eCurrState = WMAC_STATE_IDLE;
824 pDevice->bFixRate = FALSE; 819 pDevice->bFixRate = FALSE;
825 820
826 vMgrCreateOwnIBSS((HANDLE)pDevice, &Status); 821 vMgrCreateOwnIBSS((void *) pDevice, &Status);
827 if (Status != CMD_STATUS_SUCCESS){ 822 if (Status != CMD_STATUS_SUCCESS) {
828 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO " vMgrCreateOwnIBSS fail ! \n"); 823 DBG_PRT(MSG_LEVEL_DEBUG,
824 KERN_INFO "vMgrCreateOwnIBSS fail!\n");
829 }; 825 };
830 // alway turn off unicast bit 826 // alway turn off unicast bit
831 MACvRegBitsOff(pDevice, MAC_REG_RCR, RCR_UNICAST); 827 MACvRegBitsOff(pDevice, MAC_REG_RCR, RCR_UNICAST);
@@ -948,7 +944,11 @@ vRunCommand(
948 944
949 if (pDevice->bLinkPass == TRUE) { 945 if (pDevice->bLinkPass == TRUE) {
950 // reason = 8 : disassoc because sta has left 946 // reason = 8 : disassoc because sta has left
951 vMgrDisassocBeginSta((HANDLE)pDevice, pMgmt, pMgmt->abyCurrBSSID, (8), &Status); 947 vMgrDisassocBeginSta((void *) pDevice,
948 pMgmt,
949 pMgmt->abyCurrBSSID,
950 (8),
951 &Status);
952 pDevice->bLinkPass = FALSE; 952 pDevice->bLinkPass = FALSE;
953 // unlock command busy 953 // unlock command busy
954 pMgmt->eCurrState = WMAC_STATE_IDLE; 954 pMgmt->eCurrState = WMAC_STATE_IDLE;
@@ -1185,18 +1185,15 @@ s_bCommandComplete (
1185 break; 1185 break;
1186 1186
1187 } 1187 }
1188 1188 vCommandTimerWait((void *) pDevice, 0);
1189 vCommandTimerWait((HANDLE)pDevice, 0);
1190 } 1189 }
1191 1190
1192 return TRUE; 1191 return TRUE;
1193} 1192}
1194 1193
1195BOOL bScheduleCommand ( 1194BOOL bScheduleCommand(void *hDeviceContext,
1196 HANDLE hDeviceContext, 1195 CMD_CODE eCommand,
1197 CMD_CODE eCommand, 1196 PBYTE pbyItem0)
1198 PBYTE pbyItem0
1199 )
1200{ 1197{
1201 PSDevice pDevice = (PSDevice)hDeviceContext; 1198 PSDevice pDevice = (PSDevice)hDeviceContext;
1202 1199
@@ -1264,10 +1261,7 @@ BOOL bScheduleCommand (
1264 * Return Value: TRUE if success; otherwise FALSE 1261 * Return Value: TRUE if success; otherwise FALSE
1265 * 1262 *
1266 */ 1263 */
1267static 1264static BOOL s_bClearBSSID_SCAN(void *hDeviceContext)
1268BOOL s_bClearBSSID_SCAN (
1269 HANDLE hDeviceContext
1270 )
1271{ 1265{
1272 PSDevice pDevice = (PSDevice)hDeviceContext; 1266 PSDevice pDevice = (PSDevice)hDeviceContext;
1273 UINT uCmdDequeueIdx = pDevice->uCmdDequeueIdx; 1267 UINT uCmdDequeueIdx = pDevice->uCmdDequeueIdx;
@@ -1287,10 +1281,7 @@ BOOL s_bClearBSSID_SCAN (
1287 1281
1288 1282
1289//mike add:reset command timer 1283//mike add:reset command timer
1290void 1284void vResetCommandTimer(void *hDeviceContext)
1291vResetCommandTimer(
1292 HANDLE hDeviceContext
1293 )
1294{ 1285{
1295 PSDevice pDevice = (PSDevice)hDeviceContext; 1286 PSDevice pDevice = (PSDevice)hDeviceContext;
1296 1287
@@ -1311,10 +1302,7 @@ vResetCommandTimer(
1311 1302
1312//2007-0115-08<Add>by MikeLiu 1303//2007-0115-08<Add>by MikeLiu
1313#ifdef TxInSleep 1304#ifdef TxInSleep
1314void 1305void BSSvSecondTxData(void *hDeviceContext)
1315BSSvSecondTxData(
1316 HANDLE hDeviceContext
1317 )
1318{ 1306{
1319 PSDevice pDevice = (PSDevice)hDeviceContext; 1307 PSDevice pDevice = (PSDevice)hDeviceContext;
1320 PSMgmtObject pMgmt = &(pDevice->sMgmtObj); 1308 PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
diff --git a/drivers/staging/vt6656/wcmd.h b/drivers/staging/vt6656/wcmd.h
index a14e56470ea..09c4411c689 100644
--- a/drivers/staging/vt6656/wcmd.h
+++ b/drivers/staging/vt6656/wcmd.h
@@ -105,33 +105,22 @@ typedef enum tagCMD_STATE {
105 WLAN_CMD_IDLE 105 WLAN_CMD_IDLE
106} CMD_STATE, *PCMD_STATE; 106} CMD_STATE, *PCMD_STATE;
107 107
108
109
110/*--------------------- Export Classes ----------------------------*/ 108/*--------------------- Export Classes ----------------------------*/
111 109
112/*--------------------- Export Variables --------------------------*/ 110/*--------------------- Export Variables --------------------------*/
113 111
114
115/*--------------------- Export Types ------------------------------*/ 112/*--------------------- Export Types ------------------------------*/
116 113
117
118/*--------------------- Export Functions --------------------------*/ 114/*--------------------- Export Functions --------------------------*/
119void
120vResetCommandTimer(
121 HANDLE hDeviceContext
122 );
123 115
124BOOL 116void vResetCommandTimer(void *hDeviceContext);
125bScheduleCommand( 117
126 HANDLE hDeviceContext, 118BOOL bScheduleCommand(void *hDeviceContext,
127 CMD_CODE eCommand, 119 CMD_CODE eCommand,
128 PBYTE pbyItem0 120 PBYTE pbyItem0);
129 ); 121
122void vRunCommand(void *hDeviceContext);
130 123
131void
132vRunCommand(
133 HANDLE hDeviceContext
134 );
135/* 124/*
136void 125void
137WCMDvCommandThread( 126WCMDvCommandThread(
@@ -141,10 +130,7 @@ WCMDvCommandThread(
141 130
142//2007-0115-09<Add>by MikeLiu 131//2007-0115-09<Add>by MikeLiu
143#ifdef TxInSleep 132#ifdef TxInSleep
144void 133void BSSvSecondTxData(void *hDeviceContext);
145BSSvSecondTxData(
146 HANDLE hDeviceContext
147 );
148#endif 134#endif
149 135
150#endif /* __WCMD_H__ */ 136#endif /* __WCMD_H__ */
diff --git a/drivers/staging/vt6656/wmgr.c b/drivers/staging/vt6656/wmgr.c
index 5af98e9a8f0..aaba5221170 100644
--- a/drivers/staging/vt6656/wmgr.c
+++ b/drivers/staging/vt6656/wmgr.c
@@ -329,14 +329,10 @@ s_bCipherMatch (
329 PKnownBSS pCurr 329 PKnownBSS pCurr
330 ); 330 );
331 331
332
333
334/*--------------------- Export Variables --------------------------*/ 332/*--------------------- Export Variables --------------------------*/
335 333
336
337/*--------------------- Export Functions --------------------------*/ 334/*--------------------- Export Functions --------------------------*/
338 335
339
340/*+ 336/*+
341 * 337 *
342 * Routine Description: 338 * Routine Description:
@@ -347,10 +343,7 @@ s_bCipherMatch (
347 * 343 *
348-*/ 344-*/
349 345
350void 346void vMgrObjectInit(void *hDeviceContext)
351vMgrObjectInit(
352 HANDLE hDeviceContext
353 )
354{ 347{
355 PSDevice pDevice = (PSDevice)hDeviceContext; 348 PSDevice pDevice = (PSDevice)hDeviceContext;
356 PSMgmtObject pMgmt = &(pDevice->sMgmtObj); 349 PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
@@ -368,7 +361,7 @@ vMgrObjectInit(
368 pMgmt->byCSSPK = KEY_CTL_NONE; 361 pMgmt->byCSSPK = KEY_CTL_NONE;
369 pMgmt->byCSSGK = KEY_CTL_NONE; 362 pMgmt->byCSSGK = KEY_CTL_NONE;
370 pMgmt->wIBSSBeaconPeriod = DEFAULT_IBSS_BI; 363 pMgmt->wIBSSBeaconPeriod = DEFAULT_IBSS_BI;
371 BSSvClearBSSList((HANDLE)pDevice, FALSE); 364 BSSvClearBSSList((void *) pDevice, FALSE);
372 365
373 init_timer(&pMgmt->sTimerSecondCallback); 366 init_timer(&pMgmt->sTimerSecondCallback);
374 pMgmt->sTimerSecondCallback.data = (ULONG)pDevice; 367 pMgmt->sTimerSecondCallback.data = (ULONG)pDevice;
@@ -401,8 +394,6 @@ vMgrObjectInit(
401 return; 394 return;
402} 395}
403 396
404
405
406/*+ 397/*+
407 * 398 *
408 * Routine Description: 399 * Routine Description:
@@ -414,13 +405,9 @@ vMgrObjectInit(
414 * 405 *
415-*/ 406-*/
416 407
417 408void vMgrAssocBeginSta(void *hDeviceContext,
418void 409 PSMgmtObject pMgmt,
419vMgrAssocBeginSta( 410 PCMD_STATUS pStatus)
420 HANDLE hDeviceContext,
421 PSMgmtObject pMgmt,
422 PCMD_STATUS pStatus
423 )
424{ 411{
425 PSDevice pDevice = (PSDevice)hDeviceContext; 412 PSDevice pDevice = (PSDevice)hDeviceContext;
426 PSTxMgmtPacket pTxPacket; 413 PSTxMgmtPacket pTxPacket;
@@ -491,12 +478,9 @@ vMgrAssocBeginSta(
491 * 478 *
492-*/ 479-*/
493 480
494void 481void vMgrReAssocBeginSta(void *hDeviceContext,
495vMgrReAssocBeginSta( 482 PSMgmtObject pMgmt,
496 HANDLE hDeviceContext, 483 PCMD_STATUS pStatus)
497 PSMgmtObject pMgmt,
498 PCMD_STATUS pStatus
499 )
500{ 484{
501 PSDevice pDevice = (PSDevice)hDeviceContext; 485 PSDevice pDevice = (PSDevice)hDeviceContext;
502 PSTxMgmtPacket pTxPacket; 486 PSTxMgmtPacket pTxPacket;
@@ -570,14 +554,11 @@ vMgrReAssocBeginSta(
570 * 554 *
571-*/ 555-*/
572 556
573void 557void vMgrDisassocBeginSta(void *hDeviceContext,
574vMgrDisassocBeginSta( 558 PSMgmtObject pMgmt,
575 HANDLE hDeviceContext, 559 PBYTE abyDestAddress,
576 PSMgmtObject pMgmt, 560 WORD wReason,
577 PBYTE abyDestAddress, 561 PCMD_STATUS pStatus)
578 WORD wReason,
579 PCMD_STATUS pStatus
580 )
581{ 562{
582 PSDevice pDevice = (PSDevice)hDeviceContext; 563 PSDevice pDevice = (PSDevice)hDeviceContext;
583 PSTxMgmtPacket pTxPacket = NULL; 564 PSTxMgmtPacket pTxPacket = NULL;
@@ -987,7 +968,10 @@ s_vMgrRxAssocResponse(
987 }; 968 };
988 DBG_PRT(MSG_LEVEL_INFO, KERN_INFO "Association Successful, AID=%d.\n", pMgmt->wCurrAID & ~(BIT14|BIT15)); 969 DBG_PRT(MSG_LEVEL_INFO, KERN_INFO "Association Successful, AID=%d.\n", pMgmt->wCurrAID & ~(BIT14|BIT15));
989 pMgmt->eCurrState = WMAC_STATE_ASSOC; 970 pMgmt->eCurrState = WMAC_STATE_ASSOC;
990 BSSvUpdateAPNode((HANDLE)pDevice, sFrame.pwCapInfo, sFrame.pSuppRates, sFrame.pExtSuppRates); 971 BSSvUpdateAPNode((void *) pDevice,
972 sFrame.pwCapInfo,
973 sFrame.pSuppRates,
974 sFrame.pExtSuppRates);
991 pItemSSID = (PWLAN_IE_SSID)pMgmt->abyCurrSSID; 975 pItemSSID = (PWLAN_IE_SSID)pMgmt->abyCurrSSID;
992 DBG_PRT(MSG_LEVEL_INFO, KERN_INFO "Link with AP(SSID): %s\n", pItemSSID->abySSID); 976 DBG_PRT(MSG_LEVEL_INFO, KERN_INFO "Link with AP(SSID): %s\n", pItemSSID->abySSID);
993 pDevice->bLinkPass = TRUE; 977 pDevice->bLinkPass = TRUE;
@@ -1089,8 +1073,6 @@ if(pMgmt->eCurrState == WMAC_STATE_ASSOC)
1089 return; 1073 return;
1090} 1074}
1091 1075
1092
1093
1094/*+ 1076/*+
1095 * 1077 *
1096 * Routine Description: 1078 * Routine Description:
@@ -1102,12 +1084,9 @@ if(pMgmt->eCurrState == WMAC_STATE_ASSOC)
1102 * 1084 *
1103-*/ 1085-*/
1104 1086
1105void 1087void vMgrAuthenBeginSta(void *hDeviceContext,
1106vMgrAuthenBeginSta( 1088 PSMgmtObject pMgmt,
1107 HANDLE hDeviceContext, 1089 PCMD_STATUS pStatus)
1108 PSMgmtObject pMgmt,
1109 PCMD_STATUS pStatus
1110 )
1111{ 1090{
1112 PSDevice pDevice = (PSDevice)hDeviceContext; 1091 PSDevice pDevice = (PSDevice)hDeviceContext;
1113 WLAN_FR_AUTHEN sFrame; 1092 WLAN_FR_AUTHEN sFrame;
@@ -1147,8 +1126,6 @@ vMgrAuthenBeginSta(
1147 return ; 1126 return ;
1148} 1127}
1149 1128
1150
1151
1152/*+ 1129/*+
1153 * 1130 *
1154 * Routine Description: 1131 * Routine Description:
@@ -1160,14 +1137,11 @@ vMgrAuthenBeginSta(
1160 * 1137 *
1161-*/ 1138-*/
1162 1139
1163void 1140void vMgrDeAuthenBeginSta(void *hDeviceContext,
1164vMgrDeAuthenBeginSta( 1141 PSMgmtObject pMgmt,
1165 HANDLE hDeviceContext, 1142 PBYTE abyDestAddress,
1166 PSMgmtObject pMgmt, 1143 WORD wReason,
1167 PBYTE abyDestAddress, 1144 PCMD_STATUS pStatus)
1168 WORD wReason,
1169 PCMD_STATUS pStatus
1170 )
1171{ 1145{
1172 PSDevice pDevice = (PSDevice)hDeviceContext; 1146 PSDevice pDevice = (PSDevice)hDeviceContext;
1173 WLAN_FR_DEAUTHEN sFrame; 1147 WLAN_FR_DEAUTHEN sFrame;
@@ -1405,12 +1379,11 @@ s_vMgrRxAuthenSequence_2(
1405 s_vMgrLogStatus(pMgmt, cpu_to_le16((*(pFrame->pwStatus)))); 1379 s_vMgrLogStatus(pMgmt, cpu_to_le16((*(pFrame->pwStatus))));
1406 pMgmt->eCurrState = WMAC_STATE_IDLE; 1380 pMgmt->eCurrState = WMAC_STATE_IDLE;
1407 } 1381 }
1408 if (pDevice->eCommandState == WLAN_AUTHENTICATE_WAIT ) { 1382 if (pDevice->eCommandState == WLAN_AUTHENTICATE_WAIT) {
1409// spin_unlock_irq(&pDevice->lock); 1383 /* spin_unlock_irq(&pDevice->lock);
1410// vCommandTimerWait((HANDLE)pDevice, 0); 1384 vCommandTimerWait((void *) pDevice, 0);
1411// spin_lock_irq(&pDevice->lock); 1385 spin_lock_irq(&pDevice->lock); */
1412 } 1386 }
1413
1414 break; 1387 break;
1415 1388
1416 case WLAN_AUTH_ALG_SHAREDKEY: 1389 case WLAN_AUTH_ALG_SHAREDKEY:
@@ -1453,9 +1426,9 @@ s_vMgrRxAuthenSequence_2(
1453 else { 1426 else {
1454 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Mgt:rx Auth_reply sequence_2 status error ...\n"); 1427 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Mgt:rx Auth_reply sequence_2 status error ...\n");
1455 if ( pDevice->eCommandState == WLAN_AUTHENTICATE_WAIT ) { 1428 if ( pDevice->eCommandState == WLAN_AUTHENTICATE_WAIT ) {
1456// spin_unlock_irq(&pDevice->lock); 1429 /* spin_unlock_irq(&pDevice->lock);
1457// vCommandTimerWait((HANDLE)pDevice, 0); 1430 vCommandTimerWait((void *) pDevice, 0);
1458// spin_lock_irq(&pDevice->lock); 1431 spin_lock_irq(&pDevice->lock); */
1459 } 1432 }
1460 s_vMgrLogStatus(pMgmt, cpu_to_le16((*(pFrame->pwStatus)))); 1433 s_vMgrLogStatus(pMgmt, cpu_to_le16((*(pFrame->pwStatus))));
1461 } 1434 }
@@ -1591,11 +1564,10 @@ s_vMgrRxAuthenSequence_4(
1591 } 1564 }
1592 1565
1593 if ( pDevice->eCommandState == WLAN_AUTHENTICATE_WAIT ) { 1566 if ( pDevice->eCommandState == WLAN_AUTHENTICATE_WAIT ) {
1594// spin_unlock_irq(&pDevice->lock); 1567 /* spin_unlock_irq(&pDevice->lock);
1595// vCommandTimerWait((HANDLE)pDevice, 0); 1568 vCommandTimerWait((void *) pDevice, 0);
1596// spin_lock_irq(&pDevice->lock); 1569 spin_lock_irq(&pDevice->lock); */
1597 } 1570 }
1598
1599} 1571}
1600 1572
1601/*+ 1573/*+
@@ -1913,10 +1885,12 @@ if(ChannelExceedZoneType(pDevice,byCurrChannel)==TRUE)
1913 sERP.byERP = 0; 1885 sERP.byERP = 0;
1914 } 1886 }
1915 1887
1916 pBSSList = BSSpAddrIsInBSSList((HANDLE)pDevice, sFrame.pHdr->sA3.abyAddr3, sFrame.pSSID); 1888 pBSSList = BSSpAddrIsInBSSList((void *) pDevice,
1889 sFrame.pHdr->sA3.abyAddr3,
1890 sFrame.pSSID);
1917 if (pBSSList == NULL) { 1891 if (pBSSList == NULL) {
1918 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"Beacon/insert: RxChannel = : %d\n", byCurrChannel); 1892 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"Beacon/insert: RxChannel = : %d\n", byCurrChannel);
1919 BSSbInsertToBSSList((HANDLE)pDevice, 1893 BSSbInsertToBSSList((void *) pDevice,
1920 sFrame.pHdr->sA3.abyAddr3, 1894 sFrame.pHdr->sA3.abyAddr3,
1921 *sFrame.pqwTimestamp, 1895 *sFrame.pqwTimestamp,
1922 *sFrame.pwBeaconInterval, 1896 *sFrame.pwBeaconInterval,
@@ -1932,12 +1906,11 @@ if(ChannelExceedZoneType(pDevice,byCurrChannel)==TRUE)
1932 sFrame.pIE_Quiet, 1906 sFrame.pIE_Quiet,
1933 sFrame.len - WLAN_HDR_ADDR3_LEN, 1907 sFrame.len - WLAN_HDR_ADDR3_LEN,
1934 sFrame.pHdr->sA4.abyAddr4, // payload of beacon 1908 sFrame.pHdr->sA4.abyAddr4, // payload of beacon
1935 (HANDLE)pRxPacket 1909 (void *) pRxPacket);
1936 );
1937 } 1910 }
1938 else { 1911 else {
1939// DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"update bcn: RxChannel = : %d\n", byCurrChannel); 1912// DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"update bcn: RxChannel = : %d\n", byCurrChannel);
1940 BSSbUpdateToBSSList((HANDLE)pDevice, 1913 BSSbUpdateToBSSList((void *) pDevice,
1941 *sFrame.pqwTimestamp, 1914 *sFrame.pqwTimestamp,
1942 *sFrame.pwBeaconInterval, 1915 *sFrame.pwBeaconInterval,
1943 *sFrame.pwCapInfo, 1916 *sFrame.pwCapInfo,
@@ -1954,8 +1927,7 @@ if(ChannelExceedZoneType(pDevice,byCurrChannel)==TRUE)
1954 pBSSList, 1927 pBSSList,
1955 sFrame.len - WLAN_HDR_ADDR3_LEN, 1928 sFrame.len - WLAN_HDR_ADDR3_LEN,
1956 sFrame.pHdr->sA4.abyAddr4, // payload of probresponse 1929 sFrame.pHdr->sA4.abyAddr4, // payload of probresponse
1957 (HANDLE)pRxPacket 1930 (void *) pRxPacket);
1958 );
1959 1931
1960 } 1932 }
1961 1933
@@ -2324,7 +2296,7 @@ if(ChannelExceedZoneType(pDevice,byCurrChannel)==TRUE)
2324 // set highest basic rate 2296 // set highest basic rate
2325 // s_vSetHighestBasicRate(pDevice, (PWLAN_IE_SUPP_RATES)pMgmt->abyCurrSuppRates); 2297 // s_vSetHighestBasicRate(pDevice, (PWLAN_IE_SUPP_RATES)pMgmt->abyCurrSuppRates);
2326 // Prepare beacon frame 2298 // Prepare beacon frame
2327 bMgrPrepareBeaconToSend((HANDLE)pDevice, pMgmt); 2299 bMgrPrepareBeaconToSend((void *) pDevice, pMgmt);
2328 // } 2300 // }
2329 }; 2301 };
2330 } 2302 }
@@ -2341,8 +2313,6 @@ if(ChannelExceedZoneType(pDevice,byCurrChannel)==TRUE)
2341 return; 2313 return;
2342} 2314}
2343 2315
2344
2345
2346/*+ 2316/*+
2347 * 2317 *
2348 * Routine Description: 2318 * Routine Description:
@@ -2355,11 +2325,9 @@ if(ChannelExceedZoneType(pDevice,byCurrChannel)==TRUE)
2355 * CMD_STATUS 2325 * CMD_STATUS
2356 * 2326 *
2357-*/ 2327-*/
2358void 2328
2359vMgrCreateOwnIBSS( 2329void vMgrCreateOwnIBSS(void *hDeviceContext,
2360 HANDLE hDeviceContext, 2330 PCMD_STATUS pStatus)
2361 PCMD_STATUS pStatus
2362 )
2363{ 2331{
2364 PSDevice pDevice = (PSDevice)hDeviceContext; 2332 PSDevice pDevice = (PSDevice)hDeviceContext;
2365 PSMgmtObject pMgmt = &(pDevice->sMgmtObj); 2333 PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
@@ -2609,13 +2577,11 @@ vMgrCreateOwnIBSS(
2609 2577
2610 pMgmt->eCurrState = WMAC_STATE_STARTED; 2578 pMgmt->eCurrState = WMAC_STATE_STARTED;
2611 // Prepare beacon to send 2579 // Prepare beacon to send
2612 if (bMgrPrepareBeaconToSend((HANDLE)pDevice, pMgmt)) { 2580 if (bMgrPrepareBeaconToSend((void *) pDevice, pMgmt))
2613 *pStatus = CMD_STATUS_SUCCESS; 2581 *pStatus = CMD_STATUS_SUCCESS;
2614 }
2615 return ;
2616}
2617
2618 2582
2583 return;
2584}
2619 2585
2620/*+ 2586/*+
2621 * 2587 *
@@ -2630,13 +2596,8 @@ vMgrCreateOwnIBSS(
2630 * 2596 *
2631-*/ 2597-*/
2632 2598
2633void 2599void vMgrJoinBSSBegin(void *hDeviceContext, PCMD_STATUS pStatus)
2634vMgrJoinBSSBegin(
2635 HANDLE hDeviceContext,
2636 PCMD_STATUS pStatus
2637 )
2638{ 2600{
2639
2640 PSDevice pDevice = (PSDevice)hDeviceContext; 2601 PSDevice pDevice = (PSDevice)hDeviceContext;
2641 PSMgmtObject pMgmt = &(pDevice->sMgmtObj); 2602 PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
2642 PKnownBSS pCurr = NULL; 2603 PKnownBSS pCurr = NULL;
@@ -2782,12 +2743,17 @@ vMgrJoinBSSBegin(
2782 // Add current BSS to Candidate list 2743 // Add current BSS to Candidate list
2783 // This should only works for WPA2 BSS, and WPA2 BSS check must be done before. 2744 // This should only works for WPA2 BSS, and WPA2 BSS check must be done before.
2784 if (pMgmt->eAuthenMode == WMAC_AUTH_WPA2) { 2745 if (pMgmt->eAuthenMode == WMAC_AUTH_WPA2) {
2785 BOOL bResult = bAdd_PMKID_Candidate((HANDLE)pDevice, pMgmt->abyCurrBSSID, &pCurr->sRSNCapObj); 2746 BOOL bResult = bAdd_PMKID_Candidate((void *) pDevice,
2747 pMgmt->abyCurrBSSID,
2748 &pCurr->sRSNCapObj);
2786 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"bAdd_PMKID_Candidate: 1(%d)\n", bResult); 2749 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"bAdd_PMKID_Candidate: 1(%d)\n", bResult);
2787 if (bResult == FALSE) { 2750 if (bResult == FALSE) {
2788 vFlush_PMKID_Candidate((HANDLE)pDevice); 2751 vFlush_PMKID_Candidate((void *) pDevice);
2789 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"vFlush_PMKID_Candidate: 4\n"); 2752 DBG_PRT(MSG_LEVEL_DEBUG,
2790 bAdd_PMKID_Candidate((HANDLE)pDevice, pMgmt->abyCurrBSSID, &pCurr->sRSNCapObj); 2753 KERN_INFO "vFlush_PMKID_Candidate: 4\n");
2754 bAdd_PMKID_Candidate((void *) pDevice,
2755 pMgmt->abyCurrBSSID,
2756 &pCurr->sRSNCapObj);
2791 } 2757 }
2792 } 2758 }
2793 2759
@@ -2940,7 +2906,7 @@ vMgrJoinBSSBegin(
2940 CARDvSetRSPINF(pDevice, (BYTE)pDevice->byBBType); 2906 CARDvSetRSPINF(pDevice, (BYTE)pDevice->byBBType);
2941 2907
2942 // Prepare beacon 2908 // Prepare beacon
2943 bMgrPrepareBeaconToSend((HANDLE)pDevice, pMgmt); 2909 bMgrPrepareBeaconToSend((void *) pDevice, pMgmt);
2944 } 2910 }
2945 else { 2911 else {
2946 pMgmt->eCurrState = WMAC_STATE_IDLE; 2912 pMgmt->eCurrState = WMAC_STATE_IDLE;
@@ -4299,31 +4265,32 @@ if(ChannelExceedZoneType(pDevice,byCurrChannel)==TRUE)
4299 4265
4300 4266
4301 // update or insert the bss 4267 // update or insert the bss
4302 pBSSList = BSSpAddrIsInBSSList((HANDLE)pDevice, sFrame.pHdr->sA3.abyAddr3, sFrame.pSSID); 4268 pBSSList = BSSpAddrIsInBSSList((void *) pDevice,
4269 sFrame.pHdr->sA3.abyAddr3,
4270 sFrame.pSSID);
4303 if (pBSSList) { 4271 if (pBSSList) {
4304 BSSbUpdateToBSSList((HANDLE)pDevice, 4272 BSSbUpdateToBSSList((void *) pDevice,
4305 *sFrame.pqwTimestamp, 4273 *sFrame.pqwTimestamp,
4306 *sFrame.pwBeaconInterval, 4274 *sFrame.pwBeaconInterval,
4307 *sFrame.pwCapInfo, 4275 *sFrame.pwCapInfo,
4308 byCurrChannel, 4276 byCurrChannel,
4309 bChannelHit, 4277 bChannelHit,
4310 sFrame.pSSID, 4278 sFrame.pSSID,
4311 sFrame.pSuppRates, 4279 sFrame.pSuppRates,
4312 sFrame.pExtSuppRates, 4280 sFrame.pExtSuppRates,
4313 &sERP, 4281 &sERP,
4314 sFrame.pRSN, 4282 sFrame.pRSN,
4315 sFrame.pRSNWPA, 4283 sFrame.pRSNWPA,
4316 sFrame.pIE_Country, 4284 sFrame.pIE_Country,
4317 sFrame.pIE_Quiet, 4285 sFrame.pIE_Quiet,
4318 pBSSList, 4286 pBSSList,
4319 sFrame.len - WLAN_HDR_ADDR3_LEN, 4287 sFrame.len - WLAN_HDR_ADDR3_LEN,
4320 sFrame.pHdr->sA4.abyAddr4, // payload of probresponse 4288 /* payload of probresponse */
4321 (HANDLE)pRxPacket 4289 sFrame.pHdr->sA4.abyAddr4,
4322 ); 4290 (void *) pRxPacket);
4323 } 4291 } else {
4324 else {
4325 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"Probe resp/insert: RxChannel = : %d\n", byCurrChannel); 4292 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"Probe resp/insert: RxChannel = : %d\n", byCurrChannel);
4326 BSSbInsertToBSSList((HANDLE)pDevice, 4293 BSSbInsertToBSSList((void *) pDevice,
4327 sFrame.pHdr->sA3.abyAddr3, 4294 sFrame.pHdr->sA3.abyAddr3,
4328 *sFrame.pqwTimestamp, 4295 *sFrame.pqwTimestamp,
4329 *sFrame.pwBeaconInterval, 4296 *sFrame.pwBeaconInterval,
@@ -4338,9 +4305,8 @@ if(ChannelExceedZoneType(pDevice,byCurrChannel)==TRUE)
4338 sFrame.pIE_Country, 4305 sFrame.pIE_Country,
4339 sFrame.pIE_Quiet, 4306 sFrame.pIE_Quiet,
4340 sFrame.len - WLAN_HDR_ADDR3_LEN, 4307 sFrame.len - WLAN_HDR_ADDR3_LEN,
4341 sFrame.pHdr->sA4.abyAddr4, // payload of beacon 4308 sFrame.pHdr->sA4.abyAddr4, /* payload of beacon */
4342 (HANDLE)pRxPacket 4309 (void *) pRxPacket);
4343 );
4344 } 4310 }
4345 return; 4311 return;
4346 4312
@@ -4436,10 +4402,6 @@ s_vMgrRxProbeRequest(
4436 return; 4402 return;
4437} 4403}
4438 4404
4439
4440
4441
4442
4443/*+ 4405/*+
4444 * 4406 *
4445 * Routine Description: 4407 * Routine Description:
@@ -4454,13 +4416,9 @@ s_vMgrRxProbeRequest(
4454 * 4416 *
4455-*/ 4417-*/
4456 4418
4457 4419void vMgrRxManagePacket(void *hDeviceContext,
4458void 4420 PSMgmtObject pMgmt,
4459vMgrRxManagePacket( 4421 PSRxMgmtPacket pRxPacket)
4460 HANDLE hDeviceContext,
4461 PSMgmtObject pMgmt,
4462 PSRxMgmtPacket pRxPacket
4463 )
4464{ 4422{
4465 PSDevice pDevice = (PSDevice)hDeviceContext; 4423 PSDevice pDevice = (PSDevice)hDeviceContext;
4466 BOOL bInScan = FALSE; 4424 BOOL bInScan = FALSE;
@@ -4593,9 +4551,6 @@ vMgrRxManagePacket(
4593 return; 4551 return;
4594} 4552}
4595 4553
4596
4597
4598
4599/*+ 4554/*+
4600 * 4555 *
4601 * Routine Description: 4556 * Routine Description:
@@ -4607,11 +4562,7 @@ vMgrRxManagePacket(
4607 * TRUE if success; FALSE if failed. 4562 * TRUE if success; FALSE if failed.
4608 * 4563 *
4609-*/ 4564-*/
4610BOOL 4565BOOL bMgrPrepareBeaconToSend(void *hDeviceContext, PSMgmtObject pMgmt)
4611bMgrPrepareBeaconToSend(
4612 HANDLE hDeviceContext,
4613 PSMgmtObject pMgmt
4614 )
4615{ 4566{
4616 PSDevice pDevice = (PSDevice)hDeviceContext; 4567 PSDevice pDevice = (PSDevice)hDeviceContext;
4617 PSTxMgmtPacket pTxPacket; 4568 PSTxMgmtPacket pTxPacket;
@@ -4715,7 +4666,6 @@ s_vMgrLogStatus(
4715 } 4666 }
4716} 4667}
4717 4668
4718
4719/* 4669/*
4720 * 4670 *
4721 * Description: 4671 * Description:
@@ -4732,12 +4682,10 @@ s_vMgrLogStatus(
4732 * Return Value: none. 4682 * Return Value: none.
4733 * 4683 *
4734-*/ 4684-*/
4735BOOL 4685
4736bAdd_PMKID_Candidate ( 4686BOOL bAdd_PMKID_Candidate(void *hDeviceContext,
4737 HANDLE hDeviceContext, 4687 PBYTE pbyBSSID,
4738 PBYTE pbyBSSID, 4688 PSRSNCapObject psRSNCapObj)
4739 PSRSNCapObject psRSNCapObj
4740 )
4741{ 4689{
4742 PSDevice pDevice = (PSDevice)hDeviceContext; 4690 PSDevice pDevice = (PSDevice)hDeviceContext;
4743 PPMKID_CANDIDATE pCandidateList; 4691 PPMKID_CANDIDATE pCandidateList;
@@ -4796,10 +4744,8 @@ bAdd_PMKID_Candidate (
4796 * Return Value: none. 4744 * Return Value: none.
4797 * 4745 *
4798-*/ 4746-*/
4799void 4747
4800vFlush_PMKID_Candidate ( 4748void vFlush_PMKID_Candidate(void *hDeviceContext)
4801 HANDLE hDeviceContext
4802 )
4803{ 4749{
4804 PSDevice pDevice = (PSDevice)hDeviceContext; 4750 PSDevice pDevice = (PSDevice)hDeviceContext;
4805 4751
diff --git a/drivers/staging/vt6656/wmgr.h b/drivers/staging/vt6656/wmgr.h
index 0eda12afd26..ec2ee7805f4 100644
--- a/drivers/staging/vt6656/wmgr.h
+++ b/drivers/staging/vt6656/wmgr.h
@@ -400,102 +400,61 @@ typedef struct tagSMgmtObject
400 400
401} SMgmtObject, *PSMgmtObject; 401} SMgmtObject, *PSMgmtObject;
402 402
403
404/*--------------------- Export Macros ------------------------------*/ 403/*--------------------- Export Macros ------------------------------*/
405 404
406
407/*--------------------- Export Functions --------------------------*/ 405/*--------------------- Export Functions --------------------------*/
408 406
407void vMgrObjectInit(void *hDeviceContext);
409 408
410void 409void vMgrAssocBeginSta(void *hDeviceContext,
411vMgrObjectInit( 410 PSMgmtObject pMgmt,
412 HANDLE hDeviceContext 411 PCMD_STATUS pStatus);
413 );
414 412
413void vMgrReAssocBeginSta(void *hDeviceContext,
414 PSMgmtObject pMgmt,
415 PCMD_STATUS pStatus);
415 416
416void 417void vMgrDisassocBeginSta(void *hDeviceContext,
417vMgrAssocBeginSta( 418 PSMgmtObject pMgmt,
418 HANDLE hDeviceContext, 419 PBYTE abyDestAddress,
419 PSMgmtObject pMgmt, 420 WORD wReason,
420 PCMD_STATUS pStatus 421 PCMD_STATUS pStatus);
421 );
422 422
423void 423void vMgrAuthenBeginSta(void *hDeviceContext,
424vMgrReAssocBeginSta( 424 PSMgmtObject pMgmt,
425 HANDLE hDeviceContext, 425 PCMD_STATUS pStatus);
426 PSMgmtObject pMgmt,
427 PCMD_STATUS pStatus
428 );
429
430void
431vMgrDisassocBeginSta(
432 HANDLE hDeviceContext,
433 PSMgmtObject pMgmt,
434 PBYTE abyDestAddress,
435 WORD wReason,
436 PCMD_STATUS pStatus
437 );
438
439void
440vMgrAuthenBeginSta(
441 HANDLE hDeviceContext,
442 PSMgmtObject pMgmt,
443 PCMD_STATUS pStatus
444 );
445 426
446void 427void vMgrCreateOwnIBSS(void *hDeviceContext,
447vMgrCreateOwnIBSS( 428 PCMD_STATUS pStatus);
448 HANDLE hDeviceContext,
449 PCMD_STATUS pStatus
450 );
451 429
452void 430void vMgrJoinBSSBegin(void *hDeviceContext,
453vMgrJoinBSSBegin( 431 PCMD_STATUS pStatus);
454 HANDLE hDeviceContext,
455 PCMD_STATUS pStatus
456 );
457 432
458void 433void vMgrRxManagePacket(void *hDeviceContext,
459vMgrRxManagePacket( 434 PSMgmtObject pMgmt,
460 HANDLE hDeviceContext, 435 PSRxMgmtPacket pRxPacket);
461 PSMgmtObject pMgmt,
462 PSRxMgmtPacket pRxPacket
463 );
464 436
465/* 437/*
466void 438void
467vMgrScanBegin( 439vMgrScanBegin(
468 HANDLE hDeviceContext, 440 void *hDeviceContext,
469 PCMD_STATUS pStatus 441 PCMD_STATUS pStatus
470 ); 442 );
471*/ 443*/
472 444
473void 445void vMgrDeAuthenBeginSta(void *hDeviceContext,
474vMgrDeAuthenBeginSta( 446 PSMgmtObject pMgmt,
475 HANDLE hDeviceContext, 447 PBYTE abyDestAddress,
476 PSMgmtObject pMgmt, 448 WORD wReason,
477 PBYTE abyDestAddress, 449 PCMD_STATUS pStatus);
478 WORD wReason,
479 PCMD_STATUS pStatus
480 );
481
482BOOL
483bMgrPrepareBeaconToSend(
484 HANDLE hDeviceContext,
485 PSMgmtObject pMgmt
486 );
487 450
451BOOL bMgrPrepareBeaconToSend(void *hDeviceContext,
452 PSMgmtObject pMgmt);
488 453
489BOOL 454BOOL bAdd_PMKID_Candidate(void *hDeviceContext,
490bAdd_PMKID_Candidate ( 455 PBYTE pbyBSSID,
491 HANDLE hDeviceContext, 456 PSRSNCapObject psRSNCapObj);
492 PBYTE pbyBSSID,
493 PSRSNCapObject psRSNCapObj
494 );
495 457
496void 458void vFlush_PMKID_Candidate(void *hDeviceContext);
497vFlush_PMKID_Candidate (
498 HANDLE hDeviceContext
499 );
500 459
501#endif /* __WMGR_H__ */ 460#endif /* __WMGR_H__ */
diff --git a/drivers/staging/vt6656/wpactl.c b/drivers/staging/vt6656/wpactl.c
index 25b784c26e8..04a4875e601 100644
--- a/drivers/staging/vt6656/wpactl.c
+++ b/drivers/staging/vt6656/wpactl.c
@@ -489,7 +489,7 @@ static int wpa_set_disassociate(PSDevice pDevice,
489 spin_lock_irq(&pDevice->lock); 489 spin_lock_irq(&pDevice->lock);
490 if (pDevice->bLinkPass) { 490 if (pDevice->bLinkPass) {
491 if (!memcmp(param->addr, pMgmt->abyCurrBSSID, 6)) 491 if (!memcmp(param->addr, pMgmt->abyCurrBSSID, 6))
492 bScheduleCommand((HANDLE)pDevice, WLAN_CMD_DISASSOCIATE, NULL); 492 bScheduleCommand((void *) pDevice, WLAN_CMD_DISASSOCIATE, NULL);
493 } 493 }
494 spin_unlock_irq(&pDevice->lock); 494 spin_unlock_irq(&pDevice->lock);
495 495
@@ -513,7 +513,7 @@ static int wpa_set_disassociate(PSDevice pDevice,
513 */ 513 */
514 514
515static int wpa_set_scan(PSDevice pDevice, 515static int wpa_set_scan(PSDevice pDevice,
516 struct viawget_wpa_param *param) 516 struct viawget_wpa_param *param)
517{ 517{
518 int ret = 0; 518 int ret = 0;
519 519
@@ -531,9 +531,11 @@ memcpy(pItemSSID->abySSID, param->u.scan_req.ssid, param->u.scan_req.ssid_len);
531pItemSSID->len = param->u.scan_req.ssid_len; 531pItemSSID->len = param->u.scan_req.ssid_len;
532 532
533 spin_lock_irq(&pDevice->lock); 533 spin_lock_irq(&pDevice->lock);
534 BSSvClearBSSList((HANDLE)pDevice, pDevice->bLinkPass); 534 BSSvClearBSSList((void *) pDevice, pDevice->bLinkPass);
535 // bScheduleCommand((HANDLE) pDevice, WLAN_CMD_BSSID_SCAN, NULL); 535 /* bScheduleCommand((void *) pDevice, WLAN_CMD_BSSID_SCAN, NULL); */
536 bScheduleCommand((HANDLE) pDevice, WLAN_CMD_BSSID_SCAN, pMgmt->abyDesireSSID); 536 bScheduleCommand((void *) pDevice,
537 WLAN_CMD_BSSID_SCAN,
538 pMgmt->abyDesireSSID);
537 spin_unlock_irq(&pDevice->lock); 539 spin_unlock_irq(&pDevice->lock);
538 540
539 return ret; 541 return ret;
@@ -886,12 +888,14 @@ static int wpa_set_associate(PSDevice pDevice,
886 888
887 if (pCurr == NULL){ 889 if (pCurr == NULL){
888 printk("wpa_set_associate---->hidden mode site survey before associate.......\n"); 890 printk("wpa_set_associate---->hidden mode site survey before associate.......\n");
889 bScheduleCommand((HANDLE) pDevice, WLAN_CMD_BSSID_SCAN, pMgmt->abyDesireSSID); 891 bScheduleCommand((void *) pDevice,
892 WLAN_CMD_BSSID_SCAN,
893 pMgmt->abyDesireSSID);
890 }; 894 };
891} 895}
892/****************************************************************/ 896/****************************************************************/
893 897
894 bScheduleCommand((HANDLE) pDevice, WLAN_CMD_SSID, NULL); 898 bScheduleCommand((void *) pDevice, WLAN_CMD_SSID, NULL);
895 spin_unlock_irq(&pDevice->lock); 899 spin_unlock_irq(&pDevice->lock);
896 900
897 return ret; 901 return ret;