aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless
Commit message (Collapse)AuthorAge
* ath5k: use parentheses around macro definitionsPavel Roskin2011-07-08
| | | | | Signed-off-by: Pavel Roskin <proski@gnu.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* ath5k: don't use volatile, it's not neededPavel Roskin2011-07-08
| | | | | | | | Signed-off-by: Pavel Roskin <proski@gnu.org> The reg variable is only used by __raw_writel() and __raw_readl(), which should guarantee memory access in the right order. Signed-off-by: John W. Linville <linville@tuxdriver.com>
* ath5k: use more readable way to clear MAC addressPavel Roskin2011-07-08
| | | | | Signed-off-by: Pavel Roskin <proski@gnu.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* ath5k: use DEFINE_PCI_DEVICE_TABLE in led.c, mark users with __devinitPavel Roskin2011-07-08
| | | | | Signed-off-by: Pavel Roskin <proski@gnu.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* ath5k: use KERN_WARNING in ATH5K_PRINTFPavel Roskin2011-07-08
| | | | | Signed-off-by: Pavel Roskin <proski@gnu.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* ath5k: remove unneeded parentheses after returnPavel Roskin2011-07-08
| | | | | Signed-off-by: Pavel Roskin <proski@gnu.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* ath5k: replace spaces with tabs as suggested by checkpatch.plPavel Roskin2011-07-08
| | | | | Signed-off-by: Pavel Roskin <proski@gnu.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* ath5k: remove PRIV_ENTRY and PRIV_ASSIGN macros, they obfuscate the codePavel Roskin2011-07-08
| | | | | Signed-off-by: Pavel Roskin <proski@gnu.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* carl9170: Implement tx_frames_pending mac80211 callback functionChristian Lamparter2011-07-08
| | | | | | | | | Implementing this callback function will cause mac80211 refrain from going to powersave state when there are still untransmitted TX frames in the queues. Signed-off-by: Christian Lamparter <chunkeey@googlemail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* net/b43: don't return IRQ_HANDLED if nothing was doneSebastian Andrzej Siewior2011-07-08
| | | | | Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* b43: HT-PHY: define dummy TX power functionsRafał Miłecki2011-07-08
| | | | | | | Without them we get Oops with NULL pointer Signed-off-by: Rafał Miłecki <zajec5@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* ath9k_htc: do not configure filter before driver is startedRajkumar Manoharan2011-07-08
| | | | | Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* b43: LCN-PHY: include new PHY in common codeRafał Miłecki2011-07-08
| | | | | Signed-off-by: Rafał Miłecki <zajec5@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* b43: define firmwares for HT and LCN PHYsRafał Miłecki2011-07-08
| | | | | | | | We were uploading different firmwares to the hardware until finding responding one. Signed-off-by: Rafał Miłecki <zajec5@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* b43: LCN-PHY add place for new PHY supportRafał Miłecki2011-07-08
| | | | | | | LCN-PHY was found in 14e4:4727 card. It uses LCN/1 and 0x2064/1 radio. Signed-off-by: Rafał Miłecki <zajec5@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* b43: read radio ID on new coresRafał Miłecki2011-07-08
| | | | | Signed-off-by: Rafał Miłecki <zajec5@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* b43: use radio ID reading code to older cores onlyRafał Miłecki2011-07-08
| | | | | | | Newer ones need separated way Signed-off-by: Rafał Miłecki <zajec5@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* b43: select BLOCKIO for BCMARafał Miłecki2011-07-08
| | | | | | | We want PIO as fallback for BCMA as well. Signed-off-by: Rafał Miłecki <zajec5@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* b43: change selecting ucode for newer coresRafał Miłecki2011-07-08
| | | | | | | | Older cores had unique PHY. This is not true anymore for newer ones. For example core rev 16 can be LP, SSLPN or N (PHY). Signed-off-by: Rafał Miłecki <zajec5@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* b43: bus: add helpers for getting/setting wldev from/in bus coreRafał Miłecki2011-07-08
| | | | | Signed-off-by: Rafał Miłecki <zajec5@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* b43: handle BCMA in bus switchesRafał Miłecki2011-07-08
| | | | | Signed-off-by: Rafał Miłecki <zajec5@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* b43: use switches for SSB specific codeRafał Miłecki2011-07-08
| | | | | Signed-off-by: Rafał Miłecki <zajec5@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* mac80211: fix TKIP races, make API easier to useJohannes Berg2011-07-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Our current TKIP code races against itself on TX since we can process multiple packets at the same time on different ACs, but they all share the TX context for TKIP. This can lead to bad IVs etc. Also, the crypto offload helper code just obtains the P1K/P2K from the cache, and can update it as well, but there's no guarantee that packets are really processed in order. To fix these issues, first introduce a spinlock that will protect the IV16/IV32 values in the TX context. This first step makes sure that we don't assign the same IV multiple times or get confused in other ways. Secondly, change the way the P1K cache works. I add a field "p1k_iv32" that stores the value of the IV32 when the P1K was last recomputed, and if different from the last time, then a new P1K is recomputed. This can cause the P1K computation to flip back and forth if packets are processed out of order. All this also happens under the new spinlock. Finally, because there are argument differences, split up the ieee80211_get_tkip_key() API into ieee80211_get_tkip_p1k() and ieee80211_get_tkip_p2k() and give them the correct arguments. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* b43: implement BCMA bus opsRafał Miłecki2011-07-08
| | | | | Signed-off-by: Rafał Miłecki <zajec5@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* b43: make b43_wireless_init bus genericRafał Miłecki2011-07-08
| | | | | Signed-off-by: Rafał Miłecki <zajec5@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* Merge branch 'for-linville' of ↵John W. Linville2011-07-08
|\ | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/luca/wl12xx
| * wl12xx: start/stop queues according to global per-AC countersArik Nemtsov2011-07-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Split tx_queue_count to count per-AC skb's queued, instead of relying on the skb-queue len. The skb queues used were only valid in STA-mode, as AP-mode uses per-link queues. This fixes a major regression in AP-mode, caused by the patch "wl12xx: implement Tx watermarks per AC". With that patch applied, we effectively had no regulation of Tx queues in AP-mode. Therefore a sustained high rate of Tx could cause exhaustion of the skb memory pool. Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
| * wl12xx: always initialize AP-mode max power levelArik Nemtsov2011-07-05
| | | | | | | | | | | | | | | | | | Sometimes we only get the Tx power level via op->config when the FW is off. Record the received power level when this happens and use it to initialize the firmware during boot. Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
| * wl12xx: initialize max_power levels for 11a channelsArik Nemtsov2011-07-05
| | | | | | | | | | | | | | Set the maximum FW supported power levels for 11a channels. Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
| * wl12xx: implement cancel_hw_scan() callbackEliad Peller2011-07-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | After implementing cancel_hw_scan(), there is no more need to flush scan_complete_work on suspend. scan_complete_work enqueues a new scan_work, that might lead to the following warning (if the device was already suspended): WARNING: at drivers/mmc/core/core.c:169 mmc_wait_for_req+0x1ac/0x2c8() Backtrace: [<c004b50c>] (dump_backtrace+0x0/0x110) [<c04fda50>] (dump_stack+0x0/0x1c) [<c008f700>] (warn_slowpath_common+0x0/0x6c) [<c008f76c>] (warn_slowpath_null+0x0/0x2c) [<c034b058>] (mmc_wait_for_req+0x0/0x2c8) [<c034f804>] (mmc_io_rw_extended+0x0/0x1e4) [<c0350b5c>] (sdio_io_rw_ext_helper+0x0/0x1ac) [<c0350e00>] (sdio_memcpy_fromio+0x0/0x2c) [<bf194464>] (wl1271_sdio_raw_read+0x0/0x1bc [wl12xx_sdio]) [<bf15ac14>] (wl1271_cmd_wait_for_event_or_timeout+0x0/0x19c [wl12xx]) [<bf15adb0>] (wl1271_cmd_wait_for_event+0x0/0x30 [wl12xx]) [<bf15b7dc>] (wl1271_cmd_disconnect+0x0/0x14c [wl12xx]) [<bf158fd0>] (wl1271_unjoin+0x0/0x48 [wl12xx]) [<bf159070>] (wl1271_op_config+0x0/0x490 [wl12xx]) [<bf105084>] (ieee80211_hw_config+0x0/0x14c [mac80211]) [<bf113120>] (ieee80211_recalc_idle+0x0/0x4c [mac80211]) [<bf109a70>] (__ieee80211_scan_completed+0x0/0x1ac [mac80211]) [<bf109fd4>] (ieee80211_scan_work+0x0/0x484 [mac80211]) [<c00a197c>] (worker_thread+0x0/0x1e8) [<c00a5874>] (kthread+0x0/0x90) Signed-off-by: Eliad Peller <eliad@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
| * wl12xx: add stop_scan commandEliad Peller2011-07-05
| | | | | | | | | | | | | | define wl1271_scan_stop() to cancel an ongoing hw scan. Signed-off-by: Eliad Peller <eliad@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
| * wl12xx: configure suspend/resume only if associated/startedEliad Peller2011-07-05
| | | | | | | | | | | | | | | | Configure the device (to wowlan) only if the sta/ap is associated/started. Signed-off-by: Eliad Peller <eliad@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
| * wl12xx: one SDIO initialization is enoughOhad Ben-Cohen2011-07-05
| | | | | | | | | | | | | | | | | | | | Skip manual device power on in case runtime PM is enabled for our device. This eliminates a secondary & redundant SDIO init sequence. Signed-off-by: Ohad Ben-Cohen <ohad@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
| * wl12xx: implement Tx watermarks per ACArik Nemtsov2011-07-05
| | | | | | | | | | | | | | | | | | Each AC is stopped when its queue is filled up to the high watermark, and restarted when its queue it lower than the low watermark. This ensures congested ACs are not able to starve other ACs. Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
| * wl12xx: Increase low & high TX watermarksIdo Yariv2011-07-05
| | | | | | | | | | | | | | | | | | | | | | | | The current TX watermark settings cause the driver to stop queues too frequently. Among other things, this can have a negative impact on WMM prioritization, since mac80211 sorts pending packets by their ACs. Fix this by increasing the high watermark to 256 packets. Increase the low watermark to 32 to minimize periods with queues being stopped. Signed-off-by: Ido Yariv <ido@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
| * wl12xx: schedule TX packets according to FW occupancyArik Nemtsov2011-07-05
| | | | | | | | | | | | | | | | | | | | | | | | When selecting packets for transmission, prefer the ACs that are least occupied in the FW. When packets for multiple ACs are present in the FW, it decides which to transmit according to WMM QoS parameters. With these changes, lower priority ACs should not be starved when higher priority traffic is present. Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
| * wl12xx: use 802.11 header location after relocation to frame startArik Nemtsov2011-07-05
| | | | | | | | | | | | | | | | | | | | | | | | | | When operating with TKIP encryption, the function wl1271_tx_fill_hdr() relocates the 802.11 header to the start of the frame, and leaves room for the security header. Some functions in the Tx path rely on the location of the header, namely, for purposes of roaming in STA mode and connecting new stations in AP mode. Call these functions only after the header is relocated. Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
| * wl12xx: AP mode - support FW TX inactivity triggersArik Nemtsov2011-07-05
| | | | | | | | | | | | | | | | | | In AP mode we register for the MAX_TX_RETRY and INACTIVE_STA events. Both are reported to the upper layers as a TX failure in the offending stations. Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
| * wl12xx: fix Tx security sequence number handlingOz Krakowski2011-07-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Do not reset the security sequence number when issuing a join command or interface is removed. Instead, reset the counter only during the unjoin command. Added the notion of counter wrap-around to the LSB number in wl1271_tx_complete_packet. Added post recovery padding to adjust for potential security number progress during the recovery process by the firmware and avoid potential interop issues in encrypted networks. Signed-off-by: Oz Krakowski <ozk@ti.com> Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
* | rt2x00: Implement tx_frames_pending mac80211 callback function.Gertjan van Wingerde2011-07-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implementing this callback function will cause mac80211 refrain from going to powersave state when there are still untransmitted TX frames in the queues. This would exactly mimic the behaviour of the legacy vendor driver which also doesn't go in powersave mode if there are still TX frames that are not transmitted. This should make powersaving and rt2x00 a better couple. Signed-off-by: Gertjan van Wingerde <gwingerde@gmail.com> Acked-by: Helmut Schaa <helmut.schaa@googlemail.com> Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* | rt2x00: Properly identify rt2800usb devices.Gertjan van Wingerde2011-07-07
| | | | | | | | | | | | | | | | | | Sitecom WLA4000 (USB ID 0x0df6:0x0060) is an RT3072 chipset. Sitecom WLA5000 (USB ID 0x0df6:0x0062) is an RT3572 chipset. Signed-off-by: Gertjan van Wingerde <gwingerde@gmail.com> Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* | rt2x00: Add device ID for RT539F device.Gertjan van Wingerde2011-07-07
| | | | | | | | | | | | | | Reported-by: Wim Vander Schelden <wim@fixnum.org> Signed-off-by: Gertjan van Wingerde <gwingerde@gmail.com> Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* | rt2x00: Reduce window of a queue's tx lock.Gertjan van Wingerde2011-07-07
| | | | | | | | | | | | | | | | | | | | | | | | Currently a lot of actions that can be done without the queue's tx lock being held are done inside the locked area. Move them out to have a leaner and meaner code that operates while the tx lock is being held. Signed-off-by: Gertjan van Wingerde <gwingerde@gmail.com> Acked-by: Helmut Schaa <helmut.schaa@googlemail.com> Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* | rt2x00: Don't use queue entry as parameter when creating TX descriptor.Gertjan van Wingerde2011-07-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The functions that create the tx descriptor structure do not operate on a queue entry at all. Signal this fact in the code by not providing a queue entry as a parameter, but the rt2x00 device structure and the skb directly. This patch is a preparation for reducing the time a queue is locked for a tx operation. Signed-off-by: Gertjan van Wingerde <gwingerde@gmail.com> Acked-by: Helmut Schaa <helmut.schaa@googlemail.com> Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* | rt2x00: Serialize TX operations on a queue.Gertjan van Wingerde2011-07-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The rt2x00 driver gets frequent occurrences of the following error message when operating under load: phy0 -> rt2x00queue_write_tx_frame: Error - Arrived at non-free entry in the non-full queue 2. This is caused by simultaneous attempts from mac80211 to send a frame via rt2x00, which are not properly serialized inside rt2x00queue_write_tx_frame, causing the second frame to fail sending with the above mentioned error message. Fix this by introducing a per-queue spinlock to serialize the TX operations on that queue. Reported-by: Andreas Hartmann <andihartmann@01019freenet.de> Signed-off-by: Gertjan van Wingerde <gwingerde@gmail.com> Acked-by: Helmut Schaa <helmut.schaa@googlemail.com> Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* | mwifiex: modify SDIO aggregation Tx/Rx buffer sizeAmitkumar Karwar2011-07-06
| | | | | | | | | | | | | | | | | | The SDIO aggregation buffer size has been modified to an optimum value which gives good throughput results. Signed-off-by: Amitkumar Karwar <akarwar@marvell.com> Signed-off-by: Bing Zhao <bzhao@marvell.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* | ipw2100: Fix command list for debuggingJean Delvare2011-07-06
| | | | | | | | | | | | | | | | There is a stray "undefined" string in the array, get rid of it. Signed-off-by: Jean Delvare <khali@linux-fr.org> Cc: "John W. Linville" <linville@tuxdriver.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* | iwlwifi: remove unnecessary read of PCI_CAP_ID_EXPJon Mason2011-07-06
| | | | | | | | | | | | | | | | | | | | The PCIE capability offset is saved during PCI bus walking. It will remove an unnecessary search in the PCI configuration space if this value is referenced instead of reacquiring it. Signed-off-by: Jon Mason <jdmason@kudzu.us> Acked-by: Wey-Yi Guy <wey-yi.w.guy@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* | Merge branch 'for-linville' of ↵John W. Linville2011-07-06
|\| | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/luca/wl12xx
| * wl12xx: Support routing FW logs to the hostIdo Yariv2011-06-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A recently added feature to the firmware enables the driver to retrieve firmware logs via the host bus (SDIO or SPI). There are two modes of operation: 1. On-demand: The FW collects its log in an internal ring buffer. This buffer can later be read, for example, upon recovery. 2. Continuous: The FW pushes the FW logs as special packets in the RX path. Reading the internal ring buffer does not involve the FW. Thus, as long as the HW is not in ELP, it should be possible to read the logs, even if the FW crashes. A sysfs binary file named "fwlog" was added to support this feature, letting a monitor process read the FW messages. The log is transferred from the FW only when available, so the reading process might block. Signed-off-by: Ido Yariv <ido@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>