diff options
Diffstat (limited to 'drivers/staging/vt6656/rxtx.c')
-rw-r--r-- | drivers/staging/vt6656/rxtx.c | 79 |
1 files changed, 21 insertions, 58 deletions
diff --git a/drivers/staging/vt6656/rxtx.c b/drivers/staging/vt6656/rxtx.c index 3e7e56649a5f..deca2137d921 100644 --- a/drivers/staging/vt6656/rxtx.c +++ b/drivers/staging/vt6656/rxtx.c @@ -61,10 +61,7 @@ #include "rf.h" #include "datarate.h" #include "usbpipe.h" - -#ifdef WPA_SM_Transtatus #include "iocmd.h" -#endif /*--------------------- Static Definitions -------------------------*/ @@ -304,10 +301,9 @@ s_vSaveTxPktInfo(PSDevice pDevice, BYTE byPktNum, PBYTE pbyDestAddr, WORD wPktLe { PSStatCounter pStatistic=&(pDevice->scStatistic); - - if (IS_BROADCAST_ADDRESS(pbyDestAddr)) + if (is_broadcast_ether_addr(pbyDestAddr)) pStatistic->abyTxPktInfo[byPktNum].byBroadMultiUni = TX_PKT_BROAD; - else if (IS_MULTICAST_ADDRESS(pbyDestAddr)) + else if (is_multicast_ether_addr(pbyDestAddr)) pStatistic->abyTxPktInfo[byPktNum].byBroadMultiUni = TX_PKT_MULTI; else pStatistic->abyTxPktInfo[byPktNum].byBroadMultiUni = TX_PKT_UNI; @@ -319,9 +315,6 @@ s_vSaveTxPktInfo(PSDevice pDevice, BYTE byPktNum, PBYTE pbyDestAddr, WORD wPktLe ETH_ALEN); } - - - static void s_vFillTxKey ( @@ -1473,7 +1466,7 @@ s_bPacketToWirelessUsb( memset(pTxBufHead, 0, sizeof(TX_BUFFER)); // Get pkt type - if (ntohs(psEthHeader->wType) > MAX_DATA_LEN) { + if (ntohs(psEthHeader->wType) > ETH_DATA_LEN) { if (pDevice->dwDiagRefCount == 0) { cb802_1_H_len = 8; } else { @@ -1492,17 +1485,16 @@ s_bPacketToWirelessUsb( bNeedACK = FALSE; pTxBufHead->wFIFOCtl = pTxBufHead->wFIFOCtl & (~FIFOCTL_NEEDACK); } else { //if (pDevice->dwDiagRefCount != 0) { - if ((pDevice->eOPMode == OP_MODE_ADHOC) || - (pDevice->eOPMode == OP_MODE_AP)) { - if (IS_MULTICAST_ADDRESS(&(psEthHeader->abyDstAddr[0])) || - IS_BROADCAST_ADDRESS(&(psEthHeader->abyDstAddr[0]))) { - bNeedACK = FALSE; - pTxBufHead->wFIFOCtl = pTxBufHead->wFIFOCtl & (~FIFOCTL_NEEDACK); - } - else { - bNeedACK = TRUE; - pTxBufHead->wFIFOCtl |= FIFOCTL_NEEDACK; - } + if ((pDevice->eOPMode == OP_MODE_ADHOC) || + (pDevice->eOPMode == OP_MODE_AP)) { + if (is_multicast_ether_addr(psEthHeader->abyDstAddr)) { + bNeedACK = FALSE; + pTxBufHead->wFIFOCtl = + pTxBufHead->wFIFOCtl & (~FIFOCTL_NEEDACK); + } else { + bNeedACK = TRUE; + pTxBufHead->wFIFOCtl |= FIFOCTL_NEEDACK; + } } else { // MSDUs in Infra mode always need ACK @@ -1708,7 +1700,7 @@ s_bPacketToWirelessUsb( } // 802.1H - if (ntohs(psEthHeader->wType) > MAX_DATA_LEN) { + if (ntohs(psEthHeader->wType) > ETH_DATA_LEN) { if (pDevice->dwDiagRefCount == 0) { if ( (psEthHeader->wType == TYPE_PKT_IPX) || (psEthHeader->wType == cpu_to_le16(0xF380))) { @@ -2037,9 +2029,7 @@ CMD_STATUS csMgmt_xmit( pTxBufHead->wFIFOCtl |= FIFOCTL_TMOEN; pTxBufHead->wTimeStamp = cpu_to_le16(DEFAULT_MGN_LIFETIME_RES_64us); - - if (IS_MULTICAST_ADDRESS(&(pPacket->p80211Header->sA3.abyAddr1[0])) || - IS_BROADCAST_ADDRESS(&(pPacket->p80211Header->sA3.abyAddr1[0]))) { + if (is_multicast_ether_addr(pPacket->p80211Header->sA3.abyAddr1)) { bNeedACK = FALSE; } else { @@ -2446,9 +2436,7 @@ vDMA0_tx_80211(PSDevice pDevice, struct sk_buff *skb) { pTxBufHead->wFIFOCtl |= FIFOCTL_TMOEN; pTxBufHead->wTimeStamp = cpu_to_le16(DEFAULT_MGN_LIFETIME_RES_64us); - - if (IS_MULTICAST_ADDRESS(&(p80211Header->sA3.abyAddr1[0])) || - IS_BROADCAST_ADDRESS(&(p80211Header->sA3.abyAddr1[0]))) { + if (is_multicast_ether_addr(p80211Header->sA3.abyAddr1)) { bNeedACK = FALSE; if (pDevice->bEnableHostWEP) { uNodeIndex = 0; @@ -2741,14 +2729,7 @@ vDMA0_tx_80211(PSDevice pDevice, struct sk_buff *skb) { * Return Value: NULL */ - - -NTSTATUS -nsDMA_tx_packet( - PSDevice pDevice, - unsigned int uDMAIdx, - struct sk_buff *skb - ) +int nsDMA_tx_packet(PSDevice pDevice, unsigned int uDMAIdx, struct sk_buff *skb) { PSMgmtObject pMgmt = &(pDevice->sMgmtObj); unsigned int BytesToWrite = 0, uHeaderLen = 0; @@ -2770,9 +2751,6 @@ nsDMA_tx_packet( unsigned int status; WORD wKeepRate = pDevice->wCurrentRate; struct net_device_stats* pStats = &pDevice->stats; -//#ifdef WPA_SM_Transtatus - // extern SWPAResult wpa_Result; -//#endif BOOL bTxeapol_key = FALSE; @@ -2783,7 +2761,7 @@ nsDMA_tx_packet( return 0; } - if (IS_MULTICAST_ADDRESS((PBYTE)(skb->data))) { + if (is_multicast_ether_addr((PBYTE)(skb->data))) { uNodeIndex = 0; bNodeExist = TRUE; if (pMgmt->sNodeDBTable[0].bPSEnable) { @@ -2975,7 +2953,7 @@ nsDMA_tx_packet( else { if (pDevice->eOPMode == OP_MODE_ADHOC) { // Adhoc Tx rate decided from node DB - if (IS_MULTICAST_ADDRESS(&(pDevice->sTxEthHeader.abyDstAddr[0]))) { + if (is_multicast_ether_addr(pDevice->sTxEthHeader.abyDstAddr)) { // Multicast use highest data rate pDevice->wCurrentRate = pMgmt->sNodeDBTable[0].wTxDataRate; // preamble type @@ -3071,28 +3049,12 @@ nsDMA_tx_packet( } else { -#if 0 - if((pDevice->fWPA_Authened == FALSE) && - ((pMgmt->eAuthenMode == WMAC_AUTH_WPAPSK)||(pMgmt->eAuthenMode = WMAC_AUTH_WPA2PSK))){ - dev_kfree_skb_irq(skb); - pStats->tx_dropped++; - return STATUS_FAILURE; - } - else if (pTransmitKey == NULL) { - DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"return no tx key\n"); - dev_kfree_skb_irq(skb); - pStats->tx_dropped++; - return STATUS_FAILURE; - } -#else if (pTransmitKey == NULL) { DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"return no tx key\n"); dev_kfree_skb_irq(skb); pStats->tx_dropped++; return STATUS_FAILURE; } -#endif - } } @@ -3261,7 +3223,8 @@ bRelayPacketSend ( if (pDevice->wCurrentRate <= RATE_11M) byPktType = PK_TYPE_11B; - BytesToWrite = uDataLen + U_CRC_LEN; + BytesToWrite = uDataLen + ETH_FCS_LEN; + // Convert the packet to an usb frame and copy into our buffer // and send the irp. |