aboutsummaryrefslogtreecommitdiff
path: root/drivers/net
AgeCommit message (Collapse)AuthorFilesLines
2011-03-04rt2x00: Fix comment in rt2800pciHelmut Schaa1-1/+1
We don't use interrupt threads anymore. Fix the comment. Signed-off-by: Helmut Schaa <[email protected]> Signed-off-by: Ivo van Doorn <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-03-04rt2x00: Revise irqmask locking for PCI devicesHelmut Schaa4-33/+22
The PCI device irqmask is locked by a spin_lock. Currently spin_lock_irqsave is used everywhere. To reduce the locking overhead replace spin_lock_irqsave in hard irq context with spin_lock and in soft irq context with spin_lock_irq. Signed-off-by: Helmut Schaa <[email protected]> Signed-off-by: Ivo van Doorn <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-03-04rt2x00: Remove now unused crypto.aid fieldHelmut Schaa2-5/+2
Signed-off-by: Helmut Schaa <[email protected]> Signed-off-by: Ivo van Doorn <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-03-04rt2x00: Fix rt2800 key assignment in multi bssid setupsHelmut Schaa1-13/+30
When setting up multiple BSSIDs in AP mode on an rt2800pci device we previously used the STAs AID to select an appropriate key slot. But since the AID is per VIF we can end up with two STAs having the same AID and thus using the same key index. This resulted in one STA overwriting the key information of another STA. Fix this by simply searching for the next unused entry in the pairwise key table. Also bring the key table init in sync with deleting keys by initializing the key table entries to 0 instead of 1. Signed-off-by: Helmut Schaa <[email protected]> Signed-off-by: Ivo van Doorn <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-03-04rt2x00: Use an enum instead of u16 for the rate_mode TX descriptor fieldHelmut Schaa1-1/+1
This makes the code less error-prone. Acked-by: Gertjan van Wingerde <[email protected]> Signed-off-by: Helmut Schaa <[email protected]> Signed-off-by: Ivo van Doorn <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-03-04rt2x00: Don't call ieee80211_get_tx_rate for MCS ratesHelmut Schaa2-15/+15
ieee80211_get_tx_rate is not valid for HT rates. Hence, restructure the TX desciptor creation to be aware of MCS rates. The generic TX desciptor creation now cares about the rate_mode (CCK, OFDM, MCS, GF). As a result, ieee80211_get_tx_rate gets only called for legacy rates. Acked-by: Gertjan van Wingerde <[email protected]> Signed-off-by: Helmut Schaa <[email protected]> Signed-off-by: Ivo van Doorn <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-03-04rt2x00: Move TX descriptor field "ifs" into plcp substructHelmut Schaa7-15/+17
"ifs" is only used by no-HT devices. Move it into the plcp substruct and fill in the value only for no-HT devices. Signed-off-by: Helmut Schaa <[email protected]> Acked-by: Gertjan van Wingerde <[email protected]> Signed-off-by: Ivo van Doorn <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-03-04rt2x00: Optimize TX descriptor memory layoutIvo van Doorn1-5/+5
Some fields only need to be u8 and for ifs and txop we can use the already available enums. Acked-by: Gertjan van Wingerde <[email protected]> Signed-off-by: Helmut Schaa <[email protected]> Signed-off-by: Ivo van Doorn <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-03-04rt2x00: Optimize TX descriptor handlingHelmut Schaa12-55/+79
HT and no-HT rt2x00 devices use a partly different TX descriptor. Optimize the tx desciptor memory layout by putting the PLCP and HT substructs into a union and introduce a new driver flag to decide which TX desciptor format is used by the device. This saves us the expensive PLCP calculation fOr HT devices and the HT descriptor setup on no-HT devices. Acked-by: Gertjan van Wingerde <[email protected]> Signed-off-by: Helmut Schaa <[email protected]> Signed-off-by: Ivo van Doorn <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-03-04rt2x00: Generate sw sequence numbers only for devices that need itHelmut Schaa5-4/+11
Newer devices like rt2800* own a hardware sequence counter and thus don't need to use a software sequence counter at all. Add a new driver flag to shortcut the software sequence number generation on devices that don't need it. rt61pci, rt73usb and rt2800* seem to make use of a hw sequence counter while rt2400pci and rt2500* need to do it in software. Signed-off-by: Helmut Schaa <[email protected]> Acked-by: Gertjan van Wingerde <[email protected]> Signed-off-by: Ivo van Doorn <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-03-04rt2x00: Use unlikely for unexpected error condition in rt2x00_mac_txHelmut Schaa1-1/+1
rt2x00queue_write_tx_frame is unlikely to fail. Tell the compiler. Signed-off-by: Helmut Schaa <[email protected]> Signed-off-by: Ivo van Doorn <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-03-04rt2x00: Add unlikely macro to special case tx status handlingHelmut Schaa1-1/+1
This special case shouldn't happen very often. Only if a frame that is not intended to be aggregated ends up in an AMPDU _and_ was intended to be sent at a different MCS rate as the aggregate. Hence, using unlikely is justified. Signed-off-by: Helmut Schaa <[email protected]> Signed-off-by: Ivo van Doorn <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-03-04rt2x00: Remove useless NULL checkHelmut Schaa1-2/+1
Since tx_info->control.vif was already accessed before it cant't be NULL here. Signed-off-by: Helmut Schaa <[email protected]> Signed-off-by: Ivo van Doorn <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-03-04rt2x00: Make use of unlikely during tx status processingHelmut Schaa1-2/+2
These conditions are unlikely to happen, tell the compiler. Signed-off-by: Helmut Schaa <[email protected]> Signed-off-by: Ivo van Doorn <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-03-04rt2x00: Optimize calls to rt2x00queue_get_queueHelmut Schaa6-8/+25
In some cases (tx path for example) we don't need to check for non-tx queues in rt2x00queue_get_queue. Hence, introduce a new method rt2x00queue_get_tx_queue that is only valid for tx queues and use it in places where only tx queues are valid. Furthermore, this new method is quite short and as such can be inlined to avoid the function call overhead. This only converts the txdone functions of drivers that don't use an ATIM queue and the generic tx path. Signed-off-by: Helmut Schaa <[email protected]> Signed-off-by: Ivo van Doorn <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-03-04rt2x00: fix whitespace damage in the rt2800 specific codeGabor Juhos3-369/+378
The rt2800 specific code contains a lots of whitespace damage caused by the commit 'rt2x00: Add support for RT5390 chip'. This patch fixes those whitespace errors. Signed-off-by: Gabor Juhos <[email protected]> Acked-by: Gertjan van Wingerde <[email protected]> Acked-by: Ivo van Doorn <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-03-04b43: N-PHY: rev3+: implement gain ctl workaroundsRafał Miłecki1-9/+162
Signed-off-by: Rafał Miłecki <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-03-04b43: N-PHY: rev3+: add tables with gain ctl workaroundsRafał Miłecki2-0/+128
Signed-off-by: Rafał Miłecki <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-03-04b43: N-PHY: rev3+: correct switching analog coreRafał Miłecki1-2/+6
Signed-off-by: Rafał Miłecki <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-03-04ath9k_hw: Read noise floor only for available chains for AR9003Vasanthakumar Thiagarajan1-18/+19
Signed-off-by: Vasanthakumar Thiagarajan <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-03-04ath9k: Add a debugfs interface to dump chip registersVasanthakumar Thiagarajan1-0/+54
/<debugfs_root>/ieee80211/phyX/ath9k/regdump is the interface to dump the registers. Signed-off-by: Felix Fietkau <[email protected]> Signed-off-by: Vasanthakumar Thiagarajan <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-03-04rtl8187: Change rate-control feedbackLarry Finger2-5/+22
The driver for the RTL8187L chips returns IEEE80211_TX_STAT_ACK for all packets, even if the maximum number of retries was exhausted. In addition it fails to setup max_rates in the ieee80211_hw struct, This behavior may be responsible for the problems noted in Bug 14168. As the bug is very old, testers have not been found, and I do not have the case where the indicated signal is less than -70 dBm. Signed-off-by: Larry Finger <[email protected]> Acked-by: Hin-Tak Leung <[email protected]> Cc: Stable <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-03-04rtlwifi: usb parts should depend on CONFIG_USBJohn W. Linville1-3/+6
ERROR: "usb_unanchor_urb" [drivers/net/wireless/rtlwifi/rtlwifi.ko] undefined! ERROR: "usb_control_msg" [drivers/net/wireless/rtlwifi/rtlwifi.ko] undefined! ERROR: "usb_submit_urb" [drivers/net/wireless/rtlwifi/rtlwifi.ko] undefined! ERROR: "usb_get_dev" [drivers/net/wireless/rtlwifi/rtlwifi.ko] undefined! ERROR: "usb_kill_anchored_urbs" [drivers/net/wireless/rtlwifi/rtlwifi.ko] undefined! ERROR: "usb_put_dev" [drivers/net/wireless/rtlwifi/rtlwifi.ko] undefined! ERROR: "usb_free_urb" [drivers/net/wireless/rtlwifi/rtlwifi.ko] undefined! ERROR: "usb_anchor_urb" [drivers/net/wireless/rtlwifi/rtlwifi.ko] undefined! ERROR: "usb_alloc_urb" [drivers/net/wireless/rtlwifi/rtlwifi.ko] undefined! make[2]: *** [__modpost] Error 1 make[1]: *** [modules] Error 2 make: *** [sub-make] Error 2 The USB-part of rtlwifi should depend on CONFIG_USB. This also corrects the existing check for CONFIG_PCI to build pci.o. Reported-by: Geert Uytterhoeven <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-03-04Merge branch 'wireless-next-2.6' of ↵John W. Linville1-3/+4
git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-2.6
2011-03-04sfc: Use write-combining to reduce TX latencyBen Hutchings3-10/+16
Based on work by Neil Turton <[email protected]> and Kieran Mansley <[email protected]>. The BIU has now been verified to handle 3- and 4-dword writes within a single 128-bit register correctly. This means we can enable write- combining and only insert write barriers between writes to distinct registers. This has been observed to save about 0.5 us when pushing a TX descriptor to an empty TX queue. Signed-off-by: Ben Hutchings <[email protected]>
2011-03-03Merge branch 'master' of ↵David S. Miller29-108/+227
master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 Conflicts: drivers/net/bnx2x/bnx2x.h
2011-03-03eql: Convert printks to pr_<level> and netdev_<level>Joe Perches1-4/+6
Add pr_fmt. Removed trailing "\n" from version, add back via pr_info("%s\n", version); Signed-off-by: Joe Perches <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2011-03-03mii: Convert printks to netdev_infoJoe Perches1-7/+7
Add a bit more data to the output. Convert string speeds to integer. Object size reduced a tiny bit. $ size drivers/net/mii.o* text data bss dec hex filename 4155 56 1000 5211 145b drivers/net/mii.o.new 4184 56 1000 5240 1478 drivers/net/mii.o.old Signed-off-by: Joe Perches <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2011-03-03mv643xx_eth: Use netdev_<level> and pr_<level>Joe Perches1-41/+33
Use the current logging styles. Signed-off-by: Joe Perches <[email protected]> Acked-by: Lennert Buytenhek <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2011-03-03tlan: Use pr_fmt, pr_<level> and netdev_<level>Joe Perches1-87/+77
Neatening and standardization to the current logging mechanisms. Miscellaneous speen/speed typo correction. Signed-off-by: Joe Perches <[email protected]> Acked-by: Sakari Ailus <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2011-03-03tlan: Remove changelogJoe Perches1-145/+0
As it isn't necessary nor really useful any longer. Signed-off-by: Joe Perches <[email protected]> Acked-by: Sakari Ailus <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2011-03-03benet: use GFP_KERNEL allocations when possibleEric Dumazet1-9/+9
Extend be_alloc_pages() with a gfp parameter, so that we use GFP_KERNEL allocations instead of GFP_ATOMIC when not running in softirq context. Signed-off-by: Eric Dumazet <[email protected]> Acked-by: Ajit Khaparde <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2011-03-03tun: Convert logging messages to pr_<level> and tun_debugJoe Perches1-32/+51
Use the current logging forms with pr_fmt. Convert DBG macro to tun_debug, use netdev_printk as well. Add printf verification when TUN_DEBUG not defined. Miscellaneous comment typo fix. Signed-off-by: Joe Perches <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2011-03-03net: add Faraday FTMAC100 10/100 Ethernet driverPo-Yu Chuang4-0/+1386
FTMAC100 Ethernet Media Access Controller supports 10/100 Mbps and MII. This driver has been working on some ARM/NDS32 SoC's including Faraday A320 and Andes AG101. Signed-off-by: Po-Yu Chuang <[email protected]> Signed-off-by: Eric Dumazet <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2011-03-03r8169: disable ASPMStanislaw Gruszka1-0/+6
For some time is known that ASPM is causing troubles on r8169, i.e. make device randomly stop working without any errors in dmesg. Currently Tomi Leppikangas reports that system with r8169 device hangs with MCE errors when ASPM is enabled: https://bugzilla.redhat.com/show_bug.cgi?id=642861#c4 Lets disable ASPM for r8169 devices at all, to avoid problems with r8169 PCIe devices at least for some users. Reported-by: Tomi Leppikangas <[email protected]> Cc: [email protected] Signed-off-by: Stanislaw Gruszka <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2011-03-03Merge branch 'master' of ↵David S. Miller27-447/+547
master.kernel.org:/pub/scm/linux/kernel/git/jkirsher/net-next-2.6
2011-03-03iwlagn: report correct temperature for WiFi/BT devices.Fry, Donald H1-3/+4
The temperature reported by 'cat /sys/class/net/wlan?/device/temperature' is incorrect for devices with BT capability. Report the value from the correct statistics structure. Tested with 130, 100, 6205 and 5300. Signed-off-by: Don Fry <[email protected]> Signed-off-by: Wey-Yi Guy <[email protected]>
2011-03-03iwlagn: Support new 1000 microcode.Fry, Donald H1-1/+1
iwlagn: Support new 1000 microcode. New iwlwifi-1000 microcode requires driver support for API version 5. (There is no version 4) Signed-off-by: Don Fry <[email protected]> Signed-off-by: Wey-Yi Guy <[email protected]>
2011-03-03wl12xx: Correctly set up protection if non-GF STAs are presentHelmut Schaa1-1/+2
Set the gf_protection bit when calling ACX_HT_BSS_OPERATION according to the GF bit passed by mac80211 in ht_operation_mode. [Added a proper commit message -- Luca] Signed-off-by: Helmut Schaa <[email protected]> Signed-off-by: Luciano Coelho <[email protected]>
2011-03-03wl12xx: wakeup chip from ELP during scanArik Nemtsov2-6/+15
Commands are sometimes sent to FW on scan completion. Make sure the chip is awake to receive them. Sending commands while the chip is in ELP can cause SDIO read errors and/or crash the FW. Signed-off-by: Arik Nemtsov <[email protected]> Signed-off-by: Ido Yariv <[email protected]> Signed-off-by: Luciano Coelho <[email protected]>
2011-03-03wl12xx: Modify requested number of memory blocksIdo Yariv1-1/+1
Tests have shown that the requested number of memory blocks is sub-optimal. Slightly modify the requested number of memory blocks for TX. Signed-off-by: Ido Yariv <[email protected]> Reviewed-by: Luciano Coelho <[email protected]> Signed-off-by: Luciano Coelho <[email protected]>
2011-03-03wl12xx: Avoid redundant TX workIdo Yariv2-5/+28
TX might be handled in the threaded IRQ handler, in which case, TX work might be scheduled just to discover it has nothing to do. Save a few context switches by cancelling redundant TX work in case TX is about to be handled in the threaded IRQ handler. Also, avoid scheduling TX work from wl1271_op_tx if not needed. Signed-off-by: Ido Yariv <[email protected]> Reviewed-by: Luciano Coelho <[email protected]> Signed-off-by: Luciano Coelho <[email protected]>
2011-03-03wl12xx: Switch to level trigger interruptsIdo Yariv2-2/+2
The interrupt of the wl12xx is a level interrupt in nature, since the interrupt line is not auto-reset. However, since resetting the interrupt requires bus transactions, this cannot be done from an interrupt context. Thus, requesting a level interrupt would require to disable the irq and re-enable it after the HW is acknowledged. Since we now request a threaded irq, this can also be done by specifying the IRQF_ONESHOT flag. Triggering on an edge can be problematic in some platforms, if the sampling frequency is not sufficient for detecting very frequent interrupts. In case an interrupt is missed, the driver will hang as the interrupt line will stay high until it is acknowledged by the driver, which will never happen. Fix this by requesting a level triggered interrupt, with the IRQF_ONESHOT flag. Signed-off-by: Ido Yariv <[email protected]> Reviewed-by: Luciano Coelho <[email protected]> Signed-off-by: Luciano Coelho <[email protected]>
2011-03-03wl12xx: Switch to a threaded interrupt handlerIdo Yariv10-81/+113
To achieve maximal throughput, it is very important to react to interrupts as soon as possible. Currently the interrupt handler wakes up a worker for handling interrupts in process context. A cleaner and more efficient design would be to request a threaded interrupt handler. This handler's priority is very high, and can do blocking operations such as SDIO/SPI transactions. Some work can be deferred, mostly calls to mac80211 APIs (ieee80211_rx_ni and ieee80211_tx_status). By deferring such work to a different worker, we can keep the irq handler thread more I/O responsive. In addition, on multi-core systems the two threads can be scheduled on different cores, which will improve overall performance. The use of WL1271_FLAG_IRQ_PENDING & WL1271_FLAG_IRQ_RUNNING was changed. For simplicity, always query the FW for more pending interrupts. Since there are relatively long bursts of interrupts, the extra FW status read overhead is negligible. In addition, this enables registering the IRQ handler with the ONESHOT option. Signed-off-by: Ido Yariv <[email protected]> Reviewed-by: Luciano Coelho <[email protected]> Signed-off-by: Luciano Coelho <[email protected]>
2011-03-03wl12xx: Change claiming of the SDIO busIdo Yariv1-10/+0
The SDIO bus is claimed and released for each SDIO transaction. In addition to the few CPU cycles it takes to claim and release the bus, it may also cause undesired side effects such as the MMC host stopping its internal clocks. Since only the wl12xx_sdio driver drives this SDIO card, it is safe to claim the SDIO host once (on power on), and release it only when turning the power off. This patch was inspired by Juuso Oikarinen's ([email protected]) patch "wl12xx: Change claiming of the (SDIO) bus". Signed-off-by: Ido Yariv <[email protected]> Reviewed-by: Luciano Coelho <[email protected]> Signed-off-by: Luciano Coelho <[email protected]>
2011-03-03wl12xx: Do end-of-transactions transfers only if neededIdo Yariv6-3/+32
On newer hardware revisions, there is no need to write the host's counter at the end of a RX transaction. The same applies to writing the number of packets at the end of a TX transaction. It is generally a good idea to avoid unnecessary SDIO/SPI transfers. Throughput and CPU usage are improved when avoiding these. Send the host's RX counter and the TX packet count only if needed, based on the hardware revision. [Changed WL12XX_QUIRK_END_OF_TRANSACTION to use BIT(0) -- Luca] Signed-off-by: Ido Yariv <[email protected]> Signed-off-by: Ohad Ben-Cohen <[email protected]> Reviewed-by: Luciano Coelho <[email protected]> Signed-off-by: Luciano Coelho <[email protected]>
2011-03-03wl12xx: Reorder data handling in irq_workIdo Yariv1-5/+5
The FW has a limited amount of memory for holding frames. In case it runs out of memory reserved for RX frames, it'll have no other choice but to drop packets received from the AP. Thus, it is important to handle RX data interrupts as soon as possible, before handling anything else. In addition, since there are enough TX descriptors to go around, it is better to first send TX frames, and only then handle TX completions. Fix this by changing the order of function calls in wl1271_irq_work. Signed-off-by: Ido Yariv <[email protected]> Signed-off-by: Ohad Ben-Cohen <[email protected]> Reviewed-by: Luciano Coelho <[email protected]> Signed-off-by: Luciano Coelho <[email protected]>
2011-03-03wl12xx: Remove private headers in wl1271_tx_resetIdo Yariv1-9/+23
Frames in the tx_frames array include extra private headers, which must be removed before passing the skbs to ieee80211_tx_status. Fix this by removing any private headers in wl1271_tx_reset, similar to how this is done in wl1271_tx_complete_packet. Signed-off-by: Ido Yariv <[email protected]> Signed-off-by: Arik Nemtsov <[email protected]> Signed-off-by: Luciano Coelho <[email protected]>
2011-03-03wl12xx: Don't rely on runtime PM for toggling powerIdo Yariv1-2/+14
Runtime PM might not always be enabled. Even if it is enabled in the running kernel, it can still be temporarily disabled, for instance during suspend. Runtime PM is opportunistic in nature, and should not be relied on for toggling power. In case the interface is removed and re-added while runtime PM is disabled, the FW will fail to boot, as it is mandatory to toggle power between boots. For instance, this can happen during suspend in case one of the devices fails to suspend before the MMC host suspends, but after mac80211 was suspended. The interface will be removed and reactivated without toggling the power. Fix this by calling mmc_power_save_host/mmc_power_restore_host in wl1271_sdio_power_on/off functions. It will toggle the power to the chip even if runtime PM is disabled. The runtime PM functions should still be called to make sure runtime PM does not opportunistically power the chip off (e.g. after resuming from system suspend). Signed-off-by: Ido Yariv <[email protected]> Signed-off-by: Ohad Ben-Cohen <[email protected]> Signed-off-by: Luciano Coelho <[email protected]>
2011-03-03wl12xx: fix the path to the wl12xx firmwaresSebastien Jan1-3/+3
In the linux-firmware git tree, the firmwares and the NVS are inside the ti-connectivity directory. Fix the filenames that the driver looks for accordingly. [Fixed commit message and merged with the latest changes. -- Luca] Signed-off-by: Sebastien Jan <[email protected]> Signed-off-by: Luciano Coelho <[email protected]>