forked from Minki/linux
staging: vt6655: remove dead code
Remove dead code in many places on this driver. Signed-off-by: Guido Martínez <guido@vanguardiasur.com.ar> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
838c2d6cfc
commit
4e8a7e5fc2
@ -192,8 +192,6 @@ static bool s_bRxTPCReq(PSMgmtObject pMgmt,
|
|||||||
if (csMgmt_xmit(pMgmt->pAdapter, pTxPacket) != CMD_STATUS_PENDING)
|
if (csMgmt_xmit(pMgmt->pAdapter, pTxPacket) != CMD_STATUS_PENDING)
|
||||||
return false;
|
return false;
|
||||||
return true;
|
return true;
|
||||||
/* return CARDbSendPacket(pMgmt->pAdapter, pFrame, PKT_TYPE_802_11_MNG,
|
|
||||||
sizeof(WLAN_FRAME_TPCREP)); */
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*--------------------- Export Variables --------------------------*/
|
/*--------------------- Export Variables --------------------------*/
|
||||||
@ -274,8 +272,6 @@ IEEE11hbMgrRxAction(void *pMgmtHandle, void *pRxPacket)
|
|||||||
pAction->byCategory);
|
pAction->byCategory);
|
||||||
pAction->byCategory |= 0x80;
|
pAction->byCategory |= 0x80;
|
||||||
|
|
||||||
/*return CARDbSendPacket(pMgmt->pAdapter, pAction, PKT_TYPE_802_11_MNG,
|
|
||||||
uLength);*/
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
@ -317,6 +313,4 @@ bool IEEE11hbMSRRepTx(void *pMgmtHandle)
|
|||||||
if (csMgmt_xmit(pMgmt->pAdapter, pTxPacket) != CMD_STATUS_PENDING)
|
if (csMgmt_xmit(pMgmt->pAdapter, pTxPacket) != CMD_STATUS_PENDING)
|
||||||
return false;
|
return false;
|
||||||
return true;
|
return true;
|
||||||
/* return CARDbSendPacket(pMgmt->pAdapter, pMSRRep, PKT_TYPE_802_11_MNG,
|
|
||||||
uLength); */
|
|
||||||
}
|
}
|
||||||
|
@ -1095,7 +1095,6 @@ unsigned char byVT3253B0_AIROHA2230[CB_VT3253B0_INIT_FOR_AIROHA2230][2] = {
|
|||||||
{0x69, 0x00},
|
{0x69, 0x00},
|
||||||
{0x6a, 0x00},
|
{0x6a, 0x00},
|
||||||
{0x6b, 0x00},
|
{0x6b, 0x00},
|
||||||
//{0x6c, 0x80},
|
|
||||||
{0x6c, 0x00}, //RobertYu:20050125, request by JJSue
|
{0x6c, 0x00}, //RobertYu:20050125, request by JJSue
|
||||||
{0x6d, 0x03},
|
{0x6d, 0x03},
|
||||||
{0x6e, 0x01},
|
{0x6e, 0x01},
|
||||||
@ -1357,7 +1356,6 @@ unsigned char byVT3253B0_UW2451[CB_VT3253B0_INIT_FOR_UW2451][2] = {
|
|||||||
{0x69, 0x00},
|
{0x69, 0x00},
|
||||||
{0x6a, 0x00},
|
{0x6a, 0x00},
|
||||||
{0x6b, 0x00},
|
{0x6b, 0x00},
|
||||||
//{0x6c, 0x80},
|
|
||||||
{0x6c, 0x00}, //RobertYu:20050125, request by JJSue
|
{0x6c, 0x00}, //RobertYu:20050125, request by JJSue
|
||||||
{0x6d, 0x03},
|
{0x6d, 0x03},
|
||||||
{0x6e, 0x01},
|
{0x6e, 0x01},
|
||||||
@ -2208,8 +2206,6 @@ bool BBbVT3253Init(PSDevice pDevice)
|
|||||||
for (ii = 0; ii < CB_VT3253B0_AGC; ii++) {
|
for (ii = 0; ii < CB_VT3253B0_AGC; ii++) {
|
||||||
bResult &= BBbWriteEmbedded(dwIoBase, byVT3253B0_AGC[ii][0], byVT3253B0_AGC[ii][1]);
|
bResult &= BBbWriteEmbedded(dwIoBase, byVT3253B0_AGC[ii][0], byVT3253B0_AGC[ii][1]);
|
||||||
}
|
}
|
||||||
//VNSvOutPortB(dwIoBase + MAC_REG_ITRTMSET, 0x23); // RobertYu: 20050104, 20050131 disable PA_Delay
|
|
||||||
//MACvRegBitsOn(dwIoBase, MAC_REG_PAPEDELAY, BIT0); // RobertYu: 20050104, 20050131 disable PA_Delay
|
|
||||||
|
|
||||||
pDevice->abyBBVGA[0] = 0x14;
|
pDevice->abyBBVGA[0] = 0x14;
|
||||||
pDevice->abyBBVGA[1] = 0x0A;
|
pDevice->abyBBVGA[1] = 0x0A;
|
||||||
@ -2613,13 +2609,11 @@ s_ulGetRatio(PSDevice pDevice)
|
|||||||
if (pDevice->uNumSQ3[RATE_54M] != 0) {
|
if (pDevice->uNumSQ3[RATE_54M] != 0) {
|
||||||
ulPacketNum = pDevice->uNumSQ3[RATE_54M];
|
ulPacketNum = pDevice->uNumSQ3[RATE_54M];
|
||||||
ulRatio = (ulPacketNum * 1000 / pDevice->uDiversityCnt);
|
ulRatio = (ulPacketNum * 1000 / pDevice->uDiversityCnt);
|
||||||
//ulRatio = (pDevice->uNumSQ3[RATE_54M] * 1000 / pDevice->uDiversityCnt);
|
|
||||||
ulRatio += TOP_RATE_54M;
|
ulRatio += TOP_RATE_54M;
|
||||||
}
|
}
|
||||||
if (pDevice->uNumSQ3[RATE_48M] > ulMaxPacket) {
|
if (pDevice->uNumSQ3[RATE_48M] > ulMaxPacket) {
|
||||||
ulPacketNum = pDevice->uNumSQ3[RATE_54M] + pDevice->uNumSQ3[RATE_48M];
|
ulPacketNum = pDevice->uNumSQ3[RATE_54M] + pDevice->uNumSQ3[RATE_48M];
|
||||||
ulRatio = (ulPacketNum * 1000 / pDevice->uDiversityCnt);
|
ulRatio = (ulPacketNum * 1000 / pDevice->uDiversityCnt);
|
||||||
//ulRatio = (pDevice->uNumSQ3[RATE_48M] * 1000 / pDevice->uDiversityCnt);
|
|
||||||
ulRatio += TOP_RATE_48M;
|
ulRatio += TOP_RATE_48M;
|
||||||
ulMaxPacket = pDevice->uNumSQ3[RATE_48M];
|
ulMaxPacket = pDevice->uNumSQ3[RATE_48M];
|
||||||
}
|
}
|
||||||
@ -2627,7 +2621,6 @@ s_ulGetRatio(PSDevice pDevice)
|
|||||||
ulPacketNum = pDevice->uNumSQ3[RATE_54M] + pDevice->uNumSQ3[RATE_48M] +
|
ulPacketNum = pDevice->uNumSQ3[RATE_54M] + pDevice->uNumSQ3[RATE_48M] +
|
||||||
pDevice->uNumSQ3[RATE_36M];
|
pDevice->uNumSQ3[RATE_36M];
|
||||||
ulRatio = (ulPacketNum * 1000 / pDevice->uDiversityCnt);
|
ulRatio = (ulPacketNum * 1000 / pDevice->uDiversityCnt);
|
||||||
//ulRatio = (pDevice->uNumSQ3[RATE_36M] * 1000 / pDevice->uDiversityCnt);
|
|
||||||
ulRatio += TOP_RATE_36M;
|
ulRatio += TOP_RATE_36M;
|
||||||
ulMaxPacket = pDevice->uNumSQ3[RATE_36M];
|
ulMaxPacket = pDevice->uNumSQ3[RATE_36M];
|
||||||
}
|
}
|
||||||
@ -2635,7 +2628,6 @@ s_ulGetRatio(PSDevice pDevice)
|
|||||||
ulPacketNum = pDevice->uNumSQ3[RATE_54M] + pDevice->uNumSQ3[RATE_48M] +
|
ulPacketNum = pDevice->uNumSQ3[RATE_54M] + pDevice->uNumSQ3[RATE_48M] +
|
||||||
pDevice->uNumSQ3[RATE_36M] + pDevice->uNumSQ3[RATE_24M];
|
pDevice->uNumSQ3[RATE_36M] + pDevice->uNumSQ3[RATE_24M];
|
||||||
ulRatio = (ulPacketNum * 1000 / pDevice->uDiversityCnt);
|
ulRatio = (ulPacketNum * 1000 / pDevice->uDiversityCnt);
|
||||||
//ulRatio = (pDevice->uNumSQ3[RATE_24M] * 1000 / pDevice->uDiversityCnt);
|
|
||||||
ulRatio += TOP_RATE_24M;
|
ulRatio += TOP_RATE_24M;
|
||||||
ulMaxPacket = pDevice->uNumSQ3[RATE_24M];
|
ulMaxPacket = pDevice->uNumSQ3[RATE_24M];
|
||||||
}
|
}
|
||||||
@ -2644,7 +2636,6 @@ s_ulGetRatio(PSDevice pDevice)
|
|||||||
pDevice->uNumSQ3[RATE_36M] + pDevice->uNumSQ3[RATE_24M] +
|
pDevice->uNumSQ3[RATE_36M] + pDevice->uNumSQ3[RATE_24M] +
|
||||||
pDevice->uNumSQ3[RATE_18M];
|
pDevice->uNumSQ3[RATE_18M];
|
||||||
ulRatio = (ulPacketNum * 1000 / pDevice->uDiversityCnt);
|
ulRatio = (ulPacketNum * 1000 / pDevice->uDiversityCnt);
|
||||||
//ulRatio = (pDevice->uNumSQ3[RATE_18M] * 1000 / pDevice->uDiversityCnt);
|
|
||||||
ulRatio += TOP_RATE_18M;
|
ulRatio += TOP_RATE_18M;
|
||||||
ulMaxPacket = pDevice->uNumSQ3[RATE_18M];
|
ulMaxPacket = pDevice->uNumSQ3[RATE_18M];
|
||||||
}
|
}
|
||||||
@ -2653,7 +2644,6 @@ s_ulGetRatio(PSDevice pDevice)
|
|||||||
pDevice->uNumSQ3[RATE_36M] + pDevice->uNumSQ3[RATE_24M] +
|
pDevice->uNumSQ3[RATE_36M] + pDevice->uNumSQ3[RATE_24M] +
|
||||||
pDevice->uNumSQ3[RATE_18M] + pDevice->uNumSQ3[RATE_12M];
|
pDevice->uNumSQ3[RATE_18M] + pDevice->uNumSQ3[RATE_12M];
|
||||||
ulRatio = (ulPacketNum * 1000 / pDevice->uDiversityCnt);
|
ulRatio = (ulPacketNum * 1000 / pDevice->uDiversityCnt);
|
||||||
//ulRatio = (pDevice->uNumSQ3[RATE_12M] * 1000 / pDevice->uDiversityCnt);
|
|
||||||
ulRatio += TOP_RATE_12M;
|
ulRatio += TOP_RATE_12M;
|
||||||
ulMaxPacket = pDevice->uNumSQ3[RATE_12M];
|
ulMaxPacket = pDevice->uNumSQ3[RATE_12M];
|
||||||
}
|
}
|
||||||
@ -2662,7 +2652,6 @@ s_ulGetRatio(PSDevice pDevice)
|
|||||||
pDevice->uNumSQ3[RATE_2M] - pDevice->uNumSQ3[RATE_5M] -
|
pDevice->uNumSQ3[RATE_2M] - pDevice->uNumSQ3[RATE_5M] -
|
||||||
pDevice->uNumSQ3[RATE_6M] - pDevice->uNumSQ3[RATE_9M];
|
pDevice->uNumSQ3[RATE_6M] - pDevice->uNumSQ3[RATE_9M];
|
||||||
ulRatio = (ulPacketNum * 1000 / pDevice->uDiversityCnt);
|
ulRatio = (ulPacketNum * 1000 / pDevice->uDiversityCnt);
|
||||||
//ulRatio = (pDevice->uNumSQ3[RATE_11M] * 1000 / pDevice->uDiversityCnt);
|
|
||||||
ulRatio += TOP_RATE_11M;
|
ulRatio += TOP_RATE_11M;
|
||||||
ulMaxPacket = pDevice->uNumSQ3[RATE_11M];
|
ulMaxPacket = pDevice->uNumSQ3[RATE_11M];
|
||||||
}
|
}
|
||||||
@ -2671,7 +2660,6 @@ s_ulGetRatio(PSDevice pDevice)
|
|||||||
pDevice->uNumSQ3[RATE_2M] - pDevice->uNumSQ3[RATE_5M] -
|
pDevice->uNumSQ3[RATE_2M] - pDevice->uNumSQ3[RATE_5M] -
|
||||||
pDevice->uNumSQ3[RATE_6M];
|
pDevice->uNumSQ3[RATE_6M];
|
||||||
ulRatio = (ulPacketNum * 1000 / pDevice->uDiversityCnt);
|
ulRatio = (ulPacketNum * 1000 / pDevice->uDiversityCnt);
|
||||||
//ulRatio = (pDevice->uNumSQ3[RATE_9M] * 1000 / pDevice->uDiversityCnt);
|
|
||||||
ulRatio += TOP_RATE_9M;
|
ulRatio += TOP_RATE_9M;
|
||||||
ulMaxPacket = pDevice->uNumSQ3[RATE_9M];
|
ulMaxPacket = pDevice->uNumSQ3[RATE_9M];
|
||||||
}
|
}
|
||||||
@ -2679,7 +2667,6 @@ s_ulGetRatio(PSDevice pDevice)
|
|||||||
ulPacketNum = pDevice->uDiversityCnt - pDevice->uNumSQ3[RATE_1M] -
|
ulPacketNum = pDevice->uDiversityCnt - pDevice->uNumSQ3[RATE_1M] -
|
||||||
pDevice->uNumSQ3[RATE_2M] - pDevice->uNumSQ3[RATE_5M];
|
pDevice->uNumSQ3[RATE_2M] - pDevice->uNumSQ3[RATE_5M];
|
||||||
ulRatio = (ulPacketNum * 1000 / pDevice->uDiversityCnt);
|
ulRatio = (ulPacketNum * 1000 / pDevice->uDiversityCnt);
|
||||||
//ulRatio = (pDevice->uNumSQ3[RATE_6M] * 1000 / pDevice->uDiversityCnt);
|
|
||||||
ulRatio += TOP_RATE_6M;
|
ulRatio += TOP_RATE_6M;
|
||||||
ulMaxPacket = pDevice->uNumSQ3[RATE_6M];
|
ulMaxPacket = pDevice->uNumSQ3[RATE_6M];
|
||||||
}
|
}
|
||||||
@ -2687,21 +2674,18 @@ s_ulGetRatio(PSDevice pDevice)
|
|||||||
ulPacketNum = pDevice->uDiversityCnt - pDevice->uNumSQ3[RATE_1M] -
|
ulPacketNum = pDevice->uDiversityCnt - pDevice->uNumSQ3[RATE_1M] -
|
||||||
pDevice->uNumSQ3[RATE_2M];
|
pDevice->uNumSQ3[RATE_2M];
|
||||||
ulRatio = (ulPacketNum * 1000 / pDevice->uDiversityCnt);
|
ulRatio = (ulPacketNum * 1000 / pDevice->uDiversityCnt);
|
||||||
//ulRatio = (pDevice->uNumSQ3[RATE_5M] * 1000 / pDevice->uDiversityCnt);
|
|
||||||
ulRatio += TOP_RATE_55M;
|
ulRatio += TOP_RATE_55M;
|
||||||
ulMaxPacket = pDevice->uNumSQ3[RATE_5M];
|
ulMaxPacket = pDevice->uNumSQ3[RATE_5M];
|
||||||
}
|
}
|
||||||
if (pDevice->uNumSQ3[RATE_2M] > ulMaxPacket) {
|
if (pDevice->uNumSQ3[RATE_2M] > ulMaxPacket) {
|
||||||
ulPacketNum = pDevice->uDiversityCnt - pDevice->uNumSQ3[RATE_1M];
|
ulPacketNum = pDevice->uDiversityCnt - pDevice->uNumSQ3[RATE_1M];
|
||||||
ulRatio = (ulPacketNum * 1000 / pDevice->uDiversityCnt);
|
ulRatio = (ulPacketNum * 1000 / pDevice->uDiversityCnt);
|
||||||
//ulRatio = (pDevice->uNumSQ3[RATE_2M] * 1000 / pDevice->uDiversityCnt);
|
|
||||||
ulRatio += TOP_RATE_2M;
|
ulRatio += TOP_RATE_2M;
|
||||||
ulMaxPacket = pDevice->uNumSQ3[RATE_2M];
|
ulMaxPacket = pDevice->uNumSQ3[RATE_2M];
|
||||||
}
|
}
|
||||||
if (pDevice->uNumSQ3[RATE_1M] > ulMaxPacket) {
|
if (pDevice->uNumSQ3[RATE_1M] > ulMaxPacket) {
|
||||||
ulPacketNum = pDevice->uDiversityCnt;
|
ulPacketNum = pDevice->uDiversityCnt;
|
||||||
ulRatio = (ulPacketNum * 1000 / pDevice->uDiversityCnt);
|
ulRatio = (ulPacketNum * 1000 / pDevice->uDiversityCnt);
|
||||||
//ulRatio = (pDevice->uNumSQ3[RATE_1M] * 1000 / pDevice->uDiversityCnt);
|
|
||||||
ulRatio += TOP_RATE_1M;
|
ulRatio += TOP_RATE_1M;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2741,7 +2725,6 @@ BBvAntennaDiversity(PSDevice pDevice, unsigned char byRxRate, unsigned char bySQ
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
pDevice->uDiversityCnt++;
|
pDevice->uDiversityCnt++;
|
||||||
// DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "pDevice->uDiversityCnt = %d\n", (int)pDevice->uDiversityCnt);
|
|
||||||
|
|
||||||
pDevice->uNumSQ3[byRxRate]++;
|
pDevice->uNumSQ3[byRxRate]++;
|
||||||
|
|
||||||
|
@ -112,7 +112,6 @@ typedef struct tagKnownBSS {
|
|||||||
unsigned char abySSID[WLAN_IEHDR_LEN + WLAN_SSID_MAXLEN + 1];
|
unsigned char abySSID[WLAN_IEHDR_LEN + WLAN_SSID_MAXLEN + 1];
|
||||||
unsigned char byRxRate;
|
unsigned char byRxRate;
|
||||||
|
|
||||||
// unsigned short wATIMWindow;
|
|
||||||
unsigned char byRSSIStatCnt;
|
unsigned char byRSSIStatCnt;
|
||||||
long ldBmMAX;
|
long ldBmMAX;
|
||||||
long ldBmAverage[RSSI_STAT_COUNT];
|
long ldBmAverage[RSSI_STAT_COUNT];
|
||||||
@ -147,7 +146,6 @@ typedef struct tagKnownBSS {
|
|||||||
|
|
||||||
// Clear count
|
// Clear count
|
||||||
unsigned int uClearCount;
|
unsigned int uClearCount;
|
||||||
// unsigned char abyIEs[WLAN_BEACON_FR_MAXLEN];
|
|
||||||
unsigned int uIELength;
|
unsigned int uIELength;
|
||||||
QWORD qwBSSTimestamp;
|
QWORD qwBSSTimestamp;
|
||||||
QWORD qwLocalTSF; // local TSF timer
|
QWORD qwLocalTSF; // local TSF timer
|
||||||
|
@ -59,7 +59,6 @@
|
|||||||
|
|
||||||
/*--------------------- Static Definitions -------------------------*/
|
/*--------------------- Static Definitions -------------------------*/
|
||||||
|
|
||||||
//static int msglevel =MSG_LEVEL_DEBUG;
|
|
||||||
static int msglevel = MSG_LEVEL_INFO;
|
static int msglevel = MSG_LEVEL_INFO;
|
||||||
|
|
||||||
#define C_SIFS_A 16 // micro sec.
|
#define C_SIFS_A 16 // micro sec.
|
||||||
@ -337,36 +336,6 @@ s_vSetRSPINF(PSDevice pDevice, CARD_PHY_TYPE ePHYType, void *pvSupportRateIEs, v
|
|||||||
|
|
||||||
/*--------------------- Export Functions --------------------------*/
|
/*--------------------- Export Functions --------------------------*/
|
||||||
|
|
||||||
/*
|
|
||||||
* Description: Card Send packet function
|
|
||||||
*
|
|
||||||
* Parameters:
|
|
||||||
* In:
|
|
||||||
* pDeviceHandler - The adapter to be set
|
|
||||||
* pPacket - Packet buffer pointer
|
|
||||||
* ePktType - Packet type
|
|
||||||
* uLength - Packet length
|
|
||||||
* Out:
|
|
||||||
* none
|
|
||||||
*
|
|
||||||
* Return Value: true if succeeded; false if failed.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
/*
|
|
||||||
bool CARDbSendPacket (void *pDeviceHandler, void *pPacket, CARD_PKT_TYPE ePktType, unsigned int uLength) {
|
|
||||||
PSDevice pDevice = (PSDevice) pDeviceHandler;
|
|
||||||
if (ePktType == PKT_TYPE_802_11_MNG) {
|
|
||||||
return TXbTD0Send(pDevice, pPacket, uLength);
|
|
||||||
} else if (ePktType == PKT_TYPE_802_11_BCN) {
|
|
||||||
return TXbBeaconSend(pDevice, pPacket, uLength);
|
|
||||||
} if (ePktType == PKT_TYPE_802_11_DATA) {
|
|
||||||
return TXbTD1Send(pDevice, pPacket, uLength);
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Description: Get Card short preamble option value
|
* Description: Get Card short preamble option value
|
||||||
*
|
*
|
||||||
@ -426,7 +395,6 @@ bool CARDbSetPhyParameter(void *pDeviceHandler, CARD_PHY_TYPE ePHYType, unsigned
|
|||||||
unsigned char bySIFS = 0;
|
unsigned char bySIFS = 0;
|
||||||
unsigned char byDIFS = 0;
|
unsigned char byDIFS = 0;
|
||||||
unsigned char byData;
|
unsigned char byData;
|
||||||
// PWLAN_IE_SUPP_RATES pRates = NULL;
|
|
||||||
PWLAN_IE_SUPP_RATES pSupportRates = (PWLAN_IE_SUPP_RATES) pvSupportRateIEs;
|
PWLAN_IE_SUPP_RATES pSupportRates = (PWLAN_IE_SUPP_RATES) pvSupportRateIEs;
|
||||||
PWLAN_IE_SUPP_RATES pExtSupportRates = (PWLAN_IE_SUPP_RATES) pvExtSupportRateIEs;
|
PWLAN_IE_SUPP_RATES pExtSupportRates = (PWLAN_IE_SUPP_RATES) pvExtSupportRateIEs;
|
||||||
|
|
||||||
@ -1301,8 +1269,6 @@ CARDbSetQuiet(
|
|||||||
if (pDevice->byQuietStartCount < byQuietCount) {
|
if (pDevice->byQuietStartCount < byQuietCount) {
|
||||||
pDevice->byQuietStartCount = byQuietCount;
|
pDevice->byQuietStartCount = byQuietCount;
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
// we can not handle Quiet EID more
|
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -2060,8 +2026,6 @@ QWORD CARDqGetNextTBTT(QWORD qwTSF, unsigned short wBeaconInterval)
|
|||||||
uLowNextTBTT = (LODWORD(qwTSF) >> 10) << 10;
|
uLowNextTBTT = (LODWORD(qwTSF) >> 10) << 10;
|
||||||
// low dword (mod) bcn
|
// low dword (mod) bcn
|
||||||
uLowRemain = (uLowNextTBTT) % uBeaconInterval;
|
uLowRemain = (uLowNextTBTT) % uBeaconInterval;
|
||||||
// uHighRemain = ((0x80000000 % uBeaconInterval)* 2 * HIDWORD(qwTSF))
|
|
||||||
// % uBeaconInterval;
|
|
||||||
// high dword (mod) bcn
|
// high dword (mod) bcn
|
||||||
uHighRemain = (((0xffffffff % uBeaconInterval) + 1) * HIDWORD(qwTSF))
|
uHighRemain = (((0xffffffff % uBeaconInterval) + 1) * HIDWORD(qwTSF))
|
||||||
% uBeaconInterval;
|
% uBeaconInterval;
|
||||||
@ -2103,7 +2067,7 @@ void CARDvSetFirstNextTBTT(unsigned long dwIoBase, unsigned short wBeaconInterva
|
|||||||
VNSvOutPortD(dwIoBase + MAC_REG_NEXTTBTT, LODWORD(qwNextTBTT));
|
VNSvOutPortD(dwIoBase + MAC_REG_NEXTTBTT, LODWORD(qwNextTBTT));
|
||||||
VNSvOutPortD(dwIoBase + MAC_REG_NEXTTBTT + 4, HIDWORD(qwNextTBTT));
|
VNSvOutPortD(dwIoBase + MAC_REG_NEXTTBTT + 4, HIDWORD(qwNextTBTT));
|
||||||
MACvRegBitsOn(dwIoBase, MAC_REG_TFTCTL, TFTCTL_TBTTSYNCEN);
|
MACvRegBitsOn(dwIoBase, MAC_REG_TFTCTL, TFTCTL_TBTTSYNCEN);
|
||||||
//DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Card:First Next TBTT[%8xh:%8xh] \n", HIDWORD(qwNextTBTT), LODWORD(qwNextTBTT));
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -104,7 +104,6 @@ void CARDvSafeResetRx(void *pDeviceHandler);
|
|||||||
//xxx
|
//xxx
|
||||||
bool CARDbRadioPowerOff(void *pDeviceHandler);
|
bool CARDbRadioPowerOff(void *pDeviceHandler);
|
||||||
bool CARDbRadioPowerOn(void *pDeviceHandler);
|
bool CARDbRadioPowerOn(void *pDeviceHandler);
|
||||||
//bool CARDbSendPacket(void *pDeviceHandler, void *pPacket, CARD_PKT_TYPE ePktType, unsigned int uLength);
|
|
||||||
bool CARDbIsShortPreamble(void *pDeviceHandler);
|
bool CARDbIsShortPreamble(void *pDeviceHandler);
|
||||||
bool CARDbIsShorSlotTime(void *pDeviceHandler);
|
bool CARDbIsShorSlotTime(void *pDeviceHandler);
|
||||||
bool CARDbSetPhyParameter(void *pDeviceHandler, CARD_PHY_TYPE ePHYType, unsigned short wCapInfo, unsigned char byERPField, void *pvSupportRateIEs, void *pvExtSupportRateIEs);
|
bool CARDbSetPhyParameter(void *pDeviceHandler, CARD_PHY_TYPE ePHYType, unsigned short wCapInfo, unsigned char byERPField, void *pvSupportRateIEs, void *pvExtSupportRateIEs);
|
||||||
|
@ -30,7 +30,6 @@
|
|||||||
|
|
||||||
#define CARD_MAX_CHANNEL_TBL 56
|
#define CARD_MAX_CHANNEL_TBL 56
|
||||||
|
|
||||||
//static int msglevel = MSG_LEVEL_DEBUG;
|
|
||||||
static int msglevel = MSG_LEVEL_INFO;
|
static int msglevel = MSG_LEVEL_INFO;
|
||||||
|
|
||||||
/*--------------------- Static Variables --------------------------*/
|
/*--------------------- Static Variables --------------------------*/
|
||||||
@ -509,7 +508,6 @@ unsigned char get_channel_mapping(void *pDeviceHandler, unsigned char byChannelN
|
|||||||
|
|
||||||
unsigned char get_channel_number(void *pDeviceHandler, unsigned char byChannelIndex)
|
unsigned char get_channel_number(void *pDeviceHandler, unsigned char byChannelIndex)
|
||||||
{
|
{
|
||||||
//PSDevice pDevice = (PSDevice) pDeviceHandler;
|
|
||||||
return sChannelTbl[byChannelIndex].byChannelNumber;
|
return sChannelTbl[byChannelIndex].byChannelNumber;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -560,7 +558,6 @@ bool set_channel(void *pDeviceHandler, unsigned int uConnectionChannel)
|
|||||||
if (pDevice->bEnablePSMode)
|
if (pDevice->bEnablePSMode)
|
||||||
RFvWriteWakeProgSyn(pDevice->PortOffset, pDevice->byRFType, uConnectionChannel);
|
RFvWriteWakeProgSyn(pDevice->PortOffset, pDevice->byRFType, uConnectionChannel);
|
||||||
|
|
||||||
//DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "CARDbSetMediaChannel: %d\n", (unsigned char)uConnectionChannel);
|
|
||||||
BBvSoftwareReset(pDevice->PortOffset);
|
BBvSoftwareReset(pDevice->PortOffset);
|
||||||
|
|
||||||
if (pDevice->byLocalID > REV_ID_VT3253_B1) {
|
if (pDevice->byLocalID > REV_ID_VT3253_B1) {
|
||||||
|
@ -49,7 +49,6 @@
|
|||||||
|
|
||||||
extern unsigned short TxRate_iwconfig; //2008-5-8 <add> by chester
|
extern unsigned short TxRate_iwconfig; //2008-5-8 <add> by chester
|
||||||
/*--------------------- Static Variables --------------------------*/
|
/*--------------------- Static Variables --------------------------*/
|
||||||
//static int msglevel =MSG_LEVEL_DEBUG;
|
|
||||||
static int msglevel = MSG_LEVEL_INFO;
|
static int msglevel = MSG_LEVEL_INFO;
|
||||||
static const unsigned char acbyIERate[MAX_RATE] =
|
static const unsigned char acbyIERate[MAX_RATE] =
|
||||||
{0x02, 0x04, 0x0B, 0x16, 0x0C, 0x12, 0x18, 0x24, 0x30, 0x48, 0x60, 0x6C};
|
{0x02, 0x04, 0x0B, 0x16, 0x0C, 0x12, 0x18, 0x24, 0x30, 0x48, 0x60, 0x6C};
|
||||||
@ -251,9 +250,8 @@ RATEvParseMaxRate(
|
|||||||
if (byRate > byHighSuppRate)
|
if (byRate > byHighSuppRate)
|
||||||
byHighSuppRate = byRate;
|
byHighSuppRate = byRate;
|
||||||
*pwSuppRate |= (1<<wGetRateIdx(byRate));
|
*pwSuppRate |= (1<<wGetRateIdx(byRate));
|
||||||
//DBG_PRN_GRP09(("ParseMaxRate : HighSuppRate: %d, %X\n", wGetRateIdx(byRate), byRate));
|
|
||||||
}
|
}
|
||||||
} //if (pItemExtRates != NULL)
|
}
|
||||||
|
|
||||||
if ((pDevice->byPacketType == PK_TYPE_11GB) && CARDbIsOFDMinBasicRate((void *)pDevice)) {
|
if ((pDevice->byPacketType == PK_TYPE_11GB) && CARDbIsOFDMinBasicRate((void *)pDevice)) {
|
||||||
pDevice->byPacketType = PK_TYPE_11GA;
|
pDevice->byPacketType = PK_TYPE_11GA;
|
||||||
@ -299,7 +297,6 @@ RATEvTxRateFallBack(
|
|||||||
PSDevice pDevice = (PSDevice) pDeviceHandler;
|
PSDevice pDevice = (PSDevice) pDeviceHandler;
|
||||||
unsigned short wIdxDownRate = 0;
|
unsigned short wIdxDownRate = 0;
|
||||||
unsigned int ii;
|
unsigned int ii;
|
||||||
//unsigned long dwRateTable[MAX_RATE] = {1, 2, 5, 11, 6, 9, 12, 18, 24, 36, 48, 54};
|
|
||||||
bool bAutoRate[MAX_RATE] = {true, true, true, true, false, false, true, true, true, true, true, true};
|
bool bAutoRate[MAX_RATE] = {true, true, true, true, false, false, true, true, true, true, true, true};
|
||||||
unsigned long dwThroughputTbl[MAX_RATE] = {10, 20, 55, 110, 60, 90, 120, 180, 240, 360, 480, 540};
|
unsigned long dwThroughputTbl[MAX_RATE] = {10, 20, 55, 110, 60, 90, 120, 180, 240, 360, 480, 540};
|
||||||
unsigned long dwThroughput = 0;
|
unsigned long dwThroughput = 0;
|
||||||
@ -345,8 +342,6 @@ RATEvTxRateFallBack(
|
|||||||
}
|
}
|
||||||
dwThroughputTbl[ii] /= (psNodeDBTable->uTxOk[ii] + psNodeDBTable->uTxFail[ii]);
|
dwThroughputTbl[ii] /= (psNodeDBTable->uTxOk[ii] + psNodeDBTable->uTxFail[ii]);
|
||||||
}
|
}
|
||||||
// DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Rate %d,Ok: %d, Fail:%d, Throughput:%d\n",
|
|
||||||
// ii, psNodeDBTable->uTxOk[ii], psNodeDBTable->uTxFail[ii], dwThroughputTbl[ii]);
|
|
||||||
}
|
}
|
||||||
dwThroughput = dwThroughputTbl[psNodeDBTable->wTxDataRate];
|
dwThroughput = dwThroughputTbl[psNodeDBTable->wTxDataRate];
|
||||||
|
|
||||||
@ -371,7 +366,6 @@ RATEvTxRateFallBack(
|
|||||||
//2008-5-8 <add> by chester
|
//2008-5-8 <add> by chester
|
||||||
TxRate_iwconfig = psNodeDBTable->wTxDataRate;
|
TxRate_iwconfig = psNodeDBTable->wTxDataRate;
|
||||||
s_vResetCounter(psNodeDBTable);
|
s_vResetCounter(psNodeDBTable);
|
||||||
// DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Rate: %d, U:%d, D:%d\n", psNodeDBTable->wTxDataRate, wIdxUpRate, wIdxDownRate);
|
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -213,29 +213,6 @@ typedef struct tagDEVICE_RD_INFO {
|
|||||||
dma_addr_t curr_desc;
|
dma_addr_t curr_desc;
|
||||||
} DEVICE_RD_INFO, *PDEVICE_RD_INFO;
|
} DEVICE_RD_INFO, *PDEVICE_RD_INFO;
|
||||||
|
|
||||||
/*
|
|
||||||
static inline PDEVICE_RD_INFO alloc_rd_info(void) {
|
|
||||||
PDEVICE_RD_INFO ptr;
|
|
||||||
ptr = kmalloc(sizeof(DEVICE_RD_INFO), GFP_ATOMIC);
|
|
||||||
if (ptr == NULL)
|
|
||||||
return NULL;
|
|
||||||
else {
|
|
||||||
memset(ptr,0,sizeof(DEVICE_RD_INFO));
|
|
||||||
return ptr;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
typedef struct tagRDES0 {
|
|
||||||
unsigned short wResCount;
|
|
||||||
unsigned short wf1Owner;
|
|
||||||
// unsigned short f15Reserved : 15;
|
|
||||||
// unsigned short f1Owner : 1;
|
|
||||||
} __attribute__ ((__packed__))
|
|
||||||
SRDES0;
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifdef __BIG_ENDIAN
|
#ifdef __BIG_ENDIAN
|
||||||
|
|
||||||
typedef struct tagRDES0 {
|
typedef struct tagRDES0 {
|
||||||
@ -284,17 +261,6 @@ typedef const SRxDesc *PCSRxDesc;
|
|||||||
|
|
||||||
#ifdef __BIG_ENDIAN
|
#ifdef __BIG_ENDIAN
|
||||||
|
|
||||||
/*
|
|
||||||
typedef struct tagTDES0 {
|
|
||||||
volatile unsigned char byTSR0;
|
|
||||||
volatile unsigned char byTSR1;
|
|
||||||
volatile unsigned short wOwner_Txtime;
|
|
||||||
// volatile unsigned short f15Txtime : 15;
|
|
||||||
// volatile unsigned short f1Owner:1;
|
|
||||||
} __attribute__ ((__packed__))
|
|
||||||
STDES0;
|
|
||||||
*/
|
|
||||||
|
|
||||||
typedef struct tagTDES0 {
|
typedef struct tagTDES0 {
|
||||||
volatile unsigned char byTSR0;
|
volatile unsigned char byTSR0;
|
||||||
volatile unsigned char byTSR1;
|
volatile unsigned char byTSR1;
|
||||||
@ -339,19 +305,6 @@ typedef struct tagDEVICE_TD_INFO {
|
|||||||
unsigned char byFlags;
|
unsigned char byFlags;
|
||||||
} DEVICE_TD_INFO, *PDEVICE_TD_INFO;
|
} DEVICE_TD_INFO, *PDEVICE_TD_INFO;
|
||||||
|
|
||||||
/*
|
|
||||||
static inline PDEVICE_TD_INFO alloc_td_info(void) {
|
|
||||||
PDEVICE_TD_INFO ptr;
|
|
||||||
ptr = kmalloc(sizeof(DEVICE_TD_INFO),GFP_ATOMIC);
|
|
||||||
if (ptr == NULL)
|
|
||||||
return NULL;
|
|
||||||
else {
|
|
||||||
memset(ptr,0,sizeof(DEVICE_TD_INFO));
|
|
||||||
return ptr;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// transmit descriptor
|
// transmit descriptor
|
||||||
//
|
//
|
||||||
|
@ -750,12 +750,6 @@ typedef struct __device_info {
|
|||||||
bool bWPADEVUp;
|
bool bWPADEVUp;
|
||||||
struct sk_buff *skb;
|
struct sk_buff *skb;
|
||||||
#ifdef WPA_SUPPLICANT_DRIVER_WEXT_SUPPORT
|
#ifdef WPA_SUPPLICANT_DRIVER_WEXT_SUPPORT
|
||||||
/*
|
|
||||||
bool bwextstep0;
|
|
||||||
bool bwextstep1;
|
|
||||||
bool bwextstep2;
|
|
||||||
bool bwextstep3;
|
|
||||||
*/
|
|
||||||
unsigned int bwextcount;
|
unsigned int bwextcount;
|
||||||
bool bWPASuppWextEnabled;
|
bool bWPASuppWextEnabled;
|
||||||
#endif
|
#endif
|
||||||
|
@ -89,7 +89,6 @@
|
|||||||
#include <linux/slab.h>
|
#include <linux/slab.h>
|
||||||
|
|
||||||
/*--------------------- Static Definitions -------------------------*/
|
/*--------------------- Static Definitions -------------------------*/
|
||||||
//static int msglevel =MSG_LEVEL_DEBUG;
|
|
||||||
static int msglevel = MSG_LEVEL_INFO;
|
static int msglevel = MSG_LEVEL_INFO;
|
||||||
|
|
||||||
//
|
//
|
||||||
@ -100,14 +99,8 @@ MODULE_LICENSE("GPL");
|
|||||||
MODULE_DESCRIPTION("VIA Networking Solomon-A/B/G Wireless LAN Adapter Driver");
|
MODULE_DESCRIPTION("VIA Networking Solomon-A/B/G Wireless LAN Adapter Driver");
|
||||||
|
|
||||||
static int mlme_kill;
|
static int mlme_kill;
|
||||||
//static struct task_struct * mlme_task;
|
|
||||||
|
|
||||||
#define DEVICE_PARAM(N, D)
|
#define DEVICE_PARAM(N, D)
|
||||||
/*
|
|
||||||
static const int N[MAX_UINTS]=OPTION_DEFAULT;\
|
|
||||||
MODULE_PARM(N, "1-" __MODULE_STRING(MAX_UINTS) "i");\
|
|
||||||
MODULE_PARM_DESC(N, D);
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define RX_DESC_MIN0 16
|
#define RX_DESC_MIN0 16
|
||||||
#define RX_DESC_MAX0 128
|
#define RX_DESC_MAX0 128
|
||||||
@ -346,38 +339,6 @@ static void vt6655_remove(struct pci_dev *pcid)
|
|||||||
device_free_info(pDevice);
|
device_free_info(pDevice);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
static void
|
|
||||||
device_set_int_opt(int *opt, int val, int min, int max, int def,char* name,char* devname) {
|
|
||||||
if (val==-1)
|
|
||||||
*opt=def;
|
|
||||||
else if (val<min || val>max) {
|
|
||||||
DBG_PRT(MSG_LEVEL_INFO, KERN_NOTICE "%s: the value of parameter %s is invalid, the valid range is (%d-%d)\n" ,
|
|
||||||
devname,name, min,max);
|
|
||||||
*opt=def;
|
|
||||||
} else {
|
|
||||||
DBG_PRT(MSG_LEVEL_INFO, KERN_INFO "%s: set value of parameter %s to %d\n",
|
|
||||||
devname, name, val);
|
|
||||||
*opt=val;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
device_set_bool_opt(unsigned int *opt, int val,bool def,u32 flag, char* name,char* devname) {
|
|
||||||
(*opt)&=(~flag);
|
|
||||||
if (val==-1)
|
|
||||||
*opt|=(def ? flag : 0);
|
|
||||||
else if (val<0 || val>1) {
|
|
||||||
DBG_PRT(MSG_LEVEL_INFO, KERN_NOTICE
|
|
||||||
"%s: the value of parameter %s is invalid, the valid range is (0-1)\n",devname,name);
|
|
||||||
*opt|=(def ? flag : 0);
|
|
||||||
} else {
|
|
||||||
DBG_PRT(MSG_LEVEL_INFO, KERN_NOTICE "%s: set parameter %s to %s\n",
|
|
||||||
devname,name , val ? "true" : "false");
|
|
||||||
*opt|=(val ? flag : 0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
static void device_get_options(PSDevice pDevice, int index, char *devname)
|
static void device_get_options(PSDevice pDevice, int index, char *devname)
|
||||||
{
|
{
|
||||||
POPTIONS pOpts = &(pDevice->sOpts);
|
POPTIONS pOpts = &(pDevice->sOpts);
|
||||||
@ -395,7 +356,6 @@ static void device_get_options(PSDevice pDevice, int index, char *devname)
|
|||||||
|
|
||||||
pOpts->flags |= DEVICE_FLAGS_PREAMBLE_TYPE;
|
pOpts->flags |= DEVICE_FLAGS_PREAMBLE_TYPE;
|
||||||
pOpts->flags |= DEVICE_FLAGS_OP_MODE;
|
pOpts->flags |= DEVICE_FLAGS_OP_MODE;
|
||||||
//pOpts->flags|=DEVICE_FLAGS_PS_MODE;
|
|
||||||
pOpts->short_retry = SHORT_RETRY_DEF;
|
pOpts->short_retry = SHORT_RETRY_DEF;
|
||||||
pOpts->long_retry = LONG_RETRY_DEF;
|
pOpts->long_retry = LONG_RETRY_DEF;
|
||||||
pOpts->bbp_type = BBP_TYPE_DEF;
|
pOpts->bbp_type = BBP_TYPE_DEF;
|
||||||
@ -431,7 +391,6 @@ device_set_options(PSDevice pDevice) {
|
|||||||
|
|
||||||
//PLICE_DEBUG->
|
//PLICE_DEBUG->
|
||||||
pDevice->byAutoFBCtrl = AUTO_FB_0;
|
pDevice->byAutoFBCtrl = AUTO_FB_0;
|
||||||
//pDevice->byAutoFBCtrl = AUTO_FB_1;
|
|
||||||
//PLICE_DEBUG<-
|
//PLICE_DEBUG<-
|
||||||
pDevice->bUpdateBBVGA = true;
|
pDevice->bUpdateBBVGA = true;
|
||||||
pDevice->byFOETuning = 0;
|
pDevice->byFOETuning = 0;
|
||||||
@ -549,12 +508,12 @@ static void device_init_registers(PSDevice pDevice, DEVICE_INIT_TYPE InitType)
|
|||||||
if (byValue == 0) // if not set default is All
|
if (byValue == 0) // if not set default is All
|
||||||
byValue = (EEP_ANTENNA_AUX | EEP_ANTENNA_MAIN);
|
byValue = (EEP_ANTENNA_AUX | EEP_ANTENNA_MAIN);
|
||||||
|
|
||||||
pDevice->ulDiversityNValue = 100*260;//100*SROMbyReadEmbedded(pDevice->PortOffset, 0x51);
|
pDevice->ulDiversityNValue = 100*260;
|
||||||
pDevice->ulDiversityMValue = 100*16;//SROMbyReadEmbedded(pDevice->PortOffset, 0x52);
|
pDevice->ulDiversityMValue = 100*16;
|
||||||
pDevice->byTMax = 1;//SROMbyReadEmbedded(pDevice->PortOffset, 0x53);
|
pDevice->byTMax = 1;
|
||||||
pDevice->byTMax2 = 4;//SROMbyReadEmbedded(pDevice->PortOffset, 0x54);
|
pDevice->byTMax2 = 4;
|
||||||
pDevice->ulSQ3TH = 0;//(unsigned long) SROMbyReadEmbedded(pDevice->PortOffset, 0x55);
|
pDevice->ulSQ3TH = 0;
|
||||||
pDevice->byTMax3 = 64;//SROMbyReadEmbedded(pDevice->PortOffset, 0x56);
|
pDevice->byTMax3 = 64;
|
||||||
|
|
||||||
if (byValue == (EEP_ANTENNA_AUX | EEP_ANTENNA_MAIN)) {
|
if (byValue == (EEP_ANTENNA_AUX | EEP_ANTENNA_MAIN)) {
|
||||||
pDevice->byAntennaCount = 2;
|
pDevice->byAntennaCount = 2;
|
||||||
@ -568,7 +527,7 @@ static void device_init_registers(PSDevice pDevice, DEVICE_INIT_TYPE InitType)
|
|||||||
// chester for antenna
|
// chester for antenna
|
||||||
byValue1 = SROMbyReadEmbedded(pDevice->PortOffset, EEP_OFS_ANTENNA);
|
byValue1 = SROMbyReadEmbedded(pDevice->PortOffset, EEP_OFS_ANTENNA);
|
||||||
if ((byValue1 & 0x08) == 0)
|
if ((byValue1 & 0x08) == 0)
|
||||||
pDevice->bDiversityEnable = false;//SROMbyReadEmbedded(pDevice->PortOffset, 0x50);
|
pDevice->bDiversityEnable = false;
|
||||||
else
|
else
|
||||||
pDevice->bDiversityEnable = true;
|
pDevice->bDiversityEnable = true;
|
||||||
} else {
|
} else {
|
||||||
@ -593,7 +552,6 @@ static void device_init_registers(PSDevice pDevice, DEVICE_INIT_TYPE InitType)
|
|||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "bDiversityEnable=[%d],NValue=[%d],MValue=[%d],TMax=[%d],TMax2=[%d]\n",
|
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "bDiversityEnable=[%d],NValue=[%d],MValue=[%d],TMax=[%d],TMax2=[%d]\n",
|
||||||
pDevice->bDiversityEnable, (int)pDevice->ulDiversityNValue, (int)pDevice->ulDiversityMValue, pDevice->byTMax, pDevice->byTMax2);
|
pDevice->bDiversityEnable, (int)pDevice->ulDiversityNValue, (int)pDevice->ulDiversityMValue, pDevice->byTMax, pDevice->byTMax2);
|
||||||
|
|
||||||
//#ifdef ZoneType_DefaultSetting
|
|
||||||
//2008-8-4 <add> by chester
|
//2008-8-4 <add> by chester
|
||||||
//zonetype initial
|
//zonetype initial
|
||||||
pDevice->byOriginalZonetype = pDevice->abyEEPROM[EEP_OFS_ZONETYPE];
|
pDevice->byOriginalZonetype = pDevice->abyEEPROM[EEP_OFS_ZONETYPE];
|
||||||
@ -647,9 +605,6 @@ static void device_init_registers(PSDevice pDevice, DEVICE_INIT_TYPE InitType)
|
|||||||
pDevice->byCurPwr = 0xFF;
|
pDevice->byCurPwr = 0xFF;
|
||||||
pDevice->byCCKPwr = SROMbyReadEmbedded(pDevice->PortOffset, EEP_OFS_PWR_CCK);
|
pDevice->byCCKPwr = SROMbyReadEmbedded(pDevice->PortOffset, EEP_OFS_PWR_CCK);
|
||||||
pDevice->byOFDMPwrG = SROMbyReadEmbedded(pDevice->PortOffset, EEP_OFS_PWR_OFDMG);
|
pDevice->byOFDMPwrG = SROMbyReadEmbedded(pDevice->PortOffset, EEP_OFS_PWR_OFDMG);
|
||||||
//byCCKPwrdBm = SROMbyReadEmbedded(pDevice->PortOffset, EEP_OFS_CCK_PWR_dBm);
|
|
||||||
|
|
||||||
//byOFDMPwrdBm = SROMbyReadEmbedded(pDevice->PortOffset, EEP_OFS_OFDM_PWR_dBm);
|
|
||||||
|
|
||||||
// Load power Table
|
// Load power Table
|
||||||
|
|
||||||
@ -715,7 +670,6 @@ static void device_init_registers(PSDevice pDevice, DEVICE_INIT_TYPE InitType)
|
|||||||
|
|
||||||
pDevice->byCurrentCh = 0;
|
pDevice->byCurrentCh = 0;
|
||||||
|
|
||||||
//pDevice->NetworkType = Ndis802_11Automode;
|
|
||||||
// Set BB and packet type at the same time.
|
// Set BB and packet type at the same time.
|
||||||
// Set Short Slot Time, xIFS, and RSPINF.
|
// Set Short Slot Time, xIFS, and RSPINF.
|
||||||
if (pDevice->uConnectionRate == RATE_AUTO) {
|
if (pDevice->uConnectionRate == RATE_AUTO) {
|
||||||
@ -807,7 +761,7 @@ static bool device_release_WPADEV(PSDevice pDevice)
|
|||||||
{
|
{
|
||||||
viawget_wpa_header *wpahdr;
|
viawget_wpa_header *wpahdr;
|
||||||
int ii = 0;
|
int ii = 0;
|
||||||
// wait_queue_head_t Set_wait;
|
|
||||||
//send device close to wpa_supplicnat layer
|
//send device close to wpa_supplicnat layer
|
||||||
if (pDevice->bWPADEVUp) {
|
if (pDevice->bWPADEVUp) {
|
||||||
wpahdr = (viawget_wpa_header *)pDevice->skb->data;
|
wpahdr = (viawget_wpa_header *)pDevice->skb->data;
|
||||||
@ -823,9 +777,6 @@ static bool device_release_WPADEV(PSDevice pDevice)
|
|||||||
netif_rx(pDevice->skb);
|
netif_rx(pDevice->skb);
|
||||||
pDevice->skb = dev_alloc_skb((int)pDevice->rx_buf_sz);
|
pDevice->skb = dev_alloc_skb((int)pDevice->rx_buf_sz);
|
||||||
|
|
||||||
//wait release WPADEV
|
|
||||||
// init_waitqueue_head(&Set_wait);
|
|
||||||
// wait_event_timeout(Set_wait, ((pDevice->wpadev==NULL)&&(pDevice->skb == NULL)),5*HZ); //1s wait
|
|
||||||
while (pDevice->bWPADEVUp) {
|
while (pDevice->bWPADEVUp) {
|
||||||
set_current_state(TASK_UNINTERRUPTIBLE);
|
set_current_state(TASK_UNINTERRUPTIBLE);
|
||||||
schedule_timeout(HZ / 20); //wait 50ms
|
schedule_timeout(HZ / 20); //wait 50ms
|
||||||
@ -869,7 +820,6 @@ vt6655_probe(struct pci_dev *pcid, const struct pci_device_id *ent)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Chain it all together
|
// Chain it all together
|
||||||
// SET_MODULE_OWNER(dev);
|
|
||||||
SET_NETDEV_DEV(dev, &pcid->dev);
|
SET_NETDEV_DEV(dev, &pcid->dev);
|
||||||
|
|
||||||
if (bFirst) {
|
if (bFirst) {
|
||||||
@ -902,7 +852,6 @@ vt6655_probe(struct pci_dev *pcid, const struct pci_device_id *ent)
|
|||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
|
|
||||||
//pci_read_config_byte(pcid, PCI_BASE_ADDRESS_0, &pDevice->byRevId);
|
|
||||||
printk("after get pci_info memaddr is %x, io addr is %x,io_size is %d\n", pDevice->memaddr, pDevice->ioaddr, pDevice->io_size);
|
printk("after get pci_info memaddr is %x, io addr is %x,io_size is %d\n", pDevice->memaddr, pDevice->ioaddr, pDevice->io_size);
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
@ -916,7 +865,6 @@ vt6655_probe(struct pci_dev *pcid, const struct pci_device_id *ent)
|
|||||||
PCI_BASE_ADDRESS_5,
|
PCI_BASE_ADDRESS_5,
|
||||||
0};
|
0};
|
||||||
for (i = 0; address[i]; i++) {
|
for (i = 0; address[i]; i++) {
|
||||||
//pci_write_config_dword(pcid,address[i], 0xFFFFFFFF);
|
|
||||||
pci_read_config_dword(pcid, address[i], &bar);
|
pci_read_config_dword(pcid, address[i], &bar);
|
||||||
printk("bar %d is %x\n", i, bar);
|
printk("bar %d is %x\n", i, bar);
|
||||||
if (!bar) {
|
if (!bar) {
|
||||||
@ -942,11 +890,7 @@ vt6655_probe(struct pci_dev *pcid, const struct pci_device_id *ent)
|
|||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef DEBUG
|
|
||||||
//return 0;
|
|
||||||
#endif
|
|
||||||
pDevice->PortOffset = (unsigned long)ioremap(pDevice->memaddr & PCI_BASE_ADDRESS_MEM_MASK, pDevice->io_size);
|
pDevice->PortOffset = (unsigned long)ioremap(pDevice->memaddr & PCI_BASE_ADDRESS_MEM_MASK, pDevice->io_size);
|
||||||
//pDevice->PortOffset = (unsigned long)ioremap(pDevice->ioaddr & PCI_BASE_ADDRESS_IO_MASK, pDevice->io_size);
|
|
||||||
|
|
||||||
if (pDevice->PortOffset == 0) {
|
if (pDevice->PortOffset == 0) {
|
||||||
printk(KERN_ERR DEVICE_NAME ": Failed to IO remapping ..\n");
|
printk(KERN_ERR DEVICE_NAME ": Failed to IO remapping ..\n");
|
||||||
@ -967,7 +911,6 @@ vt6655_probe(struct pci_dev *pcid, const struct pci_device_id *ent)
|
|||||||
|
|
||||||
VNSvInPortB(pDevice->PortOffset+0x4F, &value);
|
VNSvInPortB(pDevice->PortOffset+0x4F, &value);
|
||||||
printk("Before write: value is %x\n", value);
|
printk("Before write: value is %x\n", value);
|
||||||
//VNSvInPortB(pDevice->PortOffset+0x3F, 0x00);
|
|
||||||
VNSvOutPortB(pDevice->PortOffset, value);
|
VNSvOutPortB(pDevice->PortOffset, value);
|
||||||
VNSvInPortB(pDevice->PortOffset+0x4F, &value);
|
VNSvInPortB(pDevice->PortOffset+0x4F, &value);
|
||||||
printk("After write: value is %x\n", value);
|
printk("After write: value is %x\n", value);
|
||||||
@ -1075,11 +1018,6 @@ static bool device_get_pci_info(PSDevice pDevice, struct pci_dev *pcid) {
|
|||||||
pDevice->memaddr = pci_resource_start(pcid, 0);
|
pDevice->memaddr = pci_resource_start(pcid, 0);
|
||||||
pDevice->ioaddr = pci_resource_start(pcid, 1);
|
pDevice->ioaddr = pci_resource_start(pcid, 1);
|
||||||
|
|
||||||
#ifdef DEBUG
|
|
||||||
// pDevice->ioaddr = pci_resource_start(pcid, 0);
|
|
||||||
// pDevice->memaddr = pci_resource_start(pcid,1);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
cis_addr = pci_resource_start(pcid, 2);
|
cis_addr = pci_resource_start(pcid, 2);
|
||||||
|
|
||||||
pDevice->pcid = pcid;
|
pDevice->pcid = pcid;
|
||||||
@ -1088,13 +1026,6 @@ static bool device_get_pci_info(PSDevice pDevice, struct pci_dev *pcid) {
|
|||||||
pci_write_config_byte(pcid, PCI_COMMAND, (b|PCI_COMMAND_MASTER));
|
pci_write_config_byte(pcid, PCI_COMMAND, (b|PCI_COMMAND_MASTER));
|
||||||
|
|
||||||
#ifdef PLICE_DEBUG
|
#ifdef PLICE_DEBUG
|
||||||
//pci_read_config_word(pcid,PCI_MAX_LAT,&max_lat);
|
|
||||||
//for (ii=0;ii<0xFF;ii++)
|
|
||||||
//pci_read_config_word(pcid,PCI_MAX_LAT,&max_lat);
|
|
||||||
//max_lat = 0x20;
|
|
||||||
//pci_write_config_word(pcid,PCI_MAX_LAT,max_lat);
|
|
||||||
//pci_read_config_word(pcid,PCI_MAX_LAT,&max_lat);
|
|
||||||
|
|
||||||
for (ii = 0; ii < 0xFF; ii++) {
|
for (ii = 0; ii < 0xFF; ii++) {
|
||||||
pci_read_config_byte(pcid, ii, &value);
|
pci_read_config_byte(pcid, ii, &value);
|
||||||
pci_config[ii] = value;
|
pci_config[ii] = value;
|
||||||
@ -1468,7 +1399,6 @@ static int device_rx_srv(PSDevice pDevice, unsigned int uIdx) {
|
|||||||
for (pRD = pDevice->pCurrRD[uIdx];
|
for (pRD = pDevice->pCurrRD[uIdx];
|
||||||
pRD->m_rd0RD0.f1Owner == OWNED_BY_HOST;
|
pRD->m_rd0RD0.f1Owner == OWNED_BY_HOST;
|
||||||
pRD = pRD->next) {
|
pRD = pRD->next) {
|
||||||
// DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "pDevice->pCurrRD = %x, works = %d\n", pRD, works);
|
|
||||||
if (works++ > 15)
|
if (works++ > 15)
|
||||||
break;
|
break;
|
||||||
if (device_receive_frame(pDevice, pRD)) {
|
if (device_receive_frame(pDevice, pRD)) {
|
||||||
@ -1584,7 +1514,6 @@ static int device_tx_srv(PSDevice pDevice, unsigned int uIdx) {
|
|||||||
skb->dev = pDevice->apdev;
|
skb->dev = pDevice->apdev;
|
||||||
skb_reset_mac_header(skb);
|
skb_reset_mac_header(skb);
|
||||||
skb->pkt_type = PACKET_OTHERHOST;
|
skb->pkt_type = PACKET_OTHERHOST;
|
||||||
//skb->protocol = htons(ETH_P_802_2);
|
|
||||||
memset(skb->cb, 0, sizeof(skb->cb));
|
memset(skb->cb, 0, sizeof(skb->cb));
|
||||||
netif_rx(skb);
|
netif_rx(skb);
|
||||||
}
|
}
|
||||||
@ -1596,8 +1525,6 @@ static int device_tx_srv(PSDevice pDevice, unsigned int uIdx) {
|
|||||||
(int)uIdx, byTsr1, byTsr0);
|
(int)uIdx, byTsr1, byTsr0);
|
||||||
}
|
}
|
||||||
|
|
||||||
// DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO " Tx[%d] fail has error. tsr1[%02X] tsr0[%02X].\n",
|
|
||||||
// (int)uIdx, byTsr1, byTsr0);
|
|
||||||
|
|
||||||
if ((pMgmt->eCurrMode == WMAC_MODE_ESS_AP) &&
|
if ((pMgmt->eCurrMode == WMAC_MODE_ESS_AP) &&
|
||||||
(pTD->pTDInfo->byFlags & TD_FLAGS_NETIF_SKB)) {
|
(pTD->pTDInfo->byFlags & TD_FLAGS_NETIF_SKB)) {
|
||||||
@ -1689,33 +1616,22 @@ int MlmeThread(
|
|||||||
{
|
{
|
||||||
PSDevice pDevice = (PSDevice) Context;
|
PSDevice pDevice = (PSDevice) Context;
|
||||||
PSRxMgmtPacket pRxMgmtPacket;
|
PSRxMgmtPacket pRxMgmtPacket;
|
||||||
// int i;
|
|
||||||
//complete(&pDevice->notify);
|
|
||||||
|
|
||||||
//i = 0;
|
|
||||||
#if 1
|
|
||||||
while (1) {
|
while (1) {
|
||||||
//down(&pDevice->mlme_semaphore);
|
|
||||||
// pRxMgmtPacket = DeQueue(pDevice);
|
|
||||||
#if 1
|
|
||||||
spin_lock_irq(&pDevice->lock);
|
spin_lock_irq(&pDevice->lock);
|
||||||
while (pDevice->rxManeQueue.packet_num != 0) {
|
while (pDevice->rxManeQueue.packet_num != 0) {
|
||||||
pRxMgmtPacket = DeQueue(pDevice);
|
pRxMgmtPacket = DeQueue(pDevice);
|
||||||
//pDevice;
|
|
||||||
//DequeueManageObject(pDevice->FirstRecvMngList, pDevice->LastRecvMngList);
|
|
||||||
vMgrRxManagePacket(pDevice, pDevice->pMgmt, pRxMgmtPacket);
|
vMgrRxManagePacket(pDevice, pDevice->pMgmt, pRxMgmtPacket);
|
||||||
}
|
}
|
||||||
spin_unlock_irq(&pDevice->lock);
|
spin_unlock_irq(&pDevice->lock);
|
||||||
if (mlme_kill == 0)
|
if (mlme_kill == 0)
|
||||||
break;
|
break;
|
||||||
//udelay(200);
|
|
||||||
#endif
|
|
||||||
schedule();
|
schedule();
|
||||||
if (mlme_kill == 0)
|
if (mlme_kill == 0)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1749,7 +1665,6 @@ static int device_open(struct net_device *dev) {
|
|||||||
device_init_defrag_cb(pDevice);
|
device_init_defrag_cb(pDevice);
|
||||||
device_init_td0_ring(pDevice);
|
device_init_td0_ring(pDevice);
|
||||||
device_init_td1_ring(pDevice);
|
device_init_td1_ring(pDevice);
|
||||||
// VNTWIFIvSet11h(pDevice->pMgmt, pDevice->b11hEnable);
|
|
||||||
|
|
||||||
if (pDevice->bDiversityRegCtlON) {
|
if (pDevice->bDiversityRegCtlON) {
|
||||||
device_init_diversity_timer(pDevice);
|
device_init_diversity_timer(pDevice);
|
||||||
@ -1773,8 +1688,6 @@ static int device_open(struct net_device *dev) {
|
|||||||
mlme_kill = 1;
|
mlme_kill = 1;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//wait_for_completion(&pDevice->notify);
|
|
||||||
|
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "call device_init_registers\n");
|
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "call device_init_registers\n");
|
||||||
device_init_registers(pDevice, DEVICE_INIT_COLD);
|
device_init_registers(pDevice, DEVICE_INIT_COLD);
|
||||||
MACvReadEtherAddress(pDevice->PortOffset, pDevice->abyCurrentNetAddr);
|
MACvReadEtherAddress(pDevice->PortOffset, pDevice->abyCurrentNetAddr);
|
||||||
@ -1786,12 +1699,6 @@ static int device_open(struct net_device *dev) {
|
|||||||
add_timer(&(pDevice->pMgmt->sTimerSecondCallback));
|
add_timer(&(pDevice->pMgmt->sTimerSecondCallback));
|
||||||
|
|
||||||
#ifdef WPA_SUPPLICANT_DRIVER_WEXT_SUPPORT
|
#ifdef WPA_SUPPLICANT_DRIVER_WEXT_SUPPORT
|
||||||
/*
|
|
||||||
pDevice->bwextstep0 = false;
|
|
||||||
pDevice->bwextstep1 = false;
|
|
||||||
pDevice->bwextstep2 = false;
|
|
||||||
pDevice->bwextstep3 = false;
|
|
||||||
*/
|
|
||||||
pDevice->bwextcount = 0;
|
pDevice->bwextcount = 0;
|
||||||
pDevice->bWPASuppWextEnabled = false;
|
pDevice->bWPASuppWextEnabled = false;
|
||||||
#endif
|
#endif
|
||||||
@ -1873,9 +1780,7 @@ static int device_close(struct net_device *dev) {
|
|||||||
pDevice->flags &= (~DEVICE_FLAGS_OPENED);
|
pDevice->flags &= (~DEVICE_FLAGS_OPENED);
|
||||||
//2008-0714-01<Add>by chester
|
//2008-0714-01<Add>by chester
|
||||||
device_release_WPADEV(pDevice);
|
device_release_WPADEV(pDevice);
|
||||||
//PLICE_DEBUG->
|
|
||||||
//tasklet_kill(&pDevice->RxMngWorkItem);
|
|
||||||
//PLICE_DEBUG<-
|
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "device_close.. \n");
|
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "device_close.. \n");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -1922,7 +1827,6 @@ bool device_dma0_xmit(PSDevice pDevice, struct sk_buff *skb, unsigned int uNodeI
|
|||||||
unsigned int cbHeaderSize;
|
unsigned int cbHeaderSize;
|
||||||
unsigned int ii;
|
unsigned int ii;
|
||||||
SKeyItem STempKey;
|
SKeyItem STempKey;
|
||||||
// unsigned char byKeyIndex = 0;
|
|
||||||
|
|
||||||
if (pDevice->bStopTx0Pkt) {
|
if (pDevice->bStopTx0Pkt) {
|
||||||
dev_kfree_skb_irq(skb);
|
dev_kfree_skb_irq(skb);
|
||||||
@ -2279,7 +2183,6 @@ static int device_xmit(struct sk_buff *skb, struct net_device *dev) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "acdma0: pDevice->wCurrentRate = %d \n", pDevice->wCurrentRate);
|
|
||||||
|
|
||||||
if (pDevice->wCurrentRate <= RATE_11M) {
|
if (pDevice->wCurrentRate <= RATE_11M) {
|
||||||
byPktType = PK_TYPE_11B;
|
byPktType = PK_TYPE_11B;
|
||||||
@ -2293,10 +2196,6 @@ static int device_xmit(struct sk_buff *skb, struct net_device *dev) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//#ifdef PLICE_DEBUG
|
|
||||||
// printk("FIX RATE:CurrentRate is %d");
|
|
||||||
//#endif
|
|
||||||
|
|
||||||
if (bNeedEncryption) {
|
if (bNeedEncryption) {
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "ntohs Pkt Type=%04x\n", ntohs(pDevice->sTxEthHeader.wType));
|
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "ntohs Pkt Type=%04x\n", ntohs(pDevice->sTxEthHeader.wType));
|
||||||
if ((pDevice->sTxEthHeader.wType) == TYPE_PKT_802_1x) {
|
if ((pDevice->sTxEthHeader.wType) == TYPE_PKT_802_1x) {
|
||||||
@ -2374,12 +2273,10 @@ static int device_xmit(struct sk_buff *skb, struct net_device *dev) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pDevice->apCurrTD[TYPE_AC0DMA] = pHeadTD;
|
pDevice->apCurrTD[TYPE_AC0DMA] = pHeadTD;
|
||||||
//#ifdef PLICE_DEBUG
|
|
||||||
if (pDevice->bFixRate) {
|
if (pDevice->bFixRate) {
|
||||||
printk("FixRate:Rate is %d,TxPower is %d\n", pDevice->wCurrentRate, pDevice->byCurPwr);
|
printk("FixRate:Rate is %d,TxPower is %d\n", pDevice->wCurrentRate, pDevice->byCurPwr);
|
||||||
} else {
|
|
||||||
}
|
}
|
||||||
//#endif
|
|
||||||
|
|
||||||
{
|
{
|
||||||
unsigned char Protocol_Version; //802.1x Authentication
|
unsigned char Protocol_Version; //802.1x Authentication
|
||||||
@ -2411,7 +2308,6 @@ static int device_xmit(struct sk_buff *skb, struct net_device *dev) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
MACvTransmitAC0(pDevice->PortOffset);
|
MACvTransmitAC0(pDevice->PortOffset);
|
||||||
// DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "acdma0:pDevice->apCurrTD= %p\n", pHeadTD);
|
|
||||||
|
|
||||||
dev->trans_start = jiffies;
|
dev->trans_start = jiffies;
|
||||||
|
|
||||||
@ -2430,7 +2326,6 @@ static irqreturn_t device_intr(int irq, void *dev_instance) {
|
|||||||
int handled = 0;
|
int handled = 0;
|
||||||
unsigned char byData = 0;
|
unsigned char byData = 0;
|
||||||
int ii = 0;
|
int ii = 0;
|
||||||
// unsigned char byRSSI;
|
|
||||||
|
|
||||||
MACvReadISR(pDevice->PortOffset, &pDevice->dwIsr);
|
MACvReadISR(pDevice->PortOffset, &pDevice->dwIsr);
|
||||||
|
|
||||||
@ -2441,17 +2336,6 @@ static irqreturn_t device_intr(int irq, void *dev_instance) {
|
|||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "dwIsr = 0xffff\n");
|
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "dwIsr = 0xffff\n");
|
||||||
return IRQ_RETVAL(handled);
|
return IRQ_RETVAL(handled);
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
// 2008-05-21 <mark> by Richardtai, we can't read RSSI here, because no packet bound with RSSI
|
|
||||||
|
|
||||||
if ((pDevice->dwIsr & ISR_RXDMA0) &&
|
|
||||||
(pDevice->byLocalID != REV_ID_VT3253_B0) &&
|
|
||||||
(pDevice->bBSSIDFilter == true)) {
|
|
||||||
// update RSSI
|
|
||||||
//BBbReadEmbedded(pDevice->PortOffset, 0x3E, &byRSSI);
|
|
||||||
//pDevice->uCurrRSSI = byRSSI;
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
handled = 1;
|
handled = 1;
|
||||||
MACvIntDisable(pDevice->PortOffset);
|
MACvIntDisable(pDevice->PortOffset);
|
||||||
@ -2492,7 +2376,6 @@ static irqreturn_t device_intr(int irq, void *dev_instance) {
|
|||||||
VNSvInPortD(pDevice->PortOffset + MAC_REG_MAR4, &(pDevice->dwOrgMAR4));
|
VNSvInPortD(pDevice->PortOffset + MAC_REG_MAR4, &(pDevice->dwOrgMAR4));
|
||||||
MACvSelectPage0(pDevice->PortOffset);
|
MACvSelectPage0(pDevice->PortOffset);
|
||||||
//xxxx
|
//xxxx
|
||||||
// WCMDbFlushCommandQueue(pDevice->pMgmt, true);
|
|
||||||
if (set_channel(pDevice, pDevice->pCurrMeasureEID->sReq.byChannel)) {
|
if (set_channel(pDevice, pDevice->pCurrMeasureEID->sReq.byChannel)) {
|
||||||
pDevice->bMeasureInProgress = true;
|
pDevice->bMeasureInProgress = true;
|
||||||
MACvSelectPage1(pDevice->PortOffset);
|
MACvSelectPage1(pDevice->PortOffset);
|
||||||
@ -2505,7 +2388,6 @@ static irqreturn_t device_intr(int irq, void *dev_instance) {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// can not measure because set channel fail
|
// can not measure because set channel fail
|
||||||
// WCMDbResetCommandQueue(pDevice->pMgmt);
|
|
||||||
// clear measure control
|
// clear measure control
|
||||||
MACvRegBitsOff(pDevice->PortOffset, MAC_REG_MSRCTL, MSRCTL_EN);
|
MACvRegBitsOff(pDevice->PortOffset, MAC_REG_MSRCTL, MSRCTL_EN);
|
||||||
s_vCompleteCurrentMeasure(pDevice, MEASURE_MODE_INCAPABLE);
|
s_vCompleteCurrentMeasure(pDevice, MEASURE_MODE_INCAPABLE);
|
||||||
@ -2529,7 +2411,6 @@ static irqreturn_t device_intr(int irq, void *dev_instance) {
|
|||||||
MACvRegBitsOff(pDevice->PortOffset, MAC_REG_MSRCTL, MSRCTL_EN);
|
MACvRegBitsOff(pDevice->PortOffset, MAC_REG_MSRCTL, MSRCTL_EN);
|
||||||
MACvSelectPage0(pDevice->PortOffset);
|
MACvSelectPage0(pDevice->PortOffset);
|
||||||
set_channel(pDevice, pDevice->byOrgChannel);
|
set_channel(pDevice, pDevice->byOrgChannel);
|
||||||
// WCMDbResetCommandQueue(pDevice->pMgmt);
|
|
||||||
MACvSelectPage1(pDevice->PortOffset);
|
MACvSelectPage1(pDevice->PortOffset);
|
||||||
MACvRegBitsOn(pDevice->PortOffset, MAC_REG_MSRCTL+1, MSRCTL1_TXPAUSE);
|
MACvRegBitsOn(pDevice->PortOffset, MAC_REG_MSRCTL+1, MSRCTL1_TXPAUSE);
|
||||||
MACvSelectPage0(pDevice->PortOffset);
|
MACvSelectPage0(pDevice->PortOffset);
|
||||||
@ -2572,9 +2453,7 @@ static irqreturn_t device_intr(int irq, void *dev_instance) {
|
|||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (pDevice->eOPMode == OP_MODE_ADHOC) {
|
if (pDevice->eOPMode != OP_MODE_ADHOC) {
|
||||||
//pDevice->bBeaconSent = false;
|
|
||||||
} else {
|
|
||||||
if ((pDevice->bUpdateBBVGA) && pDevice->bLinkPass && (pDevice->uCurrRSSI != 0)) {
|
if ((pDevice->bUpdateBBVGA) && pDevice->bLinkPass && (pDevice->uCurrRSSI != 0)) {
|
||||||
long ldBm;
|
long ldBm;
|
||||||
|
|
||||||
@ -2615,9 +2494,7 @@ static irqreturn_t device_intr(int irq, void *dev_instance) {
|
|||||||
(pMgmt->wIBSSBeaconPeriod - MAKE_BEACON_RESERVED) << 10);
|
(pMgmt->wIBSSBeaconPeriod - MAKE_BEACON_RESERVED) << 10);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pDevice->eOPMode == OP_MODE_ADHOC && pDevice->pMgmt->wCurrATIMWindow > 0) {
|
/* TODO: adhoc PS mode */
|
||||||
// todo adhoc PS mode
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2651,7 +2528,6 @@ static irqreturn_t device_intr(int irq, void *dev_instance) {
|
|||||||
MACvSelectPage1(pDevice->PortOffset);
|
MACvSelectPage1(pDevice->PortOffset);
|
||||||
MACvRegBitsOn(pDevice->PortOffset, MAC_REG_MSRCTL+1, MSRCTL1_TXPAUSE);
|
MACvRegBitsOn(pDevice->PortOffset, MAC_REG_MSRCTL+1, MSRCTL1_TXPAUSE);
|
||||||
MACvSelectPage0(pDevice->PortOffset);
|
MACvSelectPage0(pDevice->PortOffset);
|
||||||
//VNTWIFIbSendBeacon(pDevice->pMgmt);
|
|
||||||
CARDbStartTxPacket(pDevice, PKT_TYPE_802_11_ALL);
|
CARDbStartTxPacket(pDevice, PKT_TYPE_802_11_ALL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2670,8 +2546,6 @@ static irqreturn_t device_intr(int irq, void *dev_instance) {
|
|||||||
if (pDevice->dwIsr & ISR_AC0DMA) {
|
if (pDevice->dwIsr & ISR_AC0DMA) {
|
||||||
max_count += device_tx_srv(pDevice, TYPE_AC0DMA);
|
max_count += device_tx_srv(pDevice, TYPE_AC0DMA);
|
||||||
}
|
}
|
||||||
if (pDevice->dwIsr & ISR_SOFTTIMER) {
|
|
||||||
}
|
|
||||||
if (pDevice->dwIsr & ISR_SOFTTIMER1) {
|
if (pDevice->dwIsr & ISR_SOFTTIMER1) {
|
||||||
if (pDevice->eOPMode == OP_MODE_AP) {
|
if (pDevice->eOPMode == OP_MODE_AP) {
|
||||||
if (pDevice->bShortSlotTime)
|
if (pDevice->bShortSlotTime)
|
||||||
@ -3099,16 +2973,6 @@ static int device_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) {
|
|||||||
case SIOCGIWPRIV:
|
case SIOCGIWPRIV:
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO " SIOCGIWPRIV \n");
|
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO " SIOCGIWPRIV \n");
|
||||||
rc = -EOPNOTSUPP;
|
rc = -EOPNOTSUPP;
|
||||||
/*
|
|
||||||
if (wrq->u.data.pointer) {
|
|
||||||
wrq->u.data.length = sizeof(iwctl_private_args) / sizeof(iwctl_private_args[0]);
|
|
||||||
|
|
||||||
if (copy_to_user(wrq->u.data.pointer,
|
|
||||||
(u_char *) iwctl_private_args,
|
|
||||||
sizeof(iwctl_private_args)))
|
|
||||||
rc = -EFAULT;
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
//2008-0409-07, <Add> by Einsn Liu
|
//2008-0409-07, <Add> by Einsn Liu
|
||||||
@ -3290,8 +3154,6 @@ static int __init vt6655_init_module(void)
|
|||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
// ret=pci_module_init(&device_driver);
|
|
||||||
//ret = pcie_port_service_register(&device_driver);
|
|
||||||
ret = pci_register_driver(&device_driver);
|
ret = pci_register_driver(&device_driver);
|
||||||
#ifdef CONFIG_PM
|
#ifdef CONFIG_PM
|
||||||
if (ret >= 0)
|
if (ret >= 0)
|
||||||
|
@ -60,7 +60,6 @@
|
|||||||
/*--------------------- Static Classes ----------------------------*/
|
/*--------------------- Static Classes ----------------------------*/
|
||||||
|
|
||||||
/*--------------------- Static Variables --------------------------*/
|
/*--------------------- Static Variables --------------------------*/
|
||||||
//static int msglevel =MSG_LEVEL_DEBUG;
|
|
||||||
static int msglevel = MSG_LEVEL_INFO;
|
static int msglevel = MSG_LEVEL_INFO;
|
||||||
|
|
||||||
const unsigned char acbyRxRate[MAX_RATE] =
|
const unsigned char acbyRxRate[MAX_RATE] =
|
||||||
@ -327,15 +326,11 @@ device_receive_frame(
|
|||||||
PS802_11Header pMACHeader;
|
PS802_11Header pMACHeader;
|
||||||
bool bRxeapol_key = false;
|
bool bRxeapol_key = false;
|
||||||
|
|
||||||
// DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "---------- device_receive_frame---\n");
|
|
||||||
|
|
||||||
skb = pRDInfo->skb;
|
skb = pRDInfo->skb;
|
||||||
|
|
||||||
//PLICE_DEBUG->
|
//PLICE_DEBUG->
|
||||||
#if 1
|
|
||||||
pci_unmap_single(pDevice->pcid, pRDInfo->skb_dma,
|
pci_unmap_single(pDevice->pcid, pRDInfo->skb_dma,
|
||||||
pDevice->rx_buf_sz, PCI_DMA_FROMDEVICE);
|
pDevice->rx_buf_sz, PCI_DMA_FROMDEVICE);
|
||||||
#endif
|
|
||||||
//PLICE_DEBUG<-
|
//PLICE_DEBUG<-
|
||||||
pwFrameSize = (unsigned short *)(skb->data + 2);
|
pwFrameSize = (unsigned short *)(skb->data + 2);
|
||||||
FrameSize = cpu_to_le16(pCurrRD->m_rd1RD1.wReqCount) - cpu_to_le16(pCurrRD->m_rd0RD0.wResCount);
|
FrameSize = cpu_to_le16(pCurrRD->m_rd1RD1.wReqCount) - cpu_to_le16(pCurrRD->m_rd0RD0.wResCount);
|
||||||
@ -366,7 +361,6 @@ device_receive_frame(
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
//PLICE_DEBUG->
|
//PLICE_DEBUG->
|
||||||
#if 1
|
|
||||||
// update receive statistic counter
|
// update receive statistic counter
|
||||||
STAvUpdateRDStatCounter(&pDevice->scStatistic,
|
STAvUpdateRDStatCounter(&pDevice->scStatistic,
|
||||||
*pbyRsr,
|
*pbyRsr,
|
||||||
@ -375,8 +369,6 @@ device_receive_frame(
|
|||||||
pbyFrame,
|
pbyFrame,
|
||||||
FrameSize);
|
FrameSize);
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
pMACHeader = (PS802_11Header)((unsigned char *)(skb->data) + 8);
|
pMACHeader = (PS802_11Header)((unsigned char *)(skb->data) + 8);
|
||||||
//PLICE_DEBUG<-
|
//PLICE_DEBUG<-
|
||||||
if (pDevice->bMeasureInProgress) {
|
if (pDevice->bMeasureInProgress) {
|
||||||
@ -492,8 +484,6 @@ device_receive_frame(
|
|||||||
pDevice->s802_11Counter.TKIPICVErrors++;
|
pDevice->s802_11Counter.TKIPICVErrors++;
|
||||||
} else if ((pKey != NULL) && (pKey->byCipherSuite == KEY_CTL_CCMP)) {
|
} else if ((pKey != NULL) && (pKey->byCipherSuite == KEY_CTL_CCMP)) {
|
||||||
pDevice->s802_11Counter.CCMPDecryptErrors++;
|
pDevice->s802_11Counter.CCMPDecryptErrors++;
|
||||||
} else if ((pKey != NULL) && (pKey->byCipherSuite == KEY_CTL_WEP)) {
|
|
||||||
// pDevice->s802_11Counter.WEPICVErrorCount.QuadPart++;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
@ -557,13 +547,9 @@ device_receive_frame(
|
|||||||
pRxPacket->byRxRate = s_byGetRateIdx(*pbyRxRate);
|
pRxPacket->byRxRate = s_byGetRateIdx(*pbyRxRate);
|
||||||
pRxPacket->byRxChannel = (*pbyRxSts) >> 2;
|
pRxPacket->byRxChannel = (*pbyRxSts) >> 2;
|
||||||
//PLICE_DEBUG->
|
//PLICE_DEBUG->
|
||||||
//EnQueue(pDevice,pRxPacket);
|
|
||||||
|
|
||||||
#ifdef THREAD
|
#ifdef THREAD
|
||||||
EnQueue(pDevice, pRxPacket);
|
EnQueue(pDevice, pRxPacket);
|
||||||
|
|
||||||
//up(&pDevice->mlme_semaphore);
|
|
||||||
//Enque (pDevice->FirstRecvMngList,pDevice->LastRecvMngList,pMgmt);
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
#ifdef TASK_LET
|
#ifdef TASK_LET
|
||||||
@ -571,12 +557,10 @@ device_receive_frame(
|
|||||||
tasklet_schedule(&pDevice->RxMngWorkItem);
|
tasklet_schedule(&pDevice->RxMngWorkItem);
|
||||||
#else
|
#else
|
||||||
vMgrRxManagePacket((void *)pDevice, pDevice->pMgmt, pRxPacket);
|
vMgrRxManagePacket((void *)pDevice, pDevice->pMgmt, pRxPacket);
|
||||||
//tasklet_schedule(&pDevice->RxMngWorkItem);
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
//PLICE_DEBUG<-
|
//PLICE_DEBUG<-
|
||||||
//vMgrRxManagePacket((void *)pDevice, pDevice->pMgmt, pRxPacket);
|
|
||||||
// hostap Deamon handle 802.11 management
|
// hostap Deamon handle 802.11 management
|
||||||
if (pDevice->bEnableHostapd) {
|
if (pDevice->bEnableHostapd) {
|
||||||
skb->dev = pDevice->apdev;
|
skb->dev = pDevice->apdev;
|
||||||
@ -590,9 +574,8 @@ device_receive_frame(
|
|||||||
netif_rx(skb);
|
netif_rx(skb);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
// Control Frame
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
} else {
|
} else {
|
||||||
if (pMgmt->eCurrMode == WMAC_MODE_ESS_AP) {
|
if (pMgmt->eCurrMode == WMAC_MODE_ESS_AP) {
|
||||||
@ -643,14 +626,9 @@ device_receive_frame(
|
|||||||
// Data frame Handle
|
// Data frame Handle
|
||||||
|
|
||||||
if (pDevice->bEnablePSMode) {
|
if (pDevice->bEnablePSMode) {
|
||||||
if (IS_FC_MOREDATA((skb->data+4))) {
|
if (!IS_FC_MOREDATA((skb->data+4))) {
|
||||||
if (*pbyRsr & RSR_ADDROK) {
|
if (pDevice->pMgmt->bInTIMWake == true)
|
||||||
//PSbSendPSPOLL((PSDevice)pDevice);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (pDevice->pMgmt->bInTIMWake == true) {
|
|
||||||
pDevice->pMgmt->bInTIMWake = false;
|
pDevice->pMgmt->bInTIMWake = false;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -765,16 +743,12 @@ device_receive_frame(
|
|||||||
|
|
||||||
pdwMIC_L = (__le32 *)(skb->data + 4 + FrameSize);
|
pdwMIC_L = (__le32 *)(skb->data + 4 + FrameSize);
|
||||||
pdwMIC_R = (__le32 *)(skb->data + 4 + FrameSize + 4);
|
pdwMIC_R = (__le32 *)(skb->data + 4 + FrameSize + 4);
|
||||||
//DBG_PRN_GRP12(("RxL: %lx, RxR: %lx\n", *pdwMIC_L, *pdwMIC_R));
|
|
||||||
//DBG_PRN_GRP12(("LocalL: %lx, LocalR: %lx\n", dwLocalMIC_L, dwLocalMIC_R));
|
|
||||||
//DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "dwMICKey0= %lx,dwMICKey1= %lx \n", dwMICKey0, dwMICKey1);
|
|
||||||
|
|
||||||
if ((le32_to_cpu(*pdwMIC_L) != dwLocalMIC_L) ||
|
if ((le32_to_cpu(*pdwMIC_L) != dwLocalMIC_L) ||
|
||||||
(le32_to_cpu(*pdwMIC_R) != dwLocalMIC_R) ||
|
(le32_to_cpu(*pdwMIC_R) != dwLocalMIC_R) ||
|
||||||
pDevice->bRxMICFail) {
|
pDevice->bRxMICFail) {
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "MIC comparison is fail!\n");
|
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "MIC comparison is fail!\n");
|
||||||
pDevice->bRxMICFail = false;
|
pDevice->bRxMICFail = false;
|
||||||
//pDevice->s802_11Counter.TKIPLocalMICFailures.QuadPart++;
|
|
||||||
pDevice->s802_11Counter.TKIPLocalMICFailures++;
|
pDevice->s802_11Counter.TKIPLocalMICFailures++;
|
||||||
if (bDeFragRx) {
|
if (bDeFragRx) {
|
||||||
if (!device_alloc_frag_buf(pDevice, &pDevice->sRxDFCB[pDevice->uCurrentDFCBIdx])) {
|
if (!device_alloc_frag_buf(pDevice, &pDevice->sRxDFCB[pDevice->uCurrentDFCBIdx])) {
|
||||||
@ -813,10 +787,8 @@ device_receive_frame(
|
|||||||
if ((pDevice->pMgmt->eCurrMode == WMAC_MODE_ESS_STA) &&
|
if ((pDevice->pMgmt->eCurrMode == WMAC_MODE_ESS_STA) &&
|
||||||
(pDevice->pMgmt->eCurrState == WMAC_STATE_ASSOC) &&
|
(pDevice->pMgmt->eCurrState == WMAC_STATE_ASSOC) &&
|
||||||
(*pbyRsr & (RSR_ADDRBROAD | RSR_ADDRMULTI)) == 0) {
|
(*pbyRsr & (RSR_ADDRBROAD | RSR_ADDRMULTI)) == 0) {
|
||||||
//s802_11_Status.Flags = NDIS_802_11_AUTH_REQUEST_PAIRWISE_ERROR;
|
|
||||||
wpahdr->type = VIAWGET_PTK_MIC_MSG;
|
wpahdr->type = VIAWGET_PTK_MIC_MSG;
|
||||||
} else {
|
} else {
|
||||||
//s802_11_Status.Flags = NDIS_802_11_AUTH_REQUEST_GROUP_ERROR;
|
|
||||||
wpahdr->type = VIAWGET_GTK_MIC_MSG;
|
wpahdr->type = VIAWGET_GTK_MIC_MSG;
|
||||||
}
|
}
|
||||||
wpahdr->resp_ie_len = 0;
|
wpahdr->resp_ie_len = 0;
|
||||||
@ -863,10 +835,8 @@ device_receive_frame(
|
|||||||
!((dwRxTSC47_16 == 0) && (dwLocalTSC47_16 == 0xFFFFFFFF))) {
|
!((dwRxTSC47_16 == 0) && (dwLocalTSC47_16 == 0xFFFFFFFF))) {
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "TSC is illegal~~!\n ");
|
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "TSC is illegal~~!\n ");
|
||||||
if (pKey->byCipherSuite == KEY_CTL_TKIP)
|
if (pKey->byCipherSuite == KEY_CTL_TKIP)
|
||||||
//pDevice->s802_11Counter.TKIPReplays.QuadPart++;
|
|
||||||
pDevice->s802_11Counter.TKIPReplays++;
|
pDevice->s802_11Counter.TKIPReplays++;
|
||||||
else
|
else
|
||||||
//pDevice->s802_11Counter.CCMPReplays.QuadPart++;
|
|
||||||
pDevice->s802_11Counter.CCMPReplays++;
|
pDevice->s802_11Counter.CCMPReplays++;
|
||||||
|
|
||||||
if (bDeFragRx) {
|
if (bDeFragRx) {
|
||||||
@ -881,10 +851,6 @@ device_receive_frame(
|
|||||||
}
|
}
|
||||||
} // ----- End of Reply Counter Check --------------------------
|
} // ----- End of Reply Counter Check --------------------------
|
||||||
|
|
||||||
if ((pKey != NULL) && (bIsWEP)) {
|
|
||||||
// pDevice->s802_11Counter.DecryptSuccessCount.QuadPart++;
|
|
||||||
}
|
|
||||||
|
|
||||||
s_vProcessRxMACHeader(pDevice, (unsigned char *)(skb->data+4), FrameSize, bIsWEP, bExtIV, &cbHeaderOffset);
|
s_vProcessRxMACHeader(pDevice, (unsigned char *)(skb->data+4), FrameSize, bIsWEP, bExtIV, &cbHeaderOffset);
|
||||||
FrameSize -= cbHeaderOffset;
|
FrameSize -= cbHeaderOffset;
|
||||||
cbHeaderOffset += 4; // 4 is Rcv buffer header
|
cbHeaderOffset += 4; // 4 is Rcv buffer header
|
||||||
@ -917,22 +883,6 @@ device_receive_frame(
|
|||||||
skb->protocol = eth_type_trans(skb, skb->dev);
|
skb->protocol = eth_type_trans(skb, skb->dev);
|
||||||
|
|
||||||
//drop frame not met IEEE 802.3
|
//drop frame not met IEEE 802.3
|
||||||
/*
|
|
||||||
if (pDevice->flags & DEVICE_FLAGS_VAL_PKT_LEN) {
|
|
||||||
if ((skb->protocol==htons(ETH_P_802_3)) &&
|
|
||||||
(skb->len!=htons(skb->mac.ethernet->h_proto))) {
|
|
||||||
pStats->rx_length_errors++;
|
|
||||||
pStats->rx_dropped++;
|
|
||||||
if (bDeFragRx) {
|
|
||||||
if (!device_alloc_frag_buf(pDevice, &pDevice->sRxDFCB[pDevice->uCurrentDFCBIdx])) {
|
|
||||||
DBG_PRT(MSG_LEVEL_ERR,KERN_ERR "%s: can not alloc more frag bufs\n",
|
|
||||||
pDevice->dev->name);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
skb->ip_summed = CHECKSUM_NONE;
|
skb->ip_summed = CHECKSUM_NONE;
|
||||||
pStats->rx_bytes += skb->len;
|
pStats->rx_bytes += skb->len;
|
||||||
@ -1121,19 +1071,11 @@ static bool s_bHandleRxEncryption(
|
|||||||
|
|
||||||
if (pKey == NULL) {
|
if (pKey == NULL) {
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "pKey == NULL\n");
|
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "pKey == NULL\n");
|
||||||
if (byDecMode == KEY_CTL_WEP) {
|
|
||||||
// pDevice->s802_11Counter.WEPUndecryptableCount.QuadPart++;
|
|
||||||
} else if (pDevice->bLinkPass) {
|
|
||||||
// pDevice->s802_11Counter.DecryptFailureCount.QuadPart++;
|
|
||||||
}
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (byDecMode != pKey->byCipherSuite) {
|
if (byDecMode != pKey->byCipherSuite) {
|
||||||
if (byDecMode == KEY_CTL_WEP) {
|
|
||||||
// pDevice->s802_11Counter.WEPUndecryptableCount.QuadPart++;
|
|
||||||
} else if (pDevice->bLinkPass) {
|
|
||||||
// pDevice->s802_11Counter.DecryptFailureCount.QuadPart++;
|
|
||||||
}
|
|
||||||
*pKeyOut = NULL;
|
*pKeyOut = NULL;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -1231,14 +1173,8 @@ static bool s_bHostWepRxEncryption(
|
|||||||
|
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "AES:%d %d %d\n", pDevice->pMgmt->byCSSPK, pDevice->pMgmt->byCSSGK, byDecMode);
|
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "AES:%d %d %d\n", pDevice->pMgmt->byCSSPK, pDevice->pMgmt->byCSSGK, byDecMode);
|
||||||
|
|
||||||
if (byDecMode != pKey->byCipherSuite) {
|
if (byDecMode != pKey->byCipherSuite)
|
||||||
if (byDecMode == KEY_CTL_WEP) {
|
|
||||||
// pDevice->s802_11Counter.WEPUndecryptableCount.QuadPart++;
|
|
||||||
} else if (pDevice->bLinkPass) {
|
|
||||||
// pDevice->s802_11Counter.DecryptFailureCount.QuadPart++;
|
|
||||||
}
|
|
||||||
return false;
|
return false;
|
||||||
}
|
|
||||||
|
|
||||||
if (byDecMode == KEY_CTL_WEP) {
|
if (byDecMode == KEY_CTL_WEP) {
|
||||||
// handle WEP
|
// handle WEP
|
||||||
|
@ -48,7 +48,6 @@
|
|||||||
/*--------------------- Static Classes ----------------------------*/
|
/*--------------------- Static Classes ----------------------------*/
|
||||||
|
|
||||||
/*--------------------- Static Variables --------------------------*/
|
/*--------------------- Static Variables --------------------------*/
|
||||||
//static int msglevel =MSG_LEVEL_DEBUG;
|
|
||||||
static int msglevel = MSG_LEVEL_INFO;
|
static int msglevel = MSG_LEVEL_INFO;
|
||||||
|
|
||||||
/*--------------------- Static Functions --------------------------*/
|
/*--------------------- Static Functions --------------------------*/
|
||||||
@ -241,7 +240,6 @@ static int hostap_add_sta(PSDevice pDevice,
|
|||||||
pMgmt->sNodeDBTable[uNodeIndex].eNodeState = NODE_ASSOC;
|
pMgmt->sNodeDBTable[uNodeIndex].eNodeState = NODE_ASSOC;
|
||||||
pMgmt->sNodeDBTable[uNodeIndex].wCapInfo = param->u.add_sta.capability;
|
pMgmt->sNodeDBTable[uNodeIndex].wCapInfo = param->u.add_sta.capability;
|
||||||
// TODO listenInterval
|
// TODO listenInterval
|
||||||
// pMgmt->sNodeDBTable[uNodeIndex].wListenInterval = 1;
|
|
||||||
pMgmt->sNodeDBTable[uNodeIndex].bPSEnable = false;
|
pMgmt->sNodeDBTable[uNodeIndex].bPSEnable = false;
|
||||||
pMgmt->sNodeDBTable[uNodeIndex].bySuppRate = param->u.add_sta.tx_supp_rates;
|
pMgmt->sNodeDBTable[uNodeIndex].bySuppRate = param->u.add_sta.tx_supp_rates;
|
||||||
|
|
||||||
@ -296,8 +294,6 @@ static int hostap_get_info_sta(PSDevice pDevice,
|
|||||||
if (BSSDBbIsSTAInNodeDB(pMgmt, param->sta_addr, &uNodeIndex)) {
|
if (BSSDBbIsSTAInNodeDB(pMgmt, param->sta_addr, &uNodeIndex)) {
|
||||||
param->u.get_info_sta.inactive_sec =
|
param->u.get_info_sta.inactive_sec =
|
||||||
(jiffies - pMgmt->sNodeDBTable[uNodeIndex].ulLastRxJiffer) / HZ;
|
(jiffies - pMgmt->sNodeDBTable[uNodeIndex].ulLastRxJiffer) / HZ;
|
||||||
|
|
||||||
//param->u.get_info_sta.txexc = pMgmt->sNodeDBTable[uNodeIndex].uTxAttempts;
|
|
||||||
} else {
|
} else {
|
||||||
return -ENOENT;
|
return -ENOENT;
|
||||||
}
|
}
|
||||||
@ -305,37 +301,6 @@ static int hostap_get_info_sta(PSDevice pDevice,
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* Description:
|
|
||||||
* reset txexec
|
|
||||||
*
|
|
||||||
* Parameters:
|
|
||||||
* In:
|
|
||||||
* pDevice -
|
|
||||||
* param -
|
|
||||||
* Out:
|
|
||||||
* true, false
|
|
||||||
*
|
|
||||||
* Return Value:
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
/*
|
|
||||||
static int hostap_reset_txexc_sta(PSDevice pDevice,
|
|
||||||
struct viawget_hostapd_param *param)
|
|
||||||
{
|
|
||||||
PSMgmtObject pMgmt = pDevice->pMgmt;
|
|
||||||
unsigned int uNodeIndex;
|
|
||||||
|
|
||||||
if (BSSDBbIsSTAInNodeDB(pMgmt, param->sta_addr, &uNodeIndex)) {
|
|
||||||
pMgmt->sNodeDBTable[uNodeIndex].uTxAttempts = 0;
|
|
||||||
} else {
|
|
||||||
return -ENOENT;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Description:
|
* Description:
|
||||||
* set station flag
|
* set station flag
|
||||||
@ -463,12 +428,6 @@ static int hostap_set_encryption(PSDevice pDevice,
|
|||||||
unsigned short wKeyCtl = 0;
|
unsigned short wKeyCtl = 0;
|
||||||
|
|
||||||
param->u.crypt.err = 0;
|
param->u.crypt.err = 0;
|
||||||
/*
|
|
||||||
if (param_len !=
|
|
||||||
(int) ((char *) param->u.crypt.key - (char *) param) +
|
|
||||||
param->u.crypt.key_len)
|
|
||||||
return -EINVAL;
|
|
||||||
*/
|
|
||||||
|
|
||||||
if (param->u.crypt.alg > WPA_ALG_CCMP)
|
if (param->u.crypt.alg > WPA_ALG_CCMP)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
@ -780,12 +739,6 @@ int vt6655_hostap_ioctl(PSDevice pDevice, struct iw_point *p)
|
|||||||
ret = hostap_get_info_sta(pDevice, param);
|
ret = hostap_get_info_sta(pDevice, param);
|
||||||
ap_ioctl = 1;
|
ap_ioctl = 1;
|
||||||
break;
|
break;
|
||||||
/*
|
|
||||||
case VIAWGET_HOSTAPD_RESET_TXEXC_STA:
|
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "VIAWGET_HOSTAPD_RESET_TXEXC_STA \n");
|
|
||||||
ret = hostap_reset_txexc_sta(pDevice, param);
|
|
||||||
break;
|
|
||||||
*/
|
|
||||||
case VIAWGET_HOSTAPD_SET_FLAGS_STA:
|
case VIAWGET_HOSTAPD_SET_FLAGS_STA:
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "VIAWGET_HOSTAPD_SET_FLAGS_STA \n");
|
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "VIAWGET_HOSTAPD_SET_FLAGS_STA \n");
|
||||||
ret = hostap_set_flags_sta(pDevice, param);
|
ret = hostap_set_flags_sta(pDevice, param);
|
||||||
|
@ -319,7 +319,6 @@ int private_ioctl(PSDevice pDevice, struct ifreq *rq)
|
|||||||
pList->sBSSIDList[ii].uChannel = pBSS->uChannel;
|
pList->sBSSIDList[ii].uChannel = pBSS->uChannel;
|
||||||
pList->sBSSIDList[ii].wBeaconInterval = pBSS->wBeaconInterval;
|
pList->sBSSIDList[ii].wBeaconInterval = pBSS->wBeaconInterval;
|
||||||
pList->sBSSIDList[ii].wCapInfo = pBSS->wCapInfo;
|
pList->sBSSIDList[ii].wCapInfo = pBSS->wCapInfo;
|
||||||
/* pList->sBSSIDList[ii].uRSSI = pBSS->uRSSI; */
|
|
||||||
RFvRSSITodBm(pDevice, (unsigned char)(pBSS->uRSSI), &ldBm);
|
RFvRSSITodBm(pDevice, (unsigned char)(pBSS->uRSSI), &ldBm);
|
||||||
pList->sBSSIDList[ii].uRSSI = (unsigned int)ldBm;
|
pList->sBSSIDList[ii].uRSSI = (unsigned int)ldBm;
|
||||||
memcpy(pList->sBSSIDList[ii].abyBSSID, pBSS->abyBSSID, WLAN_BSSID_LEN);
|
memcpy(pList->sBSSIDList[ii].abyBSSID, pBSS->abyBSSID, WLAN_BSSID_LEN);
|
||||||
|
@ -41,13 +41,4 @@
|
|||||||
|
|
||||||
int private_ioctl(PSDevice pDevice, struct ifreq *rq);
|
int private_ioctl(PSDevice pDevice, struct ifreq *rq);
|
||||||
|
|
||||||
/*
|
|
||||||
void vConfigWEPKey(
|
|
||||||
PSDevice pDevice,
|
|
||||||
unsigned long dwKeyIndex,
|
|
||||||
unsigned char *pbyKey,
|
|
||||||
unsigned long uKeyLength
|
|
||||||
);
|
|
||||||
*/
|
|
||||||
|
|
||||||
#endif // __IOCTL_H__
|
#endif // __IOCTL_H__
|
||||||
|
@ -34,13 +34,6 @@
|
|||||||
#define WPA_IE_LEN 64
|
#define WPA_IE_LEN 64
|
||||||
|
|
||||||
//WPA related
|
//WPA related
|
||||||
/*
|
|
||||||
typedef enum { WPA_ALG_NONE, WPA_ALG_WEP, WPA_ALG_TKIP, WPA_ALG_CCMP } wpa_alg;
|
|
||||||
typedef enum { CIPHER_NONE, CIPHER_WEP40, CIPHER_TKIP, CIPHER_CCMP,
|
|
||||||
CIPHER_WEP104 } wpa_cipher;
|
|
||||||
typedef enum { KEY_MGMT_802_1X, KEY_MGMT_PSK, KEY_MGMT_NONE,
|
|
||||||
KEY_MGMT_802_1X_NO_WPA, KEY_MGMT_WPA_NONE } wpa_key_mgmt;
|
|
||||||
*/
|
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
VIAWGET_SET_WPA = 1,
|
VIAWGET_SET_WPA = 1,
|
||||||
|
@ -66,7 +66,6 @@ static const long frequency_list[] = {
|
|||||||
|
|
||||||
/*--------------------- Static Classes ----------------------------*/
|
/*--------------------- Static Classes ----------------------------*/
|
||||||
|
|
||||||
//static int msglevel =MSG_LEVEL_DEBUG;
|
|
||||||
static int msglevel = MSG_LEVEL_INFO;
|
static int msglevel = MSG_LEVEL_INFO;
|
||||||
|
|
||||||
/*--------------------- Static Variables --------------------------*/
|
/*--------------------- Static Variables --------------------------*/
|
||||||
@ -89,7 +88,6 @@ struct iw_statistics *iwctl_get_wireless_stats(struct net_device *dev)
|
|||||||
#endif
|
#endif
|
||||||
RFvRSSITodBm(pDevice, (unsigned char)(pDevice->uCurrRSSI), &ldBm);
|
RFvRSSITodBm(pDevice, (unsigned char)(pDevice->uCurrRSSI), &ldBm);
|
||||||
pDevice->wstats.qual.level = ldBm;
|
pDevice->wstats.qual.level = ldBm;
|
||||||
//pDevice->wstats.qual.level = 0x100 - pDevice->uCurrRSSI;
|
|
||||||
pDevice->wstats.qual.noise = 0;
|
pDevice->wstats.qual.noise = 0;
|
||||||
pDevice->wstats.qual.updated = 1;
|
pDevice->wstats.qual.updated = 1;
|
||||||
pDevice->wstats.discard.nwid = 0;
|
pDevice->wstats.discard.nwid = 0;
|
||||||
@ -277,7 +275,6 @@ int iwctl_giwscan(struct net_device *dev,
|
|||||||
}
|
}
|
||||||
iwe.u.qual.updated = 7;
|
iwe.u.qual.updated = 7;
|
||||||
|
|
||||||
// iwe.u.qual.qual = 0;
|
|
||||||
current_ev = iwe_stream_add_event(info, current_ev, end_buf, &iwe, IW_EV_QUAL_LEN);
|
current_ev = iwe_stream_add_event(info, current_ev, end_buf, &iwe, IW_EV_QUAL_LEN);
|
||||||
|
|
||||||
memset(&iwe, 0, sizeof(iwe));
|
memset(&iwe, 0, sizeof(iwe));
|
||||||
@ -640,7 +637,6 @@ int iwctl_siwap(struct net_device *dev,
|
|||||||
if (pMgmt->eScanState == WMAC_IS_SCANNING) {
|
if (pMgmt->eScanState == WMAC_IS_SCANNING) {
|
||||||
// In scanning..
|
// In scanning..
|
||||||
printk("SIOCSIWAP(??)-->In scanning...\n");
|
printk("SIOCSIWAP(??)-->In scanning...\n");
|
||||||
// return -EAGAIN;
|
|
||||||
}
|
}
|
||||||
if (wrq->sa_family != ARPHRD_ETHER)
|
if (wrq->sa_family != ARPHRD_ETHER)
|
||||||
rc = -EINVAL;
|
rc = -EINVAL;
|
||||||
@ -778,7 +774,6 @@ int iwctl_siwessid(struct net_device *dev,
|
|||||||
if (pMgmt->eScanState == WMAC_IS_SCANNING) {
|
if (pMgmt->eScanState == WMAC_IS_SCANNING) {
|
||||||
// In scanning..
|
// In scanning..
|
||||||
printk("SIOCSIWESSID(??)-->In scanning...\n");
|
printk("SIOCSIWESSID(??)-->In scanning...\n");
|
||||||
// return -EAGAIN;
|
|
||||||
}
|
}
|
||||||
// Check if we asked for `any'
|
// Check if we asked for `any'
|
||||||
if (wrq->flags == 0) {
|
if (wrq->flags == 0) {
|
||||||
@ -889,7 +884,6 @@ int iwctl_giwessid(struct net_device *dev,
|
|||||||
|
|
||||||
// Get the current SSID
|
// Get the current SSID
|
||||||
pItemSSID = (PWLAN_IE_SSID)pMgmt->abyCurrSSID;
|
pItemSSID = (PWLAN_IE_SSID)pMgmt->abyCurrSSID;
|
||||||
//pItemSSID = (PWLAN_IE_SSID)pMgmt->abyDesireSSID;
|
|
||||||
memcpy(extra, pItemSSID->abySSID , pItemSSID->len);
|
memcpy(extra, pItemSSID->abySSID , pItemSSID->len);
|
||||||
extra[pItemSSID->len] = '\0';
|
extra[pItemSSID->len] = '\0';
|
||||||
wrq->length = pItemSSID->len + 1;
|
wrq->length = pItemSSID->len + 1;
|
||||||
@ -1016,21 +1010,7 @@ int iwctl_giwrate(struct net_device *dev,
|
|||||||
brate = abySupportedRates[TxRate_iwconfig];
|
brate = abySupportedRates[TxRate_iwconfig];
|
||||||
}
|
}
|
||||||
} else brate = 0;
|
} else brate = 0;
|
||||||
//2007-0118-05,<Mark> by EinsnLiu
|
|
||||||
//Mark the unnecessary sentences.
|
|
||||||
/*
|
|
||||||
if (pMgmt->eCurrMode == WMAC_MODE_ESS_AP) {
|
|
||||||
if (pDevice->byBBType == BB_TYPE_11B)
|
|
||||||
brate = 0x16;
|
|
||||||
if (pDevice->byBBType == BB_TYPE_11G)
|
|
||||||
brate = 0x6C;
|
|
||||||
if (pDevice->byBBType == BB_TYPE_11A)
|
|
||||||
brate = 0x6C;
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
// if (pDevice->uConnectionRate == 13)
|
|
||||||
// brate = abySupportedRates[pDevice->wCurrentRate];
|
|
||||||
wrq->value = brate * 500000;
|
wrq->value = brate * 500000;
|
||||||
// If more than one rate, set auto
|
// If more than one rate, set auto
|
||||||
if (pDevice->bFixRate == true)
|
if (pDevice->bFixRate == true)
|
||||||
@ -1319,82 +1299,6 @@ int iwctl_siwencode(struct net_device *dev,
|
|||||||
}
|
}
|
||||||
//End Modify,Einsn
|
//End Modify,Einsn
|
||||||
|
|
||||||
/*
|
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO " SIOCSIWENCODE \n");
|
|
||||||
|
|
||||||
// Check the size of the key
|
|
||||||
if (wrq->length > WLAN_WEP232_KEYLEN) {
|
|
||||||
rc = -EINVAL;
|
|
||||||
return rc;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (dwKeyIndex > WLAN_WEP_NKEYS) {
|
|
||||||
rc = -EINVAL;
|
|
||||||
return rc;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (dwKeyIndex > 0)
|
|
||||||
dwKeyIndex--;
|
|
||||||
|
|
||||||
// Send the key to the card
|
|
||||||
if (wrq->length > 0) {
|
|
||||||
if (wrq->length == WLAN_WEP232_KEYLEN) {
|
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Set 232 bit wep key\n");
|
|
||||||
} else if (wrq->length == WLAN_WEP104_KEYLEN) {
|
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Set 104 bit wep key\n");
|
|
||||||
} else if (wrq->length == WLAN_WEP40_KEYLEN) {
|
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Set 40 bit wep key, index= %d\n", (int)dwKeyIndex);
|
|
||||||
}
|
|
||||||
memset(pDevice->abyKey, 0, WLAN_WEP232_KEYLEN);
|
|
||||||
memcpy(pDevice->abyKey, extra, wrq->length);
|
|
||||||
|
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "abyKey: ");
|
|
||||||
for (ii = 0; ii < wrq->length; ii++) {
|
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "%02x ", pDevice->abyKey[ii]);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (pDevice->flags & DEVICE_FLAGS_OPENED) {
|
|
||||||
spin_lock_irq(&pDevice->lock);
|
|
||||||
KeybSetDefaultKey(&(pDevice->sKey),
|
|
||||||
(unsigned long)(pDevice->byKeyIndex | (1 << 31)),
|
|
||||||
pDevice->uKeyLength,
|
|
||||||
NULL,
|
|
||||||
pDevice->abyKey,
|
|
||||||
KEY_CTL_WEP,
|
|
||||||
pDevice->PortOffset,
|
|
||||||
pDevice->byLocalID
|
|
||||||
);
|
|
||||||
spin_unlock_irq(&pDevice->lock);
|
|
||||||
}
|
|
||||||
pDevice->byKeyIndex = (unsigned char)dwKeyIndex;
|
|
||||||
pDevice->uKeyLength = wrq->length;
|
|
||||||
pDevice->bTransmitKey = true;
|
|
||||||
pDevice->bEncryptionEnable = true;
|
|
||||||
pDevice->eEncryptionStatus = Ndis802_11Encryption1Enabled;
|
|
||||||
|
|
||||||
// Do we want to just set the transmit key index ?
|
|
||||||
if (index < 4) {
|
|
||||||
pDevice->byKeyIndex = index;
|
|
||||||
} else if (!(wrq->flags & IW_ENCODE_MODE)) {
|
|
||||||
rc = -EINVAL;
|
|
||||||
return rc;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Read the flags
|
|
||||||
if (wrq->flags & IW_ENCODE_DISABLED) {
|
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Disable WEP function\n");
|
|
||||||
pMgmt->bShareKeyAlgorithm = false;
|
|
||||||
pDevice->bEncryptionEnable = false;
|
|
||||||
pDevice->eEncryptionStatus = Ndis802_11EncryptionDisabled;
|
|
||||||
if (pDevice->flags & DEVICE_FLAGS_OPENED) {
|
|
||||||
spin_lock_irq(&pDevice->lock);
|
|
||||||
for (uu=0; uu<MAX_KEY_TABLE; uu++)
|
|
||||||
MACvDisableKeyEntry(pDevice->PortOffset, uu);
|
|
||||||
spin_unlock_irq(&pDevice->lock);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
if (wrq->flags & IW_ENCODE_RESTRICTED) {
|
if (wrq->flags & IW_ENCODE_RESTRICTED) {
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Enable WEP & ShareKey System\n");
|
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Enable WEP & ShareKey System\n");
|
||||||
pMgmt->bShareKeyAlgorithm = true;
|
pMgmt->bShareKeyAlgorithm = true;
|
||||||
@ -1406,77 +1310,6 @@ int iwctl_siwencode(struct net_device *dev,
|
|||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* Wireless Handler : get encode mode
|
|
||||||
*/
|
|
||||||
/*
|
|
||||||
int iwctl_giwencode(struct net_device *dev,
|
|
||||||
struct iw_request_info *info,
|
|
||||||
struct iw_point *wrq,
|
|
||||||
char *extra) {
|
|
||||||
PSDevice pDevice = (PSDevice)netdev_priv(dev);
|
|
||||||
PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
|
|
||||||
int rc = 0;
|
|
||||||
char abyKey[WLAN_WEP232_KEYLEN];
|
|
||||||
unsigned int index = (unsigned int)(wrq->flags & IW_ENCODE_INDEX);
|
|
||||||
PSKeyItem pKey = NULL;
|
|
||||||
|
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO " SIOCGIWENCODE\n");
|
|
||||||
//2007-0207-06,<Add> by EinsnLiu
|
|
||||||
//the key index in iwconfig is 1-4 when our driver is 0-3
|
|
||||||
//so it can't be used directly.
|
|
||||||
//if the index is 0,we should used the index set by driver.
|
|
||||||
if (index > WLAN_WEP_NKEYS) {
|
|
||||||
rc = -EINVAL;
|
|
||||||
return rc;
|
|
||||||
}
|
|
||||||
if (index<1) {//set default key
|
|
||||||
if (pDevice->byKeyIndex<WLAN_WEP_NKEYS) {
|
|
||||||
index=pDevice->byKeyIndex;
|
|
||||||
}
|
|
||||||
else index=0;
|
|
||||||
} else index--;
|
|
||||||
//End Add,Einsn
|
|
||||||
|
|
||||||
memset(abyKey, 0, sizeof(abyKey));
|
|
||||||
// Check encryption mode
|
|
||||||
wrq->flags = IW_ENCODE_NOKEY;
|
|
||||||
// Is WEP enabled ???
|
|
||||||
if (pDevice->bEncryptionEnable)
|
|
||||||
wrq->flags |= IW_ENCODE_ENABLED;
|
|
||||||
else
|
|
||||||
wrq->flags |= IW_ENCODE_DISABLED;
|
|
||||||
|
|
||||||
if (pMgmt->bShareKeyAlgorithm)
|
|
||||||
wrq->flags |= IW_ENCODE_RESTRICTED;
|
|
||||||
else
|
|
||||||
wrq->flags |= IW_ENCODE_OPEN;
|
|
||||||
|
|
||||||
if (KeybGetKey(&(pDevice->sKey), pDevice->abyBroadcastAddr, (unsigned char)index , &pKey)) {
|
|
||||||
wrq->length = pKey->uKeyLength;
|
|
||||||
memcpy(abyKey, pKey->abyKey, pKey->uKeyLength);
|
|
||||||
//2007-0207-06,<Modify> by EinsnLiu
|
|
||||||
//only get key success need to copy data
|
|
||||||
//index should +1.
|
|
||||||
//there is not necessary to return -EINVAL when get key failed
|
|
||||||
//if return -EINVAL,the encryption item can't be display by the command "iwconfig".
|
|
||||||
wrq->flags |= index+1;
|
|
||||||
memcpy(extra, abyKey, WLAN_WEP232_KEYLEN);
|
|
||||||
}
|
|
||||||
|
|
||||||
//else {
|
|
||||||
// rc = -EINVAL;
|
|
||||||
// return rc;
|
|
||||||
// }
|
|
||||||
|
|
||||||
//End Modify,Einsn
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
//2008-0409-06, <Add> by Einsn Liu
|
|
||||||
|
|
||||||
int iwctl_giwencode(struct net_device *dev,
|
int iwctl_giwencode(struct net_device *dev,
|
||||||
struct iw_request_info *info,
|
struct iw_request_info *info,
|
||||||
struct iw_point *wrq,
|
struct iw_point *wrq,
|
||||||
@ -1659,13 +1492,12 @@ int iwctl_siwauth(struct net_device *dev,
|
|||||||
wpa_version = wrq->value;
|
wpa_version = wrq->value;
|
||||||
if (wrq->value == IW_AUTH_WPA_VERSION_DISABLED) {
|
if (wrq->value == IW_AUTH_WPA_VERSION_DISABLED) {
|
||||||
PRINT_K("iwctl_siwauth:set WPADEV to disable at 1??????\n");
|
PRINT_K("iwctl_siwauth:set WPADEV to disable at 1??????\n");
|
||||||
//pDevice->bWPADevEnable = false;
|
|
||||||
} else if (wrq->value == IW_AUTH_WPA_VERSION_WPA) {
|
} else if (wrq->value == IW_AUTH_WPA_VERSION_WPA) {
|
||||||
PRINT_K("iwctl_siwauth:set WPADEV to WPA1******\n");
|
PRINT_K("iwctl_siwauth:set WPADEV to WPA1******\n");
|
||||||
} else {
|
} else {
|
||||||
PRINT_K("iwctl_siwauth:set WPADEV to WPA2******\n");
|
PRINT_K("iwctl_siwauth:set WPADEV to WPA2******\n");
|
||||||
}
|
}
|
||||||
//pDevice->bWPASuppWextEnabled =true;
|
|
||||||
break;
|
break;
|
||||||
case IW_AUTH_CIPHER_PAIRWISE:
|
case IW_AUTH_CIPHER_PAIRWISE:
|
||||||
pairwise = wrq->value;
|
pairwise = wrq->value;
|
||||||
@ -1718,7 +1550,6 @@ int iwctl_siwauth(struct net_device *dev,
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case IW_AUTH_WPA_ENABLED:
|
case IW_AUTH_WPA_ENABLED:
|
||||||
//pDevice->bWPADevEnable = !! wrq->value;
|
|
||||||
break;
|
break;
|
||||||
case IW_AUTH_RX_UNENCRYPTED_EAPOL:
|
case IW_AUTH_RX_UNENCRYPTED_EAPOL:
|
||||||
break;
|
break;
|
||||||
@ -1733,7 +1564,6 @@ int iwctl_siwauth(struct net_device *dev,
|
|||||||
pDevice->eEncryptionStatus = Ndis802_11EncryptionDisabled;
|
pDevice->eEncryptionStatus = Ndis802_11EncryptionDisabled;
|
||||||
pMgmt->bShareKeyAlgorithm = false;
|
pMgmt->bShareKeyAlgorithm = false;
|
||||||
pMgmt->eAuthenMode = false;
|
pMgmt->eAuthenMode = false;
|
||||||
//pDevice->bWPADevEnable = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
@ -1741,15 +1571,7 @@ int iwctl_siwauth(struct net_device *dev,
|
|||||||
ret = -EOPNOTSUPP;
|
ret = -EOPNOTSUPP;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "wpa_version = %d\n",wpa_version);
|
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "pairwise = %d\n",pairwise);
|
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "pDevice->eEncryptionStatus = %d\n",pDevice->eEncryptionStatus);
|
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "pMgmt->eAuthenMode = %d\n",pMgmt->eAuthenMode);
|
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "pMgmt->bShareKeyAlgorithm = %s\n",pMgmt->bShareKeyAlgorithm?"true":"false");
|
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "pDevice->bEncryptionEnable = %s\n",pDevice->bEncryptionEnable?"true":"false");
|
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "pDevice->bWPADevEnable = %s\n",pDevice->bWPADevEnable?"true":"false");
|
|
||||||
*/
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1833,8 +1655,7 @@ int iwctl_siwencodeext(struct net_device *dev,
|
|||||||
u8 seq[IW_ENCODE_SEQ_MAX_SIZE];
|
u8 seq[IW_ENCODE_SEQ_MAX_SIZE];
|
||||||
u8 key[64];
|
u8 key[64];
|
||||||
size_t seq_len = 0, key_len = 0;
|
size_t seq_len = 0, key_len = 0;
|
||||||
//
|
|
||||||
// int ii;
|
|
||||||
u8 key_array[64];
|
u8 key_array[64];
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
|
||||||
@ -1949,7 +1770,6 @@ int iwctl_siwmlme(struct net_device *dev,
|
|||||||
PSDevice pDevice = (PSDevice)netdev_priv(dev);
|
PSDevice pDevice = (PSDevice)netdev_priv(dev);
|
||||||
PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
|
PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
|
||||||
struct iw_mlme *mlme = (struct iw_mlme *)extra;
|
struct iw_mlme *mlme = (struct iw_mlme *)extra;
|
||||||
//u16 reason = cpu_to_le16(mlme->reason_code);
|
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
|
||||||
if (memcmp(pMgmt->abyCurrBSSID, mlme->addr.sa_data, ETH_ALEN)) {
|
if (memcmp(pMgmt->abyCurrBSSID, mlme->addr.sa_data, ETH_ALEN)) {
|
||||||
@ -1984,69 +1804,6 @@ int iwctl_siwmlme(struct net_device *dev,
|
|||||||
* Structures to export the Wireless Handlers
|
* Structures to export the Wireless Handlers
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
static const iw_handler iwctl_handler[] =
|
|
||||||
{
|
|
||||||
(iw_handler) iwctl_commit, // SIOCSIWCOMMIT
|
|
||||||
(iw_handler) iwctl_giwname, // SIOCGIWNAME
|
|
||||||
(iw_handler) NULL, // SIOCSIWNWID
|
|
||||||
(iw_handler) NULL, // SIOCGIWNWID
|
|
||||||
(iw_handler) iwctl_siwfreq, // SIOCSIWFREQ
|
|
||||||
(iw_handler) iwctl_giwfreq, // SIOCGIWFREQ
|
|
||||||
(iw_handler) iwctl_siwmode, // SIOCSIWMODE
|
|
||||||
(iw_handler) iwctl_giwmode, // SIOCGIWMODE
|
|
||||||
(iw_handler) NULL, // SIOCSIWSENS
|
|
||||||
(iw_handler) iwctl_giwsens, // SIOCGIWSENS
|
|
||||||
(iw_handler) NULL, // SIOCSIWRANGE
|
|
||||||
(iw_handler) iwctl_giwrange, // SIOCGIWRANGE
|
|
||||||
(iw_handler) NULL, // SIOCSIWPRIV
|
|
||||||
(iw_handler) NULL, // SIOCGIWPRIV
|
|
||||||
(iw_handler) NULL, // SIOCSIWSTATS
|
|
||||||
(iw_handler) NULL, // SIOCGIWSTATS
|
|
||||||
(iw_handler) NULL, // SIOCSIWSPY
|
|
||||||
(iw_handler) NULL, // SIOCGIWSPY
|
|
||||||
(iw_handler) NULL, // -- hole --
|
|
||||||
(iw_handler) NULL, // -- hole --
|
|
||||||
(iw_handler) iwctl_siwap, // SIOCSIWAP
|
|
||||||
(iw_handler) iwctl_giwap, // SIOCGIWAP
|
|
||||||
(iw_handler) NULL, // -- hole -- 0x16
|
|
||||||
(iw_handler) iwctl_giwaplist, // SIOCGIWAPLIST
|
|
||||||
(iw_handler) iwctl_siwscan, // SIOCSIWSCAN
|
|
||||||
(iw_handler) iwctl_giwscan, // SIOCGIWSCAN
|
|
||||||
(iw_handler) iwctl_siwessid, // SIOCSIWESSID
|
|
||||||
(iw_handler) iwctl_giwessid, // SIOCGIWESSID
|
|
||||||
(iw_handler) NULL, // SIOCSIWNICKN
|
|
||||||
(iw_handler) NULL, // SIOCGIWNICKN
|
|
||||||
(iw_handler) NULL, // -- hole --
|
|
||||||
(iw_handler) NULL, // -- hole --
|
|
||||||
(iw_handler) iwctl_siwrate, // SIOCSIWRATE 0x20
|
|
||||||
(iw_handler) iwctl_giwrate, // SIOCGIWRATE
|
|
||||||
(iw_handler) iwctl_siwrts, // SIOCSIWRTS
|
|
||||||
(iw_handler) iwctl_giwrts, // SIOCGIWRTS
|
|
||||||
(iw_handler) iwctl_siwfrag, // SIOCSIWFRAG
|
|
||||||
(iw_handler) iwctl_giwfrag, // SIOCGIWFRAG
|
|
||||||
(iw_handler) NULL, // SIOCSIWTXPOW
|
|
||||||
(iw_handler) NULL, // SIOCGIWTXPOW
|
|
||||||
(iw_handler) iwctl_siwretry, // SIOCSIWRETRY
|
|
||||||
(iw_handler) iwctl_giwretry, // SIOCGIWRETRY
|
|
||||||
(iw_handler) iwctl_siwencode, // SIOCSIWENCODE
|
|
||||||
(iw_handler) iwctl_giwencode, // SIOCGIWENCODE
|
|
||||||
(iw_handler) iwctl_siwpower, // SIOCSIWPOWER
|
|
||||||
(iw_handler) iwctl_giwpower, // SIOCGIWPOWER
|
|
||||||
(iw_handler) NULL, // -- hole --
|
|
||||||
(iw_handler) NULL, // -- hole --
|
|
||||||
(iw_handler) iwctl_siwgenie, // SIOCSIWGENIE
|
|
||||||
(iw_handler) iwctl_giwgenie, // SIOCGIWGENIE
|
|
||||||
(iw_handler) iwctl_siwauth, // SIOCSIWAUTH
|
|
||||||
(iw_handler) iwctl_giwauth, // SIOCGIWAUTH
|
|
||||||
(iw_handler) iwctl_siwencodeext, // SIOCSIWENCODEEXT
|
|
||||||
(iw_handler) iwctl_giwencodeext, // SIOCGIWENCODEEXT
|
|
||||||
(iw_handler) NULL, // SIOCSIWPMKSA
|
|
||||||
(iw_handler) NULL, // -- hole --
|
|
||||||
|
|
||||||
};
|
|
||||||
*/
|
|
||||||
|
|
||||||
static const iw_handler iwctl_handler[] =
|
static const iw_handler iwctl_handler[] =
|
||||||
{
|
{
|
||||||
(iw_handler) iwctl_commit, // SIOCSIWCOMMIT
|
(iw_handler) iwctl_commit, // SIOCSIWCOMMIT
|
||||||
@ -2124,13 +1881,9 @@ const struct iw_handler_def iwctl_handler_def =
|
|||||||
{
|
{
|
||||||
.get_wireless_stats = &iwctl_get_wireless_stats,
|
.get_wireless_stats = &iwctl_get_wireless_stats,
|
||||||
.num_standard = sizeof(iwctl_handler)/sizeof(iw_handler),
|
.num_standard = sizeof(iwctl_handler)/sizeof(iw_handler),
|
||||||
// .num_private = sizeof(iwctl_private_handler)/sizeof(iw_handler),
|
|
||||||
// .num_private_args = sizeof(iwctl_private_args)/sizeof(struct iw_priv_args),
|
|
||||||
.num_private = 0,
|
.num_private = 0,
|
||||||
.num_private_args = 0,
|
.num_private_args = 0,
|
||||||
.standard = (iw_handler *)iwctl_handler,
|
.standard = (iw_handler *)iwctl_handler,
|
||||||
// .private = (iw_handler *) iwctl_private_handler,
|
|
||||||
// .private_args = (struct iw_priv_args *)iwctl_private_args,
|
|
||||||
.private = NULL,
|
.private = NULL,
|
||||||
.private_args = NULL,
|
.private_args = NULL,
|
||||||
};
|
};
|
||||||
|
@ -46,7 +46,6 @@
|
|||||||
|
|
||||||
/*--------------------- Static Variables --------------------------*/
|
/*--------------------- Static Variables --------------------------*/
|
||||||
static int msglevel = MSG_LEVEL_INFO;
|
static int msglevel = MSG_LEVEL_INFO;
|
||||||
//static int msglevel =MSG_LEVEL_DEBUG;
|
|
||||||
/*--------------------- Static Functions --------------------------*/
|
/*--------------------- Static Functions --------------------------*/
|
||||||
|
|
||||||
/*--------------------- Export Variables --------------------------*/
|
/*--------------------- Export Variables --------------------------*/
|
||||||
@ -255,7 +254,6 @@ bool KeybSetKey(
|
|||||||
|
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "KeybSetKey(R): \n");
|
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "KeybSetKey(R): \n");
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "pKey->bKeyValid: %d\n ", pKey->bKeyValid);
|
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "pKey->bKeyValid: %d\n ", pKey->bKeyValid);
|
||||||
//DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "pKey->uKeyLength: %d\n ", pKey->uKeyLength);
|
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "pKey->abyKey: ");
|
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "pKey->abyKey: ");
|
||||||
for (ii = 0; ii < pKey->uKeyLength; ii++) {
|
for (ii = 0; ii < pKey->uKeyLength; ii++) {
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "%02x ", pKey->abyKey[ii]);
|
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "%02x ", pKey->abyKey[ii]);
|
||||||
@ -786,10 +784,6 @@ bool KeybSetAllGroupKey(
|
|||||||
}
|
}
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "\n");
|
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "\n");
|
||||||
|
|
||||||
//DBG_PRN_GRP12(("pKey->dwTSC47_16: %lX\n ", pKey->dwTSC47_16));
|
|
||||||
//DBG_PRN_GRP12(("pKey->wTSC15_0: %X\n ", pKey->wTSC15_0));
|
|
||||||
//DBG_PRN_GRP12(("pKey->dwKeyIndex: %lX\n ", pKey->dwKeyIndex));
|
|
||||||
|
|
||||||
} // (pTable->KeyTable[i].bInUse == true)
|
} // (pTable->KeyTable[i].bInUse == true)
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
@ -76,8 +76,6 @@ typedef struct tagSKeyTable
|
|||||||
unsigned long dwGTKeyIndex; // GroupTransmitKey Index
|
unsigned long dwGTKeyIndex; // GroupTransmitKey Index
|
||||||
bool bInUse;
|
bool bInUse;
|
||||||
//2006-1116-01,<Modify> by NomadZhao
|
//2006-1116-01,<Modify> by NomadZhao
|
||||||
//unsigned short wKeyCtl;
|
|
||||||
//bool bSoftWEP;
|
|
||||||
bool bSoftWEP;
|
bool bSoftWEP;
|
||||||
unsigned short wKeyCtl; // for address of wKeyCtl at align 4
|
unsigned short wKeyCtl; // for address of wKeyCtl at align 4
|
||||||
|
|
||||||
|
@ -74,7 +74,6 @@
|
|||||||
|
|
||||||
unsigned short TxRate_iwconfig;//2008-5-8 <add> by chester
|
unsigned short TxRate_iwconfig;//2008-5-8 <add> by chester
|
||||||
/*--------------------- Static Definitions -------------------------*/
|
/*--------------------- Static Definitions -------------------------*/
|
||||||
//static int msglevel =MSG_LEVEL_DEBUG;
|
|
||||||
static int msglevel = MSG_LEVEL_INFO;
|
static int msglevel = MSG_LEVEL_INFO;
|
||||||
/*--------------------- Static Classes ----------------------------*/
|
/*--------------------- Static Classes ----------------------------*/
|
||||||
|
|
||||||
@ -770,7 +769,6 @@ bool MACbSoftwareReset(unsigned long dwIoBase)
|
|||||||
unsigned short ww;
|
unsigned short ww;
|
||||||
|
|
||||||
// turn on HOSTCR_SOFTRST, just write 0x01 to reset
|
// turn on HOSTCR_SOFTRST, just write 0x01 to reset
|
||||||
//MACvRegBitsOn(dwIoBase, MAC_REG_HOSTCR, HOSTCR_SOFTRST);
|
|
||||||
VNSvOutPortB(dwIoBase + MAC_REG_HOSTCR, 0x01);
|
VNSvOutPortB(dwIoBase + MAC_REG_HOSTCR, 0x01);
|
||||||
|
|
||||||
for (ww = 0; ww < W_MAX_TIMEOUT; ww++) {
|
for (ww = 0; ww < W_MAX_TIMEOUT; ww++) {
|
||||||
@ -809,7 +807,6 @@ bool MACbSafeSoftwareReset(unsigned long dwIoBase)
|
|||||||
MACvSaveContext(dwIoBase, abyTmpRegData);
|
MACvSaveContext(dwIoBase, abyTmpRegData);
|
||||||
// do reset
|
// do reset
|
||||||
bRetVal = MACbSoftwareReset(dwIoBase);
|
bRetVal = MACbSoftwareReset(dwIoBase);
|
||||||
//BBvSoftwareReset(pDevice->PortOffset);
|
|
||||||
// restore MAC context, except CR0
|
// restore MAC context, except CR0
|
||||||
MACvRestoreContext(dwIoBase, abyTmpRegData);
|
MACvRestoreContext(dwIoBase, abyTmpRegData);
|
||||||
|
|
||||||
@ -1022,11 +1019,6 @@ void MACvInitialize(unsigned long dwIoBase)
|
|||||||
// disable force PME-enable
|
// disable force PME-enable
|
||||||
VNSvOutPortB(dwIoBase + MAC_REG_PMC1, PME_OVR);
|
VNSvOutPortB(dwIoBase + MAC_REG_PMC1, PME_OVR);
|
||||||
// only 3253 A
|
// only 3253 A
|
||||||
/*
|
|
||||||
MACvPwrEvntDisable(dwIoBase);
|
|
||||||
// clear power status
|
|
||||||
VNSvOutPortW(dwIoBase + MAC_REG_WAKEUPSR0, 0x0F0F);
|
|
||||||
*/
|
|
||||||
|
|
||||||
// do reset
|
// do reset
|
||||||
MACbSoftwareReset(dwIoBase);
|
MACbSoftwareReset(dwIoBase);
|
||||||
|
@ -1042,7 +1042,6 @@ void MACvSetKeyEntry(unsigned long dwIoBase, unsigned short wKeyCtl, unsigned in
|
|||||||
void MACvDisableKeyEntry(unsigned long dwIoBase, unsigned int uEntryIdx);
|
void MACvDisableKeyEntry(unsigned long dwIoBase, unsigned int uEntryIdx);
|
||||||
void MACvSetDefaultKeyEntry(unsigned long dwIoBase, unsigned int uKeyLen,
|
void MACvSetDefaultKeyEntry(unsigned long dwIoBase, unsigned int uKeyLen,
|
||||||
unsigned int uKeyIdx, unsigned long *pdwKey, unsigned char byLocalID);
|
unsigned int uKeyIdx, unsigned long *pdwKey, unsigned char byLocalID);
|
||||||
//void MACvEnableDefaultKey(unsigned long dwIoBase, unsigned char byLocalID);
|
|
||||||
void MACvDisableDefaultKey(unsigned long dwIoBase);
|
void MACvDisableDefaultKey(unsigned long dwIoBase);
|
||||||
void MACvSetDefaultTKIPKeyEntry(unsigned long dwIoBase, unsigned int uKeyLen,
|
void MACvSetDefaultTKIPKeyEntry(unsigned long dwIoBase, unsigned int uKeyLen,
|
||||||
unsigned int uKeyIdx, unsigned long *pdwKey, unsigned char byLocalID);
|
unsigned int uKeyIdx, unsigned long *pdwKey, unsigned char byLocalID);
|
||||||
|
@ -504,7 +504,6 @@ STAvUpdate802_11Counter(
|
|||||||
unsigned long dwCounter
|
unsigned long dwCounter
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
//p802_11Counter->TransmittedFragmentCount
|
|
||||||
p802_11Counter->MulticastTransmittedFrameCount = (unsigned long long) (pStatistic->dwTsrBroadcast[TYPE_AC0DMA] +
|
p802_11Counter->MulticastTransmittedFrameCount = (unsigned long long) (pStatistic->dwTsrBroadcast[TYPE_AC0DMA] +
|
||||||
pStatistic->dwTsrBroadcast[TYPE_TXDMA0] +
|
pStatistic->dwTsrBroadcast[TYPE_TXDMA0] +
|
||||||
pStatistic->dwTsrMulticast[TYPE_AC0DMA] +
|
pStatistic->dwTsrMulticast[TYPE_AC0DMA] +
|
||||||
@ -513,12 +512,10 @@ STAvUpdate802_11Counter(
|
|||||||
p802_11Counter->RetryCount = (unsigned long long) (pStatistic->dwTsrRetry[TYPE_AC0DMA] + pStatistic->dwTsrRetry[TYPE_TXDMA0]);
|
p802_11Counter->RetryCount = (unsigned long long) (pStatistic->dwTsrRetry[TYPE_AC0DMA] + pStatistic->dwTsrRetry[TYPE_TXDMA0]);
|
||||||
p802_11Counter->MultipleRetryCount = (unsigned long long) (pStatistic->dwTsrMoreThanOnceRetry[TYPE_AC0DMA] +
|
p802_11Counter->MultipleRetryCount = (unsigned long long) (pStatistic->dwTsrMoreThanOnceRetry[TYPE_AC0DMA] +
|
||||||
pStatistic->dwTsrMoreThanOnceRetry[TYPE_TXDMA0]);
|
pStatistic->dwTsrMoreThanOnceRetry[TYPE_TXDMA0]);
|
||||||
//p802_11Counter->FrameDuplicateCount
|
|
||||||
p802_11Counter->RTSSuccessCount += (unsigned long long) (dwCounter & 0x000000ff);
|
p802_11Counter->RTSSuccessCount += (unsigned long long) (dwCounter & 0x000000ff);
|
||||||
p802_11Counter->RTSFailureCount += (unsigned long long) ((dwCounter & 0x0000ff00) >> 8);
|
p802_11Counter->RTSFailureCount += (unsigned long long) ((dwCounter & 0x0000ff00) >> 8);
|
||||||
p802_11Counter->ACKFailureCount += (unsigned long long) ((dwCounter & 0x00ff0000) >> 16);
|
p802_11Counter->ACKFailureCount += (unsigned long long) ((dwCounter & 0x00ff0000) >> 16);
|
||||||
p802_11Counter->FCSErrorCount += (unsigned long long) ((dwCounter & 0xff000000) >> 24);
|
p802_11Counter->FCSErrorCount += (unsigned long long) ((dwCounter & 0xff000000) >> 24);
|
||||||
//p802_11Counter->ReceivedFragmentCount
|
|
||||||
p802_11Counter->MulticastReceivedFrameCount = (unsigned long long) (pStatistic->dwRsrBroadcast +
|
p802_11Counter->MulticastReceivedFrameCount = (unsigned long long) (pStatistic->dwRsrBroadcast +
|
||||||
pStatistic->dwRsrMulticast);
|
pStatistic->dwRsrMulticast);
|
||||||
}
|
}
|
||||||
|
@ -61,10 +61,6 @@ typedef struct tagSDot11Counters {
|
|||||||
unsigned long long CCMPReplays;
|
unsigned long long CCMPReplays;
|
||||||
unsigned long long CCMPDecryptErrors;
|
unsigned long long CCMPDecryptErrors;
|
||||||
unsigned long long FourWayHandshakeFailures;
|
unsigned long long FourWayHandshakeFailures;
|
||||||
// unsigned long long WEPUndecryptableCount;
|
|
||||||
// unsigned long long WEPICVErrorCount;
|
|
||||||
// unsigned long long DecryptSuccessCount;
|
|
||||||
// unsigned long long DecryptFailureCount;
|
|
||||||
} SDot11Counters, *PSDot11Counters;
|
} SDot11Counters, *PSDot11Counters;
|
||||||
|
|
||||||
//
|
//
|
||||||
@ -304,10 +300,6 @@ typedef struct tagSStatCounter {
|
|||||||
unsigned long long ullTxMulticastBytes[TYPE_MAXTD];
|
unsigned long long ullTxMulticastBytes[TYPE_MAXTD];
|
||||||
unsigned long long ullTxDirectedBytes[TYPE_MAXTD];
|
unsigned long long ullTxDirectedBytes[TYPE_MAXTD];
|
||||||
|
|
||||||
// unsigned long dwTxRetryCount[8];
|
|
||||||
//
|
|
||||||
// ISR status count
|
|
||||||
//
|
|
||||||
SISRCounters ISRStat;
|
SISRCounters ISRStat;
|
||||||
|
|
||||||
SCustomCounters CustomStat;
|
SCustomCounters CustomStat;
|
||||||
|
@ -47,10 +47,7 @@
|
|||||||
/*--------------------- Static Variables --------------------------*/
|
/*--------------------- Static Variables --------------------------*/
|
||||||
|
|
||||||
/*--------------------- Static Functions --------------------------*/
|
/*--------------------- Static Functions --------------------------*/
|
||||||
/*
|
|
||||||
static unsigned long s_dwGetUINT32(unsigned char *p); // Get unsigned long from 4 bytes LSByte first
|
|
||||||
static void s_vPutUINT32(unsigned char *p, unsigned long val); // Put unsigned long into 4 bytes LSByte first
|
|
||||||
*/
|
|
||||||
static void s_vClear(void); // Clear the internal message,
|
static void s_vClear(void); // Clear the internal message,
|
||||||
// resets the object to the state just after construction.
|
// resets the object to the state just after construction.
|
||||||
static void s_vSetKey(u32 dwK0, u32 dwK1);
|
static void s_vSetKey(u32 dwK0, u32 dwK1);
|
||||||
@ -65,30 +62,6 @@ static unsigned int nBytesInM; // # bytes in M
|
|||||||
|
|
||||||
/*--------------------- Export Functions --------------------------*/
|
/*--------------------- Export Functions --------------------------*/
|
||||||
|
|
||||||
/*
|
|
||||||
static unsigned long s_dwGetUINT32 (unsigned char *p)
|
|
||||||
// Convert from unsigned char [] to unsigned long in a portable way
|
|
||||||
{
|
|
||||||
unsigned long res = 0;
|
|
||||||
unsigned int i;
|
|
||||||
for (i=0; i<4; i++)
|
|
||||||
{
|
|
||||||
res |= (*p++) << (8 * i);
|
|
||||||
}
|
|
||||||
return res;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void s_vPutUINT32 (unsigned char *p, unsigned long val)
|
|
||||||
// Convert from unsigned long to unsigned char [] in a portable way
|
|
||||||
{
|
|
||||||
unsigned int i;
|
|
||||||
for (i=0; i<4; i++) {
|
|
||||||
*p++ = (unsigned char) (val & 0xff);
|
|
||||||
val >>= 8;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
static void s_vClear(void)
|
static void s_vClear(void)
|
||||||
{
|
{
|
||||||
// Reset the state to the empty message.
|
// Reset the state to the empty message.
|
||||||
|
@ -95,14 +95,12 @@ PSvEnablePowerSaving(
|
|||||||
if (wListenInterval >= 2) {
|
if (wListenInterval >= 2) {
|
||||||
// clear always listen beacon
|
// clear always listen beacon
|
||||||
MACvRegBitsOff(pDevice->PortOffset, MAC_REG_PSCTL, PSCTL_ALBCN);
|
MACvRegBitsOff(pDevice->PortOffset, MAC_REG_PSCTL, PSCTL_ALBCN);
|
||||||
//pDevice->wCFG &= ~CFG_ALB;
|
|
||||||
// first time set listen next beacon
|
// first time set listen next beacon
|
||||||
MACvRegBitsOn(pDevice->PortOffset, MAC_REG_PSCTL, PSCTL_LNBCN);
|
MACvRegBitsOn(pDevice->PortOffset, MAC_REG_PSCTL, PSCTL_LNBCN);
|
||||||
pMgmt->wCountToWakeUp = wListenInterval;
|
pMgmt->wCountToWakeUp = wListenInterval;
|
||||||
} else {
|
} else {
|
||||||
// always listen beacon
|
// always listen beacon
|
||||||
MACvRegBitsOn(pDevice->PortOffset, MAC_REG_PSCTL, PSCTL_ALBCN);
|
MACvRegBitsOn(pDevice->PortOffset, MAC_REG_PSCTL, PSCTL_ALBCN);
|
||||||
//pDevice->wCFG |= CFG_ALB;
|
|
||||||
pMgmt->wCountToWakeUp = 0;
|
pMgmt->wCountToWakeUp = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -110,13 +108,10 @@ PSvEnablePowerSaving(
|
|||||||
MACvRegBitsOn(pDevice->PortOffset, MAC_REG_PSCTL, PSCTL_PSEN);
|
MACvRegBitsOn(pDevice->PortOffset, MAC_REG_PSCTL, PSCTL_PSEN);
|
||||||
pDevice->bEnablePSMode = true;
|
pDevice->bEnablePSMode = true;
|
||||||
|
|
||||||
if (pDevice->eOPMode == OP_MODE_ADHOC) {
|
/* We don't send null pkt in ad hoc mode since beacon will handle this. */
|
||||||
// bMgrPrepareBeaconToSend((void *)pDevice, pMgmt);
|
if (pDevice->eOPMode != OP_MODE_ADHOC && pDevice->eOPMode == OP_MODE_INFRASTRUCTURE)
|
||||||
}
|
|
||||||
// We don't send null pkt in ad hoc mode since beacon will handle this.
|
|
||||||
else if (pDevice->eOPMode == OP_MODE_INFRASTRUCTURE) {
|
|
||||||
PSbSendNullPacket(pDevice);
|
PSbSendNullPacket(pDevice);
|
||||||
}
|
|
||||||
pDevice->bPWBitOn = true;
|
pDevice->bPWBitOn = true;
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "PS:Power Saving Mode Enable... \n");
|
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "PS:Power Saving Mode Enable... \n");
|
||||||
return;
|
return;
|
||||||
@ -138,7 +133,6 @@ PSvDisablePowerSaving(
|
|||||||
)
|
)
|
||||||
{
|
{
|
||||||
PSDevice pDevice = (PSDevice)hDeviceContext;
|
PSDevice pDevice = (PSDevice)hDeviceContext;
|
||||||
// PSMgmtObject pMgmt = pDevice->pMgmt;
|
|
||||||
|
|
||||||
// disable power saving hw function
|
// disable power saving hw function
|
||||||
MACbPSWakeup(pDevice->PortOffset);
|
MACbPSWakeup(pDevice->PortOffset);
|
||||||
@ -258,8 +252,6 @@ PSvSendPSPOLL(
|
|||||||
// send the frame
|
// send the frame
|
||||||
if (csMgmt_xmit(pDevice, pTxPacket) != CMD_STATUS_PENDING) {
|
if (csMgmt_xmit(pDevice, pTxPacket) != CMD_STATUS_PENDING) {
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Send PS-Poll packet failed..\n");
|
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Send PS-Poll packet failed..\n");
|
||||||
} else {
|
|
||||||
// DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Send PS-Poll packet success..\n");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
@ -336,8 +328,6 @@ PSbSendNullPacket(
|
|||||||
if (csMgmt_xmit(pDevice, pTxPacket) != CMD_STATUS_PENDING) {
|
if (csMgmt_xmit(pDevice, pTxPacket) != CMD_STATUS_PENDING) {
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Send Null Packet failed !\n");
|
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Send Null Packet failed !\n");
|
||||||
return false;
|
return false;
|
||||||
} else {
|
|
||||||
// DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Send Null Packet success....\n");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
@ -42,9 +42,6 @@
|
|||||||
|
|
||||||
/*--------------------- Export Functions --------------------------*/
|
/*--------------------- Export Functions --------------------------*/
|
||||||
|
|
||||||
// PSDevice pDevice
|
|
||||||
// PSDevice hDeviceContext
|
|
||||||
|
|
||||||
bool
|
bool
|
||||||
PSbConsiderPowerDown(
|
PSbConsiderPowerDown(
|
||||||
void *hDeviceContext,
|
void *hDeviceContext,
|
||||||
|
@ -39,8 +39,6 @@
|
|||||||
|
|
||||||
/*--------------------- Static Definitions -------------------------*/
|
/*--------------------- Static Definitions -------------------------*/
|
||||||
|
|
||||||
//static int msglevel =MSG_LEVEL_INFO;
|
|
||||||
|
|
||||||
#define BY_AL2230_REG_LEN 23 //24bit
|
#define BY_AL2230_REG_LEN 23 //24bit
|
||||||
#define CB_AL2230_INIT_SEQ 15
|
#define CB_AL2230_INIT_SEQ 15
|
||||||
#define SWITCH_CHANNEL_DELAY_AL2230 200 //us
|
#define SWITCH_CHANNEL_DELAY_AL2230 200 //us
|
||||||
@ -183,7 +181,6 @@ static const unsigned long dwAL7230InitTable[CB_AL7230_INIT_SEQ] = {
|
|||||||
0x841FF200+(BY_AL7230_REG_LEN<<3)+IFREGCTL_REGW, // Need modify for 11a: 451FE2
|
0x841FF200+(BY_AL7230_REG_LEN<<3)+IFREGCTL_REGW, // Need modify for 11a: 451FE2
|
||||||
0x3FDFA300+(BY_AL7230_REG_LEN<<3)+IFREGCTL_REGW, // Need modify for 11a: 5FDFA3
|
0x3FDFA300+(BY_AL7230_REG_LEN<<3)+IFREGCTL_REGW, // Need modify for 11a: 5FDFA3
|
||||||
0x7FD78400+(BY_AL7230_REG_LEN<<3)+IFREGCTL_REGW, // 11b/g // Need modify for 11a
|
0x7FD78400+(BY_AL7230_REG_LEN<<3)+IFREGCTL_REGW, // 11b/g // Need modify for 11a
|
||||||
//0x802B4500+(BY_AL7230_REG_LEN<<3)+IFREGCTL_REGW, // Need modify for 11a: 8D1B45
|
|
||||||
// RoberYu:20050113, Rev0.47 Regsiter Setting Guide
|
// RoberYu:20050113, Rev0.47 Regsiter Setting Guide
|
||||||
0x802B5500+(BY_AL7230_REG_LEN<<3)+IFREGCTL_REGW, // Need modify for 11a: 8D1B55
|
0x802B5500+(BY_AL7230_REG_LEN<<3)+IFREGCTL_REGW, // Need modify for 11a: 8D1B55
|
||||||
0x56AF3600+(BY_AL7230_REG_LEN<<3)+IFREGCTL_REGW,
|
0x56AF3600+(BY_AL7230_REG_LEN<<3)+IFREGCTL_REGW,
|
||||||
@ -192,7 +189,6 @@ static const unsigned long dwAL7230InitTable[CB_AL7230_INIT_SEQ] = {
|
|||||||
0x221BB900+(BY_AL7230_REG_LEN<<3)+IFREGCTL_REGW,
|
0x221BB900+(BY_AL7230_REG_LEN<<3)+IFREGCTL_REGW,
|
||||||
0xE0000A00+(BY_AL7230_REG_LEN<<3)+IFREGCTL_REGW, // Need modify for 11a: E0600A
|
0xE0000A00+(BY_AL7230_REG_LEN<<3)+IFREGCTL_REGW, // Need modify for 11a: E0600A
|
||||||
0x08031B00+(BY_AL7230_REG_LEN<<3)+IFREGCTL_REGW, // init 0x080B1B00 => 0x080F1B00 for 3 wire control TxGain(D10)
|
0x08031B00+(BY_AL7230_REG_LEN<<3)+IFREGCTL_REGW, // init 0x080B1B00 => 0x080F1B00 for 3 wire control TxGain(D10)
|
||||||
//0x00093C00+(BY_AL7230_REG_LEN<<3)+IFREGCTL_REGW, // Need modify for 11a: 00143C
|
|
||||||
// RoberYu:20050113, Rev0.47 Regsiter Setting Guide
|
// RoberYu:20050113, Rev0.47 Regsiter Setting Guide
|
||||||
0x000A3C00+(BY_AL7230_REG_LEN<<3)+IFREGCTL_REGW, // Need modify for 11a: 00143C
|
0x000A3C00+(BY_AL7230_REG_LEN<<3)+IFREGCTL_REGW, // Need modify for 11a: 00143C
|
||||||
0xFFFFFD00+(BY_AL7230_REG_LEN<<3)+IFREGCTL_REGW,
|
0xFFFFFD00+(BY_AL7230_REG_LEN<<3)+IFREGCTL_REGW,
|
||||||
@ -585,10 +581,9 @@ bool IFRFbWriteEmbedded(unsigned long dwIoBase, unsigned long dwData)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ww == W_MAX_TIMEOUT) {
|
if (ww == W_MAX_TIMEOUT)
|
||||||
// DBG_PORT80_ALWAYS(0x32);
|
|
||||||
return false;
|
return false;
|
||||||
}
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -930,9 +925,6 @@ bool RFbSetPower(
|
|||||||
case RATE_11M:
|
case RATE_11M:
|
||||||
byPwr = pDevice->abyCCKPwrTbl[uCH];
|
byPwr = pDevice->abyCCKPwrTbl[uCH];
|
||||||
byPwrdBm = pDevice->abyCCKDefaultPwr[uCH];
|
byPwrdBm = pDevice->abyCCKDefaultPwr[uCH];
|
||||||
//PLICE_DEBUG->
|
|
||||||
//byPwr+=5;
|
|
||||||
//PLICE_DEBUG <-
|
|
||||||
break;
|
break;
|
||||||
case RATE_6M:
|
case RATE_6M:
|
||||||
case RATE_9M:
|
case RATE_9M:
|
||||||
@ -955,9 +947,6 @@ bool RFbSetPower(
|
|||||||
}
|
}
|
||||||
byPwrdBm += pDevice->abyOFDMDefaultPwr[uCH];
|
byPwrdBm += pDevice->abyOFDMDefaultPwr[uCH];
|
||||||
byPwr = byDec;
|
byPwr = byDec;
|
||||||
//PLICE_DEBUG->
|
|
||||||
//byPwr+=5;
|
|
||||||
//PLICE_DEBUG<-
|
|
||||||
break;
|
break;
|
||||||
case RATE_24M:
|
case RATE_24M:
|
||||||
case RATE_36M:
|
case RATE_36M:
|
||||||
@ -965,9 +954,6 @@ bool RFbSetPower(
|
|||||||
case RATE_54M:
|
case RATE_54M:
|
||||||
byPwr = pDevice->abyOFDMPwrTbl[uCH];
|
byPwr = pDevice->abyOFDMPwrTbl[uCH];
|
||||||
byPwrdBm = pDevice->abyOFDMDefaultPwr[uCH];
|
byPwrdBm = pDevice->abyOFDMDefaultPwr[uCH];
|
||||||
//PLICE_DEBUG->
|
|
||||||
//byPwr+=5;
|
|
||||||
//PLICE_DEBUG<-
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -68,7 +68,6 @@
|
|||||||
/*--------------------- Static Classes ----------------------------*/
|
/*--------------------- Static Classes ----------------------------*/
|
||||||
|
|
||||||
/*--------------------- Static Variables --------------------------*/
|
/*--------------------- Static Variables --------------------------*/
|
||||||
//static int msglevel =MSG_LEVEL_DEBUG;
|
|
||||||
static int msglevel = MSG_LEVEL_INFO;
|
static int msglevel = MSG_LEVEL_INFO;
|
||||||
|
|
||||||
#define PLICE_DEBUG
|
#define PLICE_DEBUG
|
||||||
@ -1093,9 +1092,7 @@ s_vGenerateTxParameter(
|
|||||||
unsigned short wFifoCtl;
|
unsigned short wFifoCtl;
|
||||||
bool bDisCRC = false;
|
bool bDisCRC = false;
|
||||||
unsigned char byFBOption = AUTO_FB_NONE;
|
unsigned char byFBOption = AUTO_FB_NONE;
|
||||||
// unsigned short wCurrentRate = pDevice->wCurrentRate;
|
|
||||||
|
|
||||||
//DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "s_vGenerateTxParameter...\n");
|
|
||||||
PSTxBufHead pFifoHead = (PSTxBufHead)pTxBufHead;
|
PSTxBufHead pFifoHead = (PSTxBufHead)pTxBufHead;
|
||||||
pFifoHead->wReserved = wCurrentRate;
|
pFifoHead->wReserved = wCurrentRate;
|
||||||
wFifoCtl = pFifoHead->wFIFOCtl;
|
wFifoCtl = pFifoHead->wFIFOCtl;
|
||||||
@ -1174,13 +1171,8 @@ s_vGenerateTxParameter(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "s_vGenerateTxParameter END.\n");
|
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
unsigned char *pbyBuffer,//point to pTxBufHead
|
|
||||||
unsigned short wFragType,//00:Non-Frag, 01:Start, 02:Mid, 03:Last
|
|
||||||
unsigned int cbFragmentSize,//Hdr+payoad+FCS
|
|
||||||
*/
|
|
||||||
static
|
static
|
||||||
void
|
void
|
||||||
s_vFillFragParameter(
|
s_vFillFragParameter(
|
||||||
@ -1193,10 +1185,8 @@ s_vFillFragParameter(
|
|||||||
)
|
)
|
||||||
{
|
{
|
||||||
PSTxBufHead pTxBufHead = (PSTxBufHead) pbyBuffer;
|
PSTxBufHead pTxBufHead = (PSTxBufHead) pbyBuffer;
|
||||||
//DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "s_vFillFragParameter...\n");
|
|
||||||
|
|
||||||
if (uTxType == TYPE_SYNCDMA) {
|
if (uTxType == TYPE_SYNCDMA) {
|
||||||
//PSTxSyncDesc ptdCurr = (PSTxSyncDesc)s_pvGetTxDescHead(pDevice, uTxType, uCurIdx);
|
|
||||||
PSTxSyncDesc ptdCurr = (PSTxSyncDesc)pvtdCurr;
|
PSTxSyncDesc ptdCurr = (PSTxSyncDesc)pvtdCurr;
|
||||||
|
|
||||||
//Set FIFOCtl & TimeStamp in TxSyncDesc
|
//Set FIFOCtl & TimeStamp in TxSyncDesc
|
||||||
@ -1210,7 +1200,6 @@ s_vFillFragParameter(
|
|||||||
ptdCurr->m_td1TD1.byTCR |= (TCR_STP | TCR_EDP);
|
ptdCurr->m_td1TD1.byTCR |= (TCR_STP | TCR_EDP);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
//PSTxDesc ptdCurr = (PSTxDesc)s_pvGetTxDescHead(pDevice, uTxType, uCurIdx);
|
|
||||||
PSTxDesc ptdCurr = (PSTxDesc)pvtdCurr;
|
PSTxDesc ptdCurr = (PSTxDesc)pvtdCurr;
|
||||||
//Set TSR1 & ReqCount in TxDescHead
|
//Set TSR1 & ReqCount in TxDescHead
|
||||||
ptdCurr->m_td1TD1.wReqCount = cpu_to_le16((unsigned short)(cbReqCount));
|
ptdCurr->m_td1TD1.wReqCount = cpu_to_le16((unsigned short)(cbReqCount));
|
||||||
@ -1222,8 +1211,6 @@ s_vFillFragParameter(
|
|||||||
}
|
}
|
||||||
|
|
||||||
pTxBufHead->wFragCtl |= (unsigned short)wFragType;//0x0001; //0000 0000 0000 0001
|
pTxBufHead->wFragCtl |= (unsigned short)wFragType;//0x0001; //0000 0000 0000 0001
|
||||||
|
|
||||||
//DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "s_vFillFragParameter END\n");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static unsigned int
|
static unsigned int
|
||||||
@ -1245,8 +1232,6 @@ s_cbFillTxBufHead(PSDevice pDevice, unsigned char byPktType, unsigned char *pbyT
|
|||||||
unsigned short wFragType; //00:Non-Frag, 01:Start, 10:Mid, 11:Last
|
unsigned short wFragType; //00:Non-Frag, 01:Start, 10:Mid, 11:Last
|
||||||
unsigned int uDuration;
|
unsigned int uDuration;
|
||||||
unsigned char *pbyBuffer;
|
unsigned char *pbyBuffer;
|
||||||
// unsigned int uKeyEntryIdx = NUM_KEY_ENTRY+1;
|
|
||||||
// unsigned char byKeySel = 0xFF;
|
|
||||||
unsigned int cbIVlen = 0;
|
unsigned int cbIVlen = 0;
|
||||||
unsigned int cbICVlen = 0;
|
unsigned int cbICVlen = 0;
|
||||||
unsigned int cbMIClen = 0;
|
unsigned int cbMIClen = 0;
|
||||||
@ -1254,8 +1239,6 @@ s_cbFillTxBufHead(PSDevice pDevice, unsigned char byPktType, unsigned char *pbyT
|
|||||||
unsigned int cb802_1_H_len = 0;
|
unsigned int cb802_1_H_len = 0;
|
||||||
unsigned int uLength = 0;
|
unsigned int uLength = 0;
|
||||||
unsigned int uTmpLen = 0;
|
unsigned int uTmpLen = 0;
|
||||||
// unsigned char abyTmp[8];
|
|
||||||
// unsigned long dwCRC;
|
|
||||||
unsigned int cbMICHDR = 0;
|
unsigned int cbMICHDR = 0;
|
||||||
u32 dwMICKey0, dwMICKey1;
|
u32 dwMICKey0, dwMICKey1;
|
||||||
u32 dwMIC_Priority;
|
u32 dwMIC_Priority;
|
||||||
@ -1274,7 +1257,6 @@ s_cbFillTxBufHead(PSDevice pDevice, unsigned char byPktType, unsigned char *pbyT
|
|||||||
unsigned char *pbyType;
|
unsigned char *pbyType;
|
||||||
PSTxDesc ptdCurr;
|
PSTxDesc ptdCurr;
|
||||||
PSTxBufHead psTxBufHd = (PSTxBufHead) pbyTxBufferAddr;
|
PSTxBufHead psTxBufHd = (PSTxBufHead) pbyTxBufferAddr;
|
||||||
// unsigned int tmpDescIdx;
|
|
||||||
unsigned int cbHeaderLength = 0;
|
unsigned int cbHeaderLength = 0;
|
||||||
void *pvRrvTime;
|
void *pvRrvTime;
|
||||||
PSMICHDRHead pMICHDR;
|
PSMICHDRHead pMICHDR;
|
||||||
@ -1289,7 +1271,6 @@ s_cbFillTxBufHead(PSDevice pDevice, unsigned char byPktType, unsigned char *pbyT
|
|||||||
|
|
||||||
pvRrvTime = pMICHDR = pvRTS = pvCTS = pvTxDataHd = NULL;
|
pvRrvTime = pMICHDR = pvRTS = pvCTS = pvTxDataHd = NULL;
|
||||||
|
|
||||||
//DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "s_cbFillTxBufHead...\n");
|
|
||||||
if ((pDevice->eOPMode == OP_MODE_ADHOC) ||
|
if ((pDevice->eOPMode == OP_MODE_ADHOC) ||
|
||||||
(pDevice->eOPMode == OP_MODE_AP)) {
|
(pDevice->eOPMode == OP_MODE_AP)) {
|
||||||
if (is_multicast_ether_addr(&(psEthHeader->abyDstAddr[0])))
|
if (is_multicast_ether_addr(&(psEthHeader->abyDstAddr[0])))
|
||||||
@ -1567,7 +1548,6 @@ s_cbFillTxBufHead(PSDevice pDevice, unsigned char byPktType, unsigned char *pbyT
|
|||||||
// Last Fragmentation
|
// Last Fragmentation
|
||||||
//=========================
|
//=========================
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Last Fragmentation...\n");
|
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Last Fragmentation...\n");
|
||||||
//tmpDescIdx = (uDescIdx + uFragIdx) % pDevice->cbTD[uDMAIdx];
|
|
||||||
|
|
||||||
wFragType = FRAGCTL_ENDFRAG;
|
wFragType = FRAGCTL_ENDFRAG;
|
||||||
|
|
||||||
@ -1600,7 +1580,6 @@ s_cbFillTxBufHead(PSDevice pDevice, unsigned char byPktType, unsigned char *pbyT
|
|||||||
//---------------------------
|
//---------------------------
|
||||||
|
|
||||||
pbyBuffer = (unsigned char *)pHeadTD->pTDInfo->buf;
|
pbyBuffer = (unsigned char *)pHeadTD->pTDInfo->buf;
|
||||||
//pbyBuffer = (unsigned char *)pDevice->aamTxBuf[uDMAIdx][tmpDescIdx].pbyVAddr;
|
|
||||||
|
|
||||||
uLength = cbHeaderLength + cbMACHdLen + uPadding + cbIVlen;
|
uLength = cbHeaderLength + cbMACHdLen + uPadding + cbIVlen;
|
||||||
|
|
||||||
@ -1644,12 +1623,6 @@ s_cbFillTxBufHead(PSDevice pDevice, unsigned char byPktType, unsigned char *pbyT
|
|||||||
*(unsigned char *)((unsigned char *)&dwSafeMIC_R + uMICFragLen - 4),
|
*(unsigned char *)((unsigned char *)&dwSafeMIC_R + uMICFragLen - 4),
|
||||||
(cbMIClen - uMICFragLen));
|
(cbMIClen - uMICFragLen));
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
for (ii = 0; ii < cbLastFragPayloadSize + 8 + 24; ii++) {
|
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "%02x ", *((unsigned char *)((pbyBuffer + uLength) + ii - 8 - 24)));
|
|
||||||
}
|
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "\n\n");
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
MIC_vUnInit();
|
MIC_vUnInit();
|
||||||
} else {
|
} else {
|
||||||
@ -1690,7 +1663,6 @@ s_cbFillTxBufHead(PSDevice pDevice, unsigned char byPktType, unsigned char *pbyT
|
|||||||
// Middle Fragmentation
|
// Middle Fragmentation
|
||||||
//=========================
|
//=========================
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Middle Fragmentation...\n");
|
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Middle Fragmentation...\n");
|
||||||
//tmpDescIdx = (uDescIdx + uFragIdx) % pDevice->cbTD[uDMAIdx];
|
|
||||||
|
|
||||||
wFragType = FRAGCTL_MIDFRAG;
|
wFragType = FRAGCTL_MIDFRAG;
|
||||||
|
|
||||||
@ -1753,21 +1725,9 @@ s_cbFillTxBufHead(PSDevice pDevice, unsigned char byPktType, unsigned char *pbyT
|
|||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "MIDDLE: uMICFragLen:%d, cbFragPayloadSize:%d, uTmpLen:%d\n",
|
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "MIDDLE: uMICFragLen:%d, cbFragPayloadSize:%d, uTmpLen:%d\n",
|
||||||
uMICFragLen, cbFragPayloadSize, uTmpLen);
|
uMICFragLen, cbFragPayloadSize, uTmpLen);
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Fill MIC in Middle frag [%d]\n", uMICFragLen);
|
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Fill MIC in Middle frag [%d]\n", uMICFragLen);
|
||||||
/*
|
|
||||||
for (ii = 0; ii < uMICFragLen; ii++) {
|
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "%02x ", *((unsigned char *)((pbyBuffer + uLength + uTmpLen) + ii)));
|
|
||||||
}
|
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "\n");
|
|
||||||
*/
|
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Get MIC:%X, %X\n", *pdwMIC_L, *pdwMIC_R);
|
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Get MIC:%X, %X\n", *pdwMIC_L, *pdwMIC_R);
|
||||||
}
|
}
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Middle frag len: %d\n", uTmpLen);
|
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Middle frag len: %d\n", uTmpLen);
|
||||||
/*
|
|
||||||
for (ii = 0; ii < uTmpLen; ii++) {
|
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "%02x ", *((unsigned char *)((pbyBuffer + uLength) + ii)));
|
|
||||||
}
|
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "\n\n");
|
|
||||||
*/
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
ASSERT(uTmpLen == (cbFragPayloadSize));
|
ASSERT(uTmpLen == (cbFragPayloadSize));
|
||||||
@ -1804,8 +1764,6 @@ s_cbFillTxBufHead(PSDevice pDevice, unsigned char byPktType, unsigned char *pbyT
|
|||||||
//=========================
|
//=========================
|
||||||
// No Fragmentation
|
// No Fragmentation
|
||||||
//=========================
|
//=========================
|
||||||
//DBG_PRTGRP03(("No Fragmentation...\n"));
|
|
||||||
//DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "No Fragmentation...\n");
|
|
||||||
wFragType = FRAGCTL_NONFRAG;
|
wFragType = FRAGCTL_NONFRAG;
|
||||||
|
|
||||||
//Set FragCtl in TxBufferHead
|
//Set FragCtl in TxBufferHead
|
||||||
@ -1864,12 +1822,6 @@ s_cbFillTxBufHead(PSDevice pDevice, unsigned char byPktType, unsigned char *pbyT
|
|||||||
|
|
||||||
if ((bNeedEncrypt == true) && (pTransmitKey != NULL) && (pTransmitKey->byCipherSuite == KEY_CTL_TKIP)) {
|
if ((bNeedEncrypt == true) && (pTransmitKey != NULL) && (pTransmitKey->byCipherSuite == KEY_CTL_TKIP)) {
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Length:%d, %d\n", cbFrameBodySize - cb802_1_H_len, uLength);
|
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Length:%d, %d\n", cbFrameBodySize - cb802_1_H_len, uLength);
|
||||||
/*
|
|
||||||
for (ii = 0; ii < (cbFrameBodySize - cb802_1_H_len); ii++) {
|
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "%02x ", *((unsigned char *)((pbyBuffer + uLength) + ii)));
|
|
||||||
}
|
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "\n");
|
|
||||||
*/
|
|
||||||
|
|
||||||
MIC_vAppend((pbyBuffer + uLength - cb802_1_H_len), cbFrameBodySize);
|
MIC_vAppend((pbyBuffer + uLength - cb802_1_H_len), cbFrameBodySize);
|
||||||
|
|
||||||
@ -1888,12 +1840,6 @@ s_cbFillTxBufHead(PSDevice pDevice, unsigned char byPktType, unsigned char *pbyT
|
|||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "uLength: %d, %d\n", uLength, cbFrameBodySize);
|
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "uLength: %d, %d\n", uLength, cbFrameBodySize);
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "cbReqCount:%d, %d, %d, %d\n", cbReqCount, cbHeaderLength, uPadding, cbIVlen);
|
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "cbReqCount:%d, %d, %d, %d\n", cbReqCount, cbHeaderLength, uPadding, cbIVlen);
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "MIC:%x, %x\n", *pdwMIC_L, *pdwMIC_R);
|
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "MIC:%x, %x\n", *pdwMIC_L, *pdwMIC_R);
|
||||||
/*
|
|
||||||
for (ii = 0; ii < 8; ii++) {
|
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "%02x ", *(((unsigned char *)(pdwMIC_L) + ii)));
|
|
||||||
}
|
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "\n");
|
|
||||||
*/
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1917,12 +1863,9 @@ s_cbFillTxBufHead(PSDevice pDevice, unsigned char byPktType, unsigned char *pbyT
|
|||||||
|
|
||||||
pDevice->iTDUsed[uDMAIdx]++;
|
pDevice->iTDUsed[uDMAIdx]++;
|
||||||
|
|
||||||
// DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO " ptdCurr->m_dwReserved0[%d] ptdCurr->m_dwReserved1[%d].\n", ptdCurr->pTDInfo->dwReqCount, ptdCurr->pTDInfo->dwHeaderLength);
|
|
||||||
// DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO " cbHeaderLength[%d]\n", cbHeaderLength);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
*puMACfragNum = uMACfragNum;
|
*puMACfragNum = uMACfragNum;
|
||||||
//DBG_PRTGRP03(("s_cbFillTxBufHead END\n"));
|
|
||||||
return cbHeaderLength;
|
return cbHeaderLength;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2031,10 +1974,6 @@ vGenerateFIFOHeader(PSDevice pDevice, unsigned char byPktType, unsigned char *pb
|
|||||||
#endif
|
#endif
|
||||||
pTxBufHead->byTxPower = pDevice->byCurPwr;
|
pTxBufHead->byTxPower = pDevice->byCurPwr;
|
||||||
|
|
||||||
/*
|
|
||||||
if (pDevice->bEnableHostWEP)
|
|
||||||
pTxBufHead->wFragCtl &= ~(FRAGCTL_TKIP | FRAGCTL_LEGACY |FRAGCTL_AES);
|
|
||||||
*/
|
|
||||||
*pcbHeaderSize = s_cbFillTxBufHead(pDevice, byPktType, pbyTxBufferAddr, cbPayloadSize,
|
*pcbHeaderSize = s_cbFillTxBufHead(pDevice, byPktType, pbyTxBufferAddr, cbPayloadSize,
|
||||||
uDMAIdx, pHeadTD, psEthHeader, pPacket, bNeedEncrypt,
|
uDMAIdx, pHeadTD, psEthHeader, pPacket, bNeedEncrypt,
|
||||||
pTransmitKey, uNodeIndex, puMACfragNum);
|
pTransmitKey, uNodeIndex, puMACfragNum);
|
||||||
@ -2075,7 +2014,7 @@ vGenerateMACHeader(
|
|||||||
{
|
{
|
||||||
PS802_11Header pMACHeader = (PS802_11Header)pbyBufferAddr;
|
PS802_11Header pMACHeader = (PS802_11Header)pbyBufferAddr;
|
||||||
|
|
||||||
memset(pMACHeader, 0, (sizeof(S802_11Header))); //- sizeof(pMACHeader->dwIV)));
|
memset(pMACHeader, 0, (sizeof(S802_11Header)));
|
||||||
|
|
||||||
if (uDMAIdx == TYPE_ATIMDMA) {
|
if (uDMAIdx == TYPE_ATIMDMA) {
|
||||||
pMACHeader->wFrameCtl = TYPE_802_11_ATIM;
|
pMACHeader->wFrameCtl = TYPE_802_11_ATIM;
|
||||||
@ -2247,8 +2186,6 @@ CMD_STATUS csMgmt_xmit(PSDevice pDevice, PSTxMgmtPacket pPacket) {
|
|||||||
cbICVlen = 4;
|
cbICVlen = 4;
|
||||||
pTxBufHead->wFragCtl |= FRAGCTL_TKIP;
|
pTxBufHead->wFragCtl |= FRAGCTL_TKIP;
|
||||||
//We need to get seed here for filling TxKey entry.
|
//We need to get seed here for filling TxKey entry.
|
||||||
//TKIPvMixKey(pTransmitKey->abyKey, pDevice->abyCurrentNetAddr,
|
|
||||||
// pTransmitKey->wTSC15_0, pTransmitKey->dwTSC47_16, pDevice->abyPRNG);
|
|
||||||
} else if (pDevice->eEncryptionStatus == Ndis802_11Encryption3Enabled) {
|
} else if (pDevice->eEncryptionStatus == Ndis802_11Encryption3Enabled) {
|
||||||
cbIVlen = 8;//RSN Header
|
cbIVlen = 8;//RSN Header
|
||||||
cbICVlen = 8;//MIC
|
cbICVlen = 8;//MIC
|
||||||
@ -2613,7 +2550,6 @@ vDMA0_tx_80211(PSDevice pDevice, struct sk_buff *skb, unsigned char *pbMPDU, un
|
|||||||
unsigned char *pbyMacHdr;
|
unsigned char *pbyMacHdr;
|
||||||
|
|
||||||
unsigned int cbExtSuppRate = 0;
|
unsigned int cbExtSuppRate = 0;
|
||||||
// PWLAN_IE pItem;
|
|
||||||
|
|
||||||
pvRrvTime = pMICHDR = pvRTS = pvCTS = pvTxDataHd = NULL;
|
pvRrvTime = pMICHDR = pvRTS = pvCTS = pvTxDataHd = NULL;
|
||||||
|
|
||||||
@ -2736,8 +2672,6 @@ vDMA0_tx_80211(PSDevice pDevice, struct sk_buff *skb, unsigned char *pbMPDU, un
|
|||||||
cbICVlen = 4;
|
cbICVlen = 4;
|
||||||
pTxBufHead->wFragCtl |= FRAGCTL_TKIP;
|
pTxBufHead->wFragCtl |= FRAGCTL_TKIP;
|
||||||
//We need to get seed here for filling TxKey entry.
|
//We need to get seed here for filling TxKey entry.
|
||||||
//TKIPvMixKey(pTransmitKey->abyKey, pDevice->abyCurrentNetAddr,
|
|
||||||
// pTransmitKey->wTSC15_0, pTransmitKey->dwTSC47_16, pDevice->abyPRNG);
|
|
||||||
} else if (pDevice->eEncryptionStatus == Ndis802_11Encryption3Enabled) {
|
} else if (pDevice->eEncryptionStatus == Ndis802_11Encryption3Enabled) {
|
||||||
cbIVlen = 8;//RSN Header
|
cbIVlen = 8;//RSN Header
|
||||||
cbICVlen = 8;//MIC
|
cbICVlen = 8;//MIC
|
||||||
|
@ -39,17 +39,6 @@
|
|||||||
|
|
||||||
/*--------------------- Export Functions --------------------------*/
|
/*--------------------- Export Functions --------------------------*/
|
||||||
|
|
||||||
/*
|
|
||||||
void
|
|
||||||
vGenerateMACHeader(PSDevice pDevice, unsigned long dwTxBufferAddr, unsigned char *pbySkbData,
|
|
||||||
unsigned int cbPacketSize, bool bDMA0Used, unsigned int *pcbHeadSize,
|
|
||||||
unsigned int *pcbAppendPayload);
|
|
||||||
|
|
||||||
void
|
|
||||||
vProcessRxMACHeader(PSDevice pDevice, unsigned long dwRxBufferAddr, unsigned int cbPacketSize,
|
|
||||||
bool bIsWEP, unsigned int *pcbHeadSize);
|
|
||||||
*/
|
|
||||||
|
|
||||||
void
|
void
|
||||||
vGenerateMACHeader(
|
vGenerateMACHeader(
|
||||||
PSDevice pDevice,
|
PSDevice pDevice,
|
||||||
|
@ -189,7 +189,6 @@ void TKIPvMixKey(
|
|||||||
)
|
)
|
||||||
{
|
{
|
||||||
unsigned int p1k[5];
|
unsigned int p1k[5];
|
||||||
// unsigned int ttak0, ttak1, ttak2, ttak3, ttak4;
|
|
||||||
unsigned int tsc0, tsc1, tsc2;
|
unsigned int tsc0, tsc1, tsc2;
|
||||||
unsigned int ppk0, ppk1, ppk2, ppk3, ppk4, ppk5;
|
unsigned int ppk0, ppk1, ppk2, ppk3, ppk4, ppk5;
|
||||||
unsigned long int pnl, pnh;
|
unsigned long int pnl, pnh;
|
||||||
|
@ -39,8 +39,6 @@
|
|||||||
#include "datarate.h"
|
#include "datarate.h"
|
||||||
|
|
||||||
/*--------------------- Static Definitions -------------------------*/
|
/*--------------------- Static Definitions -------------------------*/
|
||||||
//static int msglevel =MSG_LEVEL_DEBUG;
|
|
||||||
//static int msglevel =MSG_LEVEL_INFO;
|
|
||||||
|
|
||||||
/*--------------------- Static Classes ----------------------------*/
|
/*--------------------- Static Classes ----------------------------*/
|
||||||
|
|
||||||
@ -591,46 +589,6 @@ VNTWIFIbyGetKeyCypher(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
bool
|
|
||||||
VNTWIFIbInit(
|
|
||||||
void *pAdapterHandler,
|
|
||||||
void **pMgmtHandler
|
|
||||||
) {
|
|
||||||
PSMgmtObject pMgmt = NULL;
|
|
||||||
unsigned int ii;
|
|
||||||
|
|
||||||
pMgmt = (PSMgmtObject)kmalloc(sizeof(SMgmtObject), (int)GFP_ATOMIC);
|
|
||||||
if (pMgmt == NULL) {
|
|
||||||
*pMgmtHandler = NULL;
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
memset(pMgmt, 0, sizeof(SMgmtObject));
|
|
||||||
pMgmt->pAdapter = (void *) pAdapterHandler;
|
|
||||||
|
|
||||||
// should initial MAC address abyMACAddr
|
|
||||||
for (ii=0; ii<WLAN_BSSID_LEN; ii++) {
|
|
||||||
pMgmt->abyDesireBSSID[ii] = 0xFF;
|
|
||||||
}
|
|
||||||
pMgmt->pbyPSPacketPool = &pMgmt->byPSPacketPool[0];
|
|
||||||
pMgmt->pbyMgmtPacketPool = &pMgmt->byMgmtPacketPool[0];
|
|
||||||
pMgmt->byCSSPK = KEY_CTL_NONE;
|
|
||||||
pMgmt->byCSSGK = KEY_CTL_NONE;
|
|
||||||
pMgmt->wIBSSBeaconPeriod = DEFAULT_IBSS_BI;
|
|
||||||
|
|
||||||
pMgmt->cbFreeCmdQueue = CMD_Q_SIZE;
|
|
||||||
pMgmt->uCmdDequeueIdx = 0;
|
|
||||||
pMgmt->uCmdEnqueueIdx = 0;
|
|
||||||
pMgmt->eCommandState = WLAN_CMD_STATE_IDLE;
|
|
||||||
pMgmt->bCmdStop = false;
|
|
||||||
pMgmt->bCmdRunning = false;
|
|
||||||
|
|
||||||
*pMgmtHandler = pMgmt;
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
bool
|
bool
|
||||||
VNTWIFIbSetPMKIDCache(
|
VNTWIFIbSetPMKIDCache(
|
||||||
void *pMgmtObject,
|
void *pMgmtObject,
|
||||||
@ -693,7 +651,6 @@ VNTWIFIbMeasureReport(
|
|||||||
PSMgmtObject pMgmt = (PSMgmtObject) pMgmtObject;
|
PSMgmtObject pMgmt = (PSMgmtObject) pMgmtObject;
|
||||||
unsigned char *pbyCurrentEID = (unsigned char *)(pMgmt->pCurrMeasureEIDRep);
|
unsigned char *pbyCurrentEID = (unsigned char *)(pMgmt->pCurrMeasureEIDRep);
|
||||||
|
|
||||||
//spin_lock_irq(&pDevice->lock);
|
|
||||||
if ((pvMeasureEID != NULL) &&
|
if ((pvMeasureEID != NULL) &&
|
||||||
(pMgmt->uLengthOfRepEIDs < (WLAN_A3FR_MAXLEN - sizeof(MEASEURE_REP) - sizeof(WLAN_80211HDR_A3) - 3))
|
(pMgmt->uLengthOfRepEIDs < (WLAN_A3FR_MAXLEN - sizeof(MEASEURE_REP) - sizeof(WLAN_80211HDR_A3) - 3))
|
||||||
) {
|
) {
|
||||||
@ -734,7 +691,7 @@ VNTWIFIbMeasureReport(
|
|||||||
if (bEndOfReport) {
|
if (bEndOfReport) {
|
||||||
IEEE11hbMSRRepTx(pMgmt);
|
IEEE11hbMSRRepTx(pMgmt);
|
||||||
}
|
}
|
||||||
//spin_unlock_irq(&pDevice->lock);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -746,9 +703,7 @@ VNTWIFIbChannelSwitch(
|
|||||||
{
|
{
|
||||||
PSMgmtObject pMgmt = (PSMgmtObject) pMgmtObject;
|
PSMgmtObject pMgmt = (PSMgmtObject) pMgmtObject;
|
||||||
|
|
||||||
//spin_lock_irq(&pDevice->lock);
|
|
||||||
pMgmt->uCurrChannel = byNewChannel;
|
pMgmt->uCurrChannel = byNewChannel;
|
||||||
pMgmt->bSwitchChannel = false;
|
pMgmt->bSwitchChannel = false;
|
||||||
//spin_unlock_irq(&pDevice->lock);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -222,13 +222,6 @@ VNTWIFIvGetTxRate(
|
|||||||
unsigned char *pbyCCKBasicRate,
|
unsigned char *pbyCCKBasicRate,
|
||||||
unsigned char *pbyOFDMBasicRate
|
unsigned char *pbyOFDMBasicRate
|
||||||
);
|
);
|
||||||
/*
|
|
||||||
bool
|
|
||||||
VNTWIFIbInit(
|
|
||||||
void *pAdapterHandler,
|
|
||||||
void **pMgmtHandler
|
|
||||||
);
|
|
||||||
*/
|
|
||||||
|
|
||||||
unsigned char
|
unsigned char
|
||||||
VNTWIFIbyGetKeyCypher(
|
VNTWIFIbyGetKeyCypher(
|
||||||
@ -276,12 +269,5 @@ VNTWIFIbChannelSwitch(
|
|||||||
void *pMgmtObject,
|
void *pMgmtObject,
|
||||||
unsigned char byNewChannel
|
unsigned char byNewChannel
|
||||||
);
|
);
|
||||||
/*
|
|
||||||
bool
|
|
||||||
VNTWIFIbRadarPresent(
|
|
||||||
void *pMgmtObject,
|
|
||||||
unsigned char byChannel
|
|
||||||
);
|
|
||||||
*/
|
|
||||||
|
|
||||||
#endif //__VNTWIFI_H__
|
#endif //__VNTWIFI_H__
|
||||||
|
@ -60,7 +60,6 @@
|
|||||||
|
|
||||||
/*--------------------- Static Variables --------------------------*/
|
/*--------------------- Static Variables --------------------------*/
|
||||||
static int msglevel = MSG_LEVEL_INFO;
|
static int msglevel = MSG_LEVEL_INFO;
|
||||||
//static int msglevel =MSG_LEVEL_DEBUG;
|
|
||||||
/*--------------------- Static Functions --------------------------*/
|
/*--------------------- Static Functions --------------------------*/
|
||||||
|
|
||||||
static
|
static
|
||||||
@ -377,7 +376,6 @@ vCommandTimer(
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (pMgmt->uScanChannel == pDevice->byMinChannel) {
|
if (pMgmt->uScanChannel == pDevice->byMinChannel) {
|
||||||
//pMgmt->eScanType = WMAC_SCAN_ACTIVE;
|
|
||||||
pMgmt->abyScanBSSID[0] = 0xFF;
|
pMgmt->abyScanBSSID[0] = 0xFF;
|
||||||
pMgmt->abyScanBSSID[1] = 0xFF;
|
pMgmt->abyScanBSSID[1] = 0xFF;
|
||||||
pMgmt->abyScanBSSID[2] = 0xFF;
|
pMgmt->abyScanBSSID[2] = 0xFF;
|
||||||
@ -385,8 +383,6 @@ vCommandTimer(
|
|||||||
pMgmt->abyScanBSSID[4] = 0xFF;
|
pMgmt->abyScanBSSID[4] = 0xFF;
|
||||||
pMgmt->abyScanBSSID[5] = 0xFF;
|
pMgmt->abyScanBSSID[5] = 0xFF;
|
||||||
pItemSSID->byElementID = WLAN_EID_SSID;
|
pItemSSID->byElementID = WLAN_EID_SSID;
|
||||||
// clear bssid list
|
|
||||||
// BSSvClearBSSList((void *)pDevice, pDevice->bLinkPass);
|
|
||||||
pMgmt->eScanState = WMAC_IS_SCANNING;
|
pMgmt->eScanState = WMAC_IS_SCANNING;
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -468,7 +464,6 @@ vCommandTimer(
|
|||||||
memset(pItemSSID->abySSID, 0, WLAN_SSID_MAXLEN);
|
memset(pItemSSID->abySSID, 0, WLAN_SSID_MAXLEN);
|
||||||
pMgmt->eCurrState = WMAC_STATE_IDLE;
|
pMgmt->eCurrState = WMAC_STATE_IDLE;
|
||||||
pMgmt->sNodeDBTable[0].bActive = false;
|
pMgmt->sNodeDBTable[0].bActive = false;
|
||||||
// pDevice->bBeaconBufReady = false;
|
|
||||||
}
|
}
|
||||||
netif_stop_queue(pDevice->dev);
|
netif_stop_queue(pDevice->dev);
|
||||||
pDevice->eCommandState = WLAN_DISASSOCIATE_WAIT;
|
pDevice->eCommandState = WLAN_DISASSOCIATE_WAIT;
|
||||||
@ -480,7 +475,6 @@ vCommandTimer(
|
|||||||
}
|
}
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO " CARDbRadioPowerOff\n");
|
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO " CARDbRadioPowerOff\n");
|
||||||
//2008-09-02 <mark> by chester
|
//2008-09-02 <mark> by chester
|
||||||
// CARDbRadioPowerOff(pDevice);
|
|
||||||
s_bCommandComplete(pDevice);
|
s_bCommandComplete(pDevice);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -492,7 +486,6 @@ vCommandTimer(
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
//2008-09-02 <mark> by chester
|
//2008-09-02 <mark> by chester
|
||||||
// CARDbRadioPowerOff(pDevice);
|
|
||||||
s_bCommandComplete(pDevice);
|
s_bCommandComplete(pDevice);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -504,8 +497,6 @@ vCommandTimer(
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
printk("chester-abyDesireSSID=%s\n", ((PWLAN_IE_SSID)pMgmt->abyDesireSSID)->abySSID);
|
printk("chester-abyDesireSSID=%s\n", ((PWLAN_IE_SSID)pMgmt->abyDesireSSID)->abySSID);
|
||||||
//memcpy(pMgmt->abyAdHocSSID,pMgmt->abyDesireSSID,
|
|
||||||
//((PWLAN_IE_SSID)pMgmt->abyDesireSSID)->len + WLAN_IEHDR_LEN);
|
|
||||||
pItemSSID = (PWLAN_IE_SSID)pMgmt->abyDesireSSID;
|
pItemSSID = (PWLAN_IE_SSID)pMgmt->abyDesireSSID;
|
||||||
pItemSSIDCurr = (PWLAN_IE_SSID)pMgmt->abyCurrSSID;
|
pItemSSIDCurr = (PWLAN_IE_SSID)pMgmt->abyCurrSSID;
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO " cmd: desire ssid = %s\n", pItemSSID->abySSID);
|
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO " cmd: desire ssid = %s\n", pItemSSID->abySSID);
|
||||||
@ -785,7 +776,6 @@ vCommandTimer(
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case WLAN_CMD_CHECK_BBSENSITIVITY_CHANGE:
|
case WLAN_CMD_CHECK_BBSENSITIVITY_CHANGE:
|
||||||
//DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "eCommandState == WLAN_CMD_CHECK_BBSENSITIVITY_START\n");
|
|
||||||
// wait all TD complete
|
// wait all TD complete
|
||||||
if (pDevice->iTDUsed[TYPE_AC0DMA] != 0) {
|
if (pDevice->iTDUsed[TYPE_AC0DMA] != 0) {
|
||||||
vCommandTimerWait((void *)pDevice, 10);
|
vCommandTimerWait((void *)pDevice, 10);
|
||||||
@ -820,7 +810,6 @@ s_bCommandComplete(
|
|||||||
{
|
{
|
||||||
PWLAN_IE_SSID pSSID;
|
PWLAN_IE_SSID pSSID;
|
||||||
bool bRadioCmd = false;
|
bool bRadioCmd = false;
|
||||||
//unsigned short wDeAuthenReason = 0;
|
|
||||||
bool bForceSCAN = true;
|
bool bForceSCAN = true;
|
||||||
PSMgmtObject pMgmt = pDevice->pMgmt;
|
PSMgmtObject pMgmt = pDevice->pMgmt;
|
||||||
|
|
||||||
@ -847,14 +836,6 @@ s_bCommandComplete(
|
|||||||
} else {
|
} else {
|
||||||
memset(pMgmt->abyScanSSID, 0, WLAN_IEHDR_LEN + WLAN_SSID_MAXLEN + 1);
|
memset(pMgmt->abyScanSSID, 0, WLAN_IEHDR_LEN + WLAN_SSID_MAXLEN + 1);
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
if ((bForceSCAN == false) && (pDevice->bLinkPass == true)) {
|
|
||||||
if ((pSSID->len == ((PWLAN_IE_SSID)pMgmt->abyCurrSSID)->len) &&
|
|
||||||
(!memcmp(pSSID->abySSID, ((PWLAN_IE_SSID)pMgmt->abyCurrSSID)->abySSID, pSSID->len))) {
|
|
||||||
pDevice->eCommandState = WLAN_CMD_IDLE;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
break;
|
break;
|
||||||
case WLAN_CMD_SSID:
|
case WLAN_CMD_SSID:
|
||||||
pDevice->eCommandState = WLAN_CMD_SSID_START;
|
pDevice->eCommandState = WLAN_CMD_SSID_START;
|
||||||
@ -923,11 +904,6 @@ bool bScheduleCommand(
|
|||||||
case WLAN_CMD_DISASSOCIATE:
|
case WLAN_CMD_DISASSOCIATE:
|
||||||
pDevice->eCmdQueue[pDevice->uCmdEnqueueIdx].bNeedRadioOFF = *((int *)pbyItem0);
|
pDevice->eCmdQueue[pDevice->uCmdEnqueueIdx].bNeedRadioOFF = *((int *)pbyItem0);
|
||||||
break;
|
break;
|
||||||
/*
|
|
||||||
case WLAN_CMD_DEAUTH:
|
|
||||||
pDevice->eCmdQueue[pDevice->uCmdEnqueueIdx].wDeAuthenReason = *((unsigned short *)pbyItem0);
|
|
||||||
break;
|
|
||||||
*/
|
|
||||||
|
|
||||||
case WLAN_CMD_RX_PSPOLL:
|
case WLAN_CMD_RX_PSPOLL:
|
||||||
break;
|
break;
|
||||||
@ -948,10 +924,9 @@ bool bScheduleCommand(
|
|||||||
ADD_ONE_WITH_WRAP_AROUND(pDevice->uCmdEnqueueIdx, CMD_Q_SIZE);
|
ADD_ONE_WITH_WRAP_AROUND(pDevice->uCmdEnqueueIdx, CMD_Q_SIZE);
|
||||||
pDevice->cbFreeCmdQueue--;
|
pDevice->cbFreeCmdQueue--;
|
||||||
|
|
||||||
if (!pDevice->bCmdRunning) {
|
if (!pDevice->bCmdRunning)
|
||||||
s_bCommandComplete(pDevice);
|
s_bCommandComplete(pDevice);
|
||||||
} else {
|
|
||||||
}
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -43,7 +43,7 @@
|
|||||||
/*--------------------- Static Classes ----------------------------*/
|
/*--------------------- Static Classes ----------------------------*/
|
||||||
|
|
||||||
/*--------------------- Static Variables --------------------------*/
|
/*--------------------- Static Variables --------------------------*/
|
||||||
// static int msglevel =MSG_LEVEL_INFO;
|
|
||||||
/*--------------------- Static Functions --------------------------*/
|
/*--------------------- Static Functions --------------------------*/
|
||||||
|
|
||||||
/*--------------------- Export Variables --------------------------*/
|
/*--------------------- Export Variables --------------------------*/
|
||||||
@ -113,7 +113,6 @@ unsigned int WCTLuSearchDFCB(PSDevice pDevice, PS802_11Header pMACHeader)
|
|||||||
if (pDevice->sRxDFCB[ii].bInUse &&
|
if (pDevice->sRxDFCB[ii].bInUse &&
|
||||||
ether_addr_equal(pDevice->sRxDFCB[ii].abyAddr2,
|
ether_addr_equal(pDevice->sRxDFCB[ii].abyAddr2,
|
||||||
pMACHeader->abyAddr2)) {
|
pMACHeader->abyAddr2)) {
|
||||||
//
|
|
||||||
return ii;
|
return ii;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -202,7 +201,6 @@ bool WCTLbHandleFragment(PSDevice pDevice, PS802_11Header pMACHeader, unsigned i
|
|||||||
pDevice->sRxDFCB[pDevice->uCurrentDFCBIdx].cbFrameLength = cbFrameLength;
|
pDevice->sRxDFCB[pDevice->uCurrentDFCBIdx].cbFrameLength = cbFrameLength;
|
||||||
pDevice->sRxDFCB[pDevice->uCurrentDFCBIdx].pbyRxBuffer += cbFrameLength;
|
pDevice->sRxDFCB[pDevice->uCurrentDFCBIdx].pbyRxBuffer += cbFrameLength;
|
||||||
pDevice->sRxDFCB[pDevice->uCurrentDFCBIdx].wFragNum++;
|
pDevice->sRxDFCB[pDevice->uCurrentDFCBIdx].wFragNum++;
|
||||||
//DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "First pDevice->uCurrentDFCBIdx= %d\n", pDevice->uCurrentDFCBIdx);
|
|
||||||
return false;
|
return false;
|
||||||
} else {
|
} else {
|
||||||
pDevice->uCurrentDFCBIdx = WCTLuSearchDFCB(pDevice, pMACHeader);
|
pDevice->uCurrentDFCBIdx = WCTLuSearchDFCB(pDevice, pMACHeader);
|
||||||
@ -214,7 +212,6 @@ bool WCTLbHandleFragment(PSDevice pDevice, PS802_11Header pMACHeader, unsigned i
|
|||||||
pDevice->sRxDFCB[pDevice->uCurrentDFCBIdx].cbFrameLength += (cbFrameLength - uHeaderSize);
|
pDevice->sRxDFCB[pDevice->uCurrentDFCBIdx].cbFrameLength += (cbFrameLength - uHeaderSize);
|
||||||
pDevice->sRxDFCB[pDevice->uCurrentDFCBIdx].pbyRxBuffer += (cbFrameLength - uHeaderSize);
|
pDevice->sRxDFCB[pDevice->uCurrentDFCBIdx].pbyRxBuffer += (cbFrameLength - uHeaderSize);
|
||||||
pDevice->sRxDFCB[pDevice->uCurrentDFCBIdx].wFragNum++;
|
pDevice->sRxDFCB[pDevice->uCurrentDFCBIdx].wFragNum++;
|
||||||
//DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Second pDevice->uCurrentDFCBIdx= %d\n", pDevice->uCurrentDFCBIdx);
|
|
||||||
} else {
|
} else {
|
||||||
// seq error or frag # error flush DFCB
|
// seq error or frag # error flush DFCB
|
||||||
pDevice->cbFreeDFCB++;
|
pDevice->cbFreeDFCB++;
|
||||||
@ -228,7 +225,6 @@ bool WCTLbHandleFragment(PSDevice pDevice, PS802_11Header pMACHeader, unsigned i
|
|||||||
//enq defragcontrolblock
|
//enq defragcontrolblock
|
||||||
pDevice->cbFreeDFCB++;
|
pDevice->cbFreeDFCB++;
|
||||||
pDevice->sRxDFCB[pDevice->uCurrentDFCBIdx].bInUse = false;
|
pDevice->sRxDFCB[pDevice->uCurrentDFCBIdx].bInUse = false;
|
||||||
//DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Last pDevice->uCurrentDFCBIdx= %d\n", pDevice->uCurrentDFCBIdx);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
@ -88,7 +88,6 @@
|
|||||||
|
|
||||||
/*--------------------- Static Variables --------------------------*/
|
/*--------------------- Static Variables --------------------------*/
|
||||||
static int msglevel = MSG_LEVEL_INFO;
|
static int msglevel = MSG_LEVEL_INFO;
|
||||||
//static int msglevel =MSG_LEVEL_DEBUG;
|
|
||||||
|
|
||||||
/*--------------------- Static Functions --------------------------*/
|
/*--------------------- Static Functions --------------------------*/
|
||||||
//2008-8-4 <add> by chester
|
//2008-8-4 <add> by chester
|
||||||
@ -355,7 +354,6 @@ vMgrObjectInit(
|
|||||||
pMgmt->abyDesireBSSID[ii] = 0xFF;
|
pMgmt->abyDesireBSSID[ii] = 0xFF;
|
||||||
}
|
}
|
||||||
pMgmt->sAssocInfo.AssocInfo.Length = sizeof(NDIS_802_11_ASSOCIATION_INFORMATION);
|
pMgmt->sAssocInfo.AssocInfo.Length = sizeof(NDIS_802_11_ASSOCIATION_INFORMATION);
|
||||||
//memset(pMgmt->abyDesireSSID, 0, WLAN_IEHDR_LEN + WLAN_SSID_MAXLEN +1);
|
|
||||||
pMgmt->byCSSPK = KEY_CTL_NONE;
|
pMgmt->byCSSPK = KEY_CTL_NONE;
|
||||||
pMgmt->byCSSGK = KEY_CTL_NONE;
|
pMgmt->byCSSGK = KEY_CTL_NONE;
|
||||||
pMgmt->wIBSSBeaconPeriod = DEFAULT_IBSS_BI;
|
pMgmt->wIBSSBeaconPeriod = DEFAULT_IBSS_BI;
|
||||||
@ -1384,11 +1382,6 @@ s_vMgrRxAuthenSequence_2(
|
|||||||
s_vMgrLogStatus(pMgmt, cpu_to_le16((*(pFrame->pwStatus))));
|
s_vMgrLogStatus(pMgmt, cpu_to_le16((*(pFrame->pwStatus))));
|
||||||
pMgmt->eCurrState = WMAC_STATE_IDLE;
|
pMgmt->eCurrState = WMAC_STATE_IDLE;
|
||||||
}
|
}
|
||||||
if (pDevice->eCommandState == WLAN_AUTHENTICATE_WAIT) {
|
|
||||||
// spin_unlock_irq(&pDevice->lock);
|
|
||||||
// vCommandTimerWait((void *)pDevice, 0);
|
|
||||||
// spin_lock_irq(&pDevice->lock);
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -1430,11 +1423,6 @@ s_vMgrRxAuthenSequence_2(
|
|||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Mgt:Auth_reply sequence_2 tx ...\n");
|
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Mgt:Auth_reply sequence_2 tx ...\n");
|
||||||
} else {
|
} else {
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Mgt:rx Auth_reply sequence_2 status error ...\n");
|
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Mgt:rx Auth_reply sequence_2 status error ...\n");
|
||||||
if (pDevice->eCommandState == WLAN_AUTHENTICATE_WAIT) {
|
|
||||||
// spin_unlock_irq(&pDevice->lock);
|
|
||||||
// vCommandTimerWait((void *)pDevice, 0);
|
|
||||||
// spin_lock_irq(&pDevice->lock);
|
|
||||||
}
|
|
||||||
s_vMgrLogStatus(pMgmt, cpu_to_le16((*(pFrame->pwStatus))));
|
s_vMgrLogStatus(pMgmt, cpu_to_le16((*(pFrame->pwStatus))));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -1559,12 +1547,6 @@ s_vMgrRxAuthenSequence_4(
|
|||||||
s_vMgrLogStatus(pMgmt, cpu_to_le16((*(pFrame->pwStatus))));
|
s_vMgrLogStatus(pMgmt, cpu_to_le16((*(pFrame->pwStatus))));
|
||||||
pMgmt->eCurrState = WMAC_STATE_IDLE;
|
pMgmt->eCurrState = WMAC_STATE_IDLE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pDevice->eCommandState == WLAN_AUTHENTICATE_WAIT) {
|
|
||||||
// spin_unlock_irq(&pDevice->lock);
|
|
||||||
// vCommandTimerWait((void *)pDevice, 0);
|
|
||||||
// spin_lock_irq(&pDevice->lock);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*+
|
/*+
|
||||||
@ -1588,7 +1570,6 @@ s_vMgrRxDisassociation(
|
|||||||
{
|
{
|
||||||
WLAN_FR_DISASSOC sFrame;
|
WLAN_FR_DISASSOC sFrame;
|
||||||
unsigned int uNodeIndex = 0;
|
unsigned int uNodeIndex = 0;
|
||||||
// CMD_STATUS CmdStatus;
|
|
||||||
viawget_wpa_header *wpahdr;
|
viawget_wpa_header *wpahdr;
|
||||||
|
|
||||||
if (pMgmt->eCurrMode == WMAC_MODE_ESS_AP) {
|
if (pMgmt->eCurrMode == WMAC_MODE_ESS_AP) {
|
||||||
@ -1871,7 +1852,6 @@ s_vMgrRxBeacon(
|
|||||||
(void *)pRxPacket
|
(void *)pRxPacket
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
// DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "update bcn: RxChannel = : %d\n", byCurrChannel);
|
|
||||||
BSSbUpdateToBSSList((void *)pDevice,
|
BSSbUpdateToBSSList((void *)pDevice,
|
||||||
*sFrame.pqwTimestamp,
|
*sFrame.pqwTimestamp,
|
||||||
*sFrame.pwBeaconInterval,
|
*sFrame.pwBeaconInterval,
|
||||||
@ -1942,10 +1922,8 @@ s_vMgrRxBeacon(
|
|||||||
pDevice->uCurrRSSI = pRxPacket->uRSSI;
|
pDevice->uCurrRSSI = pRxPacket->uRSSI;
|
||||||
pDevice->byCurrSQ = pRxPacket->bySQ;
|
pDevice->byCurrSQ = pRxPacket->bySQ;
|
||||||
|
|
||||||
if (pMgmt->sNodeDBTable[0].uInActiveCount != 0) {
|
if (pMgmt->sNodeDBTable[0].uInActiveCount != 0)
|
||||||
pMgmt->sNodeDBTable[0].uInActiveCount = 0;
|
pMgmt->sNodeDBTable[0].uInActiveCount = 0;
|
||||||
//DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "BCN:Wake Count= [%d]\n", pMgmt->wCountToWakeUp);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
// check if SSID the same
|
// check if SSID the same
|
||||||
if (sFrame.pSSID->len == ((PWLAN_IE_SSID)pMgmt->abyCurrSSID)->len) {
|
if (sFrame.pSSID->len == ((PWLAN_IE_SSID)pMgmt->abyCurrSSID)->len) {
|
||||||
@ -2101,11 +2079,9 @@ s_vMgrRxBeacon(
|
|||||||
(pMgmt->bMulticastTIM && (pMgmt->byDTIMCount == 0))) {
|
(pMgmt->bMulticastTIM && (pMgmt->byDTIMCount == 0))) {
|
||||||
pMgmt->bInTIMWake = true;
|
pMgmt->bInTIMWake = true;
|
||||||
// send out ps-poll packet
|
// send out ps-poll packet
|
||||||
// DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "BCN:In TIM\n");
|
|
||||||
if (pMgmt->bInTIM) {
|
if (pMgmt->bInTIM)
|
||||||
PSvSendPSPOLL((PSDevice)pDevice);
|
PSvSendPSPOLL((PSDevice)pDevice);
|
||||||
// DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "BCN:PS-POLL sent..\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
pMgmt->bInTIMWake = false;
|
pMgmt->bInTIMWake = false;
|
||||||
@ -2181,11 +2157,6 @@ s_vMgrRxBeacon(
|
|||||||
printk("s_vMgrRxBeacon:TxDataRate is %d,Index is %d\n", pMgmt->sNodeDBTable[uNodeIndex].wTxDataRate, uNodeIndex);
|
printk("s_vMgrRxBeacon:TxDataRate is %d,Index is %d\n", pMgmt->sNodeDBTable[uNodeIndex].wTxDataRate, uNodeIndex);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
/*
|
|
||||||
pMgmt->sNodeDBTable[uNodeIndex].bShortSlotTime = WLAN_GET_CAP_INFO_SHORTSLOTTIME(*sFrame.pwCapInfo);
|
|
||||||
if (pMgmt->sNodeDBTable[uNodeIndex].wMaxSuppRate > RATE_11M)
|
|
||||||
pMgmt->sNodeDBTable[uNodeIndex].bERPExist = true;
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// if other stations joined, indicate connection to upper layer..
|
// if other stations joined, indicate connection to upper layer..
|
||||||
@ -2230,12 +2201,8 @@ s_vMgrRxBeacon(
|
|||||||
pMgmt->abyCurrSuppRates,
|
pMgmt->abyCurrSuppRates,
|
||||||
pMgmt->abyCurrExtSuppRates);
|
pMgmt->abyCurrExtSuppRates);
|
||||||
|
|
||||||
// MACvRegBitsOff(pDevice->PortOffset, MAC_REG_RCR, RCR_BSSID);
|
|
||||||
// set highest basic rate
|
|
||||||
// s_vSetHighestBasicRate(pDevice, (PWLAN_IE_SUPP_RATES)pMgmt->abyCurrSuppRates);
|
|
||||||
// Prepare beacon frame
|
// Prepare beacon frame
|
||||||
bMgrPrepareBeaconToSend((void *)pDevice, pMgmt);
|
bMgrPrepareBeaconToSend((void *)pDevice, pMgmt);
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2383,8 +2350,6 @@ vMgrCreateOwnIBSS(
|
|||||||
MACvWriteATIMW(pDevice->PortOffset, pMgmt->wCurrATIMWindow);
|
MACvWriteATIMW(pDevice->PortOffset, pMgmt->wCurrATIMWindow);
|
||||||
pDevice->uCurrRSSI = 0;
|
pDevice->uCurrRSSI = 0;
|
||||||
pDevice->byCurrSQ = 0;
|
pDevice->byCurrSQ = 0;
|
||||||
//memcpy(pMgmt->abyDesireSSID,pMgmt->abyAdHocSSID,
|
|
||||||
// ((PWLAN_IE_SSID)pMgmt->abyAdHocSSID)->len + WLAN_IEHDR_LEN);
|
|
||||||
memset(pMgmt->abyCurrSSID, 0, WLAN_IEHDR_LEN + WLAN_SSID_MAXLEN + 1);
|
memset(pMgmt->abyCurrSSID, 0, WLAN_IEHDR_LEN + WLAN_SSID_MAXLEN + 1);
|
||||||
memcpy(pMgmt->abyCurrSSID,
|
memcpy(pMgmt->abyCurrSSID,
|
||||||
pMgmt->abyDesireSSID,
|
pMgmt->abyDesireSSID,
|
||||||
@ -2453,8 +2418,6 @@ vMgrCreateOwnIBSS(
|
|||||||
|
|
||||||
pMgmt->byERPContext = 0;
|
pMgmt->byERPContext = 0;
|
||||||
|
|
||||||
// memcpy(pDevice->abyBSSID, pMgmt->abyCurrBSSID, WLAN_BSSID_LEN);
|
|
||||||
|
|
||||||
if (pMgmt->eConfigMode == WMAC_CONFIG_AP) {
|
if (pMgmt->eConfigMode == WMAC_CONFIG_AP) {
|
||||||
CARDbSetBSSID(pMgmt->pAdapter, pMgmt->abyCurrBSSID, OP_MODE_AP);
|
CARDbSetBSSID(pMgmt->pAdapter, pMgmt->abyCurrBSSID, OP_MODE_AP);
|
||||||
} else {
|
} else {
|
||||||
@ -2540,7 +2503,6 @@ vMgrJoinBSSBegin(
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// memset(pMgmt->abyDesireBSSID, 0, WLAN_BSSID_LEN);
|
|
||||||
// Search known BSS list for prefer BSSID or SSID
|
// Search known BSS list for prefer BSSID or SSID
|
||||||
|
|
||||||
pCurr = BSSpSearchBSSList(pDevice,
|
pCurr = BSSpSearchBSSList(pDevice,
|
||||||
@ -2560,23 +2522,6 @@ vMgrJoinBSSBegin(
|
|||||||
if (WLAN_GET_CAP_INFO_ESS(cpu_to_le16(pCurr->wCapInfo))) {
|
if (WLAN_GET_CAP_INFO_ESS(cpu_to_le16(pCurr->wCapInfo))) {
|
||||||
if ((pMgmt->eAuthenMode == WMAC_AUTH_WPA) || (pMgmt->eAuthenMode == WMAC_AUTH_WPAPSK)) {
|
if ((pMgmt->eAuthenMode == WMAC_AUTH_WPA) || (pMgmt->eAuthenMode == WMAC_AUTH_WPAPSK)) {
|
||||||
// patch for CISCO migration mode
|
// patch for CISCO migration mode
|
||||||
/*
|
|
||||||
if (pDevice->eEncryptionStatus == Ndis802_11Encryption2Enabled) {
|
|
||||||
if (WPA_SearchRSN(0, WPA_TKIP, pCurr) == false) {
|
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "No match RSN info. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n");
|
|
||||||
// encryption mode error
|
|
||||||
pMgmt->eCurrState = WMAC_STATE_IDLE;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
} else if (pDevice->eEncryptionStatus == Ndis802_11Encryption3Enabled) {
|
|
||||||
if (WPA_SearchRSN(0, WPA_AESCCMP, pCurr) == false) {
|
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "No match RSN info. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n");
|
|
||||||
// encryption mode error
|
|
||||||
pMgmt->eCurrState = WMAC_STATE_IDLE;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef WPA_SUPPLICANT_DRIVER_WEXT_SUPPORT
|
#ifdef WPA_SUPPLICANT_DRIVER_WEXT_SUPPORT
|
||||||
@ -2647,9 +2592,6 @@ vMgrJoinBSSBegin(
|
|||||||
pMgmt->eCurrMode = WMAC_MODE_ESS_STA;
|
pMgmt->eCurrMode = WMAC_MODE_ESS_STA;
|
||||||
|
|
||||||
pMgmt->eCurrState = WMAC_STATE_JOINTED;
|
pMgmt->eCurrState = WMAC_STATE_JOINTED;
|
||||||
// Adopt BSS state in Adapter Device Object
|
|
||||||
//pDevice->byOpMode = OP_MODE_INFRASTRUCTURE;
|
|
||||||
// memcpy(pDevice->abyBSSID, pCurr->abyBSSID, WLAN_BSSID_LEN);
|
|
||||||
|
|
||||||
// Add current BSS to Candidate list
|
// Add current BSS to Candidate list
|
||||||
// This should only works for WPA2 BSS, and WPA2 BSS check must be done before.
|
// This should only works for WPA2 BSS, and WPA2 BSS check must be done before.
|
||||||
@ -2721,15 +2663,10 @@ vMgrJoinBSSBegin(
|
|||||||
memset(pMgmt->abyCurrSSID, 0, WLAN_IEHDR_LEN + WLAN_SSID_MAXLEN);
|
memset(pMgmt->abyCurrSSID, 0, WLAN_IEHDR_LEN + WLAN_SSID_MAXLEN);
|
||||||
memcpy(pMgmt->abyCurrBSSID, pCurr->abyBSSID, WLAN_BSSID_LEN);
|
memcpy(pMgmt->abyCurrBSSID, pCurr->abyBSSID, WLAN_BSSID_LEN);
|
||||||
memcpy(pMgmt->abyCurrSSID, pCurr->abySSID, WLAN_IEHDR_LEN + WLAN_SSID_MAXLEN);
|
memcpy(pMgmt->abyCurrSSID, pCurr->abySSID, WLAN_IEHDR_LEN + WLAN_SSID_MAXLEN);
|
||||||
// pMgmt->wCurrATIMWindow = pCurr->wATIMWindow;
|
|
||||||
MACvWriteATIMW(pDevice->PortOffset, pMgmt->wCurrATIMWindow);
|
MACvWriteATIMW(pDevice->PortOffset, pMgmt->wCurrATIMWindow);
|
||||||
pMgmt->eCurrMode = WMAC_MODE_IBSS_STA;
|
pMgmt->eCurrMode = WMAC_MODE_IBSS_STA;
|
||||||
|
|
||||||
pMgmt->eCurrState = WMAC_STATE_STARTED;
|
pMgmt->eCurrState = WMAC_STATE_STARTED;
|
||||||
// Adopt BSS state in Adapter Device Object
|
|
||||||
//pDevice->byOpMode = OP_MODE_ADHOC;
|
|
||||||
// pDevice->bLinkPass = true;
|
|
||||||
// memcpy(pDevice->abyBSSID, pCurr->abyBSSID, WLAN_BSSID_LEN);
|
|
||||||
|
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Join IBSS ok:%pM\n",
|
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Join IBSS ok:%pM\n",
|
||||||
pMgmt->abyCurrBSSID);
|
pMgmt->abyCurrBSSID);
|
||||||
@ -2766,7 +2703,7 @@ s_vMgrSynchBSS(
|
|||||||
{
|
{
|
||||||
CARD_PHY_TYPE ePhyType = PHY_TYPE_11B;
|
CARD_PHY_TYPE ePhyType = PHY_TYPE_11B;
|
||||||
PSMgmtObject pMgmt = pDevice->pMgmt;
|
PSMgmtObject pMgmt = pDevice->pMgmt;
|
||||||
// int ii;
|
|
||||||
//1M, 2M, 5M, 11M, 18M, 24M, 36M, 54M
|
//1M, 2M, 5M, 11M, 18M, 24M, 36M, 54M
|
||||||
unsigned char abyCurrSuppRatesG[] = {WLAN_EID_SUPP_RATES, 8, 0x02, 0x04, 0x0B, 0x16, 0x24, 0x30, 0x48, 0x6C};
|
unsigned char abyCurrSuppRatesG[] = {WLAN_EID_SUPP_RATES, 8, 0x02, 0x04, 0x0B, 0x16, 0x24, 0x30, 0x48, 0x6C};
|
||||||
unsigned char abyCurrExtSuppRatesG[] = {WLAN_EID_EXTSUPP_RATES, 4, 0x0C, 0x12, 0x18, 0x60};
|
unsigned char abyCurrExtSuppRatesG[] = {WLAN_EID_EXTSUPP_RATES, 4, 0x0C, 0x12, 0x18, 0x60};
|
||||||
@ -2884,24 +2821,6 @@ s_vMgrSynchBSS(
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
for (ii=0; ii<BB_VGA_LEVEL; ii++) {
|
|
||||||
if (pCurr->ldBmMAX< pDevice->ldBmThreshold[ii]) {
|
|
||||||
pDevice->byBBVGANew = pDevice->abyBBVGA[ii];
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (pDevice->byBBVGANew != pDevice->byBBVGACurrent) {
|
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "RSSI[%d] NewGain[%d] OldGain[%d] \n",
|
|
||||||
(int)pCurr->ldBmMAX, pDevice->byBBVGANew, pDevice->byBBVGACurrent);
|
|
||||||
printk("RSSI[%d] NewGain[%d] OldGain[%d] \n",
|
|
||||||
(int)pCurr->ldBmMAX, pDevice->byBBVGANew, pDevice->byBBVGACurrent);
|
|
||||||
BBvSetVGAGainOffset(pDevice, pDevice->byBBVGANew);
|
|
||||||
}
|
|
||||||
printk("ldBmMAX[%d] NewGain[%d] OldGain[%d] \n",
|
|
||||||
(int)pCurr->ldBmMAX, pDevice->byBBVGANew, pDevice->byBBVGACurrent);
|
|
||||||
*/
|
|
||||||
pMgmt->uCurrChannel = pCurr->uChannel;
|
pMgmt->uCurrChannel = pCurr->uChannel;
|
||||||
pMgmt->eCurrentPHYMode = ePhyType;
|
pMgmt->eCurrentPHYMode = ePhyType;
|
||||||
pMgmt->byERPContext = pCurr->sERP.byERP;
|
pMgmt->byERPContext = pCurr->sERP.byERP;
|
||||||
@ -2943,7 +2862,7 @@ static void Encyption_Rebuild(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// }
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -4228,10 +4147,7 @@ s_vMgrRxProbeRequest(
|
|||||||
sFrame.len = pRxPacket->cbMPDULen;
|
sFrame.len = pRxPacket->cbMPDULen;
|
||||||
sFrame.pBuf = (unsigned char *)pRxPacket->p80211Header;
|
sFrame.pBuf = (unsigned char *)pRxPacket->p80211Header;
|
||||||
vMgrDecodeProbeRequest(&sFrame);
|
vMgrDecodeProbeRequest(&sFrame);
|
||||||
/*
|
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Probe request rx:MAC addr:%pM\n",
|
|
||||||
sFrame.pHdr->sA3.abyAddr2);
|
|
||||||
*/
|
|
||||||
if (sFrame.pSSID->len != 0) {
|
if (sFrame.pSSID->len != 0) {
|
||||||
if (sFrame.pSSID->len != ((PWLAN_IE_SSID)pMgmt->abyCurrSSID)->len)
|
if (sFrame.pSSID->len != ((PWLAN_IE_SSID)pMgmt->abyCurrSSID)->len)
|
||||||
return;
|
return;
|
||||||
@ -4267,8 +4183,6 @@ s_vMgrRxProbeRequest(
|
|||||||
Status = csMgmt_xmit(pDevice, pTxPacket);
|
Status = csMgmt_xmit(pDevice, pTxPacket);
|
||||||
if (Status != CMD_STATUS_PENDING) {
|
if (Status != CMD_STATUS_PENDING) {
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Mgt:Probe response tx failed\n");
|
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Mgt:Probe response tx failed\n");
|
||||||
} else {
|
|
||||||
// DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Mgt:Probe response tx sending..\n");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -4361,7 +4275,6 @@ vMgrRxManagePacket(
|
|||||||
|
|
||||||
case WLAN_FSTYPE_PROBEREQ:
|
case WLAN_FSTYPE_PROBEREQ:
|
||||||
// Frame Clase = 0
|
// Frame Clase = 0
|
||||||
//DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "rx probereq\n");
|
|
||||||
s_vMgrRxProbeRequest(pDevice, pMgmt, pRxPacket);
|
s_vMgrRxProbeRequest(pDevice, pMgmt, pRxPacket);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -4374,7 +4287,6 @@ vMgrRxManagePacket(
|
|||||||
|
|
||||||
case WLAN_FSTYPE_BEACON:
|
case WLAN_FSTYPE_BEACON:
|
||||||
// Frame Clase = 0
|
// Frame Clase = 0
|
||||||
//DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "rx beacon\n");
|
|
||||||
if (pMgmt->eScanState != WMAC_NO_SCANNING) {
|
if (pMgmt->eScanState != WMAC_NO_SCANNING) {
|
||||||
bInScan = true;
|
bInScan = true;
|
||||||
}
|
}
|
||||||
@ -4442,7 +4354,6 @@ bMgrPrepareBeaconToSend(
|
|||||||
PSDevice pDevice = (PSDevice)hDeviceContext;
|
PSDevice pDevice = (PSDevice)hDeviceContext;
|
||||||
PSTxMgmtPacket pTxPacket;
|
PSTxMgmtPacket pTxPacket;
|
||||||
|
|
||||||
// pDevice->bBeaconBufReady = false;
|
|
||||||
if (pDevice->bEncryptionEnable || pDevice->bEnable8021x) {
|
if (pDevice->bEncryptionEnable || pDevice->bEnable8021x) {
|
||||||
pMgmt->wCurrCapInfo |= WLAN_SET_CAP_INFO_PRIVACY(1);
|
pMgmt->wCurrCapInfo |= WLAN_SET_CAP_INFO_PRIVACY(1);
|
||||||
} else {
|
} else {
|
||||||
@ -4455,7 +4366,7 @@ bMgrPrepareBeaconToSend(
|
|||||||
pMgmt->wCurrCapInfo,
|
pMgmt->wCurrCapInfo,
|
||||||
pMgmt->wCurrBeaconPeriod,
|
pMgmt->wCurrBeaconPeriod,
|
||||||
pMgmt->uCurrChannel,
|
pMgmt->uCurrChannel,
|
||||||
pMgmt->wCurrATIMWindow, //0,
|
pMgmt->wCurrATIMWindow,
|
||||||
(PWLAN_IE_SSID)pMgmt->abyCurrSSID,
|
(PWLAN_IE_SSID)pMgmt->abyCurrSSID,
|
||||||
(unsigned char *)pMgmt->abyCurrBSSID,
|
(unsigned char *)pMgmt->abyCurrBSSID,
|
||||||
(PWLAN_IE_SUPP_RATES)pMgmt->abyCurrSuppRates,
|
(PWLAN_IE_SUPP_RATES)pMgmt->abyCurrSuppRates,
|
||||||
|
@ -119,32 +119,6 @@ typedef struct tagSAssocInfo {
|
|||||||
} SAssocInfo, *PSAssocInfo;
|
} SAssocInfo, *PSAssocInfo;
|
||||||
//---
|
//---
|
||||||
|
|
||||||
/*
|
|
||||||
typedef enum tagWMAC_AUTHENTICATION_MODE {
|
|
||||||
WMAC_AUTH_OPEN,
|
|
||||||
WMAC_AUTH_SHAREKEY,
|
|
||||||
WMAC_AUTH_AUTO,
|
|
||||||
WMAC_AUTH_WPA,
|
|
||||||
WMAC_AUTH_WPAPSK,
|
|
||||||
WMAC_AUTH_WPANONE,
|
|
||||||
WMAC_AUTH_WPA2,
|
|
||||||
WMAC_AUTH_WPA2PSK,
|
|
||||||
WMAC_AUTH_MAX // Not a real mode, defined as upper bound
|
|
||||||
|
|
||||||
} WMAC_AUTHENTICATION_MODE, *PWMAC_AUTHENTICATION_MODE;
|
|
||||||
*/
|
|
||||||
|
|
||||||
// Pre-configured Mode (from XP)
|
|
||||||
/*
|
|
||||||
typedef enum tagWMAC_CONFIG_MODE {
|
|
||||||
WMAC_CONFIG_ESS_STA,
|
|
||||||
WMAC_CONFIG_IBSS_STA,
|
|
||||||
WMAC_CONFIG_AUTO,
|
|
||||||
WMAC_CONFIG_AP
|
|
||||||
|
|
||||||
} WMAC_CONFIG_MODE, *PWMAC_CONFIG_MODE;
|
|
||||||
*/
|
|
||||||
|
|
||||||
typedef enum tagWMAC_SCAN_TYPE {
|
typedef enum tagWMAC_SCAN_TYPE {
|
||||||
WMAC_SCAN_ACTIVE,
|
WMAC_SCAN_ACTIVE,
|
||||||
WMAC_SCAN_PASSIVE,
|
WMAC_SCAN_PASSIVE,
|
||||||
@ -232,9 +206,6 @@ typedef struct tagSMgmtObject
|
|||||||
unsigned char byCSSGK;
|
unsigned char byCSSGK;
|
||||||
unsigned char byCSSPK;
|
unsigned char byCSSPK;
|
||||||
|
|
||||||
// unsigned char abyNewSuppRates[WLAN_IEHDR_LEN + WLAN_RATES_MAXLEN];
|
|
||||||
// unsigned char abyNewExtSuppRates[WLAN_IEHDR_LEN + WLAN_RATES_MAXLEN];
|
|
||||||
|
|
||||||
// Current state vars
|
// Current state vars
|
||||||
unsigned int uCurrChannel;
|
unsigned int uCurrChannel;
|
||||||
unsigned char abyCurrSuppRates[WLAN_IEHDR_LEN + WLAN_RATES_MAXLEN + 1];
|
unsigned char abyCurrSuppRates[WLAN_IEHDR_LEN + WLAN_RATES_MAXLEN + 1];
|
||||||
@ -256,7 +227,6 @@ typedef struct tagSMgmtObject
|
|||||||
unsigned char abyDesireBSSID[WLAN_BSSID_LEN];
|
unsigned char abyDesireBSSID[WLAN_BSSID_LEN];
|
||||||
|
|
||||||
// Adhoc or AP configuration vars
|
// Adhoc or AP configuration vars
|
||||||
//unsigned char abyAdHocSSID[WLAN_IEHDR_LEN + WLAN_SSID_MAXLEN + 1];
|
|
||||||
unsigned short wIBSSBeaconPeriod;
|
unsigned short wIBSSBeaconPeriod;
|
||||||
unsigned short wIBSSATIMWindow;
|
unsigned short wIBSSATIMWindow;
|
||||||
unsigned int uIBSSChannel;
|
unsigned int uIBSSChannel;
|
||||||
|
@ -160,8 +160,7 @@ WPA_ParseRSN(
|
|||||||
;
|
;
|
||||||
} else
|
} else
|
||||||
break;
|
break;
|
||||||
//DBG_PRN_GRP14(("abyPKType[%d]: %X\n", j-1, pBSSList->abyPKType[j-1]));
|
}
|
||||||
} //for
|
|
||||||
pBSSList->wPKCount = (unsigned short)j;
|
pBSSList->wPKCount = (unsigned short)j;
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "wPKCount: %d\n", pBSSList->wPKCount);
|
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "wPKCount: %d\n", pBSSList->wPKCount);
|
||||||
}
|
}
|
||||||
@ -187,7 +186,7 @@ WPA_ParseRSN(
|
|||||||
;
|
;
|
||||||
} else
|
} else
|
||||||
break;
|
break;
|
||||||
//DBG_PRN_GRP14(("abyAuthType[%d]: %X\n", j-1, pBSSList->abyAuthType[j-1]));
|
|
||||||
}
|
}
|
||||||
if (j > 0)
|
if (j > 0)
|
||||||
pBSSList->wAuthCount = (unsigned short)j;
|
pBSSList->wAuthCount = (unsigned short)j;
|
||||||
@ -206,9 +205,6 @@ WPA_ParseRSN(
|
|||||||
pBSSList->byReplayIdx = 2 << ((*pbyCaps >> WPA_REPLAYBITSSHIFT) & WPA_REPLAYBITS);
|
pBSSList->byReplayIdx = 2 << ((*pbyCaps >> WPA_REPLAYBITSSHIFT) & WPA_REPLAYBITS);
|
||||||
pBSSList->sRSNCapObj.bRSNCapExist = true;
|
pBSSList->sRSNCapObj.bRSNCapExist = true;
|
||||||
pBSSList->sRSNCapObj.wRSNCap = *(unsigned short *)pbyCaps;
|
pBSSList->sRSNCapObj.wRSNCap = *(unsigned short *)pbyCaps;
|
||||||
//DBG_PRN_GRP14(("pbyCaps: %X\n", *pbyCaps));
|
|
||||||
//DBG_PRN_GRP14(("byDefaultK_as_PK: %X\n", pBSSList->byDefaultK_as_PK));
|
|
||||||
//DBG_PRN_GRP14(("byReplayIdx: %X\n", pBSSList->byReplayIdx));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
pBSSList->bWPAValid = true;
|
pBSSList->bWPAValid = true;
|
||||||
|
@ -37,7 +37,6 @@
|
|||||||
|
|
||||||
/*--------------------- Static Definitions -------------------------*/
|
/*--------------------- Static Definitions -------------------------*/
|
||||||
static int msglevel = MSG_LEVEL_INFO;
|
static int msglevel = MSG_LEVEL_INFO;
|
||||||
//static int msglevel =MSG_LEVEL_DEBUG;
|
|
||||||
/*--------------------- Static Classes ----------------------------*/
|
/*--------------------- Static Classes ----------------------------*/
|
||||||
|
|
||||||
/*--------------------- Static Variables --------------------------*/
|
/*--------------------- Static Variables --------------------------*/
|
||||||
|
@ -51,7 +51,6 @@ static const int frequency_list[] = {
|
|||||||
/*--------------------- Static Classes ----------------------------*/
|
/*--------------------- Static Classes ----------------------------*/
|
||||||
|
|
||||||
/*--------------------- Static Variables --------------------------*/
|
/*--------------------- Static Variables --------------------------*/
|
||||||
//static int msglevel =MSG_LEVEL_DEBUG;
|
|
||||||
static int msglevel = MSG_LEVEL_INFO;
|
static int msglevel = MSG_LEVEL_INFO;
|
||||||
|
|
||||||
/*--------------------- Static Functions --------------------------*/
|
/*--------------------- Static Functions --------------------------*/
|
||||||
@ -197,7 +196,6 @@ int wpa_set_keys(PSDevice pDevice, void *ctx,
|
|||||||
unsigned char abyKey[MAX_KEY_LEN];
|
unsigned char abyKey[MAX_KEY_LEN];
|
||||||
unsigned char abySeq[MAX_KEY_LEN];
|
unsigned char abySeq[MAX_KEY_LEN];
|
||||||
QWORD KeyRSC;
|
QWORD KeyRSC;
|
||||||
// NDIS_802_11_KEY_RSC KeyRSC;
|
|
||||||
unsigned char byKeyDecMode = KEY_CTL_WEP;
|
unsigned char byKeyDecMode = KEY_CTL_WEP;
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
int uu, ii;
|
int uu, ii;
|
||||||
@ -220,7 +218,6 @@ int wpa_set_keys(PSDevice pDevice, void *ctx,
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
//spin_unlock_irq(&pDevice->lock);
|
|
||||||
if (param->u.wpa_key.key && fcpfkernel) {
|
if (param->u.wpa_key.key && fcpfkernel) {
|
||||||
memcpy(&abyKey[0], param->u.wpa_key.key, param->u.wpa_key.key_len);
|
memcpy(&abyKey[0], param->u.wpa_key.key, param->u.wpa_key.key_len);
|
||||||
} else {
|
} else {
|
||||||
@ -259,7 +256,6 @@ int wpa_set_keys(PSDevice pDevice, void *ctx,
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
//spin_unlock_irq(&pDevice->lock);
|
|
||||||
if (param->u.wpa_key.seq && fcpfkernel) {
|
if (param->u.wpa_key.seq && fcpfkernel) {
|
||||||
memcpy(&abySeq[0], param->u.wpa_key.seq, param->u.wpa_key.seq_len);
|
memcpy(&abySeq[0], param->u.wpa_key.seq, param->u.wpa_key.seq_len);
|
||||||
} else {
|
} else {
|
||||||
@ -278,7 +274,6 @@ int wpa_set_keys(PSDevice pDevice, void *ctx,
|
|||||||
LODWORD(KeyRSC) |= (abySeq[ii] << (ii * 8));
|
LODWORD(KeyRSC) |= (abySeq[ii] << (ii * 8));
|
||||||
else
|
else
|
||||||
HIDWORD(KeyRSC) |= (abySeq[ii] << ((ii-4) * 8));
|
HIDWORD(KeyRSC) |= (abySeq[ii] << ((ii-4) * 8));
|
||||||
//KeyRSC |= (abySeq[ii] << (ii * 8));
|
|
||||||
}
|
}
|
||||||
dwKeyIndex |= 1 << 29;
|
dwKeyIndex |= 1 << 29;
|
||||||
}
|
}
|
||||||
@ -325,7 +320,6 @@ int wpa_set_keys(PSDevice pDevice, void *ctx,
|
|||||||
if ((byKeyDecMode == KEY_CTL_TKIP) &&
|
if ((byKeyDecMode == KEY_CTL_TKIP) &&
|
||||||
(param->u.wpa_key.key_len != MAX_KEY_LEN)) {
|
(param->u.wpa_key.key_len != MAX_KEY_LEN)) {
|
||||||
// TKIP Key must be 256 bits
|
// TKIP Key must be 256 bits
|
||||||
//DBG_PRN_WLAN03(("return NDIS_STATUS_INVALID_DATA - TKIP Key must be 256 bits\n"));
|
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "return- TKIP Key must be 256 bits!\n");
|
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "return- TKIP Key must be 256 bits!\n");
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
@ -333,7 +327,6 @@ int wpa_set_keys(PSDevice pDevice, void *ctx,
|
|||||||
if ((byKeyDecMode == KEY_CTL_CCMP) &&
|
if ((byKeyDecMode == KEY_CTL_CCMP) &&
|
||||||
(param->u.wpa_key.key_len != AES_KEY_LEN)) {
|
(param->u.wpa_key.key_len != AES_KEY_LEN)) {
|
||||||
// AES Key must be 128 bits
|
// AES Key must be 128 bits
|
||||||
//DBG_PRN_WLAN03(("return NDIS_STATUS_INVALID_DATA - AES Key must be 128 bits\n"));
|
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -361,8 +354,6 @@ int wpa_set_keys(PSDevice pDevice, void *ctx,
|
|||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "GROUP Key Assign.\n");
|
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "GROUP Key Assign.\n");
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
//DBG_PRN_WLAN03(("return NDIS_STATUS_INVALID_DATA -KeybSetDefaultKey Fail.0\n"));
|
|
||||||
// spin_unlock_irq(&pDevice->lock);
|
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -372,16 +363,13 @@ int wpa_set_keys(PSDevice pDevice, void *ctx,
|
|||||||
// Pairwise Key can't be WEP
|
// Pairwise Key can't be WEP
|
||||||
if (byKeyDecMode == KEY_CTL_WEP) {
|
if (byKeyDecMode == KEY_CTL_WEP) {
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Pairwise Key can't be WEP\n");
|
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Pairwise Key can't be WEP\n");
|
||||||
//spin_unlock_irq(&pDevice->lock);
|
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
dwKeyIndex |= (1 << 30); // set pairwise key
|
dwKeyIndex |= (1 << 30); // set pairwise key
|
||||||
if (pMgmt->eConfigMode == WMAC_CONFIG_IBSS_STA) {
|
if (pMgmt->eConfigMode == WMAC_CONFIG_IBSS_STA)
|
||||||
//DBG_PRN_WLAN03(("return NDIS_STATUS_INVALID_DATA - WMAC_CONFIG_IBSS_STA\n"));
|
|
||||||
//spin_unlock_irq(&pDevice->lock);
|
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
|
||||||
if (KeybSetKey(&(pDevice->sKey),
|
if (KeybSetKey(&(pDevice->sKey),
|
||||||
¶m->addr[0],
|
¶m->addr[0],
|
||||||
dwKeyIndex,
|
dwKeyIndex,
|
||||||
@ -395,17 +383,7 @@ int wpa_set_keys(PSDevice pDevice, void *ctx,
|
|||||||
|
|
||||||
} else {
|
} else {
|
||||||
// Key Table Full
|
// Key Table Full
|
||||||
if (ether_addr_equal(param->addr, pDevice->abyBSSID)) {
|
return -EINVAL;
|
||||||
//DBG_PRN_WLAN03(("return NDIS_STATUS_INVALID_DATA -Key Table Full.2\n"));
|
|
||||||
//spin_unlock_irq(&pDevice->lock);
|
|
||||||
return -EINVAL;
|
|
||||||
|
|
||||||
} else {
|
|
||||||
// Save Key and configure just before associate/reassociate to BSSID
|
|
||||||
// we do not implement now
|
|
||||||
//spin_unlock_irq(&pDevice->lock);
|
|
||||||
return -EINVAL;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
} // BSSID not 0xffffffffffff
|
} // BSSID not 0xffffffffffff
|
||||||
if ((ret == 0) && ((param->u.wpa_key.set_tx) != 0)) {
|
if ((ret == 0) && ((param->u.wpa_key.set_tx) != 0)) {
|
||||||
@ -413,17 +391,6 @@ int wpa_set_keys(PSDevice pDevice, void *ctx,
|
|||||||
pDevice->bTransmitKey = true;
|
pDevice->bTransmitKey = true;
|
||||||
}
|
}
|
||||||
pDevice->bEncryptionEnable = true;
|
pDevice->bEncryptionEnable = true;
|
||||||
//spin_unlock_irq(&pDevice->lock);
|
|
||||||
|
|
||||||
/*
|
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO " key=%x-%x-%x-%x-%x-xxxxx\n",
|
|
||||||
pMgmt->sNodeDBTable[iNodeIndex].abyWepKey[byKeyIndex][0],
|
|
||||||
pMgmt->sNodeDBTable[iNodeIndex].abyWepKey[byKeyIndex][1],
|
|
||||||
pMgmt->sNodeDBTable[iNodeIndex].abyWepKey[byKeyIndex][2],
|
|
||||||
pMgmt->sNodeDBTable[iNodeIndex].abyWepKey[byKeyIndex][3],
|
|
||||||
pMgmt->sNodeDBTable[iNodeIndex].abyWepKey[byKeyIndex][4]
|
|
||||||
);
|
|
||||||
*/
|
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -655,11 +622,7 @@ static int wpa_get_scan(PSDevice pDevice,
|
|||||||
scan_buf->ssid_len = pItemSSID->len;
|
scan_buf->ssid_len = pItemSSID->len;
|
||||||
scan_buf->freq = frequency_list[pBSS->uChannel-1];
|
scan_buf->freq = frequency_list[pBSS->uChannel-1];
|
||||||
scan_buf->caps = pBSS->wCapInfo;
|
scan_buf->caps = pBSS->wCapInfo;
|
||||||
//scan_buf->caps = pBSS->wCapInfo;
|
|
||||||
//scan_buf->qual =
|
|
||||||
//scan_buf->noise =
|
|
||||||
//scan_buf->level =
|
|
||||||
//scan_buf->maxrate =
|
|
||||||
if (pBSS->wWPALen != 0) {
|
if (pBSS->wWPALen != 0) {
|
||||||
scan_buf->wpa_ie_len = pBSS->wWPALen;
|
scan_buf->wpa_ie_len = pBSS->wWPALen;
|
||||||
memcpy(scan_buf->wpa_ie, pBSS->byWPAIE, pBSS->wWPALen);
|
memcpy(scan_buf->wpa_ie, pBSS->byWPAIE, pBSS->wWPALen);
|
||||||
@ -789,13 +752,10 @@ static int wpa_set_associate(PSDevice pDevice,
|
|||||||
|
|
||||||
if (pMgmt->eAuthenMode == WMAC_AUTH_SHAREKEY) {
|
if (pMgmt->eAuthenMode == WMAC_AUTH_SHAREKEY) {
|
||||||
pDevice->eEncryptionStatus = Ndis802_11Encryption1Enabled;
|
pDevice->eEncryptionStatus = Ndis802_11Encryption1Enabled;
|
||||||
//pMgmt->eAuthenMode = WMAC_AUTH_SHAREKEY;
|
|
||||||
pMgmt->bShareKeyAlgorithm = true;
|
pMgmt->bShareKeyAlgorithm = true;
|
||||||
} else if (pMgmt->eAuthenMode == WMAC_AUTH_OPEN) {
|
} else if (pMgmt->eAuthenMode == WMAC_AUTH_OPEN) {
|
||||||
if (!bWepEnabled) pDevice->eEncryptionStatus = Ndis802_11EncryptionDisabled;
|
if (!bWepEnabled) pDevice->eEncryptionStatus = Ndis802_11EncryptionDisabled;
|
||||||
else pDevice->eEncryptionStatus = Ndis802_11Encryption1Enabled;
|
else pDevice->eEncryptionStatus = Ndis802_11Encryption1Enabled;
|
||||||
//pMgmt->eAuthenMode = WMAC_AUTH_OPEN;
|
|
||||||
//pMgmt->bShareKeyAlgorithm = false; //20080717-06,<Modify> by chester//Fix Open mode, WEP encryption
|
|
||||||
}
|
}
|
||||||
//mike save old encryption status
|
//mike save old encryption status
|
||||||
pDevice->eOldEncryptionStatus = pDevice->eEncryptionStatus;
|
pDevice->eOldEncryptionStatus = pDevice->eEncryptionStatus;
|
||||||
|
@ -44,7 +44,6 @@
|
|||||||
|
|
||||||
/*--------------------- Static Variables --------------------------*/
|
/*--------------------- Static Variables --------------------------*/
|
||||||
static int msglevel = MSG_LEVEL_INFO;
|
static int msglevel = MSG_LEVEL_INFO;
|
||||||
//static int msglevel =MSG_LEVEL_DEBUG;
|
|
||||||
/*--------------------- Static Functions --------------------------*/
|
/*--------------------- Static Functions --------------------------*/
|
||||||
|
|
||||||
/*--------------------- Export Variables --------------------------*/
|
/*--------------------- Export Variables --------------------------*/
|
||||||
|
Loading…
Reference in New Issue
Block a user