diff options
Diffstat (limited to 'drivers/staging/vt6655/mac.h')
| -rw-r--r-- | drivers/staging/vt6655/mac.h | 800 |
1 files changed, 348 insertions, 452 deletions
diff --git a/drivers/staging/vt6655/mac.h b/drivers/staging/vt6655/mac.h index b96d27ee254..7333b8b526f 100644 --- a/drivers/staging/vt6655/mac.h +++ b/drivers/staging/vt6655/mac.h @@ -197,7 +197,6 @@ #define MAC_REG_PWRCCK 0x73 #define MAC_REG_PWROFDM 0x7C - // // Bits in the BCFG0 register // @@ -292,19 +291,11 @@ // #define EnCFG_BarkerPream 0x00020000 #define EnCFG_NXTBTTCFPSTR 0x00010000 -//#define EnCFG_TXLMT3UPDATE 0x00008000 -//#define EnCFG_TXLMT2UPDATE 0x00004000 -//#define EnCFG_TXLMT1UPDATE 0x00002000 -//#define EnCFG_TXLMT3EN 0x00001000 -//#define EnCFG_TXLMT2EN 0x00000800 -//#define EnCFG_TXLMT1EN 0x00000400 #define EnCFG_BcnSusClr 0x00000200 #define EnCFG_BcnSusInd 0x00000100 -//#define EnCFG_CWOFF1 0x00000080 #define EnCFG_CFP_ProtectEn 0x00000040 #define EnCFG_ProtectMd 0x00000020 #define EnCFG_HwParCFP 0x00000010 -//#define EnCFG_QOS 0x00000008 #define EnCFG_CFNULRSP 0x00000004 #define EnCFG_BBType_MASK 0x00000003 #define EnCFG_BBType_g 0x00000002 @@ -392,14 +383,6 @@ #define IMR_RADARDETECT 0x10000000 // #define IMR_MEASUREEND 0x08000000 // #define IMR_SOFTTIMER1 0x00200000 // -//#define IMR_SYNCFLUSHOK 0x00100000 // -//#define IMR_ATIMEND 0x00080000 //0000 1000 0000 0000 0000 0000 -//#define IMR_CFPEND 0x00040000 //0000 0100 0000 0000 0000 0000 -//#define IMR_AC3DMA 0x00020000 //0000 0010 0000 0000 0000 0000 -//#define IMR_AC2DMA 0x00010000 //0000 0001 0000 0000 0000 0000 -//#define IMR_AC1DMA 0x00008000 //0000 0000 1000 0000 0000 0000 -//#define IMR_SYNCTX 0x00004000 //0000 0000 0100 0000 0000 0000 -//#define IMR_ATIMTX 0x00002000 //0000 0000 0010 0000 0000 0000 #define IMR_RXDMA1 0x00001000 //0000 0000 0001 0000 0000 0000 #define IMR_RXNOBUF 0x00000800 // #define IMR_MIBNEARFULL 0x00000400 // @@ -414,7 +397,6 @@ #define IMR_AC0DMA 0x00000002 // #define IMR_TXDMA0 0x00000001 // - // // Bits in the ISR register // @@ -424,14 +406,6 @@ #define ISR_RADARDETECT 0x10000000 // #define ISR_MEASUREEND 0x08000000 // #define ISR_SOFTTIMER1 0x00200000 // -//#define ISR_SYNCFLUSHOK 0x00100000 //0001 0000 0000 0000 0000 0000 -//#define ISR_ATIMEND 0x00080000 //0000 1000 0000 0000 0000 0000 -//#define ISR_CFPEND 0x00040000 //0000 0100 0000 0000 0000 0000 -//#define ISR_AC3DMA 0x00020000 //0000 0010 0000 0000 0000 0000 -//#define ISR_AC2DMA 0x00010000 //0000 0001 0000 0000 0000 0000 -//#define ISR_AC1DMA 0x00008000 //0000 0000 1000 0000 0000 0000 -//#define ISR_SYNCTX 0x00004000 //0000 0000 0100 0000 0000 0000 -//#define ISR_ATIMTX 0x00002000 //0000 0000 0010 0000 0000 0000 #define ISR_RXDMA1 0x00001000 //0000 0000 0001 0000 0000 0000 #define ISR_RXNOBUF 0x00000800 //0000 0000 0000 1000 0000 0000 #define ISR_MIBNEARFULL 0x00000400 //0000 0000 0000 0100 0000 0000 @@ -446,7 +420,6 @@ #define ISR_AC0DMA 0x00000002 // #define ISR_TXDMA0 0x00000001 // - // // Bits in the PSCFG register // @@ -537,7 +510,6 @@ // #define MISCFFCTL_WRITE 0x0001 // - // // Bits in WAKEUPEN0 // @@ -581,7 +553,6 @@ #define GPIO1_MD 0x10 // #define GPIO1_DATA 0x20 // - // // Bits in the MSRCTL register // @@ -600,7 +571,6 @@ #define MSRCTL1_CSAPAREN 0x04 #define MSRCTL1_TXPAUSE 0x01 - // Loopback mode #define MAC_LB_EXT 0x02 // #define MAC_LB_INTERNAL 0x01 // @@ -610,7 +580,7 @@ #define PKT_TYPE_NONE 0x00 // turn off receiver #define PKT_TYPE_ALL_MULTICAST 0x80 #define PKT_TYPE_PROMISCUOUS 0x40 -#define PKT_TYPE_DIRECTED 0x20 // obselete, directed address is always accepted +#define PKT_TYPE_DIRECTED 0x20 // obsolete, directed address is always accepted #define PKT_TYPE_BROADCAST 0x10 #define PKT_TYPE_MULTICAST 0x08 #define PKT_TYPE_ERROR_WPA 0x04 @@ -619,7 +589,6 @@ #define Default_BI 0x200 - // MiscFIFO Offset #define MISCFIFO_KEYETRY0 32 #define MISCFIFO_KEYENTRYSIZE 22 @@ -628,20 +597,20 @@ #define MISCFIFO_SYNDATASIZE 21 // enabled mask value of irq -#define IMR_MASK_VALUE (IMR_SOFTTIMER1 | \ - IMR_RXDMA1 | \ - IMR_RXNOBUF | \ - IMR_MIBNEARFULL | \ - IMR_SOFTINT | \ - IMR_FETALERR | \ - IMR_WATCHDOG | \ - IMR_SOFTTIMER | \ - IMR_GPIO | \ - IMR_TBTT | \ - IMR_RXDMA0 | \ - IMR_BNTX | \ - IMR_AC0DMA | \ - IMR_TXDMA0) +#define IMR_MASK_VALUE (IMR_SOFTTIMER1 | \ + IMR_RXDMA1 | \ + IMR_RXNOBUF | \ + IMR_MIBNEARFULL | \ + IMR_SOFTINT | \ + IMR_FETALERR | \ + IMR_WATCHDOG | \ + IMR_SOFTTIMER | \ + IMR_GPIO | \ + IMR_TBTT | \ + IMR_RXDMA0 | \ + IMR_BNTX | \ + IMR_AC0DMA | \ + IMR_TXDMA0) // max time out delay time #define W_MAX_TIMEOUT 0xFFF0U // @@ -661,412 +630,341 @@ /*--------------------- Export Macros ------------------------------*/ -#define MACvRegBitsOn(dwIoBase, byRegOfs, byBits) \ -{ \ - unsigned char byData; \ - VNSvInPortB(dwIoBase + byRegOfs, &byData); \ - VNSvOutPortB(dwIoBase + byRegOfs, byData | (byBits)); \ -} - -#define MACvWordRegBitsOn(dwIoBase, byRegOfs, wBits) \ -{ \ - unsigned short wData; \ - VNSvInPortW(dwIoBase + byRegOfs, &wData); \ - VNSvOutPortW(dwIoBase + byRegOfs, wData | (wBits)); \ -} - -#define MACvDWordRegBitsOn(dwIoBase, byRegOfs, dwBits) \ -{ \ - unsigned long dwData; \ - VNSvInPortD(dwIoBase + byRegOfs, &dwData); \ - VNSvOutPortD(dwIoBase + byRegOfs, dwData | (dwBits)); \ -} - -#define MACvRegBitsOnEx(dwIoBase, byRegOfs, byMask, byBits) \ -{ \ - unsigned char byData; \ - VNSvInPortB(dwIoBase + byRegOfs, &byData); \ - byData &= byMask; \ - VNSvOutPortB(dwIoBase + byRegOfs, byData | (byBits)); \ -} - -#define MACvRegBitsOff(dwIoBase, byRegOfs, byBits) \ -{ \ - unsigned char byData; \ - VNSvInPortB(dwIoBase + byRegOfs, &byData); \ - VNSvOutPortB(dwIoBase + byRegOfs, byData & ~(byBits)); \ -} - -#define MACvWordRegBitsOff(dwIoBase, byRegOfs, wBits) \ -{ \ - unsigned short wData; \ - VNSvInPortW(dwIoBase + byRegOfs, &wData); \ - VNSvOutPortW(dwIoBase + byRegOfs, wData & ~(wBits)); \ -} - -#define MACvDWordRegBitsOff(dwIoBase, byRegOfs, dwBits) \ -{ \ - unsigned long dwData; \ - VNSvInPortD(dwIoBase + byRegOfs, &dwData); \ - VNSvOutPortD(dwIoBase + byRegOfs, dwData & ~(dwBits)); \ -} - -#define MACvGetCurrRx0DescAddr(dwIoBase, pdwCurrDescAddr) \ -{ \ - VNSvInPortD(dwIoBase + MAC_REG_RXDMAPTR0, \ - (unsigned long *)pdwCurrDescAddr); \ -} - -#define MACvGetCurrRx1DescAddr(dwIoBase, pdwCurrDescAddr) \ -{ \ - VNSvInPortD(dwIoBase + MAC_REG_RXDMAPTR1, \ - (unsigned long *)pdwCurrDescAddr); \ -} - -#define MACvGetCurrTx0DescAddr(dwIoBase, pdwCurrDescAddr) \ -{ \ - VNSvInPortD(dwIoBase + MAC_REG_TXDMAPTR0, \ - (unsigned long *)pdwCurrDescAddr); \ -} - -#define MACvGetCurrAC0DescAddr(dwIoBase, pdwCurrDescAddr) \ -{ \ - VNSvInPortD(dwIoBase + MAC_REG_AC0DMAPTR, \ - (unsigned long *)pdwCurrDescAddr); \ -} - -#define MACvGetCurrSyncDescAddr(dwIoBase, pdwCurrDescAddr) \ -{ \ - VNSvInPortD(dwIoBase + MAC_REG_SYNCDMAPTR, \ - (unsigned long *)pdwCurrDescAddr); \ -} - -#define MACvGetCurrATIMDescAddr(dwIoBase, pdwCurrDescAddr) \ -{ \ - VNSvInPortD(dwIoBase + MAC_REG_ATIMDMAPTR, \ - (unsigned long *)pdwCurrDescAddr); \ -} \ +#define MACvRegBitsOn(dwIoBase, byRegOfs, byBits) \ +do { \ + unsigned char byData; \ + VNSvInPortB(dwIoBase + byRegOfs, &byData); \ + VNSvOutPortB(dwIoBase + byRegOfs, byData | (byBits)); \ +} while (0) + +#define MACvWordRegBitsOn(dwIoBase, byRegOfs, wBits) \ +do { \ + unsigned short wData; \ + VNSvInPortW(dwIoBase + byRegOfs, &wData); \ + VNSvOutPortW(dwIoBase + byRegOfs, wData | (wBits)); \ +} while (0) + +#define MACvDWordRegBitsOn(dwIoBase, byRegOfs, dwBits) \ +do { \ + unsigned long dwData; \ + VNSvInPortD(dwIoBase + byRegOfs, &dwData); \ + VNSvOutPortD(dwIoBase + byRegOfs, dwData | (dwBits)); \ +} while (0) + +#define MACvRegBitsOnEx(dwIoBase, byRegOfs, byMask, byBits) \ +do { \ + unsigned char byData; \ + VNSvInPortB(dwIoBase + byRegOfs, &byData); \ + byData &= byMask; \ + VNSvOutPortB(dwIoBase + byRegOfs, byData | (byBits)); \ +} while (0) + +#define MACvRegBitsOff(dwIoBase, byRegOfs, byBits) \ +do { \ + unsigned char byData; \ + VNSvInPortB(dwIoBase + byRegOfs, &byData); \ + VNSvOutPortB(dwIoBase + byRegOfs, byData & ~(byBits)); \ +} while (0) + +#define MACvWordRegBitsOff(dwIoBase, byRegOfs, wBits) \ +do { \ + unsigned short wData; \ + VNSvInPortW(dwIoBase + byRegOfs, &wData); \ + VNSvOutPortW(dwIoBase + byRegOfs, wData & ~(wBits)); \ +} while (0) + +#define MACvDWordRegBitsOff(dwIoBase, byRegOfs, dwBits) \ +do { \ + unsigned long dwData; \ + VNSvInPortD(dwIoBase + byRegOfs, &dwData); \ + VNSvOutPortD(dwIoBase + byRegOfs, dwData & ~(dwBits)); \ +} while (0) + +#define MACvGetCurrRx0DescAddr(dwIoBase, pdwCurrDescAddr) \ + VNSvInPortD(dwIoBase + MAC_REG_RXDMAPTR0, \ + (unsigned long *)pdwCurrDescAddr) + +#define MACvGetCurrRx1DescAddr(dwIoBase, pdwCurrDescAddr) \ + VNSvInPortD(dwIoBase + MAC_REG_RXDMAPTR1, \ + (unsigned long *)pdwCurrDescAddr) + +#define MACvGetCurrTx0DescAddr(dwIoBase, pdwCurrDescAddr) \ + VNSvInPortD(dwIoBase + MAC_REG_TXDMAPTR0, \ + (unsigned long *)pdwCurrDescAddr) + +#define MACvGetCurrAC0DescAddr(dwIoBase, pdwCurrDescAddr) \ + VNSvInPortD(dwIoBase + MAC_REG_AC0DMAPTR, \ + (unsigned long *)pdwCurrDescAddr) + +#define MACvGetCurrSyncDescAddr(dwIoBase, pdwCurrDescAddr) \ + VNSvInPortD(dwIoBase + MAC_REG_SYNCDMAPTR, \ + (unsigned long *)pdwCurrDescAddr) + +#define MACvGetCurrATIMDescAddr(dwIoBase, pdwCurrDescAddr) \ + VNSvInPortD(dwIoBase + MAC_REG_ATIMDMAPTR, \ + (unsigned long *)pdwCurrDescAddr) // set the chip with current BCN tx descriptor address -#define MACvSetCurrBCNTxDescAddr(dwIoBase, dwCurrDescAddr) \ -{ \ - VNSvOutPortD(dwIoBase + MAC_REG_BCNDMAPTR, \ - dwCurrDescAddr); \ -} +#define MACvSetCurrBCNTxDescAddr(dwIoBase, dwCurrDescAddr) \ + VNSvOutPortD(dwIoBase + MAC_REG_BCNDMAPTR, \ + dwCurrDescAddr) // set the chip with current BCN length -#define MACvSetCurrBCNLength(dwIoBase, wCurrBCNLength) \ -{ \ - VNSvOutPortW(dwIoBase + MAC_REG_BCNDMACTL+2, \ - wCurrBCNLength); \ -} - -#define MACvReadBSSIDAddress(dwIoBase, pbyEtherAddr) \ -{ \ - VNSvOutPortB(dwIoBase + MAC_REG_PAGE1SEL, 1); \ - VNSvInPortB(dwIoBase + MAC_REG_BSSID0, \ - (unsigned char *)pbyEtherAddr); \ - VNSvInPortB(dwIoBase + MAC_REG_BSSID0 + 1, \ - pbyEtherAddr + 1); \ - VNSvInPortB(dwIoBase + MAC_REG_BSSID0 + 2, \ - pbyEtherAddr + 2); \ - VNSvInPortB(dwIoBase + MAC_REG_BSSID0 + 3, \ - pbyEtherAddr + 3); \ - VNSvInPortB(dwIoBase + MAC_REG_BSSID0 + 4, \ - pbyEtherAddr + 4); \ - VNSvInPortB(dwIoBase + MAC_REG_BSSID0 + 5, \ - pbyEtherAddr + 5); \ - VNSvOutPortB(dwIoBase + MAC_REG_PAGE1SEL, 0); \ -} - -#define MACvWriteBSSIDAddress(dwIoBase, pbyEtherAddr) \ -{ \ - VNSvOutPortB(dwIoBase + MAC_REG_PAGE1SEL, 1); \ - VNSvOutPortB(dwIoBase + MAC_REG_BSSID0, \ - *(pbyEtherAddr)); \ - VNSvOutPortB(dwIoBase + MAC_REG_BSSID0 + 1, \ - *(pbyEtherAddr + 1)); \ - VNSvOutPortB(dwIoBase + MAC_REG_BSSID0 + 2, \ - *(pbyEtherAddr + 2)); \ - VNSvOutPortB(dwIoBase + MAC_REG_BSSID0 + 3, \ - *(pbyEtherAddr + 3)); \ - VNSvOutPortB(dwIoBase + MAC_REG_BSSID0 + 4, \ - *(pbyEtherAddr + 4)); \ - VNSvOutPortB(dwIoBase + MAC_REG_BSSID0 + 5, \ - *(pbyEtherAddr + 5)); \ - VNSvOutPortB(dwIoBase + MAC_REG_PAGE1SEL, 0); \ -} - -#define MACvReadEtherAddress(dwIoBase, pbyEtherAddr) \ -{ \ - VNSvOutPortB(dwIoBase + MAC_REG_PAGE1SEL, 1); \ - VNSvInPortB(dwIoBase + MAC_REG_PAR0, \ - (unsigned char *)pbyEtherAddr); \ - VNSvInPortB(dwIoBase + MAC_REG_PAR0 + 1, \ - pbyEtherAddr + 1); \ - VNSvInPortB(dwIoBase + MAC_REG_PAR0 + 2, \ - pbyEtherAddr + 2); \ - VNSvInPortB(dwIoBase + MAC_REG_PAR0 + 3, \ - pbyEtherAddr + 3); \ - VNSvInPortB(dwIoBase + MAC_REG_PAR0 + 4, \ - pbyEtherAddr + 4); \ - VNSvInPortB(dwIoBase + MAC_REG_PAR0 + 5, \ - pbyEtherAddr + 5); \ - VNSvOutPortB(dwIoBase + MAC_REG_PAGE1SEL, 0); \ -} - - -#define MACvWriteEtherAddress(dwIoBase, pbyEtherAddr) \ -{ \ - VNSvOutPortB(dwIoBase + MAC_REG_PAGE1SEL, 1); \ - VNSvOutPortB(dwIoBase + MAC_REG_PAR0, \ - *pbyEtherAddr); \ - VNSvOutPortB(dwIoBase + MAC_REG_PAR0 + 1, \ - *(pbyEtherAddr + 1)); \ - VNSvOutPortB(dwIoBase + MAC_REG_PAR0 + 2, \ - *(pbyEtherAddr + 2)); \ - VNSvOutPortB(dwIoBase + MAC_REG_PAR0 + 3, \ - *(pbyEtherAddr + 3)); \ - VNSvOutPortB(dwIoBase + MAC_REG_PAR0 + 4, \ - *(pbyEtherAddr + 4)); \ - VNSvOutPortB(dwIoBase + MAC_REG_PAR0 + 5, \ - *(pbyEtherAddr + 5)); \ - VNSvOutPortB(dwIoBase + MAC_REG_PAGE1SEL, 0); \ -} - - -#define MACvClearISR(dwIoBase) \ -{ \ - VNSvOutPortD(dwIoBase + MAC_REG_ISR, IMR_MASK_VALUE); \ -} - -#define MACvStart(dwIoBase) \ -{ \ - VNSvOutPortB(dwIoBase + MAC_REG_HOSTCR, \ - (HOSTCR_MACEN | HOSTCR_RXON | HOSTCR_TXON)); \ -} - -#define MACvRx0PerPktMode(dwIoBase) \ -{ \ - VNSvOutPortD(dwIoBase + MAC_REG_RXDMACTL0, RX_PERPKT); \ -} - -#define MACvRx0BufferFillMode(dwIoBase) \ -{ \ - VNSvOutPortD(dwIoBase + MAC_REG_RXDMACTL0, RX_PERPKTCLR); \ -} - -#define MACvRx1PerPktMode(dwIoBase) \ -{ \ - VNSvOutPortD(dwIoBase + MAC_REG_RXDMACTL1, RX_PERPKT); \ -} - -#define MACvRx1BufferFillMode(dwIoBase) \ -{ \ - VNSvOutPortD(dwIoBase + MAC_REG_RXDMACTL1, RX_PERPKTCLR); \ -} - -#define MACvRxOn(dwIoBase) \ -{ \ - MACvRegBitsOn(dwIoBase, MAC_REG_HOSTCR, HOSTCR_RXON); \ -} - -#define MACvReceive0(dwIoBase) \ -{ \ - unsigned long dwData; \ - VNSvInPortD(dwIoBase + MAC_REG_RXDMACTL0, &dwData); \ - if (dwData & DMACTL_RUN) { \ - VNSvOutPortD(dwIoBase + MAC_REG_RXDMACTL0, DMACTL_WAKE);\ - } \ - else { \ - VNSvOutPortD(dwIoBase + MAC_REG_RXDMACTL0, DMACTL_RUN); \ - } \ -} - -#define MACvReceive1(dwIoBase) \ -{ \ - unsigned long dwData; \ - VNSvInPortD(dwIoBase + MAC_REG_RXDMACTL1, &dwData); \ - if (dwData & DMACTL_RUN) { \ - VNSvOutPortD(dwIoBase + MAC_REG_RXDMACTL1, DMACTL_WAKE);\ - } \ - else { \ - VNSvOutPortD(dwIoBase + MAC_REG_RXDMACTL1, DMACTL_RUN); \ - } \ -} - -#define MACvTxOn(dwIoBase) \ -{ \ - MACvRegBitsOn(dwIoBase, MAC_REG_HOSTCR, HOSTCR_TXON); \ -} - -#define MACvTransmit0(dwIoBase) \ -{ \ - unsigned long dwData; \ - VNSvInPortD(dwIoBase + MAC_REG_TXDMACTL0, &dwData); \ - if (dwData & DMACTL_RUN) { \ - VNSvOutPortD(dwIoBase + MAC_REG_TXDMACTL0, DMACTL_WAKE);\ - } \ - else { \ - VNSvOutPortD(dwIoBase + MAC_REG_TXDMACTL0, DMACTL_RUN); \ - } \ -} - -#define MACvTransmitAC0(dwIoBase) \ -{ \ - unsigned long dwData; \ - VNSvInPortD(dwIoBase + MAC_REG_AC0DMACTL, &dwData); \ - if (dwData & DMACTL_RUN) { \ - VNSvOutPortD(dwIoBase + MAC_REG_AC0DMACTL, DMACTL_WAKE);\ - } \ - else { \ - VNSvOutPortD(dwIoBase + MAC_REG_AC0DMACTL, DMACTL_RUN); \ - } \ -} - -#define MACvTransmitSYNC(dwIoBase) \ -{ \ - unsigned long dwData; \ - VNSvInPortD(dwIoBase + MAC_REG_SYNCDMACTL, &dwData); \ - if (dwData & DMACTL_RUN) { \ - VNSvOutPortD(dwIoBase + MAC_REG_SYNCDMACTL, DMACTL_WAKE);\ - } \ - else { \ - VNSvOutPortD(dwIoBase + MAC_REG_SYNCDMACTL, DMACTL_RUN); \ - } \ -} - -#define MACvTransmitATIM(dwIoBase) \ -{ \ - unsigned long dwData; \ - VNSvInPortD(dwIoBase + MAC_REG_ATIMDMACTL, &dwData); \ - if (dwData & DMACTL_RUN) { \ - VNSvOutPortD(dwIoBase + MAC_REG_ATIMDMACTL, DMACTL_WAKE);\ - } \ - else { \ - VNSvOutPortD(dwIoBase + MAC_REG_ATIMDMACTL, DMACTL_RUN); \ - } \ -} - -#define MACvTransmitBCN(dwIoBase) \ -{ \ - VNSvOutPortB(dwIoBase + MAC_REG_BCNDMACTL, BEACON_READY); \ -} - -#define MACvClearStckDS(dwIoBase) \ -{ \ - unsigned char byOrgValue; \ - VNSvInPortB(dwIoBase + MAC_REG_STICKHW, &byOrgValue); \ - byOrgValue = byOrgValue & 0xFC; \ - VNSvOutPortB(dwIoBase + MAC_REG_STICKHW, byOrgValue); \ -} - -#define MACvReadISR(dwIoBase, pdwValue) \ -{ \ - VNSvInPortD(dwIoBase + MAC_REG_ISR, pdwValue); \ -} - -#define MACvWriteISR(dwIoBase, dwValue) \ -{ \ - VNSvOutPortD(dwIoBase + MAC_REG_ISR, dwValue); \ -} - -#define MACvIntEnable(dwIoBase, dwMask) \ -{ \ - VNSvOutPortD(dwIoBase + MAC_REG_IMR, dwMask); \ -} - -#define MACvIntDisable(dwIoBase) \ -{ \ - VNSvOutPortD(dwIoBase + MAC_REG_IMR, 0); \ -} - -#define MACvSelectPage0(dwIoBase) \ -{ \ - VNSvOutPortB(dwIoBase + MAC_REG_PAGE1SEL, 0); \ -} -#define MACvSelectPage1(dwIoBase) \ -{ \ - VNSvOutPortB(dwIoBase + MAC_REG_PAGE1SEL, 1); \ -} - -#define MACvReadMIBCounter(dwIoBase, pdwCounter) \ -{ \ - VNSvInPortD(dwIoBase + MAC_REG_MIBCNTR , pdwCounter); \ -} - -#define MACvPwrEvntDisable(dwIoBase) \ -{ \ - VNSvOutPortW(dwIoBase + MAC_REG_WAKEUPEN0, 0x0000); \ -} - -#define MACvEnableProtectMD(dwIoBase) \ -{ \ - unsigned long dwOrgValue; \ - VNSvInPortD(dwIoBase + MAC_REG_ENCFG , &dwOrgValue); \ - dwOrgValue = dwOrgValue | EnCFG_ProtectMd; \ - VNSvOutPortD(dwIoBase + MAC_REG_ENCFG, dwOrgValue); \ -} - -#define MACvDisableProtectMD(dwIoBase) \ -{ \ - unsigned long dwOrgValue; \ - VNSvInPortD(dwIoBase + MAC_REG_ENCFG , &dwOrgValue); \ - dwOrgValue = dwOrgValue & ~EnCFG_ProtectMd; \ - VNSvOutPortD(dwIoBase + MAC_REG_ENCFG, dwOrgValue); \ -} - -#define MACvEnableBarkerPreambleMd(dwIoBase) \ -{ \ - unsigned long dwOrgValue; \ - VNSvInPortD(dwIoBase + MAC_REG_ENCFG , &dwOrgValue); \ - dwOrgValue = dwOrgValue | EnCFG_BarkerPream; \ - VNSvOutPortD(dwIoBase + MAC_REG_ENCFG, dwOrgValue); \ -} - -#define MACvDisableBarkerPreambleMd(dwIoBase) \ -{ \ - unsigned long dwOrgValue; \ - VNSvInPortD(dwIoBase + MAC_REG_ENCFG , &dwOrgValue); \ - dwOrgValue = dwOrgValue & ~EnCFG_BarkerPream; \ - VNSvOutPortD(dwIoBase + MAC_REG_ENCFG, dwOrgValue); \ -} - -#define MACvSetBBType(dwIoBase, byTyp) \ -{ \ - unsigned long dwOrgValue; \ - VNSvInPortD(dwIoBase + MAC_REG_ENCFG , &dwOrgValue); \ - dwOrgValue = dwOrgValue & ~EnCFG_BBType_MASK; \ - dwOrgValue = dwOrgValue | (unsigned long) byTyp; \ - VNSvOutPortD(dwIoBase + MAC_REG_ENCFG, dwOrgValue); \ -} - -#define MACvReadATIMW(dwIoBase, pwCounter) \ -{ \ - VNSvInPortW(dwIoBase + MAC_REG_AIDATIM , pwCounter); \ -} - -#define MACvWriteATIMW(dwIoBase, wCounter) \ -{ \ - VNSvOutPortW(dwIoBase + MAC_REG_AIDATIM , wCounter); \ -} - -#define MACvWriteCRC16_128(dwIoBase, byRegOfs, wCRC) \ -{ \ - VNSvOutPortB(dwIoBase + MAC_REG_PAGE1SEL, 1); \ - VNSvOutPortW(dwIoBase + byRegOfs, wCRC); \ - VNSvOutPortB(dwIoBase + MAC_REG_PAGE1SEL, 0); \ -} - -#define MACvGPIOIn(dwIoBase, pbyValue) \ -{ \ - VNSvInPortB(dwIoBase + MAC_REG_GPIOCTL1, pbyValue); \ -} +#define MACvSetCurrBCNLength(dwIoBase, wCurrBCNLength) \ + VNSvOutPortW(dwIoBase + MAC_REG_BCNDMACTL+2, \ + wCurrBCNLength) + +#define MACvReadBSSIDAddress(dwIoBase, pbyEtherAddr) \ +do { \ + VNSvOutPortB(dwIoBase + MAC_REG_PAGE1SEL, 1); \ + VNSvInPortB(dwIoBase + MAC_REG_BSSID0, \ + (unsigned char *)pbyEtherAddr); \ + VNSvInPortB(dwIoBase + MAC_REG_BSSID0 + 1, \ + pbyEtherAddr + 1); \ + VNSvInPortB(dwIoBase + MAC_REG_BSSID0 + 2, \ + pbyEtherAddr + 2); \ + VNSvInPortB(dwIoBase + MAC_REG_BSSID0 + 3, \ + pbyEtherAddr + 3); \ + VNSvInPortB(dwIoBase + MAC_REG_BSSID0 + 4, \ + pbyEtherAddr + 4); \ + VNSvInPortB(dwIoBase + MAC_REG_BSSID0 + 5, \ + pbyEtherAddr + 5); \ + VNSvOutPortB(dwIoBase + MAC_REG_PAGE1SEL, 0); \ +} while (0) + +#define MACvWriteBSSIDAddress(dwIoBase, pbyEtherAddr) \ +do { \ + VNSvOutPortB(dwIoBase + MAC_REG_PAGE1SEL, 1); \ + VNSvOutPortB(dwIoBase + MAC_REG_BSSID0, \ + *(pbyEtherAddr)); \ + VNSvOutPortB(dwIoBase + MAC_REG_BSSID0 + 1, \ + *(pbyEtherAddr + 1)); \ + VNSvOutPortB(dwIoBase + MAC_REG_BSSID0 + 2, \ + *(pbyEtherAddr + 2)); \ + VNSvOutPortB(dwIoBase + MAC_REG_BSSID0 + 3, \ + *(pbyEtherAddr + 3)); \ + VNSvOutPortB(dwIoBase + MAC_REG_BSSID0 + 4, \ + *(pbyEtherAddr + 4)); \ + VNSvOutPortB(dwIoBase + MAC_REG_BSSID0 + 5, \ + *(pbyEtherAddr + 5)); \ + VNSvOutPortB(dwIoBase + MAC_REG_PAGE1SEL, 0); \ +} while (0) + +#define MACvReadEtherAddress(dwIoBase, pbyEtherAddr) \ +do { \ + VNSvOutPortB(dwIoBase + MAC_REG_PAGE1SEL, 1); \ + VNSvInPortB(dwIoBase + MAC_REG_PAR0, \ + (unsigned char *)pbyEtherAddr); \ + VNSvInPortB(dwIoBase + MAC_REG_PAR0 + 1, \ + pbyEtherAddr + 1); \ + VNSvInPortB(dwIoBase + MAC_REG_PAR0 + 2, \ + pbyEtherAddr + 2); \ + VNSvInPortB(dwIoBase + MAC_REG_PAR0 + 3, \ + pbyEtherAddr + 3); \ + VNSvInPortB(dwIoBase + MAC_REG_PAR0 + 4, \ + pbyEtherAddr + 4); \ + VNSvInPortB(dwIoBase + MAC_REG_PAR0 + 5, \ + pbyEtherAddr + 5); \ + VNSvOutPortB(dwIoBase + MAC_REG_PAGE1SEL, 0); \ +} while (0) + +#define MACvWriteEtherAddress(dwIoBase, pbyEtherAddr) \ +do { \ + VNSvOutPortB(dwIoBase + MAC_REG_PAGE1SEL, 1); \ + VNSvOutPortB(dwIoBase + MAC_REG_PAR0, \ + *pbyEtherAddr); \ + VNSvOutPortB(dwIoBase + MAC_REG_PAR0 + 1, \ + *(pbyEtherAddr + 1)); \ + VNSvOutPortB(dwIoBase + MAC_REG_PAR0 + 2, \ + *(pbyEtherAddr + 2)); \ + VNSvOutPortB(dwIoBase + MAC_REG_PAR0 + 3, \ + *(pbyEtherAddr + 3)); \ + VNSvOutPortB(dwIoBase + MAC_REG_PAR0 + 4, \ + *(pbyEtherAddr + 4)); \ + VNSvOutPortB(dwIoBase + MAC_REG_PAR0 + 5, \ + *(pbyEtherAddr + 5)); \ + VNSvOutPortB(dwIoBase + MAC_REG_PAGE1SEL, 0); \ +} while (0) + +#define MACvClearISR(dwIoBase) \ + VNSvOutPortD(dwIoBase + MAC_REG_ISR, IMR_MASK_VALUE) + +#define MACvStart(dwIoBase) \ + VNSvOutPortB(dwIoBase + MAC_REG_HOSTCR, \ + (HOSTCR_MACEN | HOSTCR_RXON | HOSTCR_TXON)) + +#define MACvRx0PerPktMode(dwIoBase) \ + VNSvOutPortD(dwIoBase + MAC_REG_RXDMACTL0, RX_PERPKT) + +#define MACvRx0BufferFillMode(dwIoBase) \ + VNSvOutPortD(dwIoBase + MAC_REG_RXDMACTL0, RX_PERPKTCLR) + +#define MACvRx1PerPktMode(dwIoBase) \ + VNSvOutPortD(dwIoBase + MAC_REG_RXDMACTL1, RX_PERPKT) + +#define MACvRx1BufferFillMode(dwIoBase) \ + VNSvOutPortD(dwIoBase + MAC_REG_RXDMACTL1, RX_PERPKTCLR) + +#define MACvRxOn(dwIoBase) \ + MACvRegBitsOn(dwIoBase, MAC_REG_HOSTCR, HOSTCR_RXON) + +#define MACvReceive0(dwIoBase) \ +do { \ + unsigned long dwData; \ + VNSvInPortD(dwIoBase + MAC_REG_RXDMACTL0, &dwData); \ + if (dwData & DMACTL_RUN) \ + VNSvOutPortD(dwIoBase + MAC_REG_RXDMACTL0, DMACTL_WAKE); \ + else \ + VNSvOutPortD(dwIoBase + MAC_REG_RXDMACTL0, DMACTL_RUN); \ +} while (0) + +#define MACvReceive1(dwIoBase) \ +do { \ + unsigned long dwData; \ + VNSvInPortD(dwIoBase + MAC_REG_RXDMACTL1, &dwData); \ + if (dwData & DMACTL_RUN) \ + VNSvOutPortD(dwIoBase + MAC_REG_RXDMACTL1, DMACTL_WAKE); \ + else \ + VNSvOutPortD(dwIoBase + MAC_REG_RXDMACTL1, DMACTL_RUN); \ +} while (0) + +#define MACvTxOn(dwIoBase) \ + MACvRegBitsOn(dwIoBase, MAC_REG_HOSTCR, HOSTCR_TXON) + +#define MACvTransmit0(dwIoBase) \ +do { \ + unsigned long dwData; \ + VNSvInPortD(dwIoBase + MAC_REG_TXDMACTL0, &dwData); \ + if (dwData & DMACTL_RUN) \ + VNSvOutPortD(dwIoBase + MAC_REG_TXDMACTL0, DMACTL_WAKE); \ + else \ + VNSvOutPortD(dwIoBase + MAC_REG_TXDMACTL0, DMACTL_RUN); \ +} while (0) + +#define MACvTransmitAC0(dwIoBase) \ +do { \ + unsigned long dwData; \ + VNSvInPortD(dwIoBase + MAC_REG_AC0DMACTL, &dwData); \ + if (dwData & DMACTL_RUN) \ + VNSvOutPortD(dwIoBase + MAC_REG_AC0DMACTL, DMACTL_WAKE); \ + else \ + VNSvOutPortD(dwIoBase + MAC_REG_AC0DMACTL, DMACTL_RUN); \ +} while (0) + +#define MACvTransmitSYNC(dwIoBase) \ +do { \ + unsigned long dwData; \ + VNSvInPortD(dwIoBase + MAC_REG_SYNCDMACTL, &dwData); \ + if (dwData & DMACTL_RUN) \ + VNSvOutPortD(dwIoBase + MAC_REG_SYNCDMACTL, DMACTL_WAKE); \ + else \ + VNSvOutPortD(dwIoBase + MAC_REG_SYNCDMACTL, DMACTL_RUN); \ +} while (0) + +#define MACvTransmitATIM(dwIoBase) \ +do { \ + unsigned long dwData; \ + VNSvInPortD(dwIoBase + MAC_REG_ATIMDMACTL, &dwData); \ + if (dwData & DMACTL_RUN) \ + VNSvOutPortD(dwIoBase + MAC_REG_ATIMDMACTL, DMACTL_WAKE); \ + else \ + VNSvOutPortD(dwIoBase + MAC_REG_ATIMDMACTL, DMACTL_RUN); \ +} while (0) + +#define MACvTransmitBCN(dwIoBase) \ + VNSvOutPortB(dwIoBase + MAC_REG_BCNDMACTL, BEACON_READY) + +#define MACvClearStckDS(dwIoBase) \ +do { \ + unsigned char byOrgValue; \ + VNSvInPortB(dwIoBase + MAC_REG_STICKHW, &byOrgValue); \ + byOrgValue = byOrgValue & 0xFC; \ + VNSvOutPortB(dwIoBase + MAC_REG_STICKHW, byOrgValue); \ +} while (0) + +#define MACvReadISR(dwIoBase, pdwValue) \ + VNSvInPortD(dwIoBase + MAC_REG_ISR, pdwValue) + +#define MACvWriteISR(dwIoBase, dwValue) \ + VNSvOutPortD(dwIoBase + MAC_REG_ISR, dwValue) + +#define MACvIntEnable(dwIoBase, dwMask) \ + VNSvOutPortD(dwIoBase + MAC_REG_IMR, dwMask) + +#define MACvIntDisable(dwIoBase) \ + VNSvOutPortD(dwIoBase + MAC_REG_IMR, 0) + +#define MACvSelectPage0(dwIoBase) \ + VNSvOutPortB(dwIoBase + MAC_REG_PAGE1SEL, 0) + +#define MACvSelectPage1(dwIoBase) \ + VNSvOutPortB(dwIoBase + MAC_REG_PAGE1SEL, 1) + +#define MACvReadMIBCounter(dwIoBase, pdwCounter) \ + VNSvInPortD(dwIoBase + MAC_REG_MIBCNTR , pdwCounter) + +#define MACvPwrEvntDisable(dwIoBase) \ + VNSvOutPortW(dwIoBase + MAC_REG_WAKEUPEN0, 0x0000) + +#define MACvEnableProtectMD(dwIoBase) \ +do { \ + unsigned long dwOrgValue; \ + VNSvInPortD(dwIoBase + MAC_REG_ENCFG , &dwOrgValue); \ + dwOrgValue = dwOrgValue | EnCFG_ProtectMd; \ + VNSvOutPortD(dwIoBase + MAC_REG_ENCFG, dwOrgValue); \ +} while (0) + +#define MACvDisableProtectMD(dwIoBase) \ +do { \ + unsigned long dwOrgValue; \ + VNSvInPortD(dwIoBase + MAC_REG_ENCFG , &dwOrgValue); \ + dwOrgValue = dwOrgValue & ~EnCFG_ProtectMd; \ + VNSvOutPortD(dwIoBase + MAC_REG_ENCFG, dwOrgValue); \ +} while (0) + +#define MACvEnableBarkerPreambleMd(dwIoBase) \ +do { \ + unsigned long dwOrgValue; \ + VNSvInPortD(dwIoBase + MAC_REG_ENCFG , &dwOrgValue); \ + dwOrgValue = dwOrgValue | EnCFG_BarkerPream; \ + VNSvOutPortD(dwIoBase + MAC_REG_ENCFG, dwOrgValue); \ +} while (0) + +#define MACvDisableBarkerPreambleMd(dwIoBase) \ +do { \ + unsigned long dwOrgValue; \ + VNSvInPortD(dwIoBase + MAC_REG_ENCFG , &dwOrgValue); \ + dwOrgValue = dwOrgValue & ~EnCFG_BarkerPream; \ + VNSvOutPortD(dwIoBase + MAC_REG_ENCFG, dwOrgValue); \ +} while (0) + +#define MACvSetBBType(dwIoBase, byTyp) \ +do { \ + unsigned long dwOrgValue; \ + VNSvInPortD(dwIoBase + MAC_REG_ENCFG , &dwOrgValue); \ + dwOrgValue = dwOrgValue & ~EnCFG_BBType_MASK; \ + dwOrgValue = dwOrgValue | (unsigned long)byTyp; \ + VNSvOutPortD(dwIoBase + MAC_REG_ENCFG, dwOrgValue); \ +} while (0) + +#define MACvReadATIMW(dwIoBase, pwCounter) \ + VNSvInPortW(dwIoBase + MAC_REG_AIDATIM, pwCounter) + +#define MACvWriteATIMW(dwIoBase, wCounter) \ + VNSvOutPortW(dwIoBase + MAC_REG_AIDATIM, wCounter) + +#define MACvWriteCRC16_128(dwIoBase, byRegOfs, wCRC) \ +do { \ + VNSvOutPortB(dwIoBase + MAC_REG_PAGE1SEL, 1); \ + VNSvOutPortW(dwIoBase + byRegOfs, wCRC); \ + VNSvOutPortB(dwIoBase + MAC_REG_PAGE1SEL, 0); \ +} while (0) + +#define MACvGPIOIn(dwIoBase, pbyValue) \ + VNSvInPortB(dwIoBase + MAC_REG_GPIOCTL1, pbyValue) #define MACvSetRFLE_LatchBase(dwIoBase) \ -{ \ - MACvWordRegBitsOn(dwIoBase, MAC_REG_SOFTPWRCTL, SOFTPWRCTL_RFLEOPT); \ -} + MACvWordRegBitsOn(dwIoBase, MAC_REG_SOFTPWRCTL, SOFTPWRCTL_RFLEOPT) /*--------------------- Export Classes ----------------------------*/ @@ -1131,7 +1029,7 @@ void MACvOneShotTimer1MicroSec(unsigned long dwIoBase, unsigned int uDelayTime); void MACvSetMISCFifo(unsigned long dwIoBase, unsigned short wOffset, unsigned long dwData); -bool MACbTxDMAOff (unsigned long dwIoBase, unsigned int idx); +bool MACbTxDMAOff(unsigned long dwIoBase, unsigned int idx); void MACvClearBusSusInd(unsigned long dwIoBase); void MACvEnableBusSusEn(unsigned long dwIoBase); @@ -1140,15 +1038,13 @@ bool MACbFlushSYNCFifo(unsigned long dwIoBase); bool MACbPSWakeup(unsigned long dwIoBase); void MACvSetKeyEntry(unsigned long dwIoBase, unsigned short wKeyCtl, unsigned int uEntryIdx, - unsigned int uKeyIdx, unsigned char *pbyAddr, unsigned long *pdwKey, unsigned char byLocalID); + unsigned int uKeyIdx, unsigned char *pbyAddr, u32 *pdwKey, unsigned char byLocalID); void MACvDisableKeyEntry(unsigned long dwIoBase, unsigned int uEntryIdx); void MACvSetDefaultKeyEntry(unsigned long dwIoBase, unsigned int uKeyLen, - unsigned int uKeyIdx, unsigned long *pdwKey, unsigned char byLocalID); -//void MACvEnableDefaultKey(unsigned long dwIoBase, unsigned char byLocalID); + unsigned int uKeyIdx, unsigned long *pdwKey, unsigned char byLocalID); void MACvDisableDefaultKey(unsigned long dwIoBase); 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); void MACvSetDefaultKeyCtl(unsigned long dwIoBase, unsigned short wKeyCtl, unsigned int uEntryIdx, unsigned char byLocalID); #endif // __MAC_H__ - |
