summaryrefslogtreecommitdiffstats
path: root/drivers
Commit message (Collapse)AuthorAgeFilesLines
* netxen: remove netxen_nic_niu.cDhananjay Phadke2009-08-276-290/+141Star
| | | | | | | Consolidate all MAC/PHY access functions into netxen_nic_hw.c Signed-off-by: Dhananjay Phadke <dhananjay@netxen.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* netxen: implement generic pcie semaphore functionsDhananjay Phadke2009-08-276-144/+71Star
| | | | | | | | | | | | Implement common function for locking/unlocking 8 hardware semaphores used for serializing access to shared resouces on a NIC board by different PCI functions. As by definition, callers of these semaphore API can be put to sleep till the semaphore is locked. Signed-off-by: Dhananjay Phadke <dhananjay@netxen.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* netxen: remove unused codeDhananjay Phadke2009-08-274-390/+11Star
| | | | | | | | | | Remove code for phy access on unreleased NX2031 based quad-gig board. NX3031 based production quad-gig boards do not require direct phy access by driver. Signed-off-by: Dhananjay Phadke <dhananjay@netxen.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* Merge branch 'for-next' of ↵David S. Miller2009-08-241-10/+52
|\ | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/lowpan/lowpan
| * ieee802154: add support for channel pages from IEEE 802.15.4-2006Dmitry Eremin-Solenikov2009-08-191-4/+6
| | | | | | | | | | | | | | IEEE 802.15.4-2006 adds new concept: channel pages, which can contain several channels. Add support for channel pages in the API and in the fakehard driver. Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
| * fakehard: add binding to wpan-phy deviceDmitry Eremin-Solenikov2009-08-191-6/+46
| | | | | | | | | | | | | | Make fakehard create and maintain wpan-phy node, thus representing it's phy in the sysfs. Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
* | r6040: bump to version 0.25 and 20 August 2009 release dateFlorian Fainelli2009-08-241-2/+2
| | | | | | | | | | Signed-off-by: Florian Fainelli <florian@openwrt.org> Signed-off-by: David S. Miller <davem@davemloft.net>
* | r6040: move down second PHY detection to r6040_init_oneMark Kelly2009-08-241-8/+7Star
| | | | | | | | | | | | | | | | | | | | Instead of fully initializing an unusable second r6040 device, perform the PHY detection earlier and bail out in r6040_init_one when we could not read the PHY identifier. Signed-off-by: Mark Kelly <mark@bifferos.com> Signed-off-by: Florian Fainelli <florian@openwrt.org> Signed-off-by: David S. Miller <davem@davemloft.net>
* | r6040: remove unused pioaddr variableMark Kelly2009-08-241-2/+0Star
| | | | | | | | | | | | | | | | This patch removes the unused pioaddr variable. Signed-off-by: Mark Kelly <mark@bifferos.com> Signed-off-by: Florian Fainelli <florian@openwrt.org> Signed-off-by: David S. Miller <davem@davemloft.net>
* | netxen: remove netxen_nic_phan_reg.hDhananjay Phadke2009-08-249-215/+102Star
| | | | | | | | | | | | | | Consolidate register definitions in netxen_nic_hdr.h Signed-off-by: Dhananjay Phadke <dhananjay@netxen.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | netxen: implement pci driver shutdownAmit Kumar Salecha2009-08-241-8/+30
| | | | | | | | | | | | | | | | | | Implement pci driver shutdown functionality, this helps quiescing all PCI transaction before chipset is reset. Amit Kumar Salecha <amit@qlogic.com> Signed-off-by: Dhananjay Phadke <dhananjay@netxen.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | netxen: refactor tx dma mapping codeDhananjay Phadke2009-08-241-52/+60
| | | | | | | | | | | | | | Move all tx skb mapping code into netxen_map_tx_skb(). Signed-off-by: Dhananjay Phadke <dhananjay@netxen.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | netxen: fix firmware reset logicDhananjay Phadke2009-08-241-1/+3
| | | | | | | | | | | | | | | | If netxen_need_fw_reset() return 0 [ implies firmware is up and running], still go through dma mask check, etc. Signed-off-by: Dhananjay Phadke <dhananjay@netxen.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | netxen: ethtool statistics and control for LRONarender Kumar2009-08-246-8/+114
| | | | | | | | | | | | | | | | | | | | | | | | | | Add ethtool -K knob to control LRO in firmware. LRO path is completely separated from GRO, LRO packets are still fed with netif_receive_skb(). Also fix ethtool statistics to include LRO packets. Also use correct message type while configuring interrupt coalescing. Signed-off-by: Narender Kumar <narender.kumar@qlogic.com> Signed-off-by: Dhananjay Phadke <dhananjay@netxen.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | bnx2: Update version to 2.0.2.Michael Chan2009-08-231-2/+2
| | | | | | | | | | Signed-off-by: Michael Chan <mchan@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | bnx2: Use const on flash_table structure.Michael Chan2009-08-232-4/+4
| | | | | | | | | | | | | | | | The structure, once initialized, never changes. Signed-off-by: Benjamin Li <benli@broadcom.com> Signed-off-by: Michael Chan <mchan@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | bnx2: Refine coalescing parameters.Michael Chan2009-08-231-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | - Set the USE_INT_PARAM bit so the rx-frames-irq and tx-frames-irq will take effect on 5709. - Increase the default rx-frames to reduce interrupt count. - Decrease the default rx-frames-irq and tx-frames-irq to catch more events during NAPI poll. All these will reduce interrupts without affecting latency. Signed-off-by: Michael Chan <mchan@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | bnx2: Report FTQ discard counter.Michael Chan2009-08-231-8/+12
| | | | | | | | | | | | | | Report this counter to ethtool -S and include it in netstat. Signed-off-by: Michael Chan <mchan@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | bnx2: Apply BROKEN_STATS workaround to 5706 and 5708.Michael Chan2009-08-232-3/+5
| | | | | | | | | | | | | | Add flag to expand the workaround to both chips. Signed-off-by: Michael Chan <mchan@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | bnx2: Close device if MTU change or ring size change fails.Michael Chan2009-08-231-2/+7
| | | | | | | | | | | | | | | | When unable to allocate memory for new MTU or new ring size, we need to close the device to prevent it from crashing. Signed-off-by: Michael Chan <mchan@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | bnx2: Check if_running() before touching chip registers.Michael Chan2009-08-231-1/+9
| | | | | | | | | | | | | | | | Add this check to bnx2_netif_stop() and bnx2_vlan_rx_register() to prevent bus lockups on some systems when the chip is in low power state. Signed-off-by: Michael Chan <mchan@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | bnx2: Zero out status block before chip reset.Michael Chan2009-08-231-0/+1
| | | | | | | | | | | | | | | | In case IRQs are shared, we will not mistakenly start processing the ring based on old status block indices. Signed-off-by: Michael Chan <mchan@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | Merge branch 'master' of ↵David S. Miller2009-08-2178-2032/+2542
|\ \ | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6
| * | mwl8k: update copyright and version numberLennert Buytenhek2009-08-201-2/+2
| | | | | | | | | | | | | | | Signed-off-by: Lennert Buytenhek <buytenh@marvell.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| * | mwl8k: remove mwl8k_queue_work()Lennert Buytenhek2009-08-201-64/+0Star
| | | | | | | | | | | | | | | Signed-off-by: Lennert Buytenhek <buytenh@marvell.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| * | mwl8k: get rid of mwl8k_configure_filter() workqueue useLennert Buytenhek2009-08-201-45/+20Star
| | | | | | | | | | | | | | | Signed-off-by: Lennert Buytenhek <buytenh@marvell.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| * | mwl8k: get rid of mwl8k_get_stats() workqueue useLennert Buytenhek2009-08-201-30/+2Star
| | | | | | | | | | | | | | | Signed-off-by: Lennert Buytenhek <buytenh@marvell.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| * | mwl8k: get rid of mwl8k_conf_tx() workqueue useLennert Buytenhek2009-08-201-43/+14Star
| | | | | | | | | | | | | | | Signed-off-by: Lennert Buytenhek <buytenh@marvell.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| * | mwl8k: get rid of mwl8k_set_rts_threshold() workqueue useLennert Buytenhek2009-08-201-39/+3Star
| | | | | | | | | | | | | | | Signed-off-by: Lennert Buytenhek <buytenh@marvell.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| * | mwl8k: get rid of mwl8k_bss_info_changed() workqueue useLennert Buytenhek2009-08-201-63/+38Star
| | | | | | | | | | | | | | | Signed-off-by: Lennert Buytenhek <buytenh@marvell.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| * | mwl8k: get rid of mwl8k_config() workqueue useLennert Buytenhek2009-08-201-52/+20Star
| | | | | | | | | | | | | | | Signed-off-by: Lennert Buytenhek <buytenh@marvell.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| * | mwl8k: get rid of mwl8k_stop() workqueue useLennert Buytenhek2009-08-201-25/+1Star
| | | | | | | | | | | | | | | Signed-off-by: Lennert Buytenhek <buytenh@marvell.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| * | mwl8k: get rid of mwl8k_start() workqueue useLennert Buytenhek2009-08-201-78/+27Star
| | | | | | | | | | | | | | | Signed-off-by: Lennert Buytenhek <buytenh@marvell.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| * | mwl8k: fix firmware command serialisationLennert Buytenhek2009-08-201-65/+89
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The current mwl8k_priv->fw_lock spinlock doesn't actually protect against multiple commands being submitted at once, as it is not kept held over the entire firmware command submission. And since waiting for command completion sleeps, we can't use a spinlock anyway. To fix mwl8k firmware command serialisation properly, we have the following requirements: - Some commands require that the packet transmit path is idle when the command is issued. (For simplicity, we'll just quiesce the transmit path for every command.) - There are certain sequences of commands that need to be issued to the hardware sequentially, with no other intervening commands. This leads to an implementation of a "firmware lock" as a mutex that can be taken recursively, and which is taken by both the low-level command submission function (mwl8k_post_cmd) as well as any users of that function that require issuing of an atomic sequence of commands, and quiesces the transmit path whenever it's taken. Signed-off-by: Lennert Buytenhek <buytenh@marvell.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| * | mwl8k: mwl8k_queue_work() cleanupLennert Buytenhek2009-08-201-171/+33Star
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Delete most of the mwl8k_work_struct fields and options, since most of them are unused or never changed from their defaults: - We always use priv->config_wq, so delete the wqueue argument from mwl8k_queue_work(). - MWL8K_WQ_SPIN and MWL8K_WQ_POST_REQUEST are never used, as all callers sleep for request completion, so sleep unconditionally. - MWL8K_WQ_FREE_WORKSTRUCT is never used. - MWL8K_WQ_TX_WAIT_EMPTY is always set, so assume it unconditionally. - timeout_ms/txwait_attempts/tx_timeout_ms are never changed from their defaults, so just hardcode these in the workqueue worker. - step is never used. Signed-off-by: Lennert Buytenhek <buytenh@marvell.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| * | mwl8k: mwl8k_txq_xmit() reworkLennert Buytenhek2009-08-201-93/+52Star
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Various mwl8k_txq_xmit changes: - Extract the QoS field before adding the DMA header. - Only write to tx->status once, and only after all the other descriptor fields have been set. - Do all tx state manipulation under the tx spinlock. - Remove the priv->inconfig check, as all transmit queues will be frozen during config cycles, so we won't ever be asked to transmit if a config cycle is running. - Remove some more dead code. Signed-off-by: Lennert Buytenhek <buytenh@marvell.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| * | mwl8k: implement idle modeLennert Buytenhek2009-08-201-0/+6
| | | | | | | | | | | | | | | Signed-off-by: Lennert Buytenhek <buytenh@marvell.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| * | mwl8k: no need to hold ->tx_lock while setting the hardware interrupt maskLennert Buytenhek2009-08-201-6/+0Star
| | | | | | | | | | | | | | | Signed-off-by: Lennert Buytenhek <buytenh@marvell.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| * | mwl8k: don't hardcode the number of transmit queuesLennert Buytenhek2009-08-201-7/+7
| | | | | | | | | | | | | | | | | | | | | Use MWL8K_TX_QUEUES instead of a hardcoded "4" in a couple of places. Signed-off-by: Lennert Buytenhek <buytenh@marvell.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| * | mwl8k: don't touch 'command done' interrupt during firmware loadLennert Buytenhek2009-08-201-23/+1Star
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since firmware load commands don't generate 'command done' interrupts like normal commands do, polling for command done interrupts just unnecessarily slows down the firmware load process. Removing this bit of code speeds up loading a typical firmware image from 840 msec to 180 msec. Signed-off-by: Lennert Buytenhek <buytenh@marvell.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| * | mwl8k: dma header manipulations can't failLennert Buytenhek2009-08-201-70/+13Star
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Adding and removing the DMA header that the mwl8k hardware requires on tx and provides on rx can never fail, since we are guaranteed to have enough headroom on the tx path to expand the packet, and we only ever shrink the packet on the rx path. (And on both paths we are guaranteed to be the only user of the skb we are handling.) This allows removing all of the skb clone handling in the tx and tx reclaim paths, and eliminates error checks in both the tx and rx paths, simplifying the code a bit more. Signed-off-by: Lennert Buytenhek <buytenh@marvell.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| * | mwl8k: ->add_interface() is not called for monitor interfacesLennert Buytenhek2009-08-201-4/+2Star
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There is no need to check for NL80211_IFTYPE_MONITOR in ->add_interface(), as this function is never called for monitor interfaces. Also, there is no need to advertise this bit in our wiphy's ->interface_modes. Signed-off-by: Lennert Buytenhek <buytenh@marvell.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| * | mwl8k: fix mwl8k_configure_filter() parameter lifetime issueLennert Buytenhek2009-08-201-68/+39Star
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | mwl8k_configure_filter() passes pointers to total_flags and the multicast address list to a workqueue function, while there is no guarantee that those pointers will still be valid by the time the workqueue function runs. Solve this by passing total_flags by value, and by passing an already built multicast address setup command packet to the workqueue function so that we don't have to look at the multicast address list itself outside of mwl8k_configure_filter(). Also, since ->configure_filter() can sleep now, wait synchronously for the worker to finish. Signed-off-by: Lennert Buytenhek <buytenh@marvell.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| * | mwl8k: remove MWL8K_*_SLOTTIME definesLennert Buytenhek2009-08-201-12/+3Star
| | | | | | | | | | | | | | | Signed-off-by: Lennert Buytenhek <buytenh@marvell.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| * | mwl8k: remove MWL8K_WMM_* definesLennert Buytenhek2009-08-201-13/+8Star
| | | | | | | | | | | | | | | Signed-off-by: Lennert Buytenhek <buytenh@marvell.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| * | mwl8k: remove MWL8K_RADIO_*_PREAMBLE definesLennert Buytenhek2009-08-201-17/+5Star
| | | | | | | | | | | | | | | Signed-off-by: Lennert Buytenhek <buytenh@marvell.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| * | mwl8k: remove MWL8K_RADIO_* definesLennert Buytenhek2009-08-201-24/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of passing a flag bitmask to mwl8k_cmd_802_11_radio_control, pass the 'enable' and 'force' arguments as separate parameters, and introduce wrappers for the common cases of enabling and disabling without forcing. Signed-off-by: Lennert Buytenhek <buytenh@marvell.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| * | mwl8k: various coding style cleanupsLennert Buytenhek2009-08-201-73/+57Star
| | | | | | | | | | | | | | | Signed-off-by: Lennert Buytenhek <buytenh@marvell.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| * | mwl8k: sort firmware command list by opcode, and trim unused commandsLennert Buytenhek2009-08-201-23/+19Star
| | | | | | | | | | | | | | | Signed-off-by: Lennert Buytenhek <buytenh@marvell.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| * | mwl8k: s/IEEE80211_ADDR_LEN/ETH_ALEN/gLennert Buytenhek2009-08-201-25/+22Star
| | | | | | | | | | | | | | | Signed-off-by: Lennert Buytenhek <buytenh@marvell.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>