aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/qlge
Commit message (Collapse)AuthorAgeFilesLines
...
* qlge: Clean up module parameter name.Ron Mercer2009-11-111-8/+8
| | | | | | | Change it to match qlge_xxx convention. Signed-off-by: Ron Mercer <ron.mercer@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* qlge: Add asic reset to open call.Ron Mercer2009-11-111-0/+4
| | | | | | | Force asic to known state at open(). Signed-off-by: Ron Mercer <ron.mercer@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* qlge: Do not change frame routing during suspend.Ron Mercer2009-11-111-3/+0
| | | | | | | | We do not need to change the frame routing to direct all frames to the management fifo during suspend. This is now done by the firmware. Signed-off-by: Ron Mercer <ron.mercer@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* Merge branch 'master' of ↵David S. Miller2009-11-082-1/+3
|\ | | | | | | | | | | | | master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 Conflicts: drivers/net/can/usb/ems_usb.c
| * qlge: Set PCIe reset type for EEH to fundamental.Ron Mercer2009-11-061-0/+2
| | | | | | | | | | | | | | This device requires a fundamental reset when recovering from EEH. Signed-off-by: Ron Mercer <ron.mercer@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * qlge: Fix early exit from mbox cmd complete wait.Ron Mercer2009-11-061-1/+1
| | | | | | | | | | | | | | | | | | This line was accidentally left out of the previous commit # da03945140a035a2962f7f93e359085596f20499 ("qlge: Fix firmware mailbox command timeout."). Signed-off-by: Ron Mercer <ron.mercer@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | qlge: Clean up netdev->stats usage.Ron Mercer2009-11-042-5/+49
| | | | | | | | | | | | | | | | Don't access netdev->stats in IO path. Save them in tx_ring/rx_rings and add them up when get_stats API is called. Signed-off-by: Ron Mercer <ron.mercer@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | qlge: Add firmware/driver sub-command support.Ron Mercer2009-11-042-7/+61
| | | | | | | | | | | | | | | | These sub-commands are issued by another (FCoE) function requesting an operation on a shared resource. Signed-off-by: Ron Mercer <ron.mercer@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | qlge: Fix indentations.Ron Mercer2009-11-041-4/+4
| | | | | | | | | | Signed-off-by: Ron Mercer <ron.mercer@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | qlge: Change naming on vlan API.Ron Mercer2009-11-021-6/+6
| | | | | | | | | | | | | | Change name on vlan_rx_add, kill, register to match other driver API. Signed-off-by: Ron Mercer <ron.mercer@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | qlge: Add ethtool self-test.Ron Mercer2009-11-023-1/+137
| | | | | | | | | | Signed-off-by: Ron Mercer <ron.mercer@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | Merge branch 'master' of ↵David S. Miller2009-10-293-37/+65
|\ \ | |/ | | | | master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
| * qlge: Fix firmware mailbox command timeout.Ron Mercer2009-10-292-11/+13
| | | | | | | | | | | | | | | | | | The mailbox command process would only process a maximum of 5 unrelated firmware events while waiting for it's command completion status. It should process an unlimited number of events while waiting for a maximum of 5 seconds. Signed-off-by: Ron Mercer <ron.mercer@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * qlge: Fix EEH handling.Ron Mercer2009-10-291-26/+52
| | | | | | | | | | | | | | | | Clean up driver resources without touch the hardware. Add pci save/restore state. Signed-off-by: Ron Mercer <ron.mercer@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | qlge: Add ethtool register dump function.Ron Mercer2009-10-213-0/+345
| | | | | | | | | | Signed-off-by: Ron Mercer <ron.mercer@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | qlge: Add ethtool wake on LAN function.Ron Mercer2009-10-214-0/+172
| | | | | | | | | | Signed-off-by: Ron Mercer <ron.mercer@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | qlge: Add ethtool blink function.Ron Mercer2009-10-213-0/+89
| | | | | | | | | | Signed-off-by: Ron Mercer <ron.mercer@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | qlge: Add ethtool get/set pause parameter.Ron Mercer2009-10-213-2/+37
| | | | | | | | | | Signed-off-by: Ron Mercer <ron.mercer@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | qlge: Size RX buffers based on MTU.Ron Mercer2009-10-192-74/+214
| | | | | | | | | | | | | | | | | | | | Change RX large buffer size based on MTU. If pages are larger than the MTU the page is divided up into multiple chunks and passed to the hardware. When pages are smaller than MTU each RX buffer can contain be comprised of up to 2 pages. Signed-off-by: Ron Mercer <ron.mercer@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | qlge: Add CBFC pause frame counters to ethtool stats.Ron Mercer2009-10-112-0/+90
| | | | | | | | | | Signed-off-by: Ron Mercer <ron.mercer@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | qlge: Don't fail open when port is not initialized.Ron Mercer2009-10-111-4/+2
| | | | | | | | | | Signed-off-by: Ron Mercer <ron.mercer@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | qlge: Get rid of firmware handler debug code.Ron Mercer2009-10-111-21/+0
| | | | | | | | | | Signed-off-by: Ron Mercer <ron.mercer@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | qlge: Remove inline math for small rx buf mapping.Ron Mercer2009-10-112-8/+9
| | | | | | | | | | | | | | | | rx_ring->sbq_buf_len now holds the length of the mapped portion of the buffer rather than the overall length. Signed-off-by: Ron Mercer <ron.mercer@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | qlge: Store firmware revision as early as possible.Ron Mercer2009-10-111-0/+1
| | | | | | | | | | Signed-off-by: Ron Mercer <ron.mercer@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | qlge: Add handler for DCBX firmware event.Ron Mercer2009-10-111-0/+3
| | | | | | | | | | | | | | | | The driver has nothing to do, but this marker prevents the event from showing up 'not handled'. Signed-off-by: Ron Mercer <ron.mercer@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | qlge: Set PCIE max read request size.Ron Mercer2009-10-111-0/+7
| | | | | | | | | | Signed-off-by: Ron Mercer <ron.mercer@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | qlge: Remove explicit setting of PCI Dev CTL reg.Ron Mercer2009-10-111-15/+1
| | | | | | | | | | | | | | Remove explicit setting of error reporting bits. Signed-off-by: Ron Mercer <ron.mercer@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | Merge branch 'master' of ↵David S. Miller2009-10-113-23/+177
|\ \ | |/ | | | | master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
| * qlge: Add disable/enable firmare irqs to handler.Ron Mercer2009-10-081-0/+4
| | | | | | | | | | | | | | | | | | This was accidentally omitted from one of the previous patches for firmware event handling. The handler needs to the enable firmware irq mask when it's done processing or it may not get any more events interrupts. Signed-off-by: Ron Mercer <ron.mercer@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * qlge: Restore rx mode after internal reset.Ron Mercer2009-10-081-0/+6
| | | | | | | | | | | | | | | | Call set_multi API after reset recovery. This was exposed by tripping tx_timeout. Signed-off-by: Ron Mercer <ron.mercer@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * qlge: Fix chip reset process.Ron Mercer2009-10-083-0/+106
| | | | | | | | | | | | | | | | | | Add wait for NIC fifo and MGMNT fifo to empty before applying reset. Otherwise broken frames can be processed by management processor and cause it to hang. Signed-off-by: Ron Mercer <ron.mercer@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * qlge: Fix RX multicast filter settings.Ron Mercer2009-10-081-10/+39
| | | | | | | | | | | | | | | | The addresses were being added to the filter properly, but were not being enabled. This adds enable bit to filter write. Signed-off-by: Ron Mercer <ron.mercer@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * qlge: Fix frame routing for multicast frames.Ron Mercer2009-10-081-2/+2
| | | | | | | | | | | | | | | | | | Broadcast/multicast should always be routed to the default (zeroeth) rx ring. Broadcast frames are already routed correctly. This fixes routing for multicast frames. Signed-off-by: Ron Mercer <ron.mercer@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * qlge: Fix frame routing issue related to bonding.Ron Mercer2009-10-081-0/+7
| | | | | | | | | | | | | | | | | | | | Currently frames are routed based on their type and MAC address. This patch adds the port number on which the frame arrived to the routing. This prevents problems in the case where both interfaces have the same MAC address in a routing configuration. Signed-off-by: Ron Mercer <ron.mercer@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * qlge: Fix RSS hashing values.Ron Mercer2009-10-082-11/+13
| | | | | | | | | | | | | | Fix RX queue table size and change from random to default hash values. Signed-off-by: Ron Mercer <ron.mercer@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | qlge: Use the instance of net_device_stats from net_device.Ajit Khaparde2009-10-072-7/+6
|/ | | | | | | | Since net_device has an instance of net_device_stats, we can remove the instance of this from the private adapter structure. Signed-off-by: Ajit Khaparde <ajitk@serverengines.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* qlge: Fix lock/mutex warnings.Ron Mercer2009-10-064-17/+9
| | | | | | | | | | Get rid of spinlock and private mutex usage for exclusive access to the HW semaphore register. rtnl_lock already creates exclusive access to this register in all driver API. Add rtnl to firmware worker threads that also use the HW semaphore register. Signed-off-by: Ron Mercer <ron.mercer@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* qlge: Fix queueing of firmware handler in ISR.Ron Mercer2009-10-061-3/+5
| | | | | | | | | Check that we are not already polling firmware events before we queue the firmware event worker, then disable firmware interrupts. Otherwise we can queue the same event multiple times. Signed-off-by: Ron Mercer <ron.mercer@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* qlge: Fix some bit definitions for reset register.Ron Mercer2009-10-061-3/+3
| | | | | Signed-off-by: Ron Mercer <ron.mercer@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* qlge: Fix error exit for probe call.Ron Mercer2009-09-301-5/+5
| | | | | Signed-off-by: Ron Mercer <ron.mercer@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* qlge: Protect reset recovery with rtnl_lock().Ron Mercer2009-09-301-3/+3
| | | | | | | | | Move the call to rtnl_lock() to before the internal call to ql_adapter_down()/ql_adapter_up(). This prevents collisions that can happen when recovering from an asic error. Signed-off-by: Ron Mercer <ron.mercer@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* qlge: Fix spin_lock warning.Ron Mercer2009-09-301-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove the unnecessary locking around the call to ql_adapter_reset(). Sep 25 08:17:29 localhost kernel: SOFTIRQ-ON-W at: Sep 25 08:17:29 localhost kernel: [<c0000000000a2964>] .lock_acquire+0x10c/0x158 Sep 25 08:17:29 localhost kernel: [<c0000000004542e0>] ._spin_lock+0x34/0x58 Sep 25 08:17:29 localhost kernel: [<d000000006723070>] .ql_adapter_down+0x40c/0x4a0 [qlge] Sep 25 08:17:29 localhost kernel: [<d0000000067256d8>] .qlge_close+0x38/0x58 [qlge] Sep 25 08:17:29 localhost kernel: [<c0000000003ada6c>] .dev_close+0xdc/0x118 Sep 25 08:17:29 localhost kernel: [<c0000000003adb48>] .rollback_registered+0xa0/0x158 Sep 25 08:17:29 localhost kernel: [<c0000000003adc50>] .unregister_netdevice+0x50/0x7c Sep 25 08:17:29 localhost kernel: [<c0000000003adca0>] .unregister_netdev+0x24/0x40 Sep 25 08:17:29 localhost kernel: [<d00000000672e0c0>] .qlge_remove+0x28/0x64 [qlge] Sep 25 08:17:29 localhost kernel: [<c000000000253fdc>] .pci_device_remove+0x50/0x90 Sep 25 08:17:29 localhost kernel: [<c0000000002f5434>] .__device_release_driver+0x94/0xf8 Sep 25 08:17:29 localhost kernel: [<c0000000002f5560>] .driver_detach+0xc8/0xfc Sep 25 08:17:29 localhost kernel: [<c0000000002f3fd8>] .bus_remove_driver+0xb4/0x114 Sep 25 08:17:29 localhost kernel: [<c0000000002f5d4c>] .driver_unregister+0x80/0xa4 Sep 25 08:17:29 localhost kernel: [<c00000000025421c>] .pci_unregister_driver+0x50/0xc8 Sep 25 08:17:29 localhost kernel: [<d00000000672e044>] .qlge_exit+0x1c/0x34 [qlge] Sep 25 08:17:29 localhost kernel: [<c0000000000ac8b0>] .SyS_delete_module+0x234/0x2d0 Sep 25 08:17:29 localhost kernel: [<c000000000008554>] syscall_exit+0x0/0x40 Sep 25 08:17:29 localhost kernel: INITIAL USE at: Signed-off-by: Ron Mercer <ron.mercer@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* qlge: Fix out of sync hardware semaphore.Ron Mercer2009-09-301-4/+4
| | | | | | | | | ql_clear_routing_entries() takes/gives it's own hardware semaphore since it is called from more than one place. ql_route_initialize() should make this call and THEN take it's own semaphore before doing it's work. Signed-off-by: Ron Mercer <ron.mercer@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* qlge: Fix bad bit definitions.Ron Mercer2009-09-301-9/+9
| | | | | Signed-off-by: Ron Mercer <ron.mercer@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* trivial: remove unnecessary semicolonsJoe Perches2009-09-211-2/+2
| | | | | Signed-off-by: Joe Perches <joe@perches.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
* netdev: convert bulk of drivers to netdev_tx_tStephen Hemminger2009-09-011-1/+1
| | | | | | | | | | | | In a couple of cases collapse some extra code like: int retval = NETDEV_TX_OK; ... return retval; into return NETDEV_TX_OK; Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* qlge: Move TX completions from workqueue to NAPI.Ron Mercer2009-08-282-136/+137
| | | | | | | | | | | TX completions were running in a workqueue queued by the ISR. This patch moves the processing of TX completions to an existing RSS NAPI context. Now each irq vector runs NAPI for one RSS ring and one or more TX completion rings. Signed-off-by: Ron Mercer <ron.mercer@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* qlge: Allow running MSIx with fewer vectors.Ron Mercer2009-08-281-47/+38
| | | | | | | | | Currently we downshift to MSI/Legacy if we don't get enough vectors for cpu_count RSS rings plus cpu_count TX completion rings. This patch allows running MSIX with the vector count that the platform provides. Signed-off-by: Ron Mercer <ron.mercer@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* qlge: Get rid of 'default' rx_ring type.Ron Mercer2009-08-284-64/+28
| | | | | | | | | | | | | | | | | | Currently we have three types of RX rings. 1) Default ring - services rx_ring for broadcast/multicast, handles firmware events, and errors. 2) TX completion ring - handles only outbound completions. 3) RSS ring - handles only inbound completions. This patch gets rid of the default ring type and moves it's functionality into the first RSS ring. This makes better use of MSIX vectors since they are a limited resource on some platforms. Signed-off-by: Ron Mercer <ron.mercer@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* qlge: return PCI_ERS_RESULT_DISCONNECT on permanent failureDean Nelson2009-08-011-0/+5
| | | | | | | | | PCI drivers that implement the struct pci_error_handlers' error_detected callback should return PCI_ERS_RESULT_DISCONNECT if the state passed in is pci_channel_io_perm_failure. This patch fixes the issue for qlge. Signed-off-by: Dean Nelson <dnelson@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>