diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2015-06-26 15:46:08 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2015-06-26 15:46:08 -0700 |
commit | 23908db413eccd77084b09c9b0a4451dfb0524c0 (patch) | |
tree | 646f21a92496bdc04175e95642b0ecb2dc3dd09e /drivers/staging/vt6655 | |
parent | 8d7804a2f03dbd34940fcb426450c730adf29dae (diff) | |
parent | 53a20e9e378ecd52f0afa4b60f8f8c81b6f97c27 (diff) |
Merge tag 'staging-4.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging
Pull staging driver updates from Greg KH:
"Here's the big, really big, staging tree patches for 4.2-rc1.
Loads of stuff in here, almost all just coding style fixes / churn,
and a few new drivers as well, one of which I just disabled from the
build a few minutes ago due to way too many build warnings.
Other than the one "disable this driver" patch, all of these have been
in linux-next for quite a while with no reported issues"
* tag 'staging-4.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (1163 commits)
staging: wilc1000: disable driver due to build warnings
Staging: rts5208: fix CHANGE_LINK_STATE value
Staging: sm750fb: ddk750_swi2c.c: Insert spaces before parenthesis
Staging: sm750fb: ddk750_swi2c.c: Place braces on correct lines
Staging: sm750fb: ddk750_swi2c.c: Insert spaces around operators
Staging: sm750fb: ddk750_swi2c.c: Replace spaces with tabs
Staging: sm750fb: ddk750_swi2c.h: Shorten lines to under 80 characters
Staging: sm750fb: ddk750_swi2c.h: Replace spaces with tabs
Staging: sm750fb: modedb.h: Shorten lines to under 80 characters
Staging: sm750fb: modedb.h: Replace spaces with tabs
staging: comedi: addi_apci_3120: rename 'this_board' variables
staging: comedi: addi_apci_1516: rename 'this_board' variables
staging: comedi: ni_atmio: cleanup ni_getboardtype()
staging: comedi: vmk80xx: sanity check context used to get the boardinfo
staging: comedi: vmk80xx: rename 'boardinfo' variables
staging: comedi: dt3000: rename 'this_board' variables
staging: comedi: adv_pci_dio: rename 'this_board' variables
staging: comedi: cb_pcidas64: rename 'thisboard' variables
staging: comedi: cb_pcidas: rename 'thisboard' variables
staging: comedi: me4000: rename 'thisboard' variables
...
Diffstat (limited to 'drivers/staging/vt6655')
-rw-r--r-- | drivers/staging/vt6655/Makefile | 1 | ||||
-rw-r--r-- | drivers/staging/vt6655/device.h | 11 | ||||
-rw-r--r-- | drivers/staging/vt6655/device_main.c | 231 | ||||
-rw-r--r-- | drivers/staging/vt6655/mac.c | 49 | ||||
-rw-r--r-- | drivers/staging/vt6655/mib.c | 139 | ||||
-rw-r--r-- | drivers/staging/vt6655/mib.h | 82 | ||||
-rw-r--r-- | drivers/staging/vt6655/power.h | 8 | ||||
-rw-r--r-- | drivers/staging/vt6655/rxtx.c | 10 |
8 files changed, 146 insertions, 385 deletions
diff --git a/drivers/staging/vt6655/Makefile b/drivers/staging/vt6655/Makefile index 115b951bf0d9..d55c3baade53 100644 --- a/drivers/staging/vt6655/Makefile +++ b/drivers/staging/vt6655/Makefile @@ -11,7 +11,6 @@ vt6655_stage-y += device_main.o \ dpc.o \ power.o \ srom.o \ - mib.o \ key.o \ rf.o diff --git a/drivers/staging/vt6655/device.h b/drivers/staging/vt6655/device.h index 440537e47121..5cf1b337cba7 100644 --- a/drivers/staging/vt6655/device.h +++ b/drivers/staging/vt6655/device.h @@ -68,7 +68,6 @@ #include "device_cfg.h" #include "card.h" -#include "mib.h" #include "srom.h" #include "desc.h" #include "key.h" @@ -239,7 +238,6 @@ struct vnt_private { CHIP_TYPE chip_id; void __iomem *PortOffset; - unsigned long dwIsr; u32 memaddr; u32 ioaddr; u32 io_size; @@ -286,11 +284,6 @@ struct vnt_private { unsigned char abyCurrentNetAddr[ETH_ALEN]; __aligned(2) bool bLinkPass; /* link status: OK or fail */ - /* Adapter statistics */ - SStatCounter scStatistic; - /* 802.11 counter */ - SDot11Counters s802_11Counter; - unsigned int uCurrRSSI; unsigned char byCurrSQ; @@ -410,6 +403,10 @@ struct vnt_private { unsigned char abyEEPROM[EEP_MAX_CONTEXT_SIZE]; /* unsigned long alignment */ unsigned short wBeaconInterval; + + struct work_struct interrupt_work; + + struct ieee80211_low_level_stats low_stats; }; static inline PDEVICE_RD_INFO alloc_rd_info(void) diff --git a/drivers/staging/vt6655/device_main.c b/drivers/staging/vt6655/device_main.c index 458bc340aece..ed040fbb7df8 100644 --- a/drivers/staging/vt6655/device_main.c +++ b/drivers/staging/vt6655/device_main.c @@ -32,7 +32,6 @@ * device_free_info - device structure resource free function * device_get_pci_info - get allocated pci io/mem resource * device_print_info - print out resource - * device_intr - interrupt handle function * device_rx_srv - rx service function * device_alloc_rx_buf - rx buffer pre-allocated function * device_free_tx_buf - free tx buffer function @@ -148,16 +147,6 @@ static void vt6655_init_info(struct pci_dev *pcid, static void device_free_info(struct vnt_private *pDevice); static bool device_get_pci_info(struct vnt_private *, struct pci_dev *pcid); static void device_print_info(struct vnt_private *pDevice); -static irqreturn_t device_intr(int irq, void *dev_instance); - -#ifdef CONFIG_PM -static int device_notify_reboot(struct notifier_block *, unsigned long event, void *ptr); -static struct notifier_block device_notifier = { - .notifier_call = device_notify_reboot, - .next = NULL, - .priority = 0, -}; -#endif static void device_init_rd0_ring(struct vnt_private *pDevice); static void device_init_rd1_ring(struct vnt_private *pDevice); @@ -807,6 +796,10 @@ static int device_rx_srv(struct vnt_private *pDevice, unsigned int uIdx) pRD = pRD->next) { if (works++ > 15) break; + + if (!pRD->pRDInfo->skb) + break; + if (vnt_receive_frame(pDevice, pRD)) { if (!device_alloc_rx_buf(pDevice, pRD)) { dev_err(&pDevice->pcid->dev, @@ -1053,129 +1046,135 @@ static void vnt_check_bb_vga(struct vnt_private *priv) } } -static irqreturn_t device_intr(int irq, void *dev_instance) +static void vnt_interrupt_process(struct vnt_private *priv) { - struct vnt_private *pDevice = dev_instance; + struct ieee80211_low_level_stats *low_stats = &priv->low_stats; int max_count = 0; - unsigned long dwMIBCounter = 0; - unsigned char byOrgPageSel = 0; - int handled = 0; + u32 mib_counter; + u32 isr; unsigned long flags; - MACvReadISR(pDevice->PortOffset, &pDevice->dwIsr); + MACvReadISR(priv->PortOffset, &isr); - if (pDevice->dwIsr == 0) - return IRQ_RETVAL(handled); + if (isr == 0) + return; - if (pDevice->dwIsr == 0xffffffff) { - pr_debug("dwIsr = 0xffff\n"); - return IRQ_RETVAL(handled); + if (isr == 0xffffffff) { + pr_debug("isr = 0xffff\n"); + return; } - handled = 1; - MACvIntDisable(pDevice->PortOffset); + MACvIntDisable(priv->PortOffset); - spin_lock_irqsave(&pDevice->lock, flags); + spin_lock_irqsave(&priv->lock, flags); - /* Make sure current page is 0 */ - VNSvInPortB(pDevice->PortOffset + MAC_REG_PAGE1SEL, &byOrgPageSel); - if (byOrgPageSel == 1) - MACvSelectPage0(pDevice->PortOffset); - else - byOrgPageSel = 0; + /* Read low level stats */ + MACvReadMIBCounter(priv->PortOffset, &mib_counter); + + low_stats->dot11RTSSuccessCount += mib_counter & 0xff; + low_stats->dot11RTSFailureCount += (mib_counter >> 8) & 0xff; + low_stats->dot11ACKFailureCount += (mib_counter >> 16) & 0xff; + low_stats->dot11FCSErrorCount += (mib_counter >> 24) & 0xff; - MACvReadMIBCounter(pDevice->PortOffset, &dwMIBCounter); /* * TBD.... * Must do this after doing rx/tx, cause ISR bit is slow * than RD/TD write back * update ISR counter */ - STAvUpdate802_11Counter(&pDevice->s802_11Counter, &pDevice->scStatistic, dwMIBCounter); - while (pDevice->dwIsr != 0) { - STAvUpdateIsrStatCounter(&pDevice->scStatistic, pDevice->dwIsr); - MACvWriteISR(pDevice->PortOffset, pDevice->dwIsr); + while (isr && priv->vif) { + MACvWriteISR(priv->PortOffset, isr); - if (pDevice->dwIsr & ISR_FETALERR) { + if (isr & ISR_FETALERR) { pr_debug(" ISR_FETALERR\n"); - VNSvOutPortB(pDevice->PortOffset + MAC_REG_SOFTPWRCTL, 0); - VNSvOutPortW(pDevice->PortOffset + MAC_REG_SOFTPWRCTL, SOFTPWRCTL_SWPECTI); - device_error(pDevice, pDevice->dwIsr); + VNSvOutPortB(priv->PortOffset + MAC_REG_SOFTPWRCTL, 0); + VNSvOutPortW(priv->PortOffset + + MAC_REG_SOFTPWRCTL, SOFTPWRCTL_SWPECTI); + device_error(priv, isr); } - if (pDevice->dwIsr & ISR_TBTT) { - if (pDevice->vif && - pDevice->op_mode != NL80211_IFTYPE_ADHOC) - vnt_check_bb_vga(pDevice); + if (isr & ISR_TBTT) { + if (priv->op_mode != NL80211_IFTYPE_ADHOC) + vnt_check_bb_vga(priv); - pDevice->bBeaconSent = false; - if (pDevice->bEnablePSMode) - PSbIsNextTBTTWakeUp((void *)pDevice); + priv->bBeaconSent = false; + if (priv->bEnablePSMode) + PSbIsNextTBTTWakeUp((void *)priv); - if ((pDevice->op_mode == NL80211_IFTYPE_AP || - pDevice->op_mode == NL80211_IFTYPE_ADHOC) && - pDevice->vif->bss_conf.enable_beacon) { - MACvOneShotTimer1MicroSec(pDevice->PortOffset, - (pDevice->vif->bss_conf.beacon_int - MAKE_BEACON_RESERVED) << 10); + if ((priv->op_mode == NL80211_IFTYPE_AP || + priv->op_mode == NL80211_IFTYPE_ADHOC) && + priv->vif->bss_conf.enable_beacon) { + MACvOneShotTimer1MicroSec(priv->PortOffset, + (priv->vif->bss_conf.beacon_int - MAKE_BEACON_RESERVED) << 10); } /* TODO: adhoc PS mode */ } - if (pDevice->dwIsr & ISR_BNTX) { - if (pDevice->op_mode == NL80211_IFTYPE_ADHOC) { - pDevice->bIsBeaconBufReadySet = false; - pDevice->cbBeaconBufReadySetCnt = 0; + if (isr & ISR_BNTX) { + if (priv->op_mode == NL80211_IFTYPE_ADHOC) { + priv->bIsBeaconBufReadySet = false; + priv->cbBeaconBufReadySetCnt = 0; } - pDevice->bBeaconSent = true; + priv->bBeaconSent = true; } - if (pDevice->dwIsr & ISR_RXDMA0) - max_count += device_rx_srv(pDevice, TYPE_RXDMA0); + if (isr & ISR_RXDMA0) + max_count += device_rx_srv(priv, TYPE_RXDMA0); - if (pDevice->dwIsr & ISR_RXDMA1) - max_count += device_rx_srv(pDevice, TYPE_RXDMA1); + if (isr & ISR_RXDMA1) + max_count += device_rx_srv(priv, TYPE_RXDMA1); - if (pDevice->dwIsr & ISR_TXDMA0) - max_count += device_tx_srv(pDevice, TYPE_TXDMA0); + if (isr & ISR_TXDMA0) + max_count += device_tx_srv(priv, TYPE_TXDMA0); - if (pDevice->dwIsr & ISR_AC0DMA) - max_count += device_tx_srv(pDevice, TYPE_AC0DMA); + if (isr & ISR_AC0DMA) + max_count += device_tx_srv(priv, TYPE_AC0DMA); - if (pDevice->dwIsr & ISR_SOFTTIMER1) { - if (pDevice->vif) { - if (pDevice->vif->bss_conf.enable_beacon) - vnt_beacon_make(pDevice, pDevice->vif); - } + if (isr & ISR_SOFTTIMER1) { + if (priv->vif->bss_conf.enable_beacon) + vnt_beacon_make(priv, priv->vif); } /* If both buffers available wake the queue */ - if (pDevice->vif) { - if (AVAIL_TD(pDevice, TYPE_TXDMA0) && - AVAIL_TD(pDevice, TYPE_AC0DMA) && - ieee80211_queue_stopped(pDevice->hw, 0)) - ieee80211_wake_queues(pDevice->hw); - } + if (AVAIL_TD(priv, TYPE_TXDMA0) && + AVAIL_TD(priv, TYPE_AC0DMA) && + ieee80211_queue_stopped(priv->hw, 0)) + ieee80211_wake_queues(priv->hw); - MACvReadISR(pDevice->PortOffset, &pDevice->dwIsr); + MACvReadISR(priv->PortOffset, &isr); - MACvReceive0(pDevice->PortOffset); - MACvReceive1(pDevice->PortOffset); + MACvReceive0(priv->PortOffset); + MACvReceive1(priv->PortOffset); - if (max_count > pDevice->sOpts.int_works) + if (max_count > priv->sOpts.int_works) break; } - if (byOrgPageSel == 1) - MACvSelectPage1(pDevice->PortOffset); + spin_unlock_irqrestore(&priv->lock, flags); - spin_unlock_irqrestore(&pDevice->lock, flags); + MACvIntEnable(priv->PortOffset, IMR_MASK_VALUE); +} + +static void vnt_interrupt_work(struct work_struct *work) +{ + struct vnt_private *priv = + container_of(work, struct vnt_private, interrupt_work); + + if (priv->vif) + vnt_interrupt_process(priv); +} - MACvIntEnable(pDevice->PortOffset, IMR_MASK_VALUE); +static irqreturn_t vnt_interrupt(int irq, void *arg) +{ + struct vnt_private *priv = arg; - return IRQ_RETVAL(handled); + if (priv->vif) + schedule_work(&priv->interrupt_work); + + return IRQ_HANDLED; } static int vnt_tx_packet(struct vnt_private *priv, struct sk_buff *skb) @@ -1267,7 +1266,7 @@ static int vnt_start(struct ieee80211_hw *hw) if (!device_init_rings(priv)) return -ENOMEM; - ret = request_irq(priv->pcid->irq, &device_intr, + ret = request_irq(priv->pcid->irq, &vnt_interrupt, IRQF_SHARED, "vt6655", priv); if (ret) { dev_dbg(&priv->pcid->dev, "failed to start irq\n"); @@ -1296,6 +1295,8 @@ static void vnt_stop(struct ieee80211_hw *hw) ieee80211_stop_queues(hw); + cancel_work_sync(&priv->interrupt_work); + MACbShutdown(priv->PortOffset); MACbSoftwareReset(priv->PortOffset); CARDbRadioPowerOff(priv); @@ -1600,6 +1601,16 @@ static int vnt_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd, return 0; } +static int vnt_get_stats(struct ieee80211_hw *hw, + struct ieee80211_low_level_stats *stats) +{ + struct vnt_private *priv = hw->priv; + + memcpy(stats, &priv->low_stats, sizeof(*stats)); + + return 0; +} + static u64 vnt_get_tsf(struct ieee80211_hw *hw, struct ieee80211_vif *vif) { struct vnt_private *priv = hw->priv; @@ -1637,6 +1648,7 @@ static const struct ieee80211_ops vnt_mac_ops = { .prepare_multicast = vnt_prepare_multicast, .configure_filter = vnt_configure, .set_key = vnt_set_key, + .get_stats = vnt_get_stats, .get_tsf = vnt_get_tsf, .set_tsf = vnt_set_tsf, .reset_tsf = vnt_reset_tsf, @@ -1762,6 +1774,8 @@ vt6655_probe(struct pci_dev *pcid, const struct pci_device_id *ent) return -ENODEV; } + INIT_WORK(&priv->interrupt_work, vnt_interrupt_work); + /* do reset */ if (!MACbSoftwareReset(priv->PortOffset)) { dev_err(&pcid->dev, ": Failed to access MAC hardware..\n"); @@ -1855,47 +1869,4 @@ static struct pci_driver device_driver = { #endif }; -static int __init vt6655_init_module(void) -{ - int ret; - - ret = pci_register_driver(&device_driver); -#ifdef CONFIG_PM - if (ret >= 0) - register_reboot_notifier(&device_notifier); -#endif - - return ret; -} - -static void __exit vt6655_cleanup_module(void) -{ -#ifdef CONFIG_PM - unregister_reboot_notifier(&device_notifier); -#endif - pci_unregister_driver(&device_driver); -} - -module_init(vt6655_init_module); -module_exit(vt6655_cleanup_module); - -#ifdef CONFIG_PM -static int -device_notify_reboot(struct notifier_block *nb, unsigned long event, void *p) -{ - struct pci_dev *pdev = NULL; - - switch (event) { - case SYS_DOWN: - case SYS_HALT: - case SYS_POWER_OFF: - for_each_pci_dev(pdev) { - if (pci_dev_driver(pdev) == &device_driver) { - if (pci_get_drvdata(pdev)) - vt6655_suspend(pdev, PMSG_HIBERNATE); - } - } - } - return NOTIFY_DONE; -} -#endif +module_pci_driver(device_driver); diff --git a/drivers/staging/vt6655/mac.c b/drivers/staging/vt6655/mac.c index 8048b3263360..aed530f022b8 100644 --- a/drivers/staging/vt6655/mac.c +++ b/drivers/staging/vt6655/mac.c @@ -70,7 +70,8 @@ * Return Value: true if all test bits On; otherwise false * */ -bool MACbIsRegBitsOn(void __iomem *dwIoBase, unsigned char byRegOfs, unsigned char byTestBits) +bool MACbIsRegBitsOn(void __iomem *dwIoBase, unsigned char byRegOfs, + unsigned char byTestBits) { unsigned char byData; @@ -93,7 +94,8 @@ bool MACbIsRegBitsOn(void __iomem *dwIoBase, unsigned char byRegOfs, unsigned ch * Return Value: true if all test bits Off; otherwise false * */ -bool MACbIsRegBitsOff(void __iomem *dwIoBase, unsigned char byRegOfs, unsigned char byTestBits) +bool MACbIsRegBitsOff(void __iomem *dwIoBase, unsigned char byRegOfs, + unsigned char byTestBits) { unsigned char byData; @@ -218,7 +220,8 @@ void MACvSaveContext(void __iomem *dwIoBase, unsigned char *pbyCxtBuf) /* read page1 register */ for (ii = 0; ii < MAC_MAX_CONTEXT_SIZE_PAGE1; ii++) - VNSvInPortB((dwIoBase + ii), (pbyCxtBuf + MAC_MAX_CONTEXT_SIZE_PAGE0 + ii)); + VNSvInPortB((dwIoBase + ii), + (pbyCxtBuf + MAC_MAX_CONTEXT_SIZE_PAGE0 + ii)); MACvSelectPage0(dwIoBase); } @@ -244,7 +247,8 @@ void MACvRestoreContext(void __iomem *dwIoBase, unsigned char *pbyCxtBuf) MACvSelectPage1(dwIoBase); /* restore page1 */ for (ii = 0; ii < MAC_MAX_CONTEXT_SIZE_PAGE1; ii++) - VNSvOutPortB((dwIoBase + ii), *(pbyCxtBuf + MAC_MAX_CONTEXT_SIZE_PAGE0 + ii)); + VNSvOutPortB((dwIoBase + ii), + *(pbyCxtBuf + MAC_MAX_CONTEXT_SIZE_PAGE0 + ii)); MACvSelectPage0(dwIoBase); @@ -263,13 +267,18 @@ void MACvRestoreContext(void __iomem *dwIoBase, unsigned char *pbyCxtBuf) VNSvOutPortB(dwIoBase + ii, *(pbyCxtBuf + ii)); /* restore CURR_RX_DESC_ADDR, CURR_TX_DESC_ADDR */ - VNSvOutPortD(dwIoBase + MAC_REG_TXDMAPTR0, *(unsigned long *)(pbyCxtBuf + MAC_REG_TXDMAPTR0)); - VNSvOutPortD(dwIoBase + MAC_REG_AC0DMAPTR, *(unsigned long *)(pbyCxtBuf + MAC_REG_AC0DMAPTR)); - VNSvOutPortD(dwIoBase + MAC_REG_BCNDMAPTR, *(unsigned long *)(pbyCxtBuf + MAC_REG_BCNDMAPTR)); - - VNSvOutPortD(dwIoBase + MAC_REG_RXDMAPTR0, *(unsigned long *)(pbyCxtBuf + MAC_REG_RXDMAPTR0)); - - VNSvOutPortD(dwIoBase + MAC_REG_RXDMAPTR1, *(unsigned long *)(pbyCxtBuf + MAC_REG_RXDMAPTR1)); + VNSvOutPortD(dwIoBase + MAC_REG_TXDMAPTR0, + *(unsigned long *)(pbyCxtBuf + MAC_REG_TXDMAPTR0)); + VNSvOutPortD(dwIoBase + MAC_REG_AC0DMAPTR, + *(unsigned long *)(pbyCxtBuf + MAC_REG_AC0DMAPTR)); + VNSvOutPortD(dwIoBase + MAC_REG_BCNDMAPTR, + *(unsigned long *)(pbyCxtBuf + MAC_REG_BCNDMAPTR)); + + VNSvOutPortD(dwIoBase + MAC_REG_RXDMAPTR0, + *(unsigned long *)(pbyCxtBuf + MAC_REG_RXDMAPTR0)); + + VNSvOutPortD(dwIoBase + MAC_REG_RXDMAPTR1, + *(unsigned long *)(pbyCxtBuf + MAC_REG_RXDMAPTR1)); } /* @@ -641,7 +650,8 @@ void MACvSetCurrRx1DescAddr(void __iomem *dwIoBase, unsigned long dwCurrDescAddr * Return Value: none * */ -void MACvSetCurrTx0DescAddrEx(void __iomem *dwIoBase, unsigned long dwCurrDescAddr) +void MACvSetCurrTx0DescAddrEx(void __iomem *dwIoBase, + unsigned long dwCurrDescAddr) { unsigned short ww; unsigned char byData; @@ -679,7 +689,8 @@ void MACvSetCurrTx0DescAddrEx(void __iomem *dwIoBase, unsigned long dwCurrDescAd * */ /* TxDMA1 = AC0DMA */ -void MACvSetCurrAC0DescAddrEx(void __iomem *dwIoBase, unsigned long dwCurrDescAddr) +void MACvSetCurrAC0DescAddrEx(void __iomem *dwIoBase, + unsigned long dwCurrDescAddr) { unsigned short ww; unsigned char byData; @@ -703,7 +714,8 @@ void MACvSetCurrAC0DescAddrEx(void __iomem *dwIoBase, unsigned long dwCurrDescAd VNSvOutPortB(dwIoBase + MAC_REG_AC0DMACTL, DMACTL_RUN); } -void MACvSetCurrTXDescAddr(int iTxType, void __iomem *dwIoBase, unsigned long dwCurrDescAddr) +void MACvSetCurrTXDescAddr(int iTxType, void __iomem *dwIoBase, + unsigned long dwCurrDescAddr) { if (iTxType == TYPE_AC0DMA) MACvSetCurrAC0DescAddrEx(dwIoBase, dwCurrDescAddr); @@ -767,7 +779,8 @@ void MACvOneShotTimer1MicroSec(void __iomem *dwIoBase, unsigned int uDelayTime) VNSvOutPortB(dwIoBase + MAC_REG_TMCTL1, (TMCTL_TMD | TMCTL_TE)); } -void MACvSetMISCFifo(void __iomem *dwIoBase, unsigned short wOffset, unsigned long dwData) +void MACvSetMISCFifo(void __iomem *dwIoBase, unsigned short wOffset, + unsigned long dwData) { if (wOffset > 273) return; @@ -816,8 +829,10 @@ bool MACbPSWakeup(void __iomem *dwIoBase) * */ -void MACvSetKeyEntry(void __iomem *dwIoBase, unsigned short wKeyCtl, unsigned int uEntryIdx, - unsigned int uKeyIdx, unsigned char *pbyAddr, u32 *pdwKey, unsigned char byLocalID) +void MACvSetKeyEntry(void __iomem *dwIoBase, unsigned short wKeyCtl, + unsigned int uEntryIdx, unsigned int uKeyIdx, + unsigned char *pbyAddr, u32 *pdwKey, + unsigned char byLocalID) { unsigned short wOffset; u32 dwData; diff --git a/drivers/staging/vt6655/mib.c b/drivers/staging/vt6655/mib.c deleted file mode 100644 index d55c762027ed..000000000000 --- a/drivers/staging/vt6655/mib.c +++ /dev/null @@ -1,139 +0,0 @@ -/* - * Copyright (c) 1996, 2003 VIA Networking Technologies, Inc. - * All rights reserved. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * File: mib.c - * - * Purpose: Implement MIB Data Structure - * - * Author: Tevin Chen - * - * Date: May 21, 1996 - * - * Functions: - * STAvUpdateIstStatCounter - Update ISR statistic counter - * STAvUpdate802_11Counter - Update 802.11 mib counter - * - * Revision History: - * - */ - -#include "mac.h" -#include "mib.h" - -/*--------------------- Static Classes ----------------------------*/ - -/*--------------------- Static Variables --------------------------*/ - -/*--------------------- Static Functions --------------------------*/ - -/*--------------------- Export Variables --------------------------*/ - -/*--------------------- Export Functions --------------------------*/ - -/* - * Description: Update Isr Statistic Counter - * - * Parameters: - * In: - * pStatistic - Pointer to Statistic Counter Data Structure - * wisr - Interrupt status - * Out: - * none - * - * Return Value: none - * - */ -void STAvUpdateIsrStatCounter(PSStatCounter pStatistic, unsigned long dwIsr) -{ - /**********************/ - /* ABNORMAL interrupt */ - /**********************/ - /* not any IMR bit invoke irq */ - - if (dwIsr == 0) { - pStatistic->ISRStat.dwIsrUnknown++; - return; - } - -/* Added by Kyle */ - if (dwIsr & ISR_TXDMA0) /* ISR, bit0 */ - pStatistic->ISRStat.dwIsrTx0OK++; /* TXDMA0 successful */ - - if (dwIsr & ISR_AC0DMA) /* ISR, bit1 */ - pStatistic->ISRStat.dwIsrAC0TxOK++; /* AC0DMA successful */ - - if (dwIsr & ISR_BNTX) /* ISR, bit2 */ - pStatistic->ISRStat.dwIsrBeaconTxOK++; /* BeaconTx successful */ - - if (dwIsr & ISR_RXDMA0) /* ISR, bit3 */ - pStatistic->ISRStat.dwIsrRx0OK++; /* Rx0 successful */ - - if (dwIsr & ISR_TBTT) /* ISR, bit4 */ - pStatistic->ISRStat.dwIsrTBTTInt++; /* TBTT successful */ - - if (dwIsr & ISR_SOFTTIMER) /* ISR, bit6 */ - pStatistic->ISRStat.dwIsrSTIMERInt++; - - if (dwIsr & ISR_WATCHDOG) /* ISR, bit7 */ - pStatistic->ISRStat.dwIsrWatchDog++; - - if (dwIsr & ISR_FETALERR) /* ISR, bit8 */ - pStatistic->ISRStat.dwIsrUnrecoverableError++; - - if (dwIsr & ISR_SOFTINT) /* ISR, bit9 */ - pStatistic->ISRStat.dwIsrSoftInterrupt++; /* software interrupt */ - - if (dwIsr & ISR_MIBNEARFULL) /* ISR, bit10 */ - pStatistic->ISRStat.dwIsrMIBNearfull++; - - if (dwIsr & ISR_RXNOBUF) /* ISR, bit11 */ - pStatistic->ISRStat.dwIsrRxNoBuf++; /* Rx No Buff */ - - if (dwIsr & ISR_RXDMA1) /* ISR, bit12 */ - pStatistic->ISRStat.dwIsrRx1OK++; /* Rx1 successful */ - - if (dwIsr & ISR_SOFTTIMER1) /* ISR, bit21 */ - pStatistic->ISRStat.dwIsrSTIMER1Int++; -} - -/* - * Description: Update 802.11 mib counter - * - * Parameters: - * In: - * p802_11Counter - Pointer to 802.11 mib counter - * pStatistic - Pointer to Statistic Counter Data Structure - * dwCounter - hardware counter for 802.11 mib - * Out: - * none - * - * Return Value: none - * - */ -void -STAvUpdate802_11Counter( - PSDot11Counters p802_11Counter, - PSStatCounter pStatistic, - unsigned long dwCounter -) -{ - p802_11Counter->RTSSuccessCount += (unsigned long long) (dwCounter & 0x000000ff); - p802_11Counter->RTSFailureCount += (unsigned long long) ((dwCounter & 0x0000ff00) >> 8); - p802_11Counter->ACKFailureCount += (unsigned long long) ((dwCounter & 0x00ff0000) >> 16); - p802_11Counter->FCSErrorCount += (unsigned long long) ((dwCounter & 0xff000000) >> 24); -} diff --git a/drivers/staging/vt6655/mib.h b/drivers/staging/vt6655/mib.h deleted file mode 100644 index 5cb59b8a1c7c..000000000000 --- a/drivers/staging/vt6655/mib.h +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Copyright (c) 1996, 2003 VIA Networking Technologies, Inc. - * All rights reserved. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * File: mib.h - * - * Purpose: Implement MIB Data Structure - * - * Author: Tevin Chen - * - * Date: May 21, 1996 - * - */ - -#ifndef __MIB_H__ -#define __MIB_H__ - -#include "desc.h" - -// -// 802.11 counter -// - -typedef struct tagSDot11Counters { - unsigned long long RTSSuccessCount; - unsigned long long RTSFailureCount; - unsigned long long ACKFailureCount; - unsigned long long FCSErrorCount; -} SDot11Counters, *PSDot11Counters; - -// -// Custom counter -// -typedef struct tagSISRCounters { - unsigned long dwIsrTx0OK; - unsigned long dwIsrAC0TxOK; - unsigned long dwIsrBeaconTxOK; - unsigned long dwIsrRx0OK; - unsigned long dwIsrTBTTInt; - unsigned long dwIsrSTIMERInt; - unsigned long dwIsrWatchDog; - unsigned long dwIsrUnrecoverableError; - unsigned long dwIsrSoftInterrupt; - unsigned long dwIsrMIBNearfull; - unsigned long dwIsrRxNoBuf; - - unsigned long dwIsrUnknown; - - unsigned long dwIsrRx1OK; - unsigned long dwIsrSTIMER1Int; -} SISRCounters, *PSISRCounters; - -// -// statistic counter -// -typedef struct tagSStatCounter { - SISRCounters ISRStat; -} SStatCounter, *PSStatCounter; - -void STAvUpdateIsrStatCounter(PSStatCounter pStatistic, unsigned long dwIsr); - -void STAvUpdate802_11Counter( - PSDot11Counters p802_11Counter, - PSStatCounter pStatistic, - unsigned long dwCounter -); - -#endif // __MIB_H__ diff --git a/drivers/staging/vt6655/power.h b/drivers/staging/vt6655/power.h index 1083341b2a47..538e68507bb0 100644 --- a/drivers/staging/vt6655/power.h +++ b/drivers/staging/vt6655/power.h @@ -29,9 +29,9 @@ #ifndef __POWER_H__ #define __POWER_H__ -#define C_PWBT 1000 // micro sec. power up before TBTT -#define PS_FAST_INTERVAL 1 // Fast power saving listen interval -#define PS_MAX_INTERVAL 4 // MAX power saving listen interval +#define C_PWBT 1000 /* micro sec. power up before TBTT */ +#define PS_FAST_INTERVAL 1 /* Fast power saving listen interval */ +#define PS_MAX_INTERVAL 4 /* MAX power saving listen interval */ void PSvDisablePowerSaving( @@ -50,4 +50,4 @@ PSbIsNextTBTTWakeUp( void *hDeviceContext ); -#endif //__POWER_H__ +#endif /* __POWER_H__ */ diff --git a/drivers/staging/vt6655/rxtx.c b/drivers/staging/vt6655/rxtx.c index 74687761bd2e..534338c46619 100644 --- a/drivers/staging/vt6655/rxtx.c +++ b/drivers/staging/vt6655/rxtx.c @@ -656,7 +656,7 @@ s_vFillRTSHead( uRTSFrameLen -= 4; } - /* Note: So far RTSHead dosen't appear in ATIM & Beacom DMA, so we don't need to take them into account. + /* Note: So far RTSHead doesn't appear in ATIM & Beacom DMA, so we don't need to take them into account. Otherwise, we need to modify codes for them. */ if (byPktType == PK_TYPE_11GB || byPktType == PK_TYPE_11GA) { if (byFBOption == AUTO_FB_NONE) { @@ -1093,7 +1093,7 @@ s_cbFillTxBufHead(struct vnt_private *pDevice, unsigned char byPktType, if (byPktType == PK_TYPE_11GB || byPktType == PK_TYPE_11GA) {/* 802.11g packet */ if (byFBOption == AUTO_FB_NONE) { - if (bRTS == true) {/* RTS_need */ + if (bRTS) {/* RTS_need */ pvRrvTime = (void *)(pbyTxBufferAddr + wTxBufSize); pMICHDR = (struct vnt_mic_hdr *)(pbyTxBufferAddr + wTxBufSize + sizeof(struct vnt_rrv_time_rts)); pvRTS = (void *)(pbyTxBufferAddr + wTxBufSize + sizeof(struct vnt_rrv_time_rts) + cbMICHDR); @@ -1115,7 +1115,7 @@ s_cbFillTxBufHead(struct vnt_private *pDevice, unsigned char byPktType, } } else { /* Auto Fall Back */ - if (bRTS == true) {/* RTS_need */ + if (bRTS) {/* RTS_need */ pvRrvTime = (void *)(pbyTxBufferAddr + wTxBufSize); pMICHDR = (struct vnt_mic_hdr *) (pbyTxBufferAddr + wTxBufSize + sizeof(struct vnt_rrv_time_rts)); pvRTS = (void *) (pbyTxBufferAddr + wTxBufSize + sizeof(struct vnt_rrv_time_rts) + cbMICHDR); @@ -1138,7 +1138,7 @@ s_cbFillTxBufHead(struct vnt_private *pDevice, unsigned char byPktType, } else {/* 802.11a/b packet */ if (byFBOption == AUTO_FB_NONE) { - if (bRTS == true) { + if (bRTS) { pvRrvTime = (void *)(pbyTxBufferAddr + wTxBufSize); pMICHDR = (struct vnt_mic_hdr *) (pbyTxBufferAddr + wTxBufSize + sizeof(struct vnt_rrv_time_ab)); pvRTS = (void *)(pbyTxBufferAddr + wTxBufSize + sizeof(struct vnt_rrv_time_ab) + cbMICHDR); @@ -1158,7 +1158,7 @@ s_cbFillTxBufHead(struct vnt_private *pDevice, unsigned char byPktType, } } else { /* Auto Fall Back */ - if (bRTS == true) { /* RTS_need */ + if (bRTS) { /* RTS_need */ pvRrvTime = (void *)(pbyTxBufferAddr + wTxBufSize); pMICHDR = (struct vnt_mic_hdr *) (pbyTxBufferAddr + wTxBufSize + sizeof(struct vnt_rrv_time_ab)); pvRTS = (void *)(pbyTxBufferAddr + wTxBufSize + sizeof(struct vnt_rrv_time_ab) + cbMICHDR); |