Generated by using: git log v2.6.32..HEAD \ net/wireless/ \ net/mac80211/ \ net/rfkill/ \ drivers/net/wireless/ \ net/bluetooth/ \ drivers/bluetooth/ \ drivers/net/atl1c/ \ drivers/net/atl1e/ \ drivers/net/atlx/ \ include/linux/nl80211.h \ include/linux/rfkill.h \ include/net/cfg80211.h \ include/net/regulatory.h \ include/net/cfg80211.h > ChangeLog-wireless git://git.kernel.org/pub/scm/linux/kernel/git/hpa/linux-2.6-allstable.git commit b2275d444561c18cdb678f9f9f72a2080d91a4c6 Author: Grazvydas Ignotas Date: Sat Jun 5 02:25:47 2010 +0300 wl1251: fix a memory leak in probe commit aa679c36756003f1fabdb9fc6f00eb159559f7c3 upstream. wl1251_sdio_probe() error path is missing wl1251_free_hw, add it. Signed-off-by: Grazvydas Ignotas Acked-by: Kalle Valo Signed-off-by: John W. Linville Signed-off-by: Greg Kroah-Hartman commit 402d655a0d2df775bfcf345fcc19db8a32b3a1c8 Author: Reinette Chatre Date: Mon May 3 10:55:07 2010 -0700 iwlwifi: recalculate average tpt if not current commit 3d79b2a9eeaa066b35c49fbb17e3156a3c482c3e upstream. We currently have this check as a BUG_ON, which is being hit by people. Previously it was an error with a recalculation if not current, return that code. The BUG_ON was introduced by: commit 3110bef78cb4282c58245bc8fd6d95d9ccb19749 Author: Guy Cohen Date: Tue Sep 9 10:54:54 2008 +0800 iwlwifi: Added support for 3 antennas ... the portion adding the BUG_ON is reverted since we are encountering the error and BUG_ON was created with assumption that error is not encountered. Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville Signed-off-by: Greg Kroah-Hartman commit 5bd90999347524d2b525d011a68b70837a922879 Author: Reinette Chatre Date: Wed Feb 3 09:38:59 2010 -0800 iwlwifi: reset card during probe commit 4843b5a731b31916d100cfc5ba4d03ae78462ed9 upstream. To ensure that card is in a sane state during probe we add a reset call. This change was prompted by users of kdump who was not able to bring up the wireless driver in the kdump kernel. The problem here was that the primary kernel, which is not running at the time, left the wireless card up and running. When the kdump kernel starts it is thus possible to immediately receive interrupts from firmware after registering interrupt, but without being ready to deal with interrupts from firmware yet. Reported-by: Stanislaw Gruszka Signed-off-by: Reinette Chatre Signed-off-by: Greg Kroah-Hartman commit 0723ebb25fe048d3e6bcea6fd565837d7f0a3b4d Author: John W. Linville Date: Wed Dec 9 16:43:52 2009 -0500 wireless: report reasonable bitrate for MCS rates through wext commit 254416aae70ab2e6b57fd79782c8a67196234d02 upstream. Previously, cfg80211 had reported "0" for MCS (i.e. 802.11n) bitrates through the wireless extensions interface. However, nl80211 was converting MCS rates into a reasonable bitrate number. This patch moves the nl80211 code to cfg80211 where it is now shared between both the nl80211 interface and the wireless extensions interface. Signed-off-by: John W. Linville Cc: Ben Hutchings Signed-off-by: Greg Kroah-Hartman commit 1192e9c910740099465aa1390bd102519c92c82a Author: Jason Dravet Date: Sat Jun 5 15:08:29 2010 -0500 p54usb: Add device ID for Dell WLA3310 USB commit 0f666a08901f8b01f294ca0ad751019375240ae3 upstream. Add Dell WLA3310 USB wireless card, which has a Z-Com XG-705A chipset, to the USB Ids in p54usb. Signed-off-by: Jason Dravet Tested-by: Richard Gregory Tillmore Signed-off-by: Larry Finger Acked-by: Christian Lamparter Signed-off-by: John W. Linville Signed-off-by: Greg Kroah-Hartman commit ff46e9ac912b01da5325f47e7ed1c069d2d3aeef Author: Bob Copeland Date: Fri Jun 4 08:14:14 2010 -0400 ath5k: retain promiscuous setting commit 6b5dcccb495b66b3b0b9581cdccfed038e5d68a2 upstream. Commit 56d1de0a21db28e41741cfa0a66e18bc8d920554, "ath5k: clean up filter flags setting" introduced a regression in monitor mode such that the promisc filter flag would get lost. Although we set the promisc flag when it changed, we did not preserve it across subsequent calls to configure_filter. This patch restores the original functionality. Bisected-by: weedy2887@gmail.com Tested-by: weedy2887@gmail.com Tested-by: Rick Farina Signed-off-by: Bob Copeland Signed-off-by: John W. Linville Signed-off-by: Greg Kroah-Hartman commit 6baadd343cb324ba60bf15a9294142531f1472ed Author: Felix Fietkau Date: Tue Apr 27 00:26:34 2010 +0200 mac80211: fix handling of 4-address-mode in ieee80211_change_iface commit f7917af92024d43bc20bc1afc92de27b0bd0f50b upstream. A misplaced interface type check bails out too early if the interface is not in monitor mode. This patch moves it to the right place, so that it only covers changes to the monitor flags. Signed-off-by: Felix Fietkau Signed-off-by: John W. Linville Signed-off-by: Greg Kroah-Hartman commit f61b2c28636ecd88e2f856327d29e3b7a8e3a543 Author: Shanyu Zhao Date: Tue Apr 27 11:15:12 2010 -0700 mac80211: fix rts threshold check commit a2c40249a36d0b4d76d1caf6bf806e4ae5b06e8a upstream. Currently whenever rts thresold is set, every packet will use RTS protection no matter its size exceeds the threshold or not. This is due to a bug in the rts threshold check. if (len > tx->local->hw.wiphy->rts_threshold) { txrc.rts = rts = true; } Basically it is comparing an int (len) and a u32 (rts_threshold), and the variable len is assigned as: len = min_t(int, tx->skb->len + FCS_LEN, tx->local->hw.wiphy->frag_threshold); However, when frag_threshold is "-1", len is always "-1", which is 0xffffffff therefore rts is always set to true. Signed-off-by: Shanyu Zhao Reviewed-by: Johannes Berg Signed-off-by: John W. Linville Signed-off-by: Greg Kroah-Hartman commit 735091bf209c26130d1380582d34990eb8af16ef Author: Jouni Malinen Date: Sun Mar 28 22:29:52 2010 -0700 mac80211: Fix robust management frame handling (MFP) commit d211e90e28a074447584729018a39910d691d1a8 upstream. Commit e34e09401ee9888dd662b2fca5d607794a56daf2 incorrectly removed use of ieee80211_has_protected() from the management frame case and in practice, made this validation drop all Action frames when MFP is enabled. This should have only been done for frames with Protected field set to zero. Signed-off-by: Jouni Malinen Signed-off-by: John W. Linville Signed-off-by: Greg Kroah-Hartman commit e08018b10218825052b02c0d65cf9b5dd229f5df Author: Andres Salomon Date: Thu Feb 25 19:18:47 2010 -0500 mac80211: give warning if building w/out rate ctrl algorithm commit c2ef355bf3ef0b8006b96128726684fba47ac928 upstream. I discovered that if EMBEDDED=y, one can accidentally build a mac80211 stack and drivers w/ no rate control algorithm. For drivers like RTL8187 that don't supply their own RC algorithms, this will cause ieee80211_register_hw to fail (making the driver unusable). This will tell kconfig to provide a warning if no rate control algorithms have been selected. That'll at least warn the user; users that know that their drivers supply a rate control algorithm can safely ignore the warning, and those who don't know (or who expect to be using multiple drivers) can select a default RC algorithm. Signed-off-by: Andres Salomon Signed-off-by: John W. Linville Signed-off-by: Greg Kroah-Hartman commit 64b914d6daa61a17a8124a9b705de325178d59e0 Author: Bruno Randolf Date: Wed May 19 10:18:16 2010 +0900 ath5k: consistently use rx_bufsize for RX DMA commit b5eae9ff5ba6d76de19286dd6429acd7cde3f79d upstream. We should use the same buffer size we set up for DMA also in the hardware descriptor. Previously we used common->rx_bufsize for setting up the DMA mapping, but used skb_tailroom(skb) for the size we tell to the hardware in the descriptor itself. The problem is that skb_tailroom(skb) can give us a larger value than the size we set up for DMA before. This allows the hardware to write into memory locations not set up for DMA. In practice this should rarely happen because all packets should be smaller than the maximum 802.11 packet size. On the tested platform rx_bufsize is 2528, and we allocated an skb of 2559 bytes length (including padding for cache alignment) but sbk_tailroom() was 2592. Just consistently use rx_bufsize for all RX DMA memory sizes. Also use the return value of the descriptor setup function. Signed-off-by: Bruno Randolf Reviewed-by: Luis R. Rodriguez Signed-off-by: John W. Linville Signed-off-by: Greg Kroah-Hartman commit 774acedbe0450bf898db29f60cb155bbda2c6132 Author: Christian Lamparter Date: Tue Mar 23 21:51:14 2010 +0100 ar9170usb: fix panic triggered by undersized rxstream buffer commit 879999cec9489f8942ebce3ec1b5f23ef948dda7 upstream. While ar9170's USB transport packet size is currently set to 8KiB, the PHY is capable of receiving AMPDUs with up to 64KiB. Such a large frame will be split over several rx URBs and exceed the previously allocated space for rx stream reconstruction. This patch increases the buffer size to 64KiB which is in fact the phy & rx stream designed size limit. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=15591 Reported-by: Christian Mehlis Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville Signed-off-by: Greg Kroah-Hartman commit 53d79eea5694856d540c19016feeb7f9d81f9d80 Author: Christian Lamparter Date: Tue Apr 13 18:10:26 2010 +0200 ar9170usb: add a couple more USB IDs commit 94d0bbe849190255b93fede8eb46809a38f9b8bf upstream. This patch adds the following 5 entries to the usbid device table: * Netgear WNA1000 * Proxim ORiNOCO Dual Band 802.11n USB Adapter * 3Com Dual Band 802.11n USB Adapter * H3C Dual Band 802.11n USB Adapter * WNC Generic 11n USB dongle Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville Signed-off-by: Greg Kroah-Hartman commit 998160773234e9d27a6a6437554b6f66cb4b7da3 Author: John W. Linville Date: Wed Apr 28 19:14:42 2010 -0400 rtl8180: fix tx status reporting commit d989ff7cf8d14f1b523f63ba0bf2ec1a9b7c25bc upstream. When reporting Tx status, indicate that only one rate was used. Otherwise, the rate is frozen at rate index 0 (i.e. 1Mb/s). Signed-off-by: John W. Linville Signed-off-by: Greg Kroah-Hartman commit 0afe7e4c1136dda6486587be78c5d277f7aac999 Author: Luis R. Rodriguez Date: Wed May 19 17:33:49 2010 -0400 Revert "ath9k: fix lockdep warning when unloading module" on stable kernels Johannes' patch 34e8950 titled: mac80211: allow station add/remove to sleep changed the way mac80211 adds and removes peers. The new sta_add() / sta_remove() callbacks allowed the driver callbacks to sleep. Johannes also ported ath9k to use sta_add() / sta_remove() via the patch 4ca7786 titled: ath9k: convert to new station add/remove callbacks but this patch forgot to address a change in locking issue which Ming Lei eventually found on his 2.6.33-wl #12 build. The 2.6.33-wl build includes code for the 802.11 subsystem for 2.6.34 though so did already have the above two patches (ath9k_sta_remove() on his trace), the 2.6.33 kernel did not however have these two patches. Ming eventually cured his lockdep warnign via the patch a9f042c titled: ath9k: fix lockdep warning when unloading module This went in to 2.6.34 and although it was not marked as a stable fix it did get trickled down and applied on both 2.6.33 and 2.6.32. In review, the culprits: mac80211: allow station add/remove to sleep git describe --contains 34e895075e21be3e21e71d6317440d1ee7969ad0 v2.6.34-rc1~233^2~49^2~107 ath9k: convert to new station add/remove callbacks git describe --contains 4ca778605cfec53d8a689f0b57babb93b030c784 v2.6.34-rc1~233^2~49^2~10 ath9k: fix lockdep warning when unloading module This last one trickled down to 2.6.33 (OK), 2.6.33 (invalid) and 2.6.32 (invalid). git describe --contains a9f042cbe5284f34ccff15f3084477e11b39b17b v2.6.34-rc2~48^2~77^2~7 git describe --contains 0524bcfa80f1fffb4e1fe18a0a28900869a58a7c v2.6.33.2~125 git describe --contains 0dcc9985f34aef3c60bffab3dfc7f7ba3748f35a v2.6.32.11~79 The patch titled "ath9k: fix lockdep warning when unloading module" should be reverted on both 2.6.33 and 2.6.32 as it is invalid and actually ended up causing the following warning: ADDRCONF(NETDEV_CHANGE): wlan31: link becomes ready phy0: WMM queue=2 aci=0 acm=0 aifs=3 cWmin=15 cWmax=1023 txop=0 phy0: WMM queue=3 aci=1 acm=0 aifs=7 cWmin=15 cWmax=1023 txop=0 phy0: WMM queue=1 aci=2 acm=0 aifs=2 cWmin=7 cWmax=15 txop=94 phy0: WMM queue=0 aci=3 acm=0 aifs=2 cWmin=3 cWmax=7 txop=47 phy0: device now idle ------------[ cut here ]------------ WARNING: at kernel/softirq.c:143 local_bh_enable_ip+0x7b/0xa0() Hardware name: 7660A14 Modules linked in: ath9k(-) mac80211 ath cfg80211 Pid: 2003, comm: rmmod Not tainted 2.6.32.11 #6 Call Trace: [] warn_slowpath_common+0x78/0xb0 [] warn_slowpath_null+0xf/0x20 [] local_bh_enable_ip+0x7b/0xa0 [] _spin_unlock_bh+0x14/0x20 [] ath_tx_node_cleanup+0x185/0x1b0 [ath9k] [] ath9k_sta_notify+0x57/0xb0 [ath9k] [] __sta_info_unlink+0x15a/0x260 [mac80211] [] sta_info_unlink+0x38/0x60 [mac80211] [] ieee80211_set_disassoc+0x1ae/0x210 [mac80211] [] ieee80211_mgd_deauth+0x109/0x110 [mac80211] [] ieee80211_deauth+0x19/0x20 [mac80211] [] __cfg80211_mlme_deauth+0xee/0x130 [cfg80211] [] ? init_object+0x50/0x90 [] __cfg80211_disconnect+0x159/0x1d0 [cfg80211] [] cfg80211_netdev_notifier_call+0x10f/0x450 [cfg80211] [] notifier_call_chain+0x47/0x90 [] raw_notifier_call_chain+0x11/0x20 [] call_netdevice_notifiers+0x16/0x20 [] dev_close+0x4d/0xa0 [] rollback_registered+0x48/0x120 [] unregister_netdevice+0x1d/0x70 [] ieee80211_remove_interfaces+0x84/0xc0 [mac80211] [] ieee80211_unregister_hw+0x42/0xf0 [mac80211] [] ath_detach+0x8e/0x180 [ath9k] [] ath_cleanup+0x11/0x50 [ath9k] [] ath_pci_remove+0x1c/0x20 [ath9k] [] pci_device_remove+0x32/0x60 [] __device_release_driver+0x53/0xb0 [] driver_detach+0xc8/0xd0 [] bus_remove_driver+0x85/0xe0 [] driver_unregister+0x5a/0x90 [] pci_unregister_driver+0x40/0xb0 [] ath_pci_exit+0x10/0x20 [ath9k] [] ath9k_exit+0x9/0x2a [ath9k] [] sys_delete_module+0x1a8/0x270 [] ? up_read+0x9/0x10 [] system_call_fastpath+0x16/0x1b ---[ end trace fad957019ffdd40b ]--- phy0: Removed STA 00:22:6b:56:fd:e8 phy0: Destroyed STA 00:22:6b:56:fd:e8 wlan31: deauthenticating from 00:22:6b:56:fd:e8 by local choice (reason=3) ath9k 0000:16:00.0: PCI INT A disabled The original lockdep fixed an issue where due to the new changes the driver was not disabling the bottom halves but it is incorrect to do this on the older kernels since IRQs are already disabled. Cc: Ming Lei Cc: Johannes Berg Cc: John W. Linville Signed-off-by: Luis R. Rodriguez Signed-off-by: Greg Kroah-Hartman commit 4c55f33e52794d882f7f210841abb3a5e558a024 Author: Wey-Yi Guy Date: Tue Feb 9 08:14:11 2010 -0800 iwlwifi: clear all the stop_queue flag after load firmware commit a9e10fb9b1c6ad16e73cf2656951fce3a817611e upstream. All the queues are awake and ready to use after loading firmware, for firmware reload case, if any queues was stopped before reload, mac80211 will wake those queues after restart hardware, so make sure all the flag used to keep track of the queue status are reset correctly. Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: Greg Kroah-Hartman commit bd57506de6ee6932e740b9b2b939e7ca439b8feb Author: Wey-Yi Guy Date: Wed Feb 3 12:24:44 2010 -0800 iwlwifi: check for aggregation frame and queue commit 45d427001b5eec03cecaacddb53c73af46bb263e upstream. Error checking for aggregation frames should go into aggregation queue, if aggregation queue not available, use legacy queue instead. Also make sure the aggregation queue is available to activate, if driver and mac80211 is out-of-sync, try to disable the queue and sync-up with mac80211. Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: Greg Kroah-Hartman commit ab6beee9920960fb14034b45a53267aa1cc8198e Author: John W. Linville Date: Fri Apr 30 11:19:58 2010 -0400 ath9k: reorder ieee80211_free_hw behind ath9k_uninit_hw to avoid oops This code only exists in 2.6.33 -- 2.6.32 and 2.6.34 are not affected. Signed-off-by: John W. Linville Signed-off-by: Greg Kroah-Hartman commit 6d63e6f4f17a6cdb8f52fb4179820b6b96cab528 Author: Darren Jenkins Date: Wed Feb 17 23:40:15 2010 +1100 drivers/net/wireless/p54/txrx.c Fix off by one error commit 088ea189c4c75cdf211146faa4b341a0f7476be6 upstream. fix off by one error in the queue size check of p54_tx_qos_accounting_alloc() Coverity CID: 13314 Signed-off-by: Darren Jenkins Signed-off-by: John W. Linville Signed-off-by: Greg Kroah-Hartman commit 7525b22412ed31cdd781f8e4a9fbf28decd2994a Author: Hans de Goede Date: Thu Apr 22 19:52:16 2010 +0200 p54pci: fix bugs in p54p_check_tx_ring commit 0250ececdf6813457c98719e2d33b3684881fde0 upstream. Hans de Goede identified a bug in p54p_check_tx_ring: there are two ring indices. 1 => tx data and 3 => tx management. But the old code had a constant "1" and this resulted in spurious dma unmapping failures. Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=583623 Bug-Identified-by: Hans de Goede Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville Signed-off-by: Greg Kroah-Hartman commit 90a425c2d38aedbe92a73e9a59b27e98dcc823a2 Author: Johannes Berg Date: Mon Apr 19 10:48:38 2010 +0200 mac80211: remove bogus TX agg state assignment commit b4bb5c3fd9333024044362df67e23e96158489ed upstream. When the addba timer expires but has no work to do, it should not affect the state machine. If it does, TX will not see the successfully established and we can also crash trying to re-establish the session. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville Signed-off-by: Greg Kroah-Hartman commit d6bc88ead27c25dfc63b9f90d293bc97e8032d89 Author: Shimada Hirofumi Date: Sun Feb 14 04:16:16 2010 +0900 p54usb: Add usbid for Corega CG-WLUSB2GT. commit 15a69a81731d337a3d9db51692ff8704c1114f43 upstream. Signed-off-by: Shimada Hirofumi Signed-off-by: YOSHIFUJI Hideaki Signed-off-by: John W. Linville Cc: maximilian attems Signed-off-by: Greg Kroah-Hartman commit 6722260b066a1de80228d71da99ab71ebdcc7ae8 Author: Reinette Chatre Date: Tue Feb 2 10:57:12 2010 -0800 iwlwifi: fix scan race commit bbcbb9ef9735c67da303d30bd6beb9e699f0f508 upstream. There is a problem if an "internal short scan" is in progress when a mac80211 requested scan arrives. If this new scan request arrives within the "next_scan_jiffies" period then driver will immediately return success and complete the scan. The problem here is that the scan has not been fully initialized at this time (is_internal_short_scan is still set to true because of the currently running scan), which results in the scan completion never to be sent to mac80211. At this time also, evan though the internal short scan is still running the state (is_internal_short_scan) will be set to false, so when the internal scan does complete then mac80211 will receive a scan completion. Fix this by checking right away if a scan is in progress when a scan request arrives from mac80211. Signed-off-by: Reinette Chatre Cc: maximilian attems Signed-off-by: Greg Kroah-Hartman commit 5393cd90a45d38d8457855ccff2240666554c815 Author: Wey-Yi Guy Date: Tue Feb 2 16:58:34 2010 -0800 iwlwifi: clear all tx queues when firmware ready commit dff010ac8e57e43669518a14c0e945dfeb80c2a7 upstream. Reset and clear all the tx queues when finished downloading runtime uCode and ready to go into operation mode. Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Cc: maximilian attems Signed-off-by: Greg Kroah-Hartman commit 9a4caec9cf9c1d95e4a59974de6d9c2797bb117f Author: Linus Torvalds Date: Fri Feb 26 10:34:27 2010 -0800 b43: fall back gracefully to PIO mode after fatal DMA errors commit 9e3bd9190800e8209b4a3e1d724c35f0738dcad2 upstream. This makes the b43 driver just automatically fall back to PIO mode when DMA doesn't work. The driver already told the user to do it, so rather than have the user reload the module with a new flag, just make the driver do it automatically. We keep the message as an indication that something is wrong, but now just automatically fall back to the hopefully working PIO case. (Some post-2.6.33 merge fixups by Larry Finger and yours truly... -- JWL) Signed-off-by: Linus Torvalds Signed-off-by: John W. Linville Cc: maximilian attems Signed-off-by: Greg Kroah-Hartman commit ca18b87fd44231563f72c598c169c147b9a899c3 Author: Larry Finger Date: Thu Dec 10 17:35:01 2009 -0600 b43: Allow PIO mode to be selected at module load commit b02914af4d7020828ce921a572589dd793517c09 upstream. If userencounter the "Fatal DMA Problem" with a BCM43XX device, and still wish to use b43 as the driver, their only option is to rebuild the kernel with CONFIG_B43_FORCE_PIO. This patch removes this option and allows PIO mode to be selected with a load-time parameter for the module. Note that the configuration variable CONFIG_B43_PIO is also removed. Once the DMA problem with the BCM4312 devices is solved, this patch will likely be reverted. Signed-off-by: Larry Finger Tested-by: John Daiker Cc: maximilian attems Signed-off-by: John W. Linville Signed-off-by: Greg Kroah-Hartman commit a426c6e7ec8c7208cfcaf1a57d10d4d07c5e7f3f Author: Javier Cardona Date: Mon Mar 29 11:00:20 2010 -0700 mac80211: Handle mesh action frames in ieee80211_rx_h_action commit 1cb561f83793191cf86a2db3948d28f5f42df9ff upstream. This fixes the problem introduced in commit 8404080568613d93ad7cf0a16dfb68 which broke mesh peer link establishment. changes: v2 Added missing break (Johannes) v3 Broke original patch into two (Johannes) Signed-off-by: Javier Cardona Reviewed-by: Johannes Berg Signed-off-by: John W. Linville Signed-off-by: Greg Kroah-Hartman commit cc0ffdadee6e17cabcb9ce2081b5a637c87113ea Author: Wey-Yi Guy Date: Thu Apr 8 13:17:37 2010 -0700 iwlwifi: need check for valid qos packet before free commit ece6444c2fe80dab679beb5f0d58b091f1933b00 upstream. For 4965, need to check it is valid qos frame before free, only valid QoS frame has the tid used to free the packets. Signed-off-by: Wey-Yi Guy Signed-off-by: John W. Linville Signed-off-by: Greg Kroah-Hartman commit 0d54cd89c5cb669505946ab6789ef68b3a7d7f75 Author: Felix Fietkau Date: Tue Apr 6 12:05:01 2010 -0700 ath9k: fix double calls to ath_radio_enable commit 1144601118507f8b3b676a9a392584d216d3f2cc upstream. With the enable_radio being uninitialized, ath_radio_enable() might be called twice, which can leave some hardware in an undefined state. Signed-off-by: Felix Fietkau Signed-off-by: John W. Linville Signed-off-by: Greg Kroah-Hartman commit 4c35513318cdb86f13ce5d46a32b1d4045dc0856 Author: Wey-Yi Guy Date: Wed Feb 3 09:28:55 2010 -0800 mac80211: tear down all agg queues when restart/reconfig hw commit 74e2bd1fa3ae9695af566ad5a7a288898787b909 upstream. When there is a need to restart/reconfig hw, tear down all the aggregation queues and let the mac80211 and driver get in-sync to have the opportunity to re-establish the aggregation queues again. Need to wait until driver re-establish all the station information before tear down the aggregation queues, driver(at least iwlwifi driver) will reject the stop aggregation queue request if station is not ready. But also need to make sure the aggregation queues are tear down before waking up the queues, so mac80211 will not sending frames with aggregation bit set. Signed-off-by: Wey-Yi Guy Signed-off-by: John W. Linville Signed-off-by: Greg Kroah-Hartman commit 358f3455718bf3db530eddf4c85ba5465e5f3e2d Author: Johannes Berg Date: Mon Mar 22 13:42:43 2010 -0700 mac80211: move netdev queue enabling to correct spot commit 7236fe29fd72d17074574ba312e7f1bb9d10abaa upstream. "mac80211: fix skb buffering issue" still left a race between enabling the hardware queues and the virtual interface queues. In hindsight it's totally obvious that enabling the netdev queues for a hardware queue when the hardware queue is enabled is wrong, because it could well possible that we can fill the hw queue with packets we already have pending. Thus, we must only enable the netdev queues once all the pending packets have been processed and sent off to the device. In testing, I haven't been able to trigger this race condition, but it's clearly there, possibly only when aggregation is being enabled. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville Signed-off-by: Greg Kroah-Hartman commit 19247cfcced8bd22953a04e7cedef591c0ea1ec4 Author: Porsch, Marco Date: Wed Feb 24 09:53:13 2010 +0100 mac80211: fix PREQ processing and one small bug commit 533866b12cce484994163b1e201778cbac4c04c5 upstream. 1st) a PREQ should only be processed, if it has the same SN and better metric (instead of better or equal). 2nd) next_hop[ETH_ALEN] now actually used to buffer mpath->next_hop->sta.addr for use out of lock. Signed-off-by: Marco Porsch Acked-by: Javier Cardona Signed-off-by: John W. Linville Signed-off-by: Greg Kroah-Hartman commit e0db64375f23e12bbb2c43f89abc099bb61fc2f1 Author: Valentin Longchamp Date: Fri Mar 26 11:44:33 2010 +0100 setup correct int pipe type in ar9170_usb_exec_cmd commit 2d20c72c021d96f8b9230396c8e3782f204214ec upstream. An int urb is constructed but we fill it in with a bulk pipe type. Commit f661c6f8c67bd55e93348f160d590ff9edf08904 implemented a pipe type check when CONFIG_USB_DEBUG is enabled. The check failed for all the ar9170 usb transfers and the driver could not configure the wifi dongle. This went unnoticed until now because most people don't have CONFIG_USB_DEBUG enabled. Signed-off-by: Valentin Longchamp Acked-by: Christian Lamparter Signed-off-by: John W. Linville Signed-off-by: Greg Kroah-Hartman commit 2596e91190508f987871ad58589adb6016668b87 Author: Dan Carpenter Date: Sun Mar 28 14:55:00 2010 +0300 iwlwifi: range checking issue commit 8e1a53c615e8efe0fac670f2973da64758748a8a upstream. IWL_RATE_COUNT is 13 and IWL_RATE_COUNT_LEGACY is 12. IWL_RATE_COUNT_LEGACY is the right one here because iwl3945_rates doesn't support 60M and also that's how "rates" is defined in iwlcore_init_geos() from drivers/net/wireless/iwlwifi/iwl-core.c. rates = kzalloc((sizeof(struct ieee80211_rate) * IWL_RATE_COUNT_LEGACY), GFP_KERNEL); Signed-off-by: Dan Carpenter Acked-by: Zhu Yi Signed-off-by: John W. Linville Signed-off-by: Greg Kroah-Hartman commit 82ebe78ace38cfc37d16166fcff7ff3064e7460b Author: Wey-Yi Guy Date: Thu Mar 18 09:05:00 2010 -0700 iwlwifi: counting number of tfds can be free for 4965 commit be6b38bcb175613f239e0b302607db346472c6b6 upstream. Forget one hunk in 4965 during "iwlwifi: error checking for number of tfds in queue" patch. Reported-by: Shanyu Zhao Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: Greg Kroah-Hartman commit 6f73e60d90f8b29e1707810c422826b5310ca353 Author: Reinette Chatre Date: Fri Mar 12 11:13:26 2010 -0800 iwlwifi: fix regulatory commit f6c8f1523a2de3b84340e45913cbcee8bee74570 upstream. Commit "cfg80211: convert bools into flags" mistakenly modified iwlwifi's regulatory settings instead of just converting it. Fix this. This fixes http://bugzilla.intellinuxwireless.org/show_bug.cgi?id=2172 Signed-off-by: Reinette Chatre Signed-off-by: Greg Kroah-Hartman commit cb81a2ace8bd4354cc40ff341543a9791719383c Author: Michael Buesch Date: Fri Mar 19 10:38:33 2010 -0500 b43: Workaround circular locking in hw-tkip key update callback commit 96869a39399269a776a94812e9fff3d38b47d838 upstream The TKIP key update callback is called from the RX path, where the driver mutex is already locked. This results in a circular locking bug. Avoid this by removing the lock. Johannes noted that there is a separate bug: The callback still breaks on SDIO hardware, because SDIO hardware access needs to sleep, but we are not allowed to sleep in the callback due to mac80211's RCU locking. Signed-off-by: Michael Buesch Tested-by: Larry Finger Reported-by: kecsa@kutfo.hit.bme.hu Cc: Johannes Berg Signed-off-by: John W. Linville Signed-off-by: Greg Kroah-Hartman commit cf724d19f2e56135927eadc1154940d3f42f9f0e Author: Andrei Emeltchenko Date: Fri Mar 19 10:26:28 2010 +0200 Bluetooth: Fix kernel crash on L2CAP stress tests commit c2c77ec83bdad17fb688557b5b3fdc36661dd1c6 upstream. Added very simple check that req buffer has enough space to fit configuration parameters. Shall be enough to reject packets with configuration size more than req buffer. Crash trace below [ 6069.659393] Unable to handle kernel paging request at virtual address 02000205 [ 6069.673034] Internal error: Oops: 805 [#1] PREEMPT ... [ 6069.727172] PC is at l2cap_add_conf_opt+0x70/0xf0 [l2cap] [ 6069.732604] LR is at l2cap_recv_frame+0x1350/0x2e78 [l2cap] ... [ 6070.030303] Backtrace: [ 6070.032806] [] (l2cap_add_conf_opt+0x0/0xf0 [l2cap]) from [] (l2cap_recv_frame+0x1350/0x2e78 [l2cap]) [ 6070.043823] r8:dc5d3100 r7:df2a91d6 r6:00000001 r5:df2a8000 r4:00000200 [ 6070.050659] [] (l2cap_recv_frame+0x0/0x2e78 [l2cap]) from [] (l2cap_recv_acldata+0x2bc/0x350 [l2cap]) [ 6070.061798] [] (l2cap_recv_acldata+0x0/0x350 [l2cap]) from [] (hci_rx_task+0x244/0x478 [bluetooth]) [ 6070.072631] r6:dc647700 r5:00000001 r4:df2ab740 [ 6070.077362] [] (hci_rx_task+0x0/0x478 [bluetooth]) from [] (tasklet_action+0x78/0xd8) [ 6070.087005] [] (tasklet_action+0x0/0xd8) from [] Signed-off-by: Andrei Emeltchenko Acked-by: Gustavo F. Padovan Signed-off-by: Marcel Holtmann Signed-off-by: Greg Kroah-Hartman commit a318674438c789f5bf46a91cf24b5988b2091f16 Author: Marcel Holtmann Date: Mon Mar 15 14:12:58 2010 -0700 Bluetooth: Fix potential bad memory access with sysfs files commit 101545f6fef4a0a3ea8daf0b5b880df2c6a92a69 upstream. When creating a high number of Bluetooth sockets (L2CAP, SCO and RFCOMM) it is possible to scribble repeatedly on arbitrary pages of memory. Ensure that the content of these sysfs files is always less than one page. Even if this means truncating. The files in question are scheduled to be moved over to debugfs in the future anyway. Based on initial patches from Neil Brown and Linus Torvalds Reported-by: Neil Brown Signed-off-by: Marcel Holtmann Signed-off-by: Greg Kroah-Hartman commit e6ebbf99c171ca872ec1eb546230cb8a42873494 Author: Vivek Natarajan Date: Thu Mar 11 13:03:01 2010 -0800 ath9k: Enable IEEE80211_HW_REPORTS_TX_ACK_STATUS flag for ath9k commit 05df49865be08b30e7ba91b9d3d94d7d52dd3033 upstream. Signed-off-by: Vivek Natarajan Signed-off-by: John W. Linville Signed-off-by: Luis R. Rodriguez Signed-off-by: Greg Kroah-Hartman commit 03d0e14875e0f4151ec039125c15ca46e056b914 Author: Vivek Natarajan Date: Thu Mar 11 12:59:53 2010 -0800 mac80211: Retry null data frame for power save commit 375177bf35efc08e1bd37bbda4cc0c8cc4db8500 upstream. Even if the null data frame is not acked by the AP, mac80211 goes into power save. This might lead to loss of frames from the AP. Prevent this by restarting dynamic_ps_timer when ack is not received for null data frames. Cc: Johannes Berg Signed-off-by: Vivek Natarajan Signed-off-by: John W. Linville Signed-off-by: Luis R. Rodriguez Signed-off-by: Greg Kroah-Hartman commit 7c74e3f2e97f7bdcb56b72919201af941ea0b4e6 Author: Senthil Balasubramanian Date: Wed Feb 3 22:50:18 2010 +0530 ath9k: configure the beacon only if the STA is associated commit 1a20034a73a40b8056731f9db0c535cec2961eb7 upstream. beacons configuration SHOULD be done only if the STA is associated. Signed-off-by: Senthil Balasubramanian Signed-off-by: John W. Linville Signed-off-by: Luis R. Rodriguez Signed-off-by: Greg Kroah-Hartman commit eb4265ff035b929a44fe58b8f2fd09a45e7fea07 Author: Senthil Balasubramanian Date: Thu Mar 11 12:10:12 2010 -0800 ath9k: Enable TIM timer interrupt only when needed. commit 3f7c5c10e9dc6bf90179eb9f7c06151d508fb324 upstream. The TIM timer interrupt is enabled even before the ACK of nullqos is received which is unnecessary. Also clean up the CONF_PS part of config callback properly for better readability. Signed-off-by: Senthil Balasubramanian Signed-off-by: John W. Linville Signed-off-by: Luis R. Rodriguez Signed-off-by: Greg Kroah-Hartman commit c439578e379c3ffe8ffe4669f2e2af7ecfca74f1 Author: Felix Fietkau Date: Fri Mar 12 04:02:43 2010 +0100 ath9k: fix BUG_ON triggered by PAE frames commit 4fdec031b9169b3c17938b9c4168f099f457169c upstream. When I initially stumbled upon sequence number problems with PAE frames in ath9k, I submitted a patch to remove all special cases for PAE frames and let them go through the normal transmit path. Out of concern about crypto incompatibility issues, this change was merged instead: commit 6c8afef551fef87a3bf24f8a74c69a7f2f72fc82 Author: Sujith Date: Tue Feb 9 10:07:00 2010 +0530 ath9k: Fix sequence numbers for PAE frames After a lot of testing, I'm able to reliably trigger a driver crash on rekeying with current versions with this change in place. It seems that the driver does not support sending out regular MPDUs with the same TID while an A-MPDU session is active. This leads to duplicate entries in the TID Tx buffer, which hits the following BUG_ON in ath_tx_addto_baw(): index = ATH_BA_INDEX(tid->seq_start, bf->bf_seqno); cindex = (tid->baw_head + index) & (ATH_TID_MAX_BUFS - 1); BUG_ON(tid->tx_buf[cindex] != NULL); I believe until we actually have a reproducible case of an incompatibility with another AP using no PAE special cases, we should simply get rid of this mess. This patch completely fixes my crash issues in STA mode and makes it stay connected without throughput drops or connectivity issues even when the AP is configured to a very short group rekey interval. Signed-off-by: Felix Fietkau Signed-off-by: John W. Linville Signed-off-by: Greg Kroah-Hartman commit 6bfaf37c703ac785efaefc5bfe20a279da52cac5 Author: Adel Gadllah Date: Sun Mar 14 19:16:25 2010 +0100 iwlwifi: Silence tfds_in_queue message commit c8406ea8fa1adde8dc5400127281d497bbcdb84a upstream. Commit a239a8b47cc0e5e6d7416a89f340beac06d5edaa introduced a noisy message, that fills up the log very fast. The error seems not to be fatal (the connection is stable and performance is ok), so make it IWL_DEBUG_TX rather than IWL_ERR. Signed-off-by: Adel Gadllah Acked-by: Reinette Chatre Signed-off-by: John W. Linville Signed-off-by: Greg Kroah-Hartman commit 1f80a7ae997a7e3dbe4bf8f56c2b9bc163c7e6f9 Author: Grazvydas Ignotas Date: Thu Mar 11 17:45:26 2010 +0200 wl1251: fix potential crash commit 3f60ebc9d6291863652d564bacc430629271e6a9 upstream. In case debugfs does not init for some reason (or is disabled on older kernels) driver does not allocate stats.fw_stats structure, but tries to clear it later and trips on a NULL pointer: Unable to handle kernel NULL pointer dereference at virtual address 00000000 PC is at __memzero+0x24/0x80 Backtrace: [] (wl1251_debugfs_reset+0x0/0x30 [wl1251]) [] (wl1251_op_stop+0x0/0x12c [wl1251]) [] (ieee80211_stop_device+0x0/0x74 [mac80211]) [] (ieee80211_stop+0x0/0x4ac [mac80211]) [] (dev_close+0x0/0xb4) [] (dev_change_flags+0x0/0x184) [] (devinet_ioctl+0x0/0x704) [] (inet_ioctl+0x0/0x100) Add a NULL pointer check to fix this. Signed-off-by: Grazvydas Ignotas Acked-by: Kalle Valo Signed-off-by: John W. Linville Signed-off-by: Greg Kroah-Hartman commit 095a7d07b8e852ba8bbcd1f3f6c056819fed5d29 Author: Stanislaw Gruszka Date: Wed Feb 10 05:07:45 2010 -0800 iwlwifi: use dma_alloc_coherent commit f36d04abe684f9e2b07c6ebe9f77ae20eb5c1e84 upstream. Change pci_alloc_consistent() to dma_alloc_coherent() so we can use GFP_KERNEL flag. Signed-off-by: Stanislaw Gruszka Signed-off-by: Reinette Chatre Signed-off-by: Greg Kroah-Hartman commit 183407c05503edf20fa80ba1410ca5699bbd41f0 Author: Luis R. Rodriguez Date: Thu Mar 11 10:58:35 2010 -0800 ath9k: add support for 802.11n bonded out AR2427 This is a backport of of upstream commit: 5ffaf8a361b4c9025963959a744f21d8173c7669 Some single chip family devices are sold in the market with 802.11n bonded out, these have no hardware capability for 02.11n but ath9k can still support them. These are called AR2427. Reported-by: Rolf Leggewie Tested-by: Bernhard Reiter Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville Signed-off-by: Greg Kroah-Hartman commit 0524bcfa80f1fffb4e1fe18a0a28900869a58a7c Author: Ming Lei Date: Sun Feb 28 00:56:24 2010 +0800 ath9k: fix lockdep warning when unloading module commit a9f042cbe5284f34ccff15f3084477e11b39b17b upstream. Since txq->axq_lock may be hold in softirq context, it must be acquired with spin_lock_bh() instead of spin_lock() if softieq is enabled. The patch fixes the lockdep warning below when unloading ath9k modules. ================================= [ INFO: inconsistent lock state ] 2.6.33-wl #12 --------------------------------- inconsistent {IN-SOFTIRQ-W} -> {SOFTIRQ-ON-W} usage. rmmod/3642 [HC0[0]:SC0[0]:HE1:SE1] takes: (&(&txq->axq_lock)->rlock){+.?...}, at: [] ath_tx_node_cleanup+0x62/0x180 [ath9k] {IN-SOFTIRQ-W} state was registered at: [] __lock_acquire+0x2f6/0xd35 [] lock_acquire+0xcd/0xf1 [] _raw_spin_lock_bh+0x3b/0x6e [] spin_lock_bh+0xe/0x10 [ath9k] [] ath_tx_tasklet+0xcd/0x391 [ath9k] [] ath9k_tasklet+0x70/0xc8 [ath9k] [] tasklet_action+0x8c/0xf4 [] __do_softirq+0xf8/0x1cd [] call_softirq+0x1c/0x30 [] do_softirq+0x4b/0xa3 [] irq_exit+0x4a/0x8c [] do_IRQ+0xac/0xc3 [] ret_from_intr+0x0/0x16 [] cpuidle_idle_call+0x9e/0xf8 [] cpu_idle+0x62/0x9d [] rest_init+0x7e/0x80 [] start_kernel+0x3e8/0x3f3 [] x86_64_start_reservations+0xa7/0xab [] x86_64_start_kernel+0xf8/0x107 irq event stamp: 42037 hardirqs last enabled at (42037): [] _raw_spin_unlock_irqrestore+0x47/0x56 hardirqs last disabled at (42036): [] _raw_spin_lock_irqsave+0x2b/0x88 softirqs last enabled at (42000): [] spin_unlock_bh+0xe/0x10 [ath9k] softirqs last disabled at (41998): [] _raw_spin_lock_bh+0x18/0x6e other info that might help us debug this: 4 locks held by rmmod/3642: #0: (rtnl_mutex){+.+.+.}, at: [] rtnl_lock+0x17/0x19 #1: (&wdev->mtx){+.+.+.}, at: [] cfg80211_netdev_notifier_call+0x28d/0x46d [cfg80211] #2: (&ifmgd->mtx){+.+.+.}, at: [] ieee80211_mgd_deauth+0x3f/0x17e [mac80211] #3: (&local->sta_mtx){+.+.+.}, at: [] sta_info_destroy_addr+0x2b/0x5e [mac80211] stack backtrace: Pid: 3642, comm: rmmod Not tainted 2.6.33-wl #12 Call Trace: [] valid_state+0x178/0x18b [] ? save_stack_trace+0x2f/0x4c [] ? check_usage_backwards+0x0/0x88 [] mark_lock+0x113/0x230 [] __lock_acquire+0x36a/0xd35 [] ? native_sched_clock+0x2d/0x5f [] ? ath_tx_node_cleanup+0x62/0x180 [ath9k] [] lock_acquire+0xcd/0xf1 [] ? ath_tx_node_cleanup+0x62/0x180 [ath9k] [] ? trace_hardirqs_off+0xd/0xf [] _raw_spin_lock+0x36/0x69 [] ? ath_tx_node_cleanup+0x62/0x180 [ath9k] [] ath_tx_node_cleanup+0x62/0x180 [ath9k] [] ? trace_hardirqs_on+0xd/0xf [] ath9k_sta_remove+0x22/0x26 [ath9k] [] __sta_info_destroy+0x1ad/0x38c [mac80211] [] sta_info_destroy_addr+0x3e/0x5e [mac80211] [] ieee80211_set_disassoc+0x175/0x180 [mac80211] [] ieee80211_mgd_deauth+0x58/0x17e [mac80211] [] ? __mutex_lock_common+0x37f/0x3a4 [] ? cfg80211_netdev_notifier_call+0x28d/0x46d [cfg80211] [] ieee80211_deauth+0x1e/0x20 [mac80211] [] __cfg80211_mlme_deauth+0x130/0x13f [cfg80211] [] ? cfg80211_netdev_notifier_call+0x28d/0x46d [cfg80211] [] ? trace_hardirqs_off+0xd/0xf [] __cfg80211_disconnect+0x111/0x189 [cfg80211] [] cfg80211_netdev_notifier_call+0x2ce/0x46d [cfg80211] [] notifier_call_chain+0x37/0x63 [] raw_notifier_call_chain+0x14/0x16 [] call_netdevice_notifiers+0x1b/0x1d [] dev_close+0x6a/0xa6 [] rollback_registered_many+0xb6/0x2f4 [] unregister_netdevice_many+0x1b/0x66 [] ieee80211_remove_interfaces+0xc5/0xd0 [mac80211] [] ieee80211_unregister_hw+0x47/0xe8 [mac80211] [] ath9k_deinit_device+0x7a/0x9b [ath9k] [] ath_pci_remove+0x38/0x76 [ath9k] [] pci_device_remove+0x2d/0x51 [] __device_release_driver+0x7b/0xd1 [] driver_detach+0x98/0xbe [] bus_remove_driver+0x94/0xb7 [] driver_unregister+0x6c/0x74 [] pci_unregister_driver+0x46/0xad [] ath_pci_exit+0x15/0x17 [ath9k] [] ath9k_exit+0xe/0x2f [ath9k] [] sys_delete_module+0x1c7/0x236 [] ? retint_swapgs+0x13/0x1b [] ? trace_hardirqs_on_caller+0x119/0x144 [] ? audit_syscall_entry+0x11e/0x14a [] system_call_fastpath+0x16/0x1b wlan1: deauthenticating from 00:23:cd:e1:f9:b2 by local choice (reason=3) PM: Removing info for No Bus:wlan1 cfg80211: Calling CRDA to update world regulatory domain PM: Removing info for No Bus:rfkill2 PM: Removing info for No Bus:phy1 ath9k 0000:16:00.0: PCI INT A disabled Signed-off-by: Ming Lei Signed-off-by: John W. Linville Signed-off-by: Greg Kroah-Hartman commit cd8c2b3ae748b9e8e0c9bc397a5b030800f637ae Author: Bob Copeland Date: Wed Jan 20 23:51:04 2010 -0500 ath5k: fix setup for CAB queue commit a951ae2176b982574ffa197455db6c89359fd5eb upstream. The beacon sent gating doesn't seem to work with any combination of flags. Thus, buffered frames tend to stay buffered forever, using up tx descriptors. Instead, use the DBA gating and hold transmission of the buffered frames until 80% of the beacon interval has elapsed using the ready time. This fixes the following error in AP mode: ath5k phy0: no further txbuf available, dropping packet Add a comment to acknowledge that this isn't the best solution. Signed-off-by: Bob Copeland Acked-by: Nick Kossifidis Signed-off-by: John W. Linville Signed-off-by: Greg Kroah-Hartman commit d50ef74730f3f3d876dc9e0fe7ce22c57c4ec67d Author: Bob Copeland Date: Wed Jan 20 23:51:03 2010 -0500 ath5k: dont use external sleep clock in AP mode commit 5d6ce628f986d1a3c523cbb0a5a52095c48cc332 upstream. When using the external sleep clock in AP mode, the TSF increments too quickly, causing beacon interval to be much lower than it is supposed to be, resulting in lots of beacon-not-ready interrupts. This fixes http://bugzilla.kernel.org/show_bug.cgi?id=14802. Signed-off-by: Bob Copeland Acked-by: Nick Kossifidis Signed-off-by: John W. Linville Signed-off-by: Greg Kroah-Hartman commit b55c7626ed9e89a5260ec43712a87495978ed519 Author: Bruno Randolf Date: Tue Mar 9 16:56:05 2010 +0900 ath5k: fix I/Q calibration (for real) commit 86415d43efd4f7093979cfa8a80232114266f1a4 upstream. I/Q calibration was completely broken, resulting in a high number of CRC errors on received packets. before i could see around 10% to 20% CRC errors, with this patch they are between 0% and 3%. 1.) the removal of the mask in commit "ath5k: Fix I/Q calibration (f1cf2dbd0f798b71b1590e7aca6647f2caef1649)" resulted in no mask beeing used when writing the I/Q values into the register. additional errors in the calculation of the values (see 2.) resulted too high numbers, exceeding the masks, so wrong values like 0xfffffffe were written. to be safe we should always use the bitmask when writing parts of a register. 2.) using a (s32) cast for q_coff is a wrong conversion to signed, since we convert to a signed value later by substracting 128. this resulted in too low numbers for Q many times, which were limited to -16 by the boundary check later on. 3.) checked everything against the HAL sources and took over comments and minor optimizations from there. 4.) we can't use ENABLE_BITS when we want to write a number (the number can contain zeros). also always write the correction values first and set ENABLE bit last, like the HAL does. Signed-off-by: Bruno Randolf Acked-by: Nick Kossifidis Signed-off-by: John W. Linville Signed-off-by: Greg Kroah-Hartman commit 5421e40def70b76fb0a677f963a8390b6c3cc69a Author: Sujith Date: Mon Mar 1 14:42:57 2010 +0530 mac80211: Fix HT rate control configuration commit 4fa004373133ece3d9b1c0a7e243b0e53760b165 upstream. Handling HT configuration changes involved setting the channel with the new HT parameters and then issuing a rate_update() notification to the driver. This behavior changed after the off-channel changes. Now, the channel is not updated with the new HT params in enable_ht() - instead, it is now done when the scan work terminates. This results in the driver depending on stale information, defaulting to non-HT mode always. Fix this by passing the new channel type to the driver. Signed-off-by: Sujith Signed-off-by: John W. Linville Signed-off-by: Greg Kroah-Hartman commit 237ee1fee55bde35a68e0e0585a01ccd65345514 Author: Felix Fietkau Date: Fri Jan 8 18:15:13 2010 +0100 mac80211: do not transmit frames on unconfigured 4-addr vlan interfaces commit 3f0e0b220f80075ce15483b20458192c0ac27426 upstream. If frames are transmitted on 4-addr ap vlan interfaces with no station, they end up being transmitted unencrypted, even if the ap interface uses WPA. This patch add some sanity checking to make sure that this does not happen. Signed-off-by: Felix Fietkau Signed-off-by: John W. Linville Signed-off-by: Greg Kroah-Hartman commit 70702844e7be631ea810e752c2f089792b3364bc Author: Larry Finger Date: Wed Feb 3 13:33:44 2010 -0600 b43/b43legacy: Wake queues in wireless_core_start commit 0866b03c7d7dee8a34ffa527ecda426c0f405518 upstream. If b43 or b43legacy are deauthenticated or disconnected, there is a possibility that a reconnection is tried with the queues stopped in mac80211. To prevent this, start the queues before setting STAT_INITIALIZED. In b43, a similar change has been in place (twice) in the wireless_core_init() routine. Remove the duplicate and add similar code to b43legacy. Signed-off-by: Larry Finger Signed-off-by: John W. Linville Signed-off-by: Greg Kroah-Hartman commit 5c61625f566640743886f324e1fda0eef5b04e1d Author: Bob Copeland Date: Tue Feb 9 13:06:54 2010 -0500 ath5k: use correct packet type when transmitting commit 2ac2927a953a01c83df255118922cce1523d1a18 upstream. The hardware needs to know what type of frames are being sent in order to fill in various fields, for example the timestamp in probe responses (before this patch, it was always 0). Set it correctly when initializing the TX descriptor. Signed-off-by: Bob Copeland Signed-off-by: John W. Linville Signed-off-by: Greg Kroah-Hartman commit 85e846977ababcddc37cbe51f38e5ec9a6b21964 Author: Felix Fietkau Date: Wed Feb 24 04:43:05 2010 +0100 ath9k: disable RIFS search for AR91xx based chips commit 7bfbae10dc10a5c94a780d117a57e875d77e8e5a upstream. While ath9k does not support RIFS yet, the ability to receive RIFS frames is currently enabled for most chipsets in the initvals. This is causing baseband related issues on AR9160 and AR9130 based chipsets, which can lock up under certain conditions. This patch fixes these issues by overriding the initvals, effectively disabling RIFS for all affected chipsets. Signed-off-by: Felix Fietkau Acked-by: Luis R. Rodriguez Signed-off-by: John W. Linville Signed-off-by: Greg Kroah-Hartman commit c1ea4dcc2abb87adb1d01f2c59b2aa3fe3c6739b Author: Felix Fietkau Date: Fri Feb 19 01:46:36 2010 +0100 ath9k: fix rate control fallback rate selection commit 5c0ba62fd4b2dce08055a89600f1d834f9f0fe9e upstream. When selecting the tx fallback rate, rc.c used a separate variable 'nrix' for storing the next rate index, however it did not use that as reference for further rate index lowering. Because of that, it ended up reusing the same rate for multiple multi-rate retry stages, thus decreasing delivery probability under changing link conditions. This patch removes the separate (unnecessary) variable and fixes fallback the way it was intended to work. This should result in increased throughput and better link stability. Signed-off-by: Felix Fietkau Signed-off-by: John W. Linville Signed-off-by: Greg Kroah-Hartman commit 3203358238f16e5ff8caa1ee10d5f23ec53547f3 Author: Felix Fietkau Date: Fri Feb 19 18:21:42 2010 +0100 ath9k: fix beacon timer restart after a card reset commit d8728ee919282c7b01b65cd479ec1e2a9c5d3ba8 upstream. In AP mode, ath_beacon_config_ap only restarts the timer if a TSF restart is requested. Apparently this was added, because this function unconditionally sets the flag for TSF reset. The problem with this is, that ath9k_hw_reset() clobbers the timer registers (specified in the initvals), thus effectively disabling the SWBA interrupt whenever a card reset without TSF reset is issued (happens in a few places in the code). This patch fixes ath_beacon_config_ap to only issue the TSF reset flag when necessary, but reinitialize the timer unconditionally. Tests show, that this is enough to keep the SWBA interrupt going after a call to ath_reset() Signed-off-by: Felix Fietkau Signed-off-by: John W. Linville Signed-off-by: Greg Kroah-Hartman commit 82d8cfa27fbce6dd1d3fd39cb808410337e143eb Author: Luis R. Rodriguez Date: Fri Dec 18 11:26:04 2009 -0500 ath9k: re-enable ps by default for new single chip families commit 14acdde6e527950f66c084dbf19bad6fbfcaeedc upstream. The newer single chip hardware family of chipsets have not been experiencing issues with power saving set by default with recent fixes merged (even into stable). The remaining issues are only reported with AR5416 and since enabling PS by default can increase power savings considerably best to take advantage of that feature as this has been tested properly. For more details on this issue see the bug report: http://bugzilla.kernel.org/show_bug.cgi?id=14267 We leave AR5416 with PS disabled by default, that seems to require some more work. Cc: Peter Stuge Cc: Justin P. Mattock Cc: Kristoffer Ericson Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville Signed-off-by: Greg Kroah-Hartman commit d1efc1b1cbd7fa03228268af58199bd913cbc9eb Author: Christian Lamparter Date: Sun Jan 17 23:17:29 2010 +0100 p54pci: handle dma mapping errors commit 288c8ce8047695fd8872dd5db3ef21a9679c402f upstream. This patch adds error-paths to handle pci_dma_mapping errors. Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville Signed-off-by: Greg Kroah-Hartman commit 065bbb5b19f4dffc071341f3113813714d9a564a Author: Jean-François Moine Date: Wed Feb 17 10:59:31 2010 -0600 p54usb: Add the USB ID for Belkin (Accton) FD7050E ver 1010ec commit 5b9a919a97ac8bdda8020c9b366491b5b91b196e upstream. Yet another USB ID. Signed-off-by: Jean-François Moine Signed-off-by: Larry Finger Signed-off-by: John W. Linville Signed-off-by: Greg Kroah-Hartman commit a7ca19cde1d0a1fa9613be3d54dcd65e8ec47904 Author: Ming Lei Date: Sat Feb 6 22:38:23 2010 +0800 ath9k: fix keycache leak in split tkip case commit 733da37dab72de6b3f8b0c56b5cdea322f18a684 upstream. If split tkip key is used, ath_delete_key should delete rx key and rx mic key. This patch fixes the leak of hw keycache in the case. Signed-off-by: John W. Linville Signed-off-by: Greg Kroah-Hartman commit b65592168721ff3800a83e081b5fbb58e8f4e9be Author: Vivek Natarajan Date: Mon Feb 8 17:47:01 2010 +0530 mac80211: Reset dynamic ps timer in Rx path. commit e15276a4b220c54db665cf46a92bd9ceb9aeb052 upstream. The current mac80211 implementation enables power save if there is no Tx traffic for a specific timeout. Hence, PS is triggered even if there is a continuous Rx only traffic(like UDP) going on. This makes the drivers to wait on the tim bit in the next beacon to awake which leads to redundant sleep-wake cycles. Fix this by restarting the dynamic ps timer on receiving every data packet. Signed-off-by: Vivek Natarajan Signed-off-by: John W. Linville Signed-off-by: Greg Kroah-Hartman commit a19aec3d01d42adfd11ea9fe8363d11fff5cd0b4 Author: Zhu Yi Date: Mon Dec 28 16:57:15 2009 +0800 mac80211: quit addba_resp_timer if Tx BA session is torn down commit 3dc1de0bf23816ed557ac8addf680cd5ee57e805 upstream. Make addba_resp_timer aware the HT_AGG_STATE_REQ_STOP_BA_MSK mask so that when ___ieee80211_stop_tx_ba_session() is issued the timer will quit. Otherwise when suspend happens before the timer expired, the timer handler will be called immediately after resume and messes up driver status. Signed-off-by: Zhu Yi Acked-by: Johannes Berg Signed-off-by: John W. Linville Signed-off-by: Greg Kroah-Hartman commit 1892aa5152de460ffd7bdb1b64f84313eb14353e Author: Stanislaw Gruszka Date: Tue Feb 2 15:34:50 2010 +0100 airo: fix setting zero length WEP key commit f09c256375c7cf1e112b8ef6306cdd313490d7c0 upstream. Patch prevents call set_wep_key() with zero key length. That fix long standing regression since commit c0380693520b1a1e4f756799a0edc379378b462a "airo: clean up WEP key operations". Additionally print call trace when someone will try to use improper parameters, and remove key.len = 0 assignment, because it is in not possible code path. Reported-by: Chris Siebenmann Bisected-by: Chris Siebenmann Tested-by: Chris Siebenmann Cc: Dan Williams Signed-off-by: Stanislaw Gruszka Signed-off-by: John W. Linville Signed-off-by: Greg Kroah-Hartman commit 675c60706cd197219c6e3e6e3f195475d842344e Merge: 662a96b a120e91 Author: David S. Miller Date: Tue Feb 23 01:27:05 2010 -0800 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 commit a120e912eb51e347f36c71b60a1d13af74d30e83 Author: Stanislaw Gruszka Date: Fri Feb 19 15:47:33 2010 -0800 iwlwifi: sanity check before counting number of tfds can be free Check the frame control for ieee80211_is_data_qos() is true before counting the number of tfds can be free, the tfds_in_queue only increment when ieee80211_is_data_qos() is true before transmit; so it should only decrement if the type match. Remove ieee80211_is_data_qos check for frame_ctrl in tx_resp to avoid invalid information pass from uCode. Signed-off-by: Stanislaw Gruszka Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre CC: stable@kernel.org Signed-off-by: John W. Linville commit a239a8b47cc0e5e6d7416a89f340beac06d5edaa Author: Wey-Yi Guy Date: Fri Feb 19 15:47:32 2010 -0800 iwlwifi: error checking for number of tfds in queue When receive reply_tx and ready to decrement the count for number of tfds in queue, do error checking to prevent error condition and tfds_in_queue become negative number. Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre CC: stable@kernel.org Signed-off-by: John W. Linville commit 5e2f75b8993a0d83d469388b50716dd5551f2eb4 Author: Dan Halperin Date: Thu Feb 18 22:01:39 2010 -0800 iwlwifi: set HT flags after channel in rxon The HT extension channel settings require priv->staging_rxon.channel to be accurate. However, iwl_set_rxon_ht was being called before iwl_set_rxon_channel and thus HT40 could be broken unless another call to iwl_mac_config came in. This problem was recently introduced by "iwlwifi: Fix to set correct ht configuration" The particular setting in which I noticed this was monitor mode: iwconfig wlan0 mode monitor ifconfig wlan0 up ./iw wlan0 set channel 64 HT40- #./iw wlan0 set channel 64 HT40- tcpdump -i wlan0 -y IEEE802_11_RADIO would only catch HT40 packets if I issued the IW command twice. From visual inspection, iwl_set_rxon_channel does not depend on iwl_set_rxon_ht, so simply swapping them should be safe and fixes this problem. Signed-off-by: Daniel Halperin Acked-by: Wey-Yi Guy Signed-off-by: Reinette Chatre CC: stable@kernel.org Signed-off-by: John W. Linville commit 3d0beb921fa34ebf8b13e206e5473329b14deb83 Merge: 5e2a911 5affcd6 Author: David S. Miller Date: Sun Feb 14 11:56:38 2010 -0800 Merge branch 'master' of ssh://master.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 commit 5affcd6ba2036b59a4dee3f0576ae3584e92e4f1 Author: Juuso Oikarinen Date: Fri Feb 12 10:05:45 2010 +0200 mac80211: fix handling of null-rate control in rate_control_get_rate For hardware with IEEE80211_HW_HAS_RATE_CONTROL the rate controller is not initialized. However, calling functions such as ieee80211_beacon_get result in the rate_control_get_rate function getting called, which is accessing (in this case uninitialized) rate control structures unconditionally. Fix by exiting the function before setting the rates for HW with IEEE80211_HW_HAS_RATE_CONTROL set. The initialization of the ieee80211_tx_info struct is intentionally still executed. Signed-off-by: Juuso Oikarinen Reviewed-by: Kalle Valo Cc: stable@kernel.org Signed-off-by: John W. Linville commit fafaf31bf9f965d91462ee115e27ef6c262b74ea Author: Shanyu Zhao Date: Thu Feb 11 10:42:22 2010 -0800 iwlwifi: fix AMSDU Rx after paged Rx patch Previous patch "use paged Rx" broke AMSDU Rx functionality. If an AP sends out A-MSDU packets the station will crash. Fix it by linearizing skbuff for AMSDU packet before handing it to mac80211 since mac80211 doesn't support paged skbuff. This fixes http://bugzilla.intellinuxwireless.org/show_bug.cgi?id=2155 Reported-by: Norbert Preining Signed-off-by: Shanyu Zhao Acked-by: Zhu Yi Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 044c18c9f51a2b92b310e28bb121e55451b088dd Merge: 3f2e8d9 174b249 Author: David S. Miller Date: Wed Feb 10 12:35:24 2010 -0800 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 commit 174b24963eaf96dc5e093502ee09639aed13eb2f Author: Jelle Martijn Kok Date: Wed Feb 10 09:34:09 2010 -0600 rtl8187: Add new device ID Add new RTL8187B device. Signed-off-by: Larry Finger Cc: Stable Signed-off-by: John W. Linville commit 33a5d083e786f0c3fb4efedb59b0e8e3de39963b Author: Roel Kluin Date: Tue Feb 9 12:07:41 2010 +0100 iwmc3200wifi: Test of wrong pointer after kzalloc in iwm_mlme_update_bss_table() The wrong pointer was tested. Signed-off-by: Roel Kluin Acked-by: Samuel Ortiz Signed-off-by: John W. Linville commit 6c8afef551fef87a3bf24f8a74c69a7f2f72fc82 Author: Sujith Date: Tue Feb 9 10:07:00 2010 +0530 ath9k: Fix sequence numbers for PAE frames Currently, PAE frames are not assigned proper sequence numbers. Since sending PAE frames as part of aggregates breaks crupto with several APs, they are sent as normal MPDUs. Fix the seqeuence number issue by updating the frame with the internal sequence number. Tested-by: Felix Fietkau Signed-off-by: Sujith Cc: stable@kernel.org Signed-off-by: John W. Linville commit c0ce77b8323c1a0d4eeef97caf16c0ea971222a9 Author: Johannes Berg Date: Wed Feb 3 10:22:31 2010 +0100 mac80211: fix deferred hardware scan requests Reinette found the reason for the warnings that happened occasionally when a hw-offloaded scan finished; her description of the problem: mac80211 will defer the handling of scan requests if it is busy with management work at the time. The scan requests are deferred and run after the work has completed. When this occurs there are currently two problems. * The scan request for hardware scan is not fully populated with the band and channels to scan not initialized. * When the scan is queued the state is not correctly updated to reflect that a scan is in progress. The problem here is that when the driver completes the scan and calls ieee80211_scan_completed() a warning will be triggered since mac80211 was not aware that a scan was in progress. The reason is that the queued scan work will start the hw scan right away when the hw_scan_req struct has already been allocated. However, in the first pass it will not have been filled, which happens at the same time as setting the bits. To fix this, simply move the allocation after the pending work test as well, so that the first iteration of the scan work will call __ieee80211_start_scan() even in the hardware scan case. Bug-identified-by: Reinette Chatre Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 098dfded5b1b09927995e89c6d689f85a0f53384 Author: Wey-Yi Guy Date: Fri Feb 5 11:40:00 2010 -0800 iwlwifi: Fix to set correct ht configuration iwl_set_rxon_ht() only get called in iwl_post_associate(); which cause possible incorrect ht configuration. Adding the call in iwl_mac_config() if IEEE80211_CONF_CHANGE_CHANNEL flag is set to re-configure and send rxon command. Fixes http://bugzilla.intellinuxwireless.org/show_bug.cgi?id=2146 Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre CC: stable@kernel.org Signed-off-by: John W. Linville commit 0da780c269957783d341fc3559e6b4c9912af7b4 Author: Benoit Papillault Date: Fri Feb 5 01:21:03 2010 +0100 mac80211: Fix probe request filtering in IBSS mode We only reply to probe request if either the requested SSID is the broadcast SSID or if the requested SSID matches our own SSID. This latter case was not properly handled since we were replying to different SSID with the same length as our own SSID. Signed-off-by: Benoit Papillault Cc: stable@kernel.org Signed-off-by: John W. Linville commit 15c697ce1c5b408c5e20dcdc6aea2968d1125b75 Author: Michael Poole Date: Fri Feb 5 12:23:43 2010 -0500 Bluetooth: Keep a copy of each HID device's report descriptor The report descriptor is read by user space (via the Service Discovery Protocol), so it is only available during the ioctl to connect. However, the HID probe function that needs the descriptor might not be called until a specific module is loaded. Keep a copy of the descriptor so it is available for later use. Signed-off-by: Michael Poole Signed-off-by: Marcel Holtmann commit c390216b3e868b16d8154939f4b6f8c16dbd9a9f Author: Nick Pelly Date: Fri Nov 13 14:16:32 2009 -0800 Bluetooth: Enter active mode before establishing a SCO link. When in sniff mode with a long interval time (1.28s) it can take 4+ seconds to establish a SCO link. Fix by requesting active mode before requesting SCO connection. This improves SCO setup time to ~500ms. Bluetooth headsets that use a long interval time, and exhibit the long SCO connection time include Motorola H790, HX1 and H17. They have a CSR 2.1 chipset. Verified this behavior and fix with host Bluetooth chipsets: BCM4329 and TI1271. 2009-10-13 14:17:46.183722 > HCI Event: Mode Change (0x14) plen 6 status 0x00 handle 1 mode 0x02 interval 2048 Mode: Sniff 2009-10-13 14:17:53.436285 < HCI Command: Setup Synchronous Connection (0x01|0x0028) plen 17 handle 1 voice setting 0x0060 2009-10-13 14:17:53.445593 > HCI Event: Command Status (0x0f) plen 4 Setup Synchronous Connection (0x01|0x0028) status 0x00 ncmd 1 2009-10-13 14:17:57.788855 > HCI Event: Synchronous Connect Complete 0x2c) plen 17 status 0x00 handle 257 bdaddr 00:1A:0E:F1:A4:7F type eSCO Air mode: CVSD Signed-off-by: Nick Pelly Signed-off-by: Marcel Holtmann commit 88d1a0cf659438a66135661538ae332b23f8635a Author: Yoichi Yuasa Date: Thu Feb 4 09:55:51 2010 +0900 Bluetooth: Fix memory leak in Marvell BT-over-SDIO driver Signed-off-by: Yoichi Yuasa Signed-off-by: Marcel Holtmann commit 6c2718da59613d76013b501bf0f8bcf9d7794b2d Author: Nick Pelly Date: Wed Feb 3 16:18:36 2010 -0800 Bluetooth: Do not call rfcomm_session_put() for RFCOMM UA on closed socket When processing a RFCOMM UA frame when the socket is closed and we were not the RFCOMM initiator would cause rfcomm_session_put() to be called twice during rfcomm_process_rx(). This would cause a kernel panic in rfcomm_session_close() then. This could be easily reproduced during disconnect with devices such as Motorola H270 that send RFCOMM UA followed quickly by L2CAP disconnect request. This trace for this looks like: 2009-09-21 17:22:37.788895 < ACL data: handle 1 flags 0x02 dlen 8 L2CAP(d): cid 0x0041 len 4 [psm 3] RFCOMM(s): DISC: cr 0 dlci 20 pf 1 ilen 0 fcs 0x7d 2009-09-21 17:22:37.906204 > HCI Event: Number of Completed Packets (0x13) plen 5 handle 1 packets 1 2009-09-21 17:22:37.933090 > ACL data: handle 1 flags 0x02 dlen 8 L2CAP(d): cid 0x0040 len 4 [psm 3] RFCOMM(s): UA: cr 0 dlci 20 pf 1 ilen 0 fcs 0x57 2009-09-21 17:22:38.636764 < ACL data: handle 1 flags 0x02 dlen 8 L2CAP(d): cid 0x0041 len 4 [psm 3] RFCOMM(s): DISC: cr 0 dlci 0 pf 1 ilen 0 fcs 0x9c 2009-09-21 17:22:38.744125 > HCI Event: Number of Completed Packets (0x13) plen 5 handle 1 packets 1 2009-09-21 17:22:38.763687 > ACL data: handle 1 flags 0x02 dlen 8 L2CAP(d): cid 0x0040 len 4 [psm 3] RFCOMM(s): UA: cr 0 dlci 0 pf 1 ilen 0 fcs 0xb6 2009-09-21 17:22:38.783554 > ACL data: handle 1 flags 0x02 dlen 12 L2CAP(s): Disconn req: dcid 0x0040 scid 0x0041 Avoid calling rfcomm_session_put() twice by skipping this call in rfcomm_recv_ua() if the socket is closed. Signed-off-by: Nick Pelly Signed-off-by: Marcel Holtmann commit 485f1eff73a7b932fd3abb0dfcf804e1a1f59025 Author: Marcel Holtmann Date: Wed Feb 3 15:52:18 2010 -0800 Bluetooth: Fix sleeping function in RFCOMM within invalid context With the commit 9e726b17422bade75fba94e625cd35fd1353e682 the rfcomm_session_put() gets accidentially called from a timeout callback and results in this: BUG: sleeping function called from invalid context at net/core/sock.c:1897 in_atomic(): 1, irqs_disabled(): 0, pid: 0, name: swapper Pid: 0, comm: swapper Tainted: P 2.6.32 #31 Call Trace: [] __might_sleep+0xf8/0xfa [] lock_sock_nested+0x29/0xc4 [] lock_sock+0xb/0xd [l2cap] [] l2cap_sock_shutdown+0x1c/0x76 [l2cap] [] ? clockevents_program_event+0x75/0x7e [] ? tick_dev_program_event+0x37/0xa5 [] l2cap_sock_release+0x27/0x67 [l2cap] [] sock_release+0x1a/0x67 [] rfcomm_session_del+0x34/0x53 [rfcomm] [] rfcomm_session_put+0x14/0x16 [rfcomm] [] rfcomm_session_timeout+0xe/0x1a [rfcomm] [] run_timer_softirq+0x1e2/0x29a [] ? rfcomm_session_timeout+0x0/0x1a [rfcomm] [] __do_softirq+0xfe/0x1c5 [] ? timer_interrupt+0x1a/0x21 [] call_softirq+0x1c/0x28 [] do_softirq+0x33/0x6b [] irq_exit+0x36/0x85 [] do_IRQ+0xa6/0xbd [] ret_from_intr+0x0/0xa [] ? acpi_idle_enter_bm+0x269/0x294 [] ? acpi_idle_enter_bm+0x25f/0x294 [] ? cpuidle_idle_call+0x97/0x107 [] ? cpu_idle+0x53/0xaa [] ? rest_init+0x7a/0x7c [] ? start_kernel+0x389/0x394 [] ? x86_64_start_reservations+0xac/0xb0 [] ? x86_64_start_kernel+0xe4/0xeb To fix this, the rfcomm_session_put() needs to be moved out of rfcomm_session_timeout() into rfcomm_process_sessions(). In that context it is perfectly fine to sleep and disconnect the socket. Signed-off-by: Marcel Holtmann Tested-by: David John commit b6c3f5be7c6ac3375f44de4545c1ffe216b34022 Author: Larry Finger Date: Tue Feb 2 10:08:19 2010 -0600 b43: Fix throughput regression Commit c7ab5ef9bcd281135c21b4732c9be779585181be entitled "b43: implement short slot and basic rate handling" reduced the transmit throughput for my BCM4311 device from 18 Mb/s to 0.7 Mb/s. The basic rate handling portion is OK, the problem is in the short slot handling. Prior to this change, the short slot enable/disable routines were never called. Experimentation showed that the critical part was changing the value at offset 0x0010 in the shared memory. This is supposed to contain the 802.11 Slot Time in usec, but if it is changed from its initial value of zero, performance is destroyed. On the other hand, changing the value in the MMIO register corresponding to the Interframe Slot Time increased performance from 18 to 22 Mb/s. A BCM4306/3 also shows dramatic improvement of the transmit rate from 5.3 to 19.0 Mb/s. Other changes in the patch include removal of the magic number for the MMIO register, and allowing the slot time to be set for any PHY operating in the 2.4 GHz band. Previously, the routine was executed only for G PHYs. Signed-off-by: Larry Finger Cc: Stable [Any stable version back through 2.6.28] Signed-off-by: John W. Linville commit 1038a00b458997661bcd0e780a24dc280a8841fc Author: Nick Pelly Date: Wed Feb 3 11:42:26 2010 -0800 Bluetooth: Fallback eSCO to SCO on error 0x1a (Unsupported Remote Feature) General Motors carkits that use LGE BT chipsets return this error code when an eSCO is attempted, despite advertising eSCO support. 2009-08-13 14:41:39.755518 < HCI Command: Setup Synchronous Connection (0x01|0x0028) plen 17 handle 1 voice setting 0x0060 2009-08-13 14:41:39.757563 > HCI Event: Command Status (0x0f) plen 4 Setup Synchronous Connection (0x01|0x0028) status 0x00 ncmd 1 2009-08-13 14:41:39.789484 > HCI Event: Synchronous Connect Complete (0x2c) plen 17 status 0x1a handle 257 bdaddr 00:1E:B2:23:5E:B3 type eSCO Error: Unsupported Remote Feature / Unsupported LMP Feature Signed-off-by: Jaikumar Ganesh Signed-off-by: Nick Pelly Signed-off-by: Marcel Holtmann commit 6bf8268f9a91f1065c99503161ebd061492bebe3 Author: Bastien Nocera Date: Wed Jan 20 12:00:42 2010 +0000 Bluetooth: Use the control channel for raw HID reports In commit 2da31939a42f7a676a0bc5155d6a0a39ed8451f2, support for Bluetooth hid_output_raw_report was added, but it pushes the data to the interrupt channel instead of the contol one. This patch makes hid_output_raw_report use the control channel instead. Using the interrupt channel was a mistake. Signed-off-by: Bastien Nocera Signed-off-by: Marcel Holtmann commit 9670d80a9a6e24725c4111bef5d6cc7786ad0dc5 Author: Vikram Kandukuri Date: Wed Jan 6 19:04:15 2010 +0530 Bluetooth: Add DFU driver for Atheros Bluetooth chipset AR3011 Signed-off-by: Vikram Kandukuri Signed-off-by: Alicke Xu Reviewed-by: Luis R. Rodriguez Signed-off-by: Marcel Holtmann commit 7427847d2d044d85f478757ea03165ae3cfe87c4 Author: Mike Frysinger Date: Mon Sep 14 13:43:49 2009 -0400 Bluetooth: Redo checks in IRQ handler for shared IRQ support Commit ac019360fe3 changed the irq handler logic to BUG_ON rather than returning IRQ_NONE when the incoming argument is invalid. While this works in most cases, it doesn't work when the IRQ is shared with other devices (or when DEBUG_SHIRQ is enabled). So revert the previous change and replace the warning message with a comment explaining that we want this behavior. Signed-off-by: Michael Hennerich Signed-off-by: Mike Frysinger Signed-off-by: Marcel Holtmann commit e420aba331f44de0eed6871441293a6124d566d1 Author: Andrei Emeltchenko Date: Wed Dec 23 13:07:14 2009 +0200 Bluetooth: Fix memory leak in L2CAP Move skb_clone after error confition check so it is not going potentially out of the scope. Signed-off-by: Andrei Emeltchenko Acked-by: Gustavo F. Padovan Signed-off-by: Marcel Holtmann commit fcafde2e6d81aa7901f9b10e6a097592f0637b79 Author: Andrei Emeltchenko Date: Tue Dec 22 15:58:08 2009 +0200 Bluetooth: Remove double free of SKB pointer in L2CAP Trivial fix for double free of SKB pointer with kfree_skb to make code simplier and cleaner. Remove unused variable err. Signed-off-by: Andrei Emeltchenko Acked-by: Gustavo F. Padovan Signed-off-by: Marcel Holtmann commit 744595c847cefd6ac0eec8f66e9fba95687c3f4f Merge: c928feb 3092ad0 Author: David S. Miller Date: Thu Jan 28 05:42:33 2010 -0800 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 commit 3092ad054406f069991ca561adc74f2d9fbb6867 Author: Zhu Yi Date: Tue Jan 26 15:58:57 2010 +0800 mac80211: fix NULL pointer dereference when ftrace is enabled I got below kernel oops when I try to bring down the network interface if ftrace is enabled. The root cause is drv_ampdu_action() is passed with a NULL ssn pointer in the BA session tear down case. We need to check and avoid dereferencing it in trace entry assignment. BUG: unable to handle kernel NULL pointer dereference Modules linked in: at (null) IP: [] ftrace_raw_event_drv_ampdu_action+0x10a/0x160 [mac80211] *pde = 00000000 Oops: 0000 [#1] SMP DEBUG_PAGEALLOC [...] Call Trace: [] ? ftrace_raw_event_drv_ampdu_action+0x0/0x160 [mac80211] [] ? __ieee80211_stop_rx_ba_session+0xfc/0x220 [mac80211] [] ? ieee80211_sta_tear_down_BA_sessions+0x3b/0x50 [mac80211] [] ? ieee80211_set_disassoc+0xe6/0x230 [mac80211] [] ? ieee80211_set_disassoc+0x9c/0x230 [mac80211] [] ? ieee80211_mgd_deauth+0x158/0x170 [mac80211] [] ? ieee80211_deauth+0x1b/0x20 [mac80211] [] ? __cfg80211_mlme_deauth+0xe9/0x120 [cfg80211] [] ? __cfg80211_disconnect+0x170/0x1d0 [cfg80211] Cc: Johannes Berg Cc: stable@kernel.org Signed-off-by: Zhu Yi Signed-off-by: John W. Linville commit aa8bc9ef18a2c5b2b97e1f36ee9604cf15743f96 Author: Felix Fietkau Date: Sat Jan 23 20:04:18 2010 +0100 ath9k: fix eeprom INI values override for 2GHz-only cards Among other changes, this commit: commit 06d0f0663e11cab4ec5f2c143a118d71a12fbbe9 Author: Sujith Date: Thu Feb 12 10:06:45 2009 +0530 ath9k: Enable Fractional N mode changed the hw attach code to fix up initialization values only for dual band devices, however the commit message did not give a reason as to why this would be useful or necessary. According to tests by Jorge Boncompte, this breaks at least some 2GHz-only cards, so the code should be changed back to the unconditional INI fixup. Signed-off-by: Felix Fietkau Reported-by: Jorge Boncompte Cc: stable@kernel.org Tested-by: Pavel Roskin Signed-off-by: John W. Linville commit 0b5d9b2689af0f59aeba67dc749b3681290d2166 Author: Johannes Berg Date: Fri Jan 22 14:22:34 2010 -0800 iwlwifi: fix pointer signedness warning There are a few station addresses that are char *, instead of the normal u8 *; gcc gives pointer signedness warnings for some of those, so use u8 * consistently. Signed-off-by: Johannes Berg Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 6be325719b3e54624397e413efd4b33a997e55a3 Merge: 26d92f9 92dcffb Author: David S. Miller Date: Fri Jan 22 22:45:46 2010 -0800 Merge branch 'master' of /home/davem/src/GIT/linux-2.6/ commit 74401773f80b6d42f7a4c6994ca0cca883b03745 Author: Felix Fietkau Date: Tue Jan 19 20:51:32 2010 +0100 ath9k: fix beacon slot/buffer leak When cleaning up beacon buffers and slots, ath9k currently checks if sc->ah->opmode is set to a beacon related mode before cleaning up buffers. An unfortunate ordering of interface up/down commands can lead to sc->ah->opmode being set to monitor mode, while there are AP interfaces present on the same wiphy. Always cleaning up beacon buffers if present fixes this issue. Signed-off-by: Felix Fietkau Cc: stable@kernel.org Signed-off-by: John W. Linville commit dad48a4ef20774732e53840f371b0cc27981c43a Merge: 98f672c ad580db Author: David S. Miller Date: Tue Jan 19 02:03:09 2010 -0800 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 commit ad580db50ee8dccd069ffcd76d6f70fa6d4a62a8 Author: Hin-Tak Leung Date: Mon Jan 18 01:24:11 2010 +0000 zd1211rw: adding 0409:0248 to supported device list Yasuhiro ABE reported success in sourceforge zd1211-dev list. The device is a NEC Aterm WL54GU usb wireless stick. The brand and retail product name NEC, Aterm PA-WL54GU The USB ID's (duh) ID 0409:0248 The chip ID string zd1211rw 1-1:1.0: zd1211b chip 0409:0248 v4810 high 00-1b-8b AL2230S_RF pa0 g--N- The FCC ID unknown Signed-off-by: Hin-Tak Leung Signed-off-by: Yasuhiro ABE Signed-off-by: John W. Linville commit f5300e04df78feae8107c1846dd3a9e27c071b2f Author: Christian Lamparter Date: Mon Jan 18 00:07:38 2010 +0100 p54pci: rx frame length check A long time ago, a user reported several crashes due to data corruptions which are likely the result of a not-100%-supported, or faulty? PCI bridge. ( http://patchwork.kernel.org/patch/53004/ ) This patch fixes entry #1. "1. p54p_check_rx_ring - skb_over_panic: Under a ping flood or just left running for a bit would panic with a skb_over_panic." As described in the mail: The invalid frame length causes skb_put to bailout and trigger a crash. Note: Simply dropping the frame is problematic, because if its content contains a tx feedback we would lose some portion of the device memory space.... And the driver/mac80211 should handle all other invalid data. Reported-by: Quintin Pitts Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit e850f68b8f27a76c4377c34f2e216b8e7e10db3d Author: Bob Copeland Date: Sat Jan 16 14:36:52 2010 -0500 mac80211: fix sign error in pid controller While testing the pid rate controller in mac80211_hwsim, I noticed that once the controller reached 54 Mbit rates, it would fail to lower the rate when necessary. The debug log shows: 1945 186786 pf_sample 50 3534 3577 50 My interpretation is that the fixed point scaling of the target error value (pf) is incorrect: the error value of 50 compared to a target of 14 case should result in a scaling value of (14-50) = -36 * 256 or -9216, but instead it is (14 * 256)-50, or 3534. Correct this by doing fixed point scaling after subtraction. Signed-off-by: Bob Copeland Acked-by: Stefano Brivio Acked-by: Mattias Nissler Signed-off-by: John W. Linville commit bb5d2db5709e469f4a8c01eaaee9a275ed9772aa Author: Reinette Chatre Date: Fri Jan 15 13:42:59 2010 -0800 iwlwifi: add license to tracing files Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 1152dcc28c66a74b5b3f1a3ede0aa6729bfd48e4 Author: Wey-Yi Guy Date: Fri Jan 15 13:42:58 2010 -0800 iwlwifi: Fix throughput stall issue in HT mode for 5000 Similar to 6000 and 1000 series, RTS/CTS is the recommended protection mechanism for 5000 series in HT mode based on the HW design. Using RTS/CTS will better protect the inner exchange from interference, especially in highly-congested environment, it also prevent uCode encounter TX FIFO underrun and other HT mode related performance issues. Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre CC: stable@kernel.org Signed-off-by: John W. Linville commit e5de30c9bf4a39db9f54c4a373470ce65881ade0 Author: Benoit Papillault Date: Fri Jan 15 12:21:37 2010 +0100 mac80211: check that ieee80211_set_power_mgmt only handles STA interfaces. ieee80211_set_power_mgmt is meant for STA interfaces only. Moreover, since sdata->u.mgd.mtx is only initialized for STA interfaces, using this code for any other type of interface (like creating a monitor interface) will result in a oops. Cc: stable@kernel.org Signed-off-by: Benoit Papillault Signed-off-by: John W. Linville commit 5f6120335c701ba07d5151206071f4d6ccaa684f Author: Abhijeet Kolekar Date: Wed Jan 13 13:23:14 2010 -0800 cfg80211: fix channel setting for wext Patch fixes the bug at http://bugzilla.intellinuxwireless.org/show_bug.cgi?id=2139 Currently we cannot set the channel using wext extension if we have already associated and disconnected. As cfg80211_mgd_wext_siwfreq will not switch the channel if ssid is set. This fixes it by clearing the ssid. Following is the sequence which it tries to fix. modprobe iwlagn iwconfig wlan0 essid "" ifconfig wlan0 down iwconfig wlan0 chan X wext is marked as deprecate.If we use nl80211 we can easily play with setting the channel. Signed-off-by: Abhijeet Kolekar Acked-by: Samuel Ortiz cc: stable@kernel.org Signed-off-by: John W. Linville commit a0e803a2112398150daa4d88c9d58409e0cf0b6c Author: Samuel Ortiz Date: Wed Jan 13 12:09:08 2010 +0100 iwmc3200wifi: Add UMAC wifi headers to the pmkid command Without this header, we can trigger a UMAC crash with debug enabled UMACs. Signed-off-by: Samuel Ortiz Signed-off-by: John W. Linville commit 4a24eef671614aea479eac6c9ce5fa2cf590ee76 Merge: 4f37442 cd65c3c Author: Linus Torvalds Date: Thu Jan 14 08:36:15 2010 -0800 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (34 commits) net: fix build erros with CONFIG_BUG=n, CONFIG_GENERIC_BUG=n ipv6: skb_dst() can be NULL in ipv6_hop_jumbo(). tg3: Update copyright and driver version tg3: Disable 5717 serdes and B0 support tg3: Add reliable serdes detection for 5717 A0 tg3: Fix std rx prod ring handling tg3: Fix std prod ring nicaddr for 5787 and 57765 sfc: Fix conditions for MDIO self-test sfc: Fix polling for slow MCDI operations e1000e: workaround link issues on busy hub in half duplex on 82577/82578 e1000e: MDIO slow mode should always be done for 82577 ixgbe: update copyright dates ixgbe: Do not attempt to perform interrupts in netpoll when down cfg80211: fix refcount imbalance when wext is disabled mac80211: fix queue selection for data frames on monitor interfaces iwlwifi: silence buffer overflow warning iwlwifi: disable tx on beacon update notification iwlwifi: fix iwl_queue_used bug when read_ptr == write_ptr mac80211: fix endian error mac80211: add missing sanity checks for action frames ... commit ff30b3642c1f56a5ae6522b78e82be867086c637 Merge: 9db2f1b 8c5d980 Author: David S. Miller Date: Tue Jan 12 21:33:49 2010 -0800 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 commit 597d8c717856f6094837850f3eb4850820b36451 Merge: 682137f 9db2f1b Author: Linus Torvalds Date: Tue Jan 12 20:53:29 2010 -0800 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (56 commits) sky2: Fix oops in sky2_xmit_frame() after TX timeout Documentation/3c509: document ethtool support af_packet: Don't use skb after dev_queue_xmit() vxge: use pci_dma_mapping_error to test return value netfilter: ebtables: enforce CAP_NET_ADMIN e1000e: fix and commonize code for setting the receive address registers e1000e: e1000e_enable_tx_pkt_filtering() returns wrong value e1000e: perform 10/100 adaptive IFS only on parts that support it e1000e: don't accumulate PHY statistics on PHY read failure e1000e: call pci_save_state() after pci_restore_state() netxen: update version to 4.0.72 netxen: fix set mac addr netxen: fix smatch warning netxen: fix tx ring memory leak tcp: update the netstamp_needed counter when cloning sockets TI DaVinci EMAC: Handle emac module clock correctly. dmfe/tulip: Let dmfe handle DM910x except for SPARC on-board chips ixgbe: Fix compiler warning about variable being used uninitialized netfilter: nf_ct_ftp: fix out of bounds read in update_nl_seq() mv643xx_eth: don't include cache padding in rx desc buffer size ... Fix trivial conflict in drivers/scsi/cxgb3i/cxgb3i_offload.c commit 8c5d9808e95739c9001b852464fd58fd0f583280 Author: Johannes Berg Date: Mon Jan 11 16:14:57 2010 +0100 cfg80211: fix refcount imbalance when wext is disabled When CONFIG_CFG80211_WEXT is not set, there is a refcount imbalance with rdev->opencount, fix that by moving it out of the ifdef. Reported-by: Alan Stern Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 193e70ef65a6c33f2935ce1f4adeb08ecb9202cf Author: Felix Fietkau Date: Mon Jan 11 06:47:00 2010 +0100 mac80211: fix queue selection for data frames on monitor interfaces When ieee80211_monitor_select_queue encounters data frames, it selects the WMM AC based on skb->priority and assumes that skb->priority contains a valid 802.1d tag. However this assumption is incorrect, since ieee80211_select_queue has not been called at this point. If skb->priority > 7, an array overrun occurs, which could lead to invalid values, resulting in crashes in the tx path. Fix this by setting skb->priority based on the 802.11 header for QoS frames and using the default AC for all non-QoS frames. Signed-off-by: Felix Fietkau Signed-off-by: John W. Linville commit 39825f4dc9f4e409e8ea43ef4df04a924699ad1f Author: Dan Carpenter Date: Sat Jan 9 11:41:48 2010 +0300 iwlwifi: silence buffer overflow warning Smatch (and presumably other static checkers) complain that MAX_TID_COUNT is past the end of the array. In the resulting discussion, Zhu Yi pointed out that this value is not used in real life and the assignment was only there to silence a gcc warning. If there were a bug in the surrounding code and the value were used, the WARN_ON(!qc) would print a warning before the crash. Signed-off-by: Dan Carpenter Acked-by: Zhu Yi Signed-off-by: John W. Linville commit c91c3efca5297bd67324654524ced38162f2e579 Author: Abhijeet Kolekar Date: Fri Jan 8 10:04:31 2010 -0800 iwlwifi: disable tx on beacon update notification On beacon change update notification from mac we are not disabling the tx in adhoc mode. Mac sends BSS_CHANGED_BEACON_ENABLED when station leaves IBSS. Driver should indicate uCode to not to send anything on receiving this notification. Functionality to indicate uCode is duplicated across two notifications so created a common function called iwl_set_no_assoc. Fix the issue at http://bugzilla.intellinuxwireless.org/show_bug.cgi?id=2133. Signed-off-by: Abhijeet Kolekar Tested-by: Johannes Berg Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit c8106d7625a58ee4387cb2efe3e82320ad44b467 Author: Zhu Yi Date: Fri Jan 8 10:04:30 2010 -0800 iwlwifi: fix iwl_queue_used bug when read_ptr == write_ptr When txq read_ptr equals to write_ptr, iwl_queue_used should always return false. Because there is no used TFD in this case. This is a complementary fix to the fix already included in commit "iwl3945: fix panic in iwl3945 driver". Both fixes are needed to address the panic below. This problem was discussed on linux-wireless in http://thread.gmane.org/gmane.linux.kernel.wireless.general/43568 <1>[ 7290.414172] IP: [] iwl3945_rx_reply_tx+0xc1/0x450 [iwl3945] <4>[ 7290.414205] PGD 0 <1>[ 7290.414214] Thread overran stack, or stack corrupted <0>[ 7290.414229] Oops: 0002 [#1] PREEMPT SMP <0>[ 7290.414246] last sysfs file: /sys/devices/platform/coretemp.1/temp1_input <4>[ 7290.414265] CPU 0 <4>[ 7290.414274] Modules linked in: af_packet nfsd usb_storage usb_libusual cpufreq_powersave exportfs cpufreq_conservative iwl3945 nfs cpufreq_userspace snd_hda_codec_realtek acpi_cpufreq uvcvideo lockd iwlcore snd_hda_intel joydev coretemp nfs_acl videodev snd_hda_codec mac80211 v4l1_compat snd_hwdep sbp2 v4l2_compat_ioctl32 uhci_hcd psmouse auth_rpcgss ohci1394 cfg80211 ehci_hcd video ieee1394 snd_pcm serio_raw battery ac nvidia(P) usbcore output sunrpc evdev lirc_ene0100 snd_page_alloc rfkill tg3 libphy fuse lzo lzo_decompress lzo_compress <6>[ 7290.414486] Pid: 0, comm: swapper Tainted: P 2.6.32-rc8-wl #213 Aspire 5720 <6>[ 7290.414507] RIP: 0010:[] [] iwl3945_rx_reply_tx+0xc1/0x450 [iwl3945] <6>[ 7290.414541] RSP: 0018:ffff880002203d60 EFLAGS: 00010246 <6>[ 7290.414557] RAX: 000000000000004f RBX: ffff880064c11600 RCX: 0000000000000013 <6>[ 7290.414576] RDX: ffffffffa0ddcf20 RSI: ffff8800512b7008 RDI: 0000000000000038 <6>[ 7290.414596] RBP: ffff880002203dd0 R08: 0000000000000000 R09: 0000000000000100 <6>[ 7290.414616] R10: 0000000000000001 R11: 0000000000000000 R12: 00000000000000a0 <6>[ 7290.414635] R13: 0000000000000002 R14: 0000000000000013 R15: 0000000000020201 <6>[ 7290.414655] FS: 0000000000000000(0000) GS:ffff880002200000(0000) knlGS:0000000000000000 <6>[ 7290.414677] CS: 0010 DS: 0018 ES: 0018 CR0: 000000008005003b <6>[ 7290.414693] CR2: 0000000000000041 CR3: 0000000001001000 CR4: 00000000000006f0 <6>[ 7290.414712] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 <6>[ 7290.414732] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400 <4>[ 7290.414752] Process swapper (pid: 0, threadinfo ffffffff81524000, task ffffffff81528b60) <0>[ 7290.414772] Stack: <4>[ 7290.414780] ffff880002203da0 0000000000000046 0000000000000000 0000000000000046 <4>[ 7290.414804] <0> 0000000000000282 0000000000000282 0000000000000282 ffff880064c12010 <4>[ 7290.414830] <0> ffff880002203db0 ffff880064c11600 ffff880064c12e50 ffff8800512b7000 <0>[ 7290.414858] Call Trace: <0>[ 7290.414867] <4>[ 7290.414884] [] iwl3945_irq_tasklet+0x657/0x1740 [iwl3945] <4>[ 7290.414910] [] ? _spin_unlock+0x30/0x60 <4>[ 7290.414931] [] tasklet_action+0x101/0x110 <4>[ 7290.414950] [] __do_softirq+0xc0/0x160 <4>[ 7290.414968] [] call_softirq+0x1c/0x30 <4>[ 7290.414986] [] do_softirq+0x75/0xb0 <4>[ 7290.415003] [] irq_exit+0x95/0xa0 <4>[ 7290.415020] [] do_IRQ+0x77/0xf0 <4>[ 7290.415038] [] ret_from_intr+0x0/0xf <0>[ 7290.415052] <4>[ 7290.415067] [] ? acpi_idle_enter_bm+0x270/0x2a5 <4>[ 7290.415087] [] ? acpi_idle_enter_bm+0x27a/0x2a5 <4>[ 7290.415107] [] ? acpi_idle_enter_bm+0x270/0x2a5 <4>[ 7290.415130] [] ? cpuidle_idle_call+0x93/0xf0 <4>[ 7290.415149] [] ? cpu_idle+0xa7/0x110 <4>[ 7290.415168] [] ? rest_init+0x75/0x80 <4>[ 7290.415187] [] ? start_kernel+0x3a7/0x3b3 <4>[ 7290.415206] [] ? x86_64_start_reservations+0x125/0x129 <4>[ 7290.415227] [] ? x86_64_start_kernel+0xe4/0xeb <0>[ 7290.415243] Code: 00 41 39 ce 0f 8d e8 01 00 00 48 8b 47 40 48 63 d2 48 69 d2 98 00 00 00 4c 8b 04 02 48 c7 c2 20 cf dd a0 49 8d 78 38 49 8d 40 4f 47 09 00 c6 47 0c 00 c6 47 0f 00 c6 47 12 00 c6 47 15 00 49 <1>[ 7290.415382] RIP [] iwl3945_rx_reply_tx+0xc1/0x450 [iwl3945] <4>[ 7290.415410] RSP <0>[ 7290.415421] CR2: 0000000000000041 <4>[ 7290.415436] ---[ end trace ec46807277caa515 ]--- <0>[ 7290.415450] Kernel panic - not syncing: Fatal exception in interrupt <4>[ 7290.415468] Pid: 0, comm: swapper Tainted: P D 2.6.32-rc8-wl #213 <4>[ 7290.415486] Call Trace: <4>[ 7290.415495] [] panic+0x7d/0x13a <4>[ 7290.415519] [] oops_end+0xda/0xe0 <4>[ 7290.415538] [] no_context+0xea/0x250 <4>[ 7290.415557] [] ? select_task_rq_fair+0x511/0x780 <4>[ 7290.415578] [] __bad_area_nosemaphore+0x125/0x1e0 <4>[ 7290.415597] [] ? __enqueue_entity+0x7c/0x80 <4>[ 7290.415616] [] ? enqueue_task_fair+0x111/0x150 <4>[ 7290.415636] [] bad_area_nosemaphore+0xe/0x10 <4>[ 7290.415656] [] do_page_fault+0x26a/0x320 <4>[ 7290.415674] [] page_fault+0x1f/0x30 <4>[ 7290.415697] [] ? iwl3945_rx_reply_tx+0xc1/0x450 [iwl3945] <4>[ 7290.415723] [] iwl3945_irq_tasklet+0x657/0x1740 [iwl3945] <4>[ 7290.415746] [] ? _spin_unlock+0x30/0x60 <4>[ 7290.415764] [] tasklet_action+0x101/0x110 <4>[ 7290.415783] [] __do_softirq+0xc0/0x160 <4>[ 7290.415801] [] call_softirq+0x1c/0x30 <4>[ 7290.415818] [] do_softirq+0x75/0xb0 <4>[ 7290.415835] [] irq_exit+0x95/0xa0 <4>[ 7290.415852] [] do_IRQ+0x77/0xf0 <4>[ 7290.415869] [] ret_from_intr+0x0/0xf <4>[ 7290.415883] [] ? acpi_idle_enter_bm+0x270/0x2a5 <4>[ 7290.415911] [] ? acpi_idle_enter_bm+0x27a/0x2a5 <4>[ 7290.415931] [] ? acpi_idle_enter_bm+0x270/0x2a5 <4>[ 7290.415952] [] ? cpuidle_idle_call+0x93/0xf0 <4>[ 7290.415971] [] ? cpu_idle+0xa7/0x110 <4>[ 7290.415989] [] ? rest_init+0x75/0x80 <4>[ 7290.416007] [] ? start_kernel+0x3a7/0x3b3 <4>[ 7290.416026] [] ? x86_64_start_reservations+0x125/0x129 <4>[ 7290.416047] [] ? x86_64_start_kernel+0xe4/0xeb Reported-by: Maxim Levitsky Tested-by: Maxim Levitsky Signed-off-by: Zhu Yi Signed-off-by: Reinette Chatre CC: stable@kernel.org Signed-off-by: John W. Linville commit b49bb574e44226b332c28439999d196ddec2f643 Author: Johannes Berg Date: Fri Jan 8 19:00:00 2010 +0100 mac80211: fix endian error I forgot to convert the radiotap length to CPU endian, which sparse found thankfully. Signed-off-by: Johannes Berg Cc: stable@kernel.org Signed-off-by: John W. Linville commit d79074488083ec0d7ecd15352192dc1631f25643 Author: Felix Fietkau Date: Thu Jan 7 20:23:53 2010 +0100 mac80211: add missing sanity checks for action frames Various missing sanity checks caused rejected action frames to be interpreted as channel switch announcements, which can cause a client mode interface to switch away from its operating channel, thereby losing connectivity. This patch ensures that only spectrum management action frames are processed by the CSA handling function and prevents rejected action frames from getting processed by the MLME code. Signed-off-by: Felix Fietkau Cc: stable@kernel.org Signed-off-by: John W. Linville commit 045cfb71a3901005bf6dcedae98cecb3360a0bfc Author: Lennert Buytenhek Date: Thu Jan 7 15:01:42 2010 +0100 mac80211: fix queue selection for packets injected via monitor interface Commit 'mac80211: fix skb buffering issue' added an ->ndo_select_queue() for monitor interfaces which can end up dereferencing ieee802_1d_to_ac[] beyond the end of the array for injected data packets (as skb->priority isn't guaranteed to be zero or within [0:7]), which then triggers the WARN_ON in net/core/dev.c:dev_cap_txqueue(). Fix this by always setting the priority to zero on injected data frames. Signed-off-by: Lennert Buytenhek Cc: stable@kernel.org Signed-off-by: John W. Linville commit 2467ab9590092ffdf837e9283e84dedd04c93ab3 Author: Jiri Slaby Date: Wed Jan 6 06:54:16 2010 +0000 NET: atlx, fix memory leak Stanse found a memory leak in atl2_get_eeprom. eeprom_buff is not freed/assigned on all paths. Fix that. Signed-off-by: Jiri Slaby Cc: Jay Cliburn Cc: Chris Snook Cc: Jie Yang Cc: atl1-devel@lists.sourceforge.net Cc: "David S. Miller" Cc: netdev@vger.kernel.org Signed-off-by: David S. Miller commit 8a5b33f55452c226aa0e47d737e541985ff10e16 Author: John W. Linville Date: Wed Jan 6 15:39:39 2010 -0500 Revert "mac80211: replace netif_tx_{start,stop,wake}_all_queues" This reverts commit 53623f1a09c7a7d23b74f0f7d93dba0ebde1006b. This was inadvertantly missed in "mac80211: fix skb buffering issue", and is required with that patch to restore proper queue operation. Signed-off-by: John W. Linville commit debde9ea24d5512400456b1b64df361e422f078d Author: John W. Linville Date: Wed Jan 6 15:35:49 2010 -0500 mac80211: fix-up build breakage in 2.6.33 "mac80211: fix skb buffering issue" is based on what will become 2.6.34, so it includes an incompatible usage of sta_info_get. This patch will need to be effectively reverted when merging for 2.6.34. Signed-off-by: John W. Linville commit 7a4a77b7771164d61ce702a588067d1e1d66db7c Author: Gertjan van Wingerde Date: Wed Dec 30 11:36:30 2009 +0100 rt2x00: Properly request tx headroom for alignment operations. Current rt2x00 drivers may result in a "ieee80211_tx_status: headroom too small" error message when a frame needs to be properly aligned before transmitting it. This is because the space needed to ensure proper alignment isn't requested from mac80211. Fix this by adding sufficient amount of alignment space to the amount of headroom requested for TX frames. Reported-by: David Ellingsworth Signed-off-by: Gertjan van Wingerde Acked-by: Ivo van Doorn Signed-off-by: John W. Linville commit cf0277e714a0db302a8f80e1b85fd61c32cf00b3 Author: Johannes Berg Date: Tue Jan 5 18:00:58 2010 +0100 mac80211: fix skb buffering issue Since I removed the master netdev, we've been keeping internal queues only, and even before that we never told the networking stack above the virtual interfaces about congestion. This means that packets are queued in mac80211 and the upper layers never know, possibly leading to memory exhaustion and other problems. This patch makes all interfaces multiqueue and uses ndo_select_queue to put the packets into queues per AC. Additionally, when the driver stops a queue, we now stop all corresponding queues for the virtual interfaces as well. The injection case will use VO by default for non-data frames, and BE for data frames, but downgrade any data frames according to ACM. It needs to be fleshed out in the future to allow chosing the queue/AC in radiotap. Reported-by: Lennert Buytenhek Signed-off-by: Johannes Berg Cc: stable@kernel.org [2.6.32] Signed-off-by: John W. Linville commit 301a8234ea81938f0f083ae4e274d9c9296f3c86 Author: Gertjan van Wingerde Date: Wed Dec 30 11:36:33 2009 +0100 rt2x00: Fix LED configuration setting for rt2800. rt2800_blink_set uses an illegal value to set the LED_CFG_G_LED_MODE field of the LED_CFG register. This field is only 2 bits large, so should be initialized with value that fits. Use default value from the vendor driver. Signed-off-by: Gertjan van Wingerde Acked-by: Ivo van Doorn Signed-off-by: John W. Linville commit b59a52f12e483b79e7d32da7ec30dcf3b2e0210b Author: Pavel Roskin Date: Wed Dec 30 11:36:29 2009 +0100 rt2x00: use correct headroom for transmission Use rt2x00dev->ops->extra_tx_headroom, not rt2x00dev->hw->extra_tx_headroom in the tx code, as the later may include other headroom not to be used in the chipset driver. Signed-off-by: Pavel Roskin Signed-off-by: Gertjan van Wingerde Acked-by: Ivo van Doorn Signed-off-by: John W. Linville commit e12822e1d3fface0d9e1095c5177e10141bd6bd6 Author: Luis R. Rodriguez Date: Mon Jan 4 11:37:39 2010 -0500 cfg80211: fix syntax error on user regulatory hints This fixes a syntax error when setting up the user regulatory hint. This change yields the same exact binary object though so it ends up just being a syntax typo fix, fortunately. Cc: stable@kernel.org Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 359207c687cc8f4f9845c8dadd0d6dabad44e584 Author: Luis R. Rodriguez Date: Mon Jan 4 10:40:39 2010 -0500 ath5k: Fix eeprom checksum check for custom sized eeproms Commit 8bf3d79bc401ca417ccf9fc076d3295d1a71dbf5 enabled EEPROM checksum checks to avoid bogus bug reports but failed to address updating the code to consider devices with custom EEPROM sizes. Devices with custom sized EEPROMs have the upper limit size stuffed in the EEPROM. Use this as the upper limit instead of the static default size. In case of a checksum error also provide back the max size and whether or not this was the default size or a custom one. If the EEPROM is busted we add a failsafe check to ensure we don't loop forever or try to read bogus areas of hardware. This closes bug 14874 http://bugzilla.kernel.org/show_bug.cgi?id=14874 Cc: stable@kernel.org Cc: David Quan Cc: Stephen Beahm Reported-by: Joshua Covington Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 7de3c5dc0ac89b847b00f25d16976c158dc38e4c Author: Benoit Papillault Date: Sun Jan 3 10:20:01 2010 +0100 zd1211rw: Fix multicast filtering. If multicast parameter (as returned by zd_op_prepare_multicast) has changed, no bit in changed_flags is set. To handle this situation, we do not return if changed_flags is 0. If we do so, we will have some issue with IPv6 which uses multicast for link layer address resolution. Signed-off-by: Benoit Papillault Signed-off-by: John W. Linville commit 8a9ac160e844c7ce8074f6aa531feefb4acdee7c Author: Dan Carpenter Date: Sun Jan 3 11:19:35 2010 +0200 iwl: off by one bug tid is used as an array offset. agg = &priv->stations[sta_id].tid[tid].agg; iwl4965_tx_status_reply_tx(priv, agg, tx_resp, txq_id, index); It should be limitted to MAX_TID_COUNT - 1; struct iwl_tid_data tid[MAX_TID_COUNT]; regards, dan carpenter Signed-off-by: Dan Carpenter CC: stable@kernel.org Signed-off-by: John W. Linville commit 90852f7aed0f90d443efd7e0f9b82d8ac8186848 Author: Lennert Buytenhek Date: Sat Jan 2 10:31:42 2010 +0100 mwl8k: fix configure_filter() memory leak on error If there was an error acquiring the firmware lock in mwl8k_configure_filter(), we would end up leaking the multicast command packet prepared by mwl8k_prepare_multicast(). Signed-off-by: Lennert Buytenhek Signed-off-by: John W. Linville commit 13bda1225072f26603d3aeefc1f14c18b2ab29cd Author: Ming Lei Date: Tue Dec 29 22:57:28 2009 +0800 ath9k: fix ito64 The unit of sizeof() is byte instead of bit, so fix it. The patch can fix debug output of some dma_addr_t variables. Signed-off-by: John W. Linville commit 4ef250114f6672dd36f9b961a71d229642517645 Author: Dominik Geyer Date: Tue Dec 29 08:27:57 2009 +0100 ath9k: Fix Kconfig depends for ATH9K_DEBUGFS Add missing DEBUG_FS dependency for ATH9K_DEBUGFS in ath9k's Kconfig. Signed-off-by: Dominik D. Geyer Signed-off-by: John W. Linville commit c3bf4906fba0d8871572b3f50fc036aade093e4d Merge: f39edad 7f9d357 Author: Linus Torvalds Date: Wed Dec 30 12:37:35 2009 -0800 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (74 commits) Revert "b43: Enforce DMA descriptor memory constraints" iwmc3200wifi: fix array out-of-boundary access wl1251: timeout one too soon in wl1251_boot_run_firmware() mac80211: fix propagation of failed hardware reconfigurations mac80211: fix race with suspend and dynamic_ps_disable_work ath9k: fix missed error codes in the tx status check ath9k: wake hardware during AMPDU TX actions ath9k: wake hardware for interface IBSS/AP/Mesh removal ath9k: fix suspend by waking device prior to stop cfg80211: fix error path in cfg80211_wext_siwscan wl1271_cmd.c: cleanup char => u8 iwlwifi: Storage class should be before const qualifier ath9k: Storage class should be before const qualifier cfg80211: fix race between deauth and assoc response wireless: remove remaining qual code rt2x00: Add USB ID for Linksys WUSB 600N rev 2. ath5k: fix SWI calibration interrupt storm mac80211: fix ibss join with fixed-bssid libertas: Remove carrier signaling from the scan code orinoco: fix GFP_KERNEL in orinoco_set_key with interrupts disabled ... commit 7f9d3577e2603ca279c3176b696eba392f21cbe2 Merge: 96c5340 55afc80 Author: David S. Miller Date: Tue Dec 29 19:44:25 2009 -0800 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 commit 55afc80b2ab100618c17af77915f75307b6bd5d1 Author: John W. Linville Date: Tue Dec 29 14:07:42 2009 -0500 Revert "b43: Enforce DMA descriptor memory constraints" This reverts commit 9bd568a50c446433038dec2a5186c5c57c3dbd23. That commit is shown to cause allocation failures during initialization on some machines. http://bugzilla.kernel.org/show_bug.cgi?id=14844 Signed-off-by: John W. Linville commit 6c853da3f30c93eae847ecbcd9fdf10ba0da04c2 Author: Zhu Yi Date: Mon Dec 28 14:23:11 2009 +0800 iwmc3200wifi: fix array out-of-boundary access Allocate priv->rx_packets[IWM_RX_ID_HASH + 1] because the max array index is IWM_RX_ID_HASH according to IWM_RX_ID_GET_HASH(). Cc: stable@kernel.org Signed-off-by: Zhu Yi Signed-off-by: John W. Linville commit e8a4a6df7397eb3b43ad3139d3fe9b41df70d6b0 Author: Roel Kluin Date: Sat Dec 26 20:31:59 2009 +0100 wl1251: timeout one too soon in wl1251_boot_run_firmware() `loop' reaches INIT_LOOP + 1 after the loop. so if ACX_INTR_INIT_COMPLETE occurs in the last iteration the write occurs but also the error out as if a timeout occurred. This is probably very unlikely to ever occur. Signed-off-by: Roel Kluin Acked-by: Kalle Valo Signed-off-by: John W. Linville commit 24feda0084722189468a65e20019cdd8ef99702b Author: Luis R. Rodriguez Date: Thu Dec 24 15:38:22 2009 -0500 mac80211: fix propagation of failed hardware reconfigurations mac80211 does not propagate failed hardware reconfiguration requests. For suspend and resume this is important due to all the possible issues that can come out of the suspend <-> resume cycle. Not propagating the error means cfg80211 will assume the resume for the device went through fine and mac80211 will continue on trying to poke at the hardware, enable timers, queue work, and so on for a device which is completley unfunctional. The least we can do is to propagate device start issues and warn when this occurs upon resume. A side effect of this patch is we also now propagate the start errors upon harware reconfigurations (non-suspend), but this should also be desirable anyway, there is not point in continuing to reconfigure a device if mac80211 was unable to start the device. For further details refer to the thread: http://marc.info/?t=126151038700001&r=1&w=2 Cc: stable@kernel.org Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit b98c06b6debfe84c90200143bb1102f312f50a33 Author: Luis R. Rodriguez Date: Thu Dec 24 15:26:09 2009 -0500 mac80211: fix race with suspend and dynamic_ps_disable_work When mac80211 suspends it calls a driver's suspend callback as a last step and after that the driver assumes no calls will be made to it until we resume and its start callback is kicked. If such calls are made, however, suspend can end up throwing hardware in an unexpected state and making the device unusable upon resume. Fix this by preventing mac80211 to schedule dynamic_ps_disable_work by checking for when mac80211 starts to suspend and starts quiescing. Frames should be allowed to go through though as that is part of the quiescing steps and we do not flush the mac80211 workqueue since it was already done towards the beginning of suspend cycle. The other mac80211 issue will be hanled in the next patch. For further details see refer to the thread: http://marc.info/?t=126144866100001&r=1&w=2 Cc: stable@kernel.org Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 5b479a076de091590423a9e6dfc2584126b28761 Author: Felix Fietkau Date: Thu Dec 24 14:04:32 2009 +0100 ath9k: fix missed error codes in the tx status check My previous change added in: commit 815833e7ecf0b9a017315cae6aef4d7cd9517681 ath9k: fix tx status reporting was not checking all possible tx error conditions. This could possibly lead to throughput issues due to slow rate control adaption or missed retransmissions of failed A-MPDU frames. This patch adds a mask for all possible error conditions and uses it in the xmit ok check. Cc: stable@kernel.org Reported-by: Björn Smedman Signed-off-by: Felix Fietkau Signed-off-by: John W. Linville commit 8b685ba9de803f210936400612a32a2003f47cd3 Author: Luis R. Rodriguez Date: Wed Dec 23 20:03:29 2009 -0500 ath9k: wake hardware during AMPDU TX actions AMDPDU actions poke hardware for TX operation, as such we want to turn hardware on for these actions. AMDPU RX operations do not require hardware on as nothing is done in hardware for those actions. Without this we cannot guarantee hardware has been programmed correctly for each AMPDU TX action. Cc: stable@kernel.org Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 5f70a88f631c3480107853cae12925185eb4c598 Author: Luis R. Rodriguez Date: Wed Dec 23 20:03:28 2009 -0500 ath9k: wake hardware for interface IBSS/AP/Mesh removal When we remove a IBSS/AP/Mesh interface we stop DMA but to do this we should ensure hardware is on. Awaken the device prior to these calls. This should ensure DMA is stopped upon suspend and plain device removal. Cc: stable@kernel.org Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 3867cf6a8c699846e928e8f5a9f31013708df192 Author: Sujith Date: Wed Dec 23 20:03:27 2009 -0500 ath9k: fix suspend by waking device prior to stop Ensure the device is awake prior to trying to tell hardware to stop it. Impact of not doing this is we can likely leave the device in an undefined state likely causing issues with suspend and resume. This patch ensures harware is where it should be prior to suspend. Cc: stable@kernel.org Signed-off-by: Sujith Signed-off-by: John W. Linville commit 65486c8b30498dd274eea2c542696f22b63fe5b8 Author: Johannes Berg Date: Wed Dec 23 15:33:35 2009 +0100 cfg80211: fix error path in cfg80211_wext_siwscan If there's an invalid channel or SSID, the code leaks the scan request. Always free the scan request, unless it was successfully given to the driver. Reported-by: Dan Carpenter Signed-off-by: Johannes Berg Acked-by: Dan Carpenter Signed-off-by: John W. Linville commit befabac2d8e4925b97c5eebc78ecc4b2079fd9dd Author: Dan Carpenter Date: Wed Dec 23 15:23:19 2009 +0200 wl1271_cmd.c: cleanup char => u8 This is just a clean up and doesn't make a functional difference. It keeps the lint checkers happy. Signed-off-by: Dan Carpenter Reviewed-by: Kalle Valo Signed-off-by: John W. Linville commit 79496738eb896d1658d9f3cca98e474c5f31eea3 Author: Tobias Klauser Date: Wed Dec 23 14:18:11 2009 +0100 iwlwifi: Storage class should be before const qualifier The C99 specification states in section 6.11.5: The placement of a storage-class specifier other than at the beginning of the declaration specifiers in a declaration is an obsolescent feature. Signed-off-by: Tobias Klauser Acked-by: Zhu Yi Signed-off-by: John W. Linville commit 83bd11a06da8bd119cc517de84b3214df3a7a6d4 Author: Tobias Klauser Date: Wed Dec 23 14:04:43 2009 +0100 ath9k: Storage class should be before const qualifier The C99 specification states in section 6.11.5: The placement of a storage-class specifier other than at the beginning of the declaration specifiers in a declaration is an obsolescent feature. Signed-off-by: Tobias Klauser Signed-off-by: John W. Linville commit 3bdb2d48c5f58c781a4099c99044384a23620884 Author: Johannes Berg Date: Wed Dec 23 13:12:05 2009 +0100 cfg80211: fix race between deauth and assoc response Joseph Nahmias reported, in http://bugs.debian.org/562016, that he was getting the following warning (with some log around the issue): ath0: direct probe to AP 00:11:95:77:e0:b0 (try 1) ath0: direct probe responded ath0: authenticate with AP 00:11:95:77:e0:b0 (try 1) ath0: authenticated ath0: associate with AP 00:11:95:77:e0:b0 (try 1) ath0: deauthenticating from 00:11:95:77:e0:b0 by local choice (reason=3) ath0: direct probe to AP 00:11:95:77:e0:b0 (try 1) ath0: RX AssocResp from 00:11:95:77:e0:b0 (capab=0x421 status=0 aid=2) ath0: associated ------------[ cut here ]------------ WARNING: at net/wireless/mlme.c:97 cfg80211_send_rx_assoc+0x14d/0x152 [cfg80211]() Hardware name: 7658CTO ... Pid: 761, comm: phy0 Not tainted 2.6.32-trunk-686 #1 Call Trace: [] ? warn_slowpath_common+0x5e/0x8a [] ? warn_slowpath_null+0xa/0xc [] ? cfg80211_send_rx_assoc+0x14d/0x152 ... ath0: link becomes ready ath0: deauthenticating from 00:11:95:77:e0:b0 by local choice (reason=3) ath0: no IPv6 routers present ath0: link is not ready ath0: direct probe to AP 00:11:95:77:e0:b0 (try 1) ath0: direct probe responded ath0: authenticate with AP 00:11:95:77:e0:b0 (try 1) ath0: authenticated ath0: associate with AP 00:11:95:77:e0:b0 (try 1) ath0: RX ReassocResp from 00:11:95:77:e0:b0 (capab=0x421 status=0 aid=2) ath0: associated It is not clear to me how the first "direct probe" here happens, but this seems to be a race condition, if the user requests to deauth after requesting assoc, but before the assoc response is received. In that case, it may happen that mac80211 tries to report the assoc success to cfg80211, but gets blocked on the wdev lock that is held because the user is requesting the deauth. The result is that we run into a warning. This is mostly harmless, but maybe cause an unexpected event to be sent to userspace; we'd send an assoc success event although userspace was no longer expecting that. To fix this, remove the warning and check whether the race happened and in that case abort processing. Reported-by: Joseph Nahmias Cc: stable@kernel.org Cc: 562016-quiet@bugs.debian.org Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 671adc93b6472eaa0142a88d096c945f7b07893a Author: Johannes Berg Date: Wed Dec 23 13:12:04 2009 +0100 wireless: remove remaining qual code This removes the remaining users of the rx status 'qual' field and the field itself. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 5e31258945f60dff65952575625cac214a75893e Author: Gertjan van Wingerde Date: Wed Dec 23 00:03:21 2009 +0100 rt2x00: Add USB ID for Linksys WUSB 600N rev 2. This is a rt2870 based device. Signed-off-by: Gertjan van Wingerde Acked-by: Ivo van Doorn Signed-off-by: John W. Linville commit 242ab7ad689accafd5e87ffd22b85cf1bf7fbbef Author: Bob Copeland Date: Mon Dec 21 22:26:48 2009 -0500 ath5k: fix SWI calibration interrupt storm The calibration period is now invoked by triggering a software interrupt from within the ISR by ath5k_hw_calibration_poll() instead of via a timer. However, the calibration interval isn't initialized before interrupts are enabled, so we can have a situation where an interrupt occurs before the interval is assigned, so the interval is actually negative. As a result, the ISR will arm a software interrupt to schedule the tasklet, and then rearm it when the SWI is processed, and so on, leading to a softlockup at modprobe time. Move the initialization order around so the calibration interval is set before interrupts are active. Another possible fix is to schedule the tasklet directly from the poll routine, but I think there are additional plans for the SWI. Signed-off-by: Bob Copeland Cc: stable@kernel.org Signed-off-by: John W. Linville commit 2e10d330f8d5f039fa1e00baf59435ab0f11c722 Author: Felix Fietkau Date: Sun Dec 20 19:07:09 2009 +0100 mac80211: fix ibss join with fixed-bssid When fixed bssid is requested when joining an ibss network, incoming beacons that match the configured bssid cause mac80211 to create new sta entries, even before the ibss interface is in joined state. When that happens, it fails to bring up the interface entirely, because it checks for existing sta entries before joining. This patch fixes this bug by refusing to create sta info entries before the interface is fully operational. Signed-off-by: Felix Fietkau Signed-off-by: John W. Linville commit 659c8e5243caf14564155ad8421404f044dd8031 Author: Samuel Ortiz Date: Fri Dec 18 11:36:49 2009 +0100 libertas: Remove carrier signaling from the scan code There is no reason to signal a carrier off when doing a 802.11 scan. Cc: Holger Schurig Signed-off-by: Samuel Ortiz Acked-by: Dan Williams Signed-off-by: John W. Linville commit 5b0691508aa99d309101a49b4b084dc16b3d7019 Author: Andrey Borzenkov Date: Tue Dec 22 21:38:44 2009 +0300 orinoco: fix GFP_KERNEL in orinoco_set_key with interrupts disabled orinoco_set_key is called from two places both with interrupts disabled (under orinoco_lock). Use GFP_ATOMIC instead of GFP_KERNEL. Fixes following warning: [ 77.254109] WARNING: at /home/bor/src/linux-git/kernel/lockdep.c:2465 lockdep_trace_alloc+0x9a/0xa0() [ 77.254109] Hardware name: PORTEGE 4000 [ 77.254109] Modules linked in: af_packet irnet ppp_generic slhc ircomm_tty ircomm binfmt_misc dm_mirror dm_region_hash dm_log dm_round_robin dm_multipath dm_mod loop nvram toshiba cryptomgr aead pcompress crypto_blkcipher michael_mic crypto_hash crypto_algapi orinoco_cs orinoco cfg80211 smsc_ircc2 pcmcia irda toshiba_acpi yenta_socket video i2c_ali1535 backlight rsrc_nonstatic ali_agp pcmcia_core psmouse output crc_ccitt i2c_core alim1535_wdt rfkill sg evdev ohci_hcd agpgart usbcore pata_ali libata reiserfs [last unloaded: scsi_wait_scan] [ 77.254109] Pid: 2296, comm: wpa_supplicant Not tainted 2.6.32-1avb #1 [ 77.254109] Call Trace: [ 77.254109] [] warn_slowpath_common+0x6d/0xa0 [ 77.254109] [] ? lockdep_trace_alloc+0x9a/0xa0 [ 77.254109] [] ? lockdep_trace_alloc+0x9a/0xa0 [ 77.254109] [] warn_slowpath_null+0x15/0x20 [ 77.254109] [] lockdep_trace_alloc+0x9a/0xa0 [ 77.254109] [] __kmalloc+0x36/0x130 [ 77.254109] [] ? orinoco_set_key+0x48/0x1c0 [orinoco] [ 77.254109] [] orinoco_set_key+0x48/0x1c0 [orinoco] [ 77.254109] [] orinoco_ioctl_set_encodeext+0x1dc/0x2d0 [orinoco] [ 77.254109] [] ioctl_standard_call+0x207/0x3b0 [ 77.254109] [] ? orinoco_ioctl_set_encodeext+0x0/0x2d0 [orinoco] [ 77.254109] [] ? rtnl_lock+0xf/0x20 [ 77.254109] [] ? rtnl_lock+0xf/0x20 [ 77.254109] [] ? __dev_get_by_name+0x85/0xb0 [ 77.254109] [] wext_handle_ioctl+0x176/0x200 [ 77.254109] [] ? orinoco_ioctl_set_encodeext+0x0/0x2d0 [orinoco] [ 77.254109] [] dev_ioctl+0x6af/0x730 [ 77.254109] [] ? move_addr_to_kernel+0x55/0x60 [ 77.254109] [] ? sys_sendto+0xe9/0x130 [ 77.254109] [] sock_ioctl+0x7e/0x250 [ 77.254109] [] ? sock_ioctl+0x0/0x250 [ 77.254109] [] vfs_ioctl+0x1c/0x70 [ 77.254109] [] do_vfs_ioctl+0x6a/0x590 [ 77.254109] [] ? might_fault+0x90/0xa0 [ 77.254109] [] ? might_fault+0x4a/0xa0 [ 77.254109] [] ? sys_socketcall+0x17e/0x280 [ 77.254109] [] sys_ioctl+0x39/0x60 [ 77.254109] [] sysenter_do_call+0x12/0x32 [ 77.254109] ---[ end trace 95ef563548d21efd ]--- Signed-off-by: Andrey Borzenkov Signed-off-by: John W. Linville commit 1f04493123763f5b8bc6d5de9aed0222345c052c Author: Daniel Drake Date: Thu Dec 24 08:11:24 2009 +0000 Fix MAC address access in 3c507, ibmlana, pcnet32 and libertas Commit f001fde5eadd915f4858d22ed70d7040f48767cf changed net_device.dev_addr from a 32-byte array to a pointer. I found 4 ethernet drivers which rely on sizeof(dev_addr), which are now only copying 4 bytes of the address information on 32bit systems. Fix them to use ETH_ALEN. Signed-off-by: Daniel Drake Reviewed-by: Jiri Pirko Signed-off-by: David S. Miller commit 9842c38e917636fa7dc6b88aff17a8f1fd7f0cc0 Author: Stefani Seibold Date: Mon Dec 21 14:37:29 2009 -0800 kfifo: fix warn_unused_result Fix the "ignoring return value of '...', declared with attribute warn_unused_result" compiler warning in several users of the new kfifo API. It removes the __must_check attribute from kfifo_in() and kfifo_in_locked() which must not necessary performed. Fix the allocation bug in the nozomi driver file, by moving out the kfifo_alloc from the interrupt handler into the probe function. Fix the kfifo_out() and kfifo_out_locked() users to handle a unexpected end of fifo. Signed-off-by: Stefani Seibold Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 7acd72eb85f1c7a15e8b5eb554994949241737f1 Author: Stefani Seibold Date: Mon Dec 21 14:37:28 2009 -0800 kfifo: rename kfifo_put... into kfifo_in... and kfifo_get... into kfifo_out... rename kfifo_put... into kfifo_in... to prevent miss use of old non in kernel-tree drivers ditto for kfifo_get... -> kfifo_out... Improve the prototypes of kfifo_in and kfifo_out to make the kerneldoc annotations more readable. Add mini "howto porting to the new API" in kfifo.h Signed-off-by: Stefani Seibold Acked-by: Greg Kroah-Hartman Acked-by: Mauro Carvalho Chehab Acked-by: Andi Kleen Acked-by: Arnd Bergmann Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit e64c026dd09b73faf20707711402fc5ed55a8e70 Author: Stefani Seibold Date: Mon Dec 21 14:37:28 2009 -0800 kfifo: cleanup namespace change name of __kfifo_* functions to kfifo_*, because the prefix __kfifo should be reserved for internal functions only. Signed-off-by: Stefani Seibold Acked-by: Greg Kroah-Hartman Acked-by: Mauro Carvalho Chehab Acked-by: Andi Kleen Acked-by: Arnd Bergmann Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit c1e13f25674ed564948ecb7dfe5f83e578892896 Author: Stefani Seibold Date: Mon Dec 21 14:37:27 2009 -0800 kfifo: move out spinlock Move the pointer to the spinlock out of struct kfifo. Most users in tree do not actually use a spinlock, so the few exceptions now have to call kfifo_{get,put}_locked, which takes an extra argument to a spinlock. Signed-off-by: Stefani Seibold Acked-by: Greg Kroah-Hartman Acked-by: Mauro Carvalho Chehab Acked-by: Andi Kleen Acked-by: Arnd Bergmann Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 45465487897a1c6d508b14b904dc5777f7ec7e04 Author: Stefani Seibold Date: Mon Dec 21 14:37:26 2009 -0800 kfifo: move struct kfifo in place This is a new generic kernel FIFO implementation. The current kernel fifo API is not very widely used, because it has to many constrains. Only 17 files in the current 2.6.31-rc5 used it. FIFO's are like list's a very basic thing and a kfifo API which handles the most use case would save a lot of development time and memory resources. I think this are the reasons why kfifo is not in use: - The API is to simple, important functions are missing - A fifo can be only allocated dynamically - There is a requirement of a spinlock whether you need it or not - There is no support for data records inside a fifo So I decided to extend the kfifo in a more generic way without blowing up the API to much. The new API has the following benefits: - Generic usage: For kernel internal use and/or device driver. - Provide an API for the most use case. - Slim API: The whole API provides 25 functions. - Linux style habit. - DECLARE_KFIFO, DEFINE_KFIFO and INIT_KFIFO Macros - Direct copy_to_user from the fifo and copy_from_user into the fifo. - The kfifo itself is an in place member of the using data structure, this save an indirection access and does not waste the kernel allocator. - Lockless access: if only one reader and one writer is active on the fifo, which is the common use case, no additional locking is necessary. - Remove spinlock - give the user the freedom of choice what kind of locking to use if one is required. - Ability to handle records. Three type of records are supported: - Variable length records between 0-255 bytes, with a record size field of 1 bytes. - Variable length records between 0-65535 bytes, with a record size field of 2 bytes. - Fixed size records, which no record size field. - Preserve memory resource. - Performance! - Easy to use! This patch: Since most users want to have the kfifo as part of another object, reorganize the code to allow including struct kfifo in another data structure. This requires changing the kfifo_alloc and kfifo_init prototypes so that we pass an existing kfifo pointer into them. This patch changes the implementation and all existing users. [akpm@linux-foundation.org: fix warning] Signed-off-by: Stefani Seibold Acked-by: Greg Kroah-Hartman Acked-by: Mauro Carvalho Chehab Acked-by: Andi Kleen Acked-by: Arnd Bergmann Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit ed4b2019a62e2208a8370461dd91ed4de2c9fc8f Merge: b746656 92c6f8d Author: David S. Miller Date: Mon Dec 21 11:54:49 2009 -0800 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 commit 292be57e152ef6881089a62298c6ec885ed46f0e Merge: 1814f2d b746656 Author: Linus Torvalds Date: Mon Dec 21 10:12:25 2009 -0800 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: bnx2: Fix bnx2_netif_stop() merge error. gianfar: Fix bit definitions of IMASK_GRSC and IMASK_GTSC gianfar: Fix stats support gianfar: Fix a filer bug bnx2: fixing a timout error due not refreshing TX timers correctly can/at91: don't check platform_get_irq's return value against zero mISDN: use DECLARE_COMPLETION_ONSTACK for non-constant completion bnx2: reset_task is crashing the kernel. Fixing it. ipv6: fix an oops when force unload ipv6 module TI DaVinci EMAC: Fix MDIO bus frequency configuration e100: Fix broken cbs accounting due to missing memset. broadcom: bcm54xx_shadow_read() errors ignored in bcm54xx_adjust_rxrefclk() e1000e: LED settings in EEPROM ignored on 82571 and 82572 netxen: use module parameter correctly netns: fix net.ipv6.route.gc_min_interval_ms in netns Bluetooth: Prevent ill-timed autosuspend in USB driver Bluetooth: Fix L2CAP locking scheme regression Bluetooth: Ack L2CAP I-frames before retransmit missing packet Bluetooth: Fix unset of RemoteBusy flag for L2CAP Bluetooth: Fix PTR_ERR return of wrong pointer in hidp_setup_hid() commit 0183826b58a2712ffe608bc3302447be3e6a3ab8 Author: Johannes Berg Date: Thu Dec 17 16:16:53 2009 +0100 mac80211: fix WMM AP settings application My commit 77fdaa12cea26c204cc12c312fe40bc0f3dcdfd8 Author: Johannes Berg Date: Tue Jul 7 03:45:17 2009 +0200 mac80211: rework MLME for multiple authentications inadvertedly broke WMM because it removed, along with a bunch of other now useless initialisations, the line initialising sdata->u.mgd.wmm_last_param_set to -1 which would make it adopt any WMM parameter set. If, as is usually the case, the AP uses WMM parameter set sequence number zero, we'd never update it until the AP changes the sequence number. Add the missing initialisation back to get the WMM settings from the AP applied locally. Signed-off-by: Johannes Berg Cc: stable@kernel.org [2.6.31+] Signed-off-by: John W. Linville commit 9a418af5df03ad133cd8c8f6742b75e542db6392 Author: Johannes Berg Date: Thu Dec 17 13:55:48 2009 +0100 mac80211: fix peer HT capabilities I noticed yesterday, because Jeff had noticed a speed regression, cf. bug http://bugzilla.intellinuxwireless.org/show_bug.cgi?id=2138 that the SM PS settings for peers were wrong. Instead of overwriting the SM PS settings with the local bits, we need to keep the remote bits. The bug was part of the original HT code from over two years ago, but unfortunately nobody noticed that it makes no sense -- we shouldn't be overwriting the peer's setting with our own but rather keep it intact when masking the peer capabilities with our own. While fixing that, I noticed that the masking of capabilities is completely useless for most of the bits, so also fix those other bits. Finally, I also noticed that PSMP_SUPPORT no longer exists in the final 802.11n version, so also remove that. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 8585c2b896861aacd15337c3c7e58ad114e6cf60 Author: Roel Kluin Date: Wed Dec 16 17:01:38 2009 +0100 iwmc3200wifi: Fix test of unsigned in iwm_ntf_stop_resume_tx() `queue' was unsigned so the test did not work. Signed-off-by: Roel Kluin Reviewed-by: Pavel Roskin Acked-by: Zhu Yi Signed-off-by: John W. Linville commit 45b241689179a6065384260242637cf21dabfb2d Author: Daniel Mack Date: Wed Dec 16 05:12:58 2009 +0100 Libertas: fix buffer overflow in lbs_get_essid() The libertas driver copies the SSID buffer back to the wireless core and appends a trailing NULL character for termination. This is a) unnecessary because the buffer is allocated with kzalloc and is hence already NULLed when this function is called, and b) for priv->curbssparams.ssid_len == 32, it writes back one byte too much which causes memory corruptions. Fix this by removing the extra write. Signed-off-by: Daniel Mack Cc: Stephen Hemminger Cc: Maithili Hinge Cc: Kiran Divekar Cc: Michael Hirsch Cc: netdev@vger.kernel.org Cc: libertas-dev@lists.infradead.org Cc: linux-wireless@lists.infradead.org Cc: stable@kernel.org Acked-by: Holger Schurig Acked-by: Dan Williams Signed-off-by: John W. Linville commit 77ca7d9e2c099b4484bb10075948b4267f37d9fa Author: akpm@linux-foundation.org Date: Mon Dec 14 15:56:54 2009 -0800 drivers/net/wireless/iwlwifi/iwl-tx.c: fix gcc-3.4.5 warning drivers/net/wireless/iwlwifi/iwl-tx.c: In function `iwl_hw_txq_ctx_free': drivers/net/wireless/iwlwifi/iwl-tx.c:410: warning: suggest explicit braces to avoid ambiguous `else' Cc: Zhu Yi Cc: Reinette Chatre Signed-off-by: Andrew Morton Signed-off-by: John W. Linville commit 2ab81d4a9a5ecb13d343269b3cdf5d975c81c570 Author: Sujith Date: Mon Dec 14 16:34:56 2009 +0530 ath9k: Stop ANI when doing a reset The MIB counters are disabled when doing a chip reset. Since ANI depends on the MIB registers for its operation, relying on the contents of said registers during HW reset results in sub-optimal performance. Cc: stable@kernel.org Signed-off-by: Sujith Signed-off-by: John W. Linville commit e8009e9850d59000d518296af372888911a129bd Author: Sujith Date: Mon Dec 14 14:57:08 2009 +0530 ath9k: Fix TX queue draining When TX DMA termination has failed, the HW has to be reset completely. Doing a fast channel change in this case is insufficient. Also, change the debug level of a couple of messages to FATAL. Cc: stable@kernel.org Signed-off-by: Sujith Signed-off-by: John W. Linville commit 17b182e3db255ab068c2ebb85f34840607a53cc4 Author: Sujith Date: Mon Dec 14 14:56:56 2009 +0530 ath9k: Fix bug in assigning sequence number The internal, driver-specific maintenance of sequence numbers is applicable only for HT frames. Also, remove comments that are not relevant anymore. Signed-off-by: Sujith Signed-off-by: John W. Linville commit 7988436c6330eab98f64b6e799ce2d30fe5ffd55 Author: Gertjan van Wingerde Date: Mon Dec 14 23:32:31 2009 +0100 rt2x00: Fix calculation of rt2800 iveiv entry offset. Fix typo. The index should be multiplied by the entry size, not 'and'-ed. Found via code-inspection. Signed-off-by: Gertjan van Wingerde Acked-by: Ivo van Doorn Signed-off-by: John W. Linville commit 6c3069b1e7e983e176a5f826e2edffefdd404a08 Author: Reinette Chatre Date: Mon Dec 14 14:12:13 2009 -0800 iwlwifi: fix 40MHz operation setting on cards that do not allow it Some devices have 40MHz operation disabled entirely. Ensure that driver do not enable 40MHz operation if a channel does not allow this. This fixes http://bugzilla.intellinuxwireless.org/show_bug.cgi?id=2135 Signed-off-by: Reinette Chatre CC: stable@kernel.org Signed-off-by: John W. Linville commit dc57a303faab8562b92e85df0d79c4a05d7e2a61 Author: Zhu Yi Date: Mon Dec 14 14:12:12 2009 -0800 iwl3945: fix panic in iwl3945 driver 3945 updated write_ptr without regard to read_ptr on the Tx path. This messes up our TFD on high load and result in the following: <1>[ 7290.414172] IP: [] iwl3945_rx_reply_tx+0xc1/0x450 [iwl3945] <4>[ 7290.414205] PGD 0 <1>[ 7290.414214] Thread overran stack, or stack corrupted <0>[ 7290.414229] Oops: 0002 [#1] PREEMPT SMP <0>[ 7290.414246] last sysfs file: /sys/devices/platform/coretemp.1/temp1_input <4>[ 7290.414265] CPU 0 <4>[ 7290.414274] Modules linked in: af_packet nfsd usb_storage usb_libusual cpufreq_powersave exportfs cpufreq_conservative iwl3945 nfs cpufreq_userspace snd_hda_codec_realtek acpi_cpufreq uvcvideo lockd iwlcore snd_hda_intel joydev coretemp nfs_acl videodev snd_hda_codec mac80211 v4l1_compat snd_hwdep sbp2 v4l2_compat_ioctl32 uhci_hcd psmouse auth_rpcgss ohci1394 cfg80211 ehci_hcd video ieee1394 snd_pcm serio_raw battery ac nvidia(P) usbcore output sunrpc evdev lirc_ene0100 snd_page_alloc rfkill tg3 libphy fuse lzo lzo_decompress lzo_compress <6>[ 7290.414486] Pid: 0, comm: swapper Tainted: P 2.6.32-rc8-wl #213 Aspire 5720 <6>[ 7290.414507] RIP: 0010:[] [] iwl3945_rx_reply_tx+0xc1/0x450 [iwl3945] <6>[ 7290.414541] RSP: 0018:ffff880002203d60 EFLAGS: 00010246 <6>[ 7290.414557] RAX: 000000000000004f RBX: ffff880064c11600 RCX: 0000000000000013 <6>[ 7290.414576] RDX: ffffffffa0ddcf20 RSI: ffff8800512b7008 RDI: 0000000000000038 <6>[ 7290.414596] RBP: ffff880002203dd0 R08: 0000000000000000 R09: 0000000000000100 <6>[ 7290.414616] R10: 0000000000000001 R11: 0000000000000000 R12: 00000000000000a0 <6>[ 7290.414635] R13: 0000000000000002 R14: 0000000000000013 R15: 0000000000020201 <6>[ 7290.414655] FS: 0000000000000000(0000) GS:ffff880002200000(0000) knlGS:0000000000000000 <6>[ 7290.414677] CS: 0010 DS: 0018 ES: 0018 CR0: 000000008005003b <6>[ 7290.414693] CR2: 0000000000000041 CR3: 0000000001001000 CR4: 00000000000006f0 <6>[ 7290.414712] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 <6>[ 7290.414732] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400 <4>[ 7290.414752] Process swapper (pid: 0, threadinfo ffffffff81524000, task ffffffff81528b60) <0>[ 7290.414772] Stack: <4>[ 7290.414780] ffff880002203da0 0000000000000046 0000000000000000 0000000000000046 <4>[ 7290.414804] <0> 0000000000000282 0000000000000282 0000000000000282 ffff880064c12010 <4>[ 7290.414830] <0> ffff880002203db0 ffff880064c11600 ffff880064c12e50 ffff8800512b7000 <0>[ 7290.414858] Call Trace: <0>[ 7290.414867] <4>[ 7290.414884] [] iwl3945_irq_tasklet+0x657/0x1740 [iwl3945] <4>[ 7290.414910] [] ? _spin_unlock+0x30/0x60 <4>[ 7290.414931] [] tasklet_action+0x101/0x110 <4>[ 7290.414950] [] __do_softirq+0xc0/0x160 <4>[ 7290.414968] [] call_softirq+0x1c/0x30 <4>[ 7290.414986] [] do_softirq+0x75/0xb0 <4>[ 7290.415003] [] irq_exit+0x95/0xa0 <4>[ 7290.415020] [] do_IRQ+0x77/0xf0 <4>[ 7290.415038] [] ret_from_intr+0x0/0xf <0>[ 7290.415052] <4>[ 7290.415067] [] ? acpi_idle_enter_bm+0x270/0x2a5 <4>[ 7290.415087] [] ? acpi_idle_enter_bm+0x27a/0x2a5 <4>[ 7290.415107] [] ? acpi_idle_enter_bm+0x270/0x2a5 <4>[ 7290.415130] [] ? cpuidle_idle_call+0x93/0xf0 <4>[ 7290.415149] [] ? cpu_idle+0xa7/0x110 <4>[ 7290.415168] [] ? rest_init+0x75/0x80 <4>[ 7290.415187] [] ? start_kernel+0x3a7/0x3b3 <4>[ 7290.415206] [] ? x86_64_start_reservations+0x125/0x129 <4>[ 7290.415227] [] ? x86_64_start_kernel+0xe4/0xeb <0>[ 7290.415243] Code: 00 41 39 ce 0f 8d e8 01 00 00 48 8b 47 40 48 63 d2 48 69 d2 98 00 00 00 4c 8b 04 02 48 c7 c2 20 cf dd a0 49 8d 78 38 49 8d 40 4f 47 09 00 c6 47 0c 00 c6 47 0f 00 c6 47 12 00 c6 47 15 00 49 <1>[ 7290.415382] RIP [] iwl3945_rx_reply_tx+0xc1/0x450 [iwl3945] <4>[ 7290.415410] RSP <0>[ 7290.415421] CR2: 0000000000000041 <4>[ 7290.415436] ---[ end trace ec46807277caa515 ]--- <0>[ 7290.415450] Kernel panic - not syncing: Fatal exception in interrupt <4>[ 7290.415468] Pid: 0, comm: swapper Tainted: P D 2.6.32-rc8-wl #213 <4>[ 7290.415486] Call Trace: <4>[ 7290.415495] [] panic+0x7d/0x13a <4>[ 7290.415519] [] oops_end+0xda/0xe0 <4>[ 7290.415538] [] no_context+0xea/0x250 <4>[ 7290.415557] [] ? select_task_rq_fair+0x511/0x780 <4>[ 7290.415578] [] __bad_area_nosemaphore+0x125/0x1e0 <4>[ 7290.415597] [] ? __enqueue_entity+0x7c/0x80 <4>[ 7290.415616] [] ? enqueue_task_fair+0x111/0x150 <4>[ 7290.415636] [] bad_area_nosemaphore+0xe/0x10 <4>[ 7290.415656] [] do_page_fault+0x26a/0x320 <4>[ 7290.415674] [] page_fault+0x1f/0x30 <4>[ 7290.415697] [] ? iwl3945_rx_reply_tx+0xc1/0x450 [iwl3945] <4>[ 7290.415723] [] iwl3945_irq_tasklet+0x657/0x1740 [iwl3945] <4>[ 7290.415746] [] ? _spin_unlock+0x30/0x60 <4>[ 7290.415764] [] tasklet_action+0x101/0x110 <4>[ 7290.415783] [] __do_softirq+0xc0/0x160 <4>[ 7290.415801] [] call_softirq+0x1c/0x30 <4>[ 7290.415818] [] do_softirq+0x75/0xb0 <4>[ 7290.415835] [] irq_exit+0x95/0xa0 <4>[ 7290.415852] [] do_IRQ+0x77/0xf0 <4>[ 7290.415869] [] ret_from_intr+0x0/0xf <4>[ 7290.415883] [] ? acpi_idle_enter_bm+0x270/0x2a5 <4>[ 7290.415911] [] ? acpi_idle_enter_bm+0x27a/0x2a5 <4>[ 7290.415931] [] ? acpi_idle_enter_bm+0x270/0x2a5 <4>[ 7290.415952] [] ? cpuidle_idle_call+0x93/0xf0 <4>[ 7290.415971] [] ? cpu_idle+0xa7/0x110 <4>[ 7290.415989] [] ? rest_init+0x75/0x80 <4>[ 7290.416007] [] ? start_kernel+0x3a7/0x3b3 <4>[ 7290.416026] [] ? x86_64_start_reservations+0x125/0x129 <4>[ 7290.416047] [] ? x86_64_start_kernel+0xe4/0xeb Reported-by: Maxim Levitsky Tested-by: Maxim Levitsky Signed-off-by: Zhu Yi Signed-off-by: Reinette Chatre CC: stable@kernel.org Signed-off-by: John W. Linville commit 731a29b74aa823e09a6547befce3f721bef32f86 Author: Reinette Chatre Date: Mon Dec 14 14:12:11 2009 -0800 iwlwifi: initialize spinlock before use Recent powersaving work resulted in power management ops being called during EEPROM initialization. The lock used by these functions is not initialized at this time. Ensure lock is initialized before it is used. Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit bc45a67079c916a9bd0a95b0b879cc0f259bac6e Author: Reinette Chatre Date: Mon Dec 14 14:12:10 2009 -0800 iwl3945: disable power save we see from http://bugzilla.intellinuxwireless.org/show_bug.cgi?id=2125 that power saving does not work well on 3945. Since then power saving has also been connected with association problems where an AP deathenticates a 3945 after it is unable to transmit data to it - this happens when 3945 enters power savings mode. Disable power save support until issues are resolved. Signed-off-by: Reinette Chatre CC: stable@kernel.org Signed-off-by: John W. Linville commit b7bb1756cb6a610cdbac8cfdad9e79bb5670b63b Author: Johannes Berg Date: Mon Dec 14 14:12:09 2009 -0800 iwlwifi: fix more eeprom endian bugs I've also for a long time had a problem with the temperature calculation code, which I had fixed by byte-swapping the values, and now it turns out that was the correct fix after all. Also, any use of iwl_eeprom_query_addr() that is for more than a u8 must be cast to little endian, and some structs as well. Fix all this. Again, no real impact on platforms that already are little endian. Signed-off-by: Johannes Berg Cc: stable@kernel.org Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit af6b8ee38833b39f70946f767740565ceb126961 Author: Johannes Berg Date: Mon Dec 14 14:12:08 2009 -0800 iwlwifi: fix EEPROM/OTP reading endian annotations and a bug The construct "le16_to_cpu((__force __le16)(r >> 16))" has always bothered me when looking through the iwlwifi code, it shouldn't be necessary to __force anything, and before this code, "r" was obtained with an ioread32, which swaps each of the two u16 values in it properly when swapping the entire u32 value. I've had arguments about this code with people before, but always conceded they were right because removing it only made things not work at all on big endian platforms. However, analysing a failure of the OTP reading code, I now finally figured out what is going on, and why my intuition about that code being wrong was right all along. It turns out that the 'priv->eeprom' u8 array really wants to have the data in it in little endian. So the force code above and all really converts *to* little endian, not from it. Cf., for instance, the function iwl_eeprom_query16() -- it reads two u8 values and combines them into a u16, in a little-endian way. And considering it more, it makes sense to have the eeprom array as on the device, after all not all values really are 16-bit values, the MAC address for instance is not. Now, what this really means is that all the annotations are completely wrong. The eeprom reading code should fill the priv->eeprom array as a __le16 array, with __le16 values. This also means that iwl_read_otp_word() should really have a __le16 pointer as the data argument, since it should be filling that in a format suitable for priv->eeprom. Propagating these changes throughout, iwl_find_otp_image() is found to be, now obviously visible, defective -- it uses the data returned by iwl_read_otp_word() directly as if it was CPU endianness. Fixing that, which is this hunk of the patch: - next_link_addr = link_value * sizeof(u16); + next_link_addr = le16_to_cpu(link_value) * sizeof(u16); is the only real change of this patch. Everything else is just fixing the sparse annotations. Also, the bug only shows up on big endian platforms with a 1000 series card. 5000 and previous series do not use OTP, and 6000 series has shadow RAM support which means we don't ever use the defective code on any cards but 1000. Signed-off-by: Johannes Berg Cc: stable@kernel.org Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 93b6bd26b74efe46b4579592560f9f1cb7b61994 Author: Gertjan van Wingerde Date: Mon Dec 14 20:33:55 2009 +0100 rt2x00: Disable powersaving for rt61pci and rt2800pci. We've had many reports of rt61pci failures with powersaving enabled. Therefore, as a stop-gap measure, disable powersaving of the rt61pci until we have found a proper solution. Also disable powersaving on rt2800pci as it most probably will show the same problem. Cc: stable@kernel.org Signed-off-by: Gertjan van Wingerde Acked-by: Ivo van Doorn Signed-off-by: John W. Linville commit 855da5e07ef4dba5f23d8f6f31004116ba16c52a Author: Julia Lawall Date: Sun Dec 13 17:07:45 2009 +0100 drivers/net/wireless: Correct code taking the size of a pointer sizeof(iv16) and sizeof(iv32) are the sizes of pointers. Change them to the size of the copied data. Furthermore, iveiv_entry is a local structure that has just been initialized and is not visible outside this function. Thus, there would seem to be no point to copy data into it. The order of the arguments is thus changed to copy the data into the parameters, which are provided as pointers, suggesting in this case that they should be used to return values. A simplified version of the semantic patch that finds the first problem is as follows: (http://coccinelle.lip6.fr/) // @@ expression *x; expression f; type T; @@ *f(...,(T)x,...) // Signed-off-by: Julia Lawall Acked-by: Gertjan van Wingerde Acked-by: Ivo van Doorn Signed-off-by: John W. Linville commit 4d91f9f3730d6d82a3ba67cae215a1823ba6a191 Author: Benoit Papillault Date: Sat Dec 12 00:22:35 2009 +0100 ath9k: Last fix for TX software padding. First, we copy/paste the padding stuff from ath9k_tx to ath_tx_cabq since it needs to same kind of padding, but for internally generated beacons. Next, software padding done on TX needs to be removed before calling ieee80211_tx_status. The code was already there in ath_tx_complete but it was wrong. Fix it by using ath9k_cmn_padpos. This later code has been tested by sending packets to a monitor interface and reading packets from the same interface. Signed-off-by: Benoit PAPILLAULT Signed-off-by: John W. Linville commit 521d9bce86331d8261213b807a9127f7e2ec046b Author: Wey-Yi Guy Date: Thu Dec 10 14:37:23 2009 -0800 iwlwifi: fix syslog message for event log dump size When trigger event log dumping from debugfs, the entire event log should be dumped and the size should match the number of events being dump. Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit f8701fe3aec24fcfb0dfa19aab47904611f96daf Author: Reinette Chatre Date: Thu Dec 10 14:37:22 2009 -0800 iwlwifi: power up all devices for EEPROM read Recent commits "iwlwifi: remove power-wasting calls to apm_ops.init()" and "iwlagn: power up device before initializing EEPROM" had the goal of reducing device power consumption from the time the module is loaded until the interface is brought up and the device's power saving mechanisms kick in. The idea is that once the module is loaded there is no need for the device to consume power until the interface is brought up. With the current solution the device is only powered up during EEPROM read, and then so also only if the EEPROM type is OTP. We have found that on certain platforms even non-OTP devices require power to be up during EEPROM read. On these platforms the driver never loads and the system log contains the following: iwlagn 0000:03:00.0: MAC is in deep sleep!. CSR_GP_CNTRL = 0x080403D8 We thus now power up all devices during EEPROM read. Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 64a76b504b04b5da16d1e7658a95dd126594e02f Author: Zhu Yi Date: Thu Dec 10 14:37:21 2009 -0800 iwlwifi: allocated rx page accounting cleanup In iwlwifi, priv->alloc_rxb_page is used to keep track of the Rx pages allocated by the driver. This cleans up the page free routines by introducing __iwl_free_pages/iwl_free_pages so that the accounting is more accurate and less error prone. This also fixes two instances where the counter was not updated. Signed-off-by: Zhu Yi Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 652fd781a52ad6e24b908cd8b83d12699754f253 Author: Oliver Neukum Date: Wed Dec 16 19:23:43 2009 +0100 Bluetooth: Prevent ill-timed autosuspend in USB driver The device must be marked busy as it receives data. Signed-off-by: Oliver Neukum Tested-by: Matthew Garrett Signed-off-by: Marcel Holtmann commit b13f5860447a98daf0358a51fbff66154ac0663a Author: Andrei Emeltchenko Date: Tue Dec 15 11:38:04 2009 +0200 Bluetooth: Fix L2CAP locking scheme regression When locking was introduced the error path branch was not taken into account. Error was found in sparse code checking. Kudos to Jani Nikula. Signed-off-by: Andrei Emeltchenko Acked-by: Gustavo F. Padovan Signed-off-by: Marcel Holtmann commit 186ee8cf0130993dea8ab8867ff1af8a148f9ae6 Author: Gustavo F. Padovan Date: Tue Dec 15 20:13:27 2009 -0200 Bluetooth: Ack L2CAP I-frames before retransmit missing packet Moving the Ack to before l2cap_retransmit_frame() we can avoid the case where txWindow is full and the packet can't be retransmited. Signed-off-by: Gustavo F. Padovan Signed-off-by: Marcel Holtmann commit 186de9a33803c7ee20d9af75c9049b50e68a3a08 Author: Gustavo F. Padovan Date: Tue Dec 15 15:56:34 2009 -0200 Bluetooth: Fix unset of RemoteBusy flag for L2CAP RemoteBusy flag need to be unset before l2cap_ertm_send(), otherwise l2cap_ertm_send() will return without sending packets because it checks that flag before start sending. Signed-off-by: Gustavo F. Padovan Signed-off-by: Marcel Holtmann commit 971beb83aeb2a309175682cf5683d64fd4591841 Author: Roel Kluin Date: Mon Dec 7 14:23:21 2009 +0100 Bluetooth: Fix PTR_ERR return of wrong pointer in hidp_setup_hid() Return the PTR_ERR of the correct pointer. Signed-off-by: Roel Kluin Signed-off-by: Marcel Holtmann commit d24deb2580823ab0b8425790c6f5d18e2ff749d8 Author: Gertjan van Wingerde Date: Fri Dec 4 23:46:54 2009 +0100 mac80211: Add define for TX headroom reserved by mac80211 itself. Add a definition of the amount of TX headroom reserved by mac80211 itself for its own purposes. Also add BUILD_BUG_ON to validate the value. This define can then be used by drivers to request additional TX headroom in the most efficient manner. Signed-off-by: Gertjan van Wingerde Acked-by: Johannes Berg Signed-off-by: John W. Linville commit b2ec153a637409bd87952d44409905b7d98418b8 Author: Gertjan van Wingerde Date: Mon Dec 14 14:09:49 2009 -0500 rt2x00: Fix rt2800usb detection in rt2800lib. rt2800lib incorrectly detected whether RT2800USB was enabled because it didn't account for a modularized RT2800USB driver. Signed-off-by: Gertjan van Wingerde Acked-by: Ivo van Doorn Signed-off-by: John W. Linville commit 46e75f66677f5094bb51e91f9473128c4e907c7d Author: Stephen Rothwell Date: Mon Dec 7 19:56:42 2009 +1100 net: fix for utsrelease.h moving to generated Signed-off-by: Stephen Rothwell Signed-off-by: Michal Marek commit 501706565b2d4d2d40d0d301d5411ede099b8a6f Merge: e93737b 2fe77b8 Author: David S. Miller Date: Fri Dec 11 17:12:17 2009 -0800 Merge branch 'master' of /home/davem/src/GIT/linux-2.6/ Conflicts: include/net/tcp.h commit fb34d53752d5bec5acc73422e462a9c68aeeaa2a Author: Alan Stern Date: Fri Nov 13 11:53:59 2009 -0500 USB: remove the auto_pm flag This patch (as1302) removes the auto_pm flag from struct usb_device. The flag's only purpose was to distinguish between autosuspends and external suspends, but that information is now available in the pm_message_t argument passed to suspend methods. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman commit 65182b9fb004220f250d4269c864cf0f1f372e85 Author: John W. Linville Date: Wed Dec 9 15:11:22 2009 -0500 wireless: update old static regulatory domain rules Update "US" and "JP" for current rules, and replace "EU" rules with the world roaming domain (since it was only a pseudo-domain anyway). Signed-off-by: John W. Linville commit 7b324d28a94dac5a451e8cba66e8d324601e5b9a Author: Javier Cardona Date: Wed Dec 9 18:43:01 2009 -0800 mac80211: Revert 'Use correct sign for mesh active path refresh' The patch ("mac80211: Use correct sign for mesh active path refresh.") was actually a bug. Reverted it and improved the explanation of how mesh path refresh works. Signed-off-by: Javier Cardona Signed-off-by: Andrey Yurovsky Cc: stable@kernel.org Signed-off-by: John W. Linville commit 5d618cb81aeea19879975cd1f9a1e707694dfd7c Author: Javier Cardona Date: Wed Dec 9 18:43:00 2009 -0800 mac80211: Fixed bug in mesh portal paths Paths to mesh portals were being timed out immediately after each use in intermediate forwarding nodes. mppath->exp_time is set to the expiration time so assigning it to jiffies was marking the path as expired. Signed-off-by: Javier Cardona Signed-off-by: Andrey Yurovsky Cc: stable@kernel.org Signed-off-by: John W. Linville commit 0c3cee72a403e3b4992a5478c9c33d668c246c22 Author: Julia Lawall Date: Wed Dec 9 20:25:59 2009 +0100 net/mac80211: Correct size given to memset Memset should be given the size of the structure, not the size of the pointer. The semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @@ type T; T *x; expression E; @@ memset(x, E, sizeof( + * x)) // Signed-off-by: Julia Lawall Signed-off-by: John W. Linville commit 214ac9a4ead6cb254451c09d9c8234a76693feb1 Author: Larry Finger Date: Wed Dec 9 13:25:56 2009 -0600 b43: Remove reset after fatal DMA error As shown in Kernel Bugzilla #14761, doing a controller restart after a fatal DMA error does not accomplish anything other than consume the CPU on an affected system. Accordingly, substitute a meaningful message for the restart. Signed-off-by: Larry Finger Cc: Stable [2.6.32] Signed-off-by: John W. Linville commit 49d7590ce494a971311ca55d8aaa6ea9a87b108f Author: Herton Ronaldo Krzesinski Date: Wed Dec 9 14:56:13 2009 -0200 rtl8187: add radio led and fix warnings on suspend Michael Buesch reports that his rtl8187 gives warnings on suspend ("queueing ieee80211 work while going to suspend" warnings), as rtl8187 can call ieee80211_queue_delayed_work after mac80211 is suspended. This change enhances rtl8187 led code so we can avoid queuing work after mac80211 is suspended: now we register a radio led and make additional checks to ensure led is off/on properly as mac80211 wants. Signed-off-by: Herton Ronaldo Krzesinski Tested-by: Larry Finger Cc: Stable Signed-off-by: John W. Linville commit 512414b0bed0d376ac4d5ec1dd6f0b1a3551febc Author: Luis R. Rodriguez Date: Wed Nov 25 17:23:26 2009 -0500 ath5k: enable EEPROM checksum check Without this we have no gaurantee of the integrity of the EEPROM and are likely to encounter a lot of bogus bug reports due to actual issues on the EEPROM. With the EEPROM checksum check in place we can easily rule those issues out. If you run patch during a revert *you* have a card with a busted EEPROM and only older kernel will support that concoction. This patch is a trade off between not accepitng bogus EEPROMs and avoiding bogus bug reports allowing developers to focus instead on real concrete issues. If stable keeps bogus bug reports because of a possibly busted EEPROM feel free to apply this there too. Tested on an AR5414 Cc: stable@kernel.org Cc: jirislaby@gmail.com Cc: akpm@linux-foundation.org Cc: rjw@sisk.pl Cc: me@bobcopeland.com Cc: david.quan@atheros.com Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 4ef58d4e2ad1fa2a3e5bbf41af2284671fca8cf8 Merge: f6c4c81 d014d04 Author: Linus Torvalds Date: Wed Dec 9 19:43:33 2009 -0800 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (42 commits) tree-wide: fix misspelling of "definition" in comments reiserfs: fix misspelling of "journaled" doc: Fix a typo in slub.txt. inotify: remove superfluous return code check hdlc: spelling fix in find_pvc() comment doc: fix regulator docs cut-and-pasteism mtd: Fix comment in Kconfig doc: Fix IRQ chip docs tree-wide: fix assorted typos all over the place drivers/ata/libata-sff.c: comment spelling fixes fix typos/grammos in Documentation/edac.txt sysctl: add missing comments fs/debugfs/inode.c: fix comment typos sgivwfb: Make use of ARRAY_SIZE. sky2: fix sky2_link_down copy/paste comment error tree-wide: fix typos "couter" -> "counter" tree-wide: fix typos "offest" -> "offset" fix kerneldoc for set_irq_msi() spidev: fix double "of of" in comment comment typo fix: sybsystem -> subsystem ... commit 19deffbeba930030cfaf000b920333c6ba99ad52 Author: John W. Linville Date: Tue Dec 8 17:10:13 2009 -0500 wireless: correctly report signal value for IEEE80211_HW_SIGNAL_UNSPEC This part was missed in "cfg80211: implement get_wireless_stats", probably because sta_set_sinfo already existed and was only handling dBm signals. Cc: stable@kernel.org Signed-off-by: John W. Linville commit d55fb891f9da8ee17374349ff482b2715623b7e5 Author: Vivek Natarajan Date: Tue Nov 24 11:54:10 2009 -0500 cfg80211: Clear encryption privacy when key off is done. When the current_bss is not set, 'iwconfig key off' does not clear the private flag. Hence after we connect with WEP to an AP and then try to connect with another non-WEP AP, it does not work. This issue will not be seen if supplicant is used. Signed-off-by: Vivek Natarajan Signed-off-by: John W. Linville commit cb19054697e92a793f336380fd72c588521178ff Author: Jie Yang Date: Sun Dec 6 23:16:58 2009 +0000 atl1c:use common_task instead of reset_task and link_chg_task use common_task instead of reset_task and link_chg_task, so it fix "call cancel_work_sync from the work itself". Signed-off-by: Jie Yang Signed-off-by: David S. Miller commit 4b45e3424e7210688f95039b8cdffb11d2e48934 Author: Jie Yang Date: Sun Dec 6 22:56:59 2009 +0000 atl1c:add pci map direction in atl1c_buffer flags add pci map direction in atl1c_buffer flags, it is used when call pci_unmap apis. Signed-off-by: Jie Yang Signed-off-by: David S. Miller commit 6a213afd058436dbbd01098d7422c6a0073c39b5 Author: Shahar Or Date: Mon Dec 7 12:05:54 2009 +0200 ath5k: add support for Dell Vostro A860 LED Adds support for the WiFi activity LED on the Dell Vostro A860 laptop. Signed-off-by: Shahar Or Signed-off-by: John W. Linville commit a589296a3592c8879cef8fd13518fed18c5fa5a3 Author: David Kilroy Date: Sun Dec 6 19:28:47 2009 +0000 orinoco: remove spare KERN_DEBUG A KERN_DEBUG didn't get removed when transitioning from printk to pr_debug Signed-off-by: David Kilroy Signed-off-by: John W. Linville commit 70d57139f932b9ca21026253d02af71cf53d764a Author: Larry Finger Date: Sat Dec 5 19:25:22 2009 -0600 rtl8187: Fix wrong rfkill switch mask for some models There are different bits used to convey the setting of the rfkill switch to the driver. The current driver only supports one of these possibilities. These changes were derived from the latest version of the vendor driver. This patch fixes the regression noted in kernel Bugzilla #14743. Signed-off-by: Larry Finger Reported-and-tested-by: Antti Kaijanmäki Tested-by: Hin-Tak Leung Cc: Stable Signed-off-by: John W. Linville commit 815833e7ecf0b9a017315cae6aef4d7cd9517681 Author: Felix Fietkau Date: Sat Dec 5 18:08:05 2009 +0100 ath9k: fix tx status reporting This patch fixes a bug in ath9k's tx status check, which caused mac80211 to consider regularly transmitted unicast frames as un-acked. When checking the ts_status field for errors, it needs to be masked with ATH9K_TXERR_FILT, because this field also contains other fields like ATH9K_TX_ACKED. Without this patch, AP mode is pretty much unusable, as hostapd checks the ACK status for the frames that it injects. Signed-off-by: Felix Fietkau Signed-off-by: John W. Linville commit 1814077fd12a9cdf478c10076e9c42094e9d9250 Author: Vasanthakumar Thiagarajan Date: Fri Dec 4 17:41:34 2009 +0530 mac80211: Fix bug in computing crc over dynamic IEs in beacon On a 32-bit machine, BIT() macro does not give the required bit value if the bit is mroe than 31. In ieee802_11_parse_elems_crc(), BIT() is suppossed to get the bit value more than 31 (42 (id of ERP_INFO_IE), 37 (CHANNEL_SWITCH_IE), (42), 32 (POWER_CONSTRAINT_IE), 45 (HT_CAP_IE), 61 (HT_INFO_IE)). As we do not get the required bit value for the above IEs, crc over these IEs are never calculated, so any dynamic change in these IEs after the association is not really handled on 32-bit platforms. This patch fixes this issue. Cc: stable@kernel.org Signed-off-by: Vasanthakumar Thiagarajan Signed-off-by: John W. Linville commit 02f7f1793023bd8e5e277ad349f6f43f8c284fb0 Author: Andrew Morton Date: Thu Dec 3 20:45:07 2009 -0800 net/rfkill/core.c: work around gcc-4.0.2 silliness net/rfkill/core.c: In function 'rfkill_type_show': net/rfkill/core.c:610: warning: control may reach end of non-void function 'rfkill_get_type_str' being inlined A gcc bug, but simple enough to squish. Cc: John W. Linville Cc: Johannes Berg Cc: David S. Miller Signed-off-by: Andrew Morton Signed-off-by: John W. Linville commit 16cec43da50c4b4702653ca710549fd3457a4e6c Author: Lennert Buytenhek Date: Mon Nov 30 18:14:23 2009 +0100 mwl8k: don't complain about oversized beacons in FINALIZE_JOIN The FINALIZE_JOIN firmware command only looks at the first couple of fields in the beacon, and therefore it's not necessary to complain if the beacon is longer than 128 bytes. Signed-off-by: Lennert Buytenhek Signed-off-by: John W. Linville commit d1844d77692de3158ad458ed4c7b86d78ab4085e Author: Lennert Buytenhek Date: Mon Nov 30 18:13:56 2009 +0100 mwl8k: don't overwrite mwl8k_vif::bssid until after disassociation When disassociating, mac80211 zeroes vif->bss_info.bssid before calling our ->bss_info_changed(), but we need the BSSID to remove the hardware station database entry for our AP, so we can't clear our local copy of the BSSID until after we've done that. Signed-off-by: Lennert Buytenhek Signed-off-by: John W. Linville commit d8a8dd8f07aed82492c089ad13fd3d7476b692fd Author: Lennert Buytenhek Date: Mon Nov 30 18:13:42 2009 +0100 mwl8k: struct ieee80211_rx_status::qual is deprecated Signed-off-by: Lennert Buytenhek Signed-off-by: John W. Linville commit 3db95e50c8813d8ed04a1ec7cd7b77dba7c81c80 Author: Lennert Buytenhek Date: Mon Nov 30 18:13:34 2009 +0100 mwl8k: don't forget to call pci_disable_device() Don't forget to call pci_disable_device() if pci_request_regions() fails during probe. Signed-off-by: Lennert Buytenhek Signed-off-by: John W. Linville commit 89b872e2e476833cde8aaac658c75817f67e8f81 Author: Lennert Buytenhek Date: Mon Nov 30 18:13:20 2009 +0100 mwl8k: increase firmware loading timeouts The time between loading the helper image and starting to upload the main firmware image should be at least 5 ms or so. We were doing an msleep(1) before, and 1 ms appears to not be enough in almost all cases, but building with HZ=100 has always masked this so far. Bumping the msleep argument to 5 fixes firmware loading e.g. when HZ=1000. Some firmware images need more than 200ms to initialize. Bump the ready code timeout to 500ms to accommodate for this. Signed-off-by: Lennert Buytenhek Signed-off-by: John W. Linville commit 7e1112d34aea10fdd689422e6bdc918309043bf3 Author: Lennert Buytenhek Date: Mon Nov 30 18:13:04 2009 +0100 mwl8k: allow more time for transmit rings to drain Before issuing any firmware commands, we wait for the transmit rings to drain, to prevent control versus data path synchronization issues. In some cases, this can end up taking longer than the current hardcoded limit of 5 seconds, for example if the transmit rings are filled with packets for a host that has dropped off the air and we end up retransmitting every pending packet at the lowest rate a couple of times. This patch changes mwl8k_tx_wait_empty() to only bail out on timeout expiry if there was no change in the number of packets pending in the transmit rings during the waiting period. If at least one transmit ring entry was reclaimed while we were waiting, we are apparently still making progress, and we'll allow waiting for another timeout period. Signed-off-by: Lennert Buytenhek Signed-off-by: John W. Linville commit 0c9cc640225f4bd7c9aad87b1431bd8d9a29b338 Author: Lennert Buytenhek Date: Mon Nov 30 18:12:49 2009 +0100 mwl8k: allow more time for firmware commands to complete Some firmware commands can under some circumstances take more than 2 seconds to complete. This patch bumps the timeout up to 10 seconds, and prints a message whenever a command takes more than 2 seconds. Signed-off-by: Lennert Buytenhek Signed-off-by: John W. Linville commit 8e9f33f0ced82a797d285b233e1c956cbd5c7de3 Author: Lennert Buytenhek Date: Mon Nov 30 18:12:35 2009 +0100 mwl8k: properly report rate on received 40MHz packets On 8366, bit 6 in the rx descriptor rate field indicates whether the packet was received on a 20MHz or 40MHz channel, and is not part of the MCS index. Handle this properly, which then prevents hitting the WARN_ON and being dropped in ieee80211_rx(). Signed-off-by: Lennert Buytenhek Signed-off-by: John W. Linville commit ca00930153c14b323c31b97623ac5c4f7855ed6a Author: Lennert Buytenhek Date: Mon Nov 30 18:12:20 2009 +0100 mwl8k: fix addr4 zeroing and payload overwrite on DMA header creation When inserting a DMA header into a packet for transmission, mwl8k_add_dma_header() would blindly zero the addr4 field, which is not a good idea if the packet being transmitted is actually a 4-address packet. Also, if the transmitted packet was a 4-address with QoS packet, the memmove() to do the needed header reshuffling would inadvertently overwrite the first two bytes of the packet payload with the QoS field. This fixes both of these issues. Signed-off-by: Lennert Buytenhek Signed-off-by: John W. Linville commit 20f09c3df7a8a623c290f62596c1a6b0da088030 Author: Lennert Buytenhek Date: Mon Nov 30 18:12:08 2009 +0100 mwl8k: prevent corruption of QoS field on receive Packets exchanged between the mwl8k driver and the firmware always have a 4-address header without QoS field. For QoS packets, the QoS field is passed to/from the firmware via the tx/rx descriptors. We were handling this correctly on transmit, but not on receive -- if a QoS packet was received, we would leave garbage in the QoS field in the packet passed up to the stack, which is Bad(tm). Also, if the packet received on the air was a 4-address without QoS packet, we would forget to skb_pull the 2-byte DMA length prefix off. This patch adds an argument to the ->rxd_process() receive descriptor operation to retrieve the QoS field from the receive descriptor, and extends mwl8k_remove_dma_header() to insert this field back into the packet if the packet received is a QoS packet. It also fixes mwl8k_remove_dma_header() to strip off the length prefix in all cases. Signed-off-by: Lennert Buytenhek Signed-off-by: John W. Linville commit 140eb5e2c1978622d7cd979d59a1c0586fe3bbdb Author: Lennert Buytenhek Date: Mon Nov 30 18:11:44 2009 +0100 mwl8k: fix UPDATE_STADB command struct legacy_rates array length There exist 12 802.11b/g rates, but mwl8k supports two additional (non-standard) rates, and includes those rates in rate bitmasks and in its internal rate table that hardware rate indices index. Commit "mwl8k: report rate and other information for received frames" added one of the nonstandard rates to the mwl8k_rates table to make the OFDM rates in the table line up with the rate indices that are reported in the receive descriptor (so that we can just simply copy the receive descriptor rate index into ieee80211_rx_status::rate_idx) and bumped MWL8K_IEEE_LEGACY_DATA_RATES from 12 to 13, but this screwed up the UPDATE_STADB command struct layout, as it also uses that define, for its legacy_rates array. To avoid having to convert rate indices and legacy rate bitmaps (e.g. ieee80211_bss_conf::basic_rates) between the 12-rate mac80211 format and the 14-rate mwl8k format, we'll report all 14 rates in our wiphy's band, but filter out the nonstandard ones e.g. in the case of the UPDATE_STADB command which only accepts 12 rates. In the commands that accept 14 rates (SET_AID, SET_RATE), replace the use of the MWL8K_RATE_INDEX_MAX_ARRAY define in the command struct by the constant 14, to make it clearer that these commands accept 14 rates. Signed-off-by: Lennert Buytenhek Signed-off-by: John W. Linville commit 0b5351a8e86292dfac1ca1451deaadb416a33cb8 Author: Lennert Buytenhek Date: Mon Nov 30 18:11:18 2009 +0100 mwl8k: fix MCS bitmap size in SET_RATE command The MCS bitmaps in the SET_RATE command structure were of the wrong size, due to use of the wrong define for the array length. Just hardcode the lengths as 16, and do the same for the MCS bitmaps in other command structures. Signed-off-by: Lennert Buytenhek Signed-off-by: John W. Linville commit 7c3f4bbedc241ddcd3abe1f419c356e625231da1 Author: Vivek Natarajan Date: Mon Nov 30 16:50:53 2009 +0530 mac80211: Fix dynamic power save for scanning. Not only ps_sdata but also IEEE80211_CONF_PS is to be considered before restoring PS in scan_ps_disable(). For instance, when ps_sdata is set but CONF_PS is not set just because the dynamic timer is still running, a sw scan leads to setting of CONF_PS in scan_ps_disable instead of restarting the dynamic PS timer. Also for the above case, a null data frame is to be sent after returning to operating channel which was not happening with the current implementation. This patch fixes this too. Signed-off-by: Vivek Natarajan Reviewed-by: Kalle Valo Signed-off-by: John W. Linville commit bc83b6819289c031c439a5aa18ba0fd539d14f3e Author: Johannes Berg Date: Sun Nov 29 12:19:06 2009 +0100 mac80211: recalculate idle later in MLME hwsim testing has revealed that when the MLME recalculates the idle state of the device, it sometimes does so before sending the final deauthentication or disassociation frame. This patch changes the place where the idle state is recalculated, but of course driver transmit is typically asynchronous while configuration is expected to be synchronous, so it doesn't fix all possible cases yet. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit c14589eb3080636a2f71ebaf21ab9fd70ffc20cc Author: Kalle Valo Date: Thu Nov 26 10:56:13 2009 +0200 wl1251: don't build null data template in wl1251_op_config() The bssid can be zero when null data template is set in wl1251_op_config(). It's enough, and especially safe, to set it once after association. Signed-off-by: Kalle Valo Signed-off-by: John W. Linville commit de8df1ea489d80106ea82d4a6323e83d376913fb Author: Kalle Valo Date: Thu Nov 26 10:56:06 2009 +0200 wl1251: fix bssid handling bssid needs to be copied first in wl1251_op_bss_info_changed(), otherwise templates will have incorrect bssid and power save will not work correctly. Signed-off-by: Kalle Valo Signed-off-by: John W. Linville commit e84217a9fc6264fe4e73fc85cdfff185b71b7443 Author: Kalle Valo Date: Thu Nov 26 10:55:55 2009 +0200 wl1251: remove false warning messages There was a warning from wl1251_op_bss_info_changed(): wl1251: WARNING Set ctsprotect failed 0 It was printed always, it's completely false and can be removed. Signed-off-by: Kalle Valo Signed-off-by: John W. Linville commit 9b1cb21c36b39057ec28a8b551f301449e5c51bb Author: John W. Linville Date: Mon Dec 7 16:37:42 2009 -0500 iwlwifi: fix warning from ieee80211_stop_tx_ba_cb_irqsafe argument change CC [M] drivers/net/wireless/iwlwifi/iwl-tx.o drivers/net/wireless/iwlwifi/iwl-tx.c: In function ‘iwl_tx_agg_stop’: drivers/net/wireless/iwlwifi/iwl-tx.c:1356: warning: passing argument 1 of ‘ieee80211_stop_tx_ba_cb_irqsafe’ from incompatible pointer type include/net/mac80211.h:2128: note: expected ‘struct ieee80211_vif *’ but argument is of type ‘struct ieee80211_hw *’ Signed-off-by: John W. Linville commit d014d043869cdc591f3a33243d3481fa4479c2d0 Merge: 6ec22f9 6070d81 Author: Jiri Kosina Date: Mon Dec 7 18:36:35 2009 +0100 Merge branch 'for-next' into for-linus Conflicts: kernel/irq/chip.c commit 28b4d5cc17c20786848cdc07b7ea237a309776bb Merge: d29cecd 96fa2b5 Author: David S. Miller Date: Sat Dec 5 15:22:26 2009 -0800 Merge branch 'master' of /home/davem/src/GIT/linux-2.6/ Conflicts: drivers/net/pcmcia/fmvj18x_cs.c drivers/net/pcmcia/nmclan_cs.c drivers/net/pcmcia/xirc2ps_cs.c drivers/net/wireless/ray_cs.c commit d9b2c4d0b03c721808c0d259e43a27f1e80205bc Merge: 27d16d0 5fa9167 Author: Linus Torvalds Date: Sat Dec 5 09:42:59 2009 -0800 Merge git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia-2.6 * git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia-2.6: (50 commits) pcmcia: rework the irq_req_t typedef pcmcia: remove deprecated handle_to_dev() macro pcmcia: pcmcia_request_window() doesn't need a pointer to a pointer pcmcia: remove unused "window_t" typedef pcmcia: move some window-related code to pcmcia_ioctl.c pcmcia: Change window_handle_t logic to unsigned long pcmcia: Pass struct pcmcia_socket to pcmcia_get_mem_page() pcmcia: Pass struct pcmcia_device to pcmcia_map_mem_page() pcmcia: Pass struct pcmcia_device to pcmcia_release_window() drivers/pcmcia: remove unnecessary kzalloc pcmcia: correct handling for Zoomed Video registers in topic.h pcmcia: fix printk formats pcmcia: autoload module pcmcia pcmcia/staging: update comedi drivers PCMCIA: stop duplicating pci_irq in soc_pcmcia_socket PCMCIA: ss: allow PCI IRQs > 255 PCMCIA: soc_common: remove 'dev' member from soc_pcmcia_socket PCMCIA: soc_common: constify soc_pcmcia_socket ops member PCMCIA: sa1111: remove duplicated initializers PCMCIA: sa1111: wrap soc_pcmcia_socket to contain sa1111 specific data ... commit 6070d81eb5f2d4943223c96e7609a53cdc984364 Author: Adam Buchbinder Date: Fri Dec 4 15:47:01 2009 -0500 tree-wide: fix misspelling of "definition" in comments "Definition" is misspelled "defintion" in several comments; this patch fixes them. No code changes. Signed-off-by: Adam Buchbinder Signed-off-by: Jiri Kosina commit d29cecda036f251aee4947f47eea0fe9ed8cc931 Author: Johannes Berg Date: Fri Dec 4 14:25:43 2009 -0800 mac80211: fix reorder buffer release My patch "mac80211: correctly place aMPDU RX reorder code" uses an skb queue for MPDUs that were released from the buffer. I intentially didn't initialise and use the skb queue's spinlock, but in this place forgot that the code variant that doesn't touch the spinlock is needed. Thanks to Christian Lamparter for quickly spotting the bug in the backtrace Reinette reported. Reported-by: Reinette Chatre Bug-identified-by: Christian Lamparter Tested-by: Reinette Chatre Signed-off-by: Johannes Berg Signed-off-by: John W. Linville Signed-off-by: David S. Miller commit 8f56874bd7e8bee73ed6a1cf80dcec2753616262 Merge: 47e1c32 159bcfe Author: David S. Miller Date: Fri Dec 4 13:25:15 2009 -0800 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 commit 159bcfeb9123c91f0dc885a42b6387a98192f896 Author: Samuel Ortiz Date: Thu Dec 3 11:40:18 2009 +0100 iwmc3200wifi: Enable wimax core through module parameter When debugging the wifi firmware, we need to disable the wimax core to gain some memory space. The default value will keep the wimax core enabled. Signed-off-by: Samuel Ortiz Signed-off-by: John W. Linville commit 43b5ffe1162a7fbaa89f1c392a28ac54c2e932f7 Author: Samuel Ortiz Date: Thu Dec 3 11:40:17 2009 +0100 iwmc3200wifi: Add wifi-wimax coexistence mode as a module parameter Wifi and wimax coexistence mode is set by wifi at boot time. There can be several modes, defined by priority tables. User space components can decide which one to select by writing to /sys/module/iwmc3200wifi/parameters/wiwi with this patch, before bringing the interface up. Signed-off-by: Samuel Ortiz Signed-off-by: John W. Linville commit 1ee9d426ff8ae8312137fc9407eff23ca81cef26 Author: Samuel Ortiz Date: Thu Dec 3 11:40:16 2009 +0100 iwmc3200wifi: Coex table command does not expect a response When sending the wiwi coexistence priority table, we should not tell the LMAC that we want a response. Signed-off-by: Samuel Ortiz Signed-off-by: John W. Linville commit f330d4f9dfd50c1870a3c4b4b3f855e78eb9ceaa Author: Samuel Ortiz Date: Thu Dec 3 11:40:15 2009 +0100 iwmc3200wifi: Update wiwi priority table This update follows the firmware engineers recommendations. Signed-off-by: Samuel Ortiz Signed-off-by: John W. Linville commit 250cce26d5d03337aec4ff8405121f026adb4a89 Author: Reinette Chatre Date: Wed Dec 2 12:53:01 2009 -0800 iwlwifi: driver version track kernel version The driver version number is a remnant from when there was an out-of-tree iwlwifi driver. Now that the driver forms part of kernel source we do not need a separate driver version. Instead, we now use the kernel version as driver version. We maintain the previous tags used to indicate which components the driver has been compiled with. Signed-off-by: Reinette Chatre Acked-by: Wey-Yi Guy Signed-off-by: John W. Linville commit 212fb57519a65c8e15bd3f5db87c3328fcde88de Author: Wey-Yi Guy Date: Wed Dec 2 12:53:00 2009 -0800 iwlwifi: indicate uCode type when fail dump error/event log error_event_table_ptr is only set upon receipt of REPLY_ALIVE. Until then both event log and error log will fail. Add information to indicate which uCode encounter the failure case. Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit bd3709b546f0113b41f0ecceaf3452a073739bbc Author: Wey-Yi Guy Date: Wed Dec 2 12:52:59 2009 -0800 iwl3945: remove duplicated event logging code In the process of improving uCode event logging capability, the new implementation was introduced without removing the existing implementation. The event log will be dumped to dmesg twice. Remove the old implementation to only log the event once upon sys assert or request by user. Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit df98a4967002d0df88d92f89662261e3a7867cf7 Author: Johannes Berg Date: Wed Dec 2 11:20:36 2009 +0100 b43: fix two warnings My gcc appears to be able to see past the function boundary and notices that the variable 'behaviour' could be used uninitialised: drivers/net/wireless/b43/leds.c: In function ‘b43_leds_register’: drivers/net/wireless/b43/leds.c:339: warning: ‘behaviour’ may be used uninitialized in this function drivers/net/wireless/b43/leds.c: In function ‘b43_leds_init’: drivers/net/wireless/b43/leds.c:262: warning: ‘behaviour’ may be used uninitialized in this function because b43_led_get_sprominfo() didn't initialise it in all cases. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 52ce3e9a7db754b78cf2cbabc87013f921b25b28 Author: Zhu Yi Date: Wed Dec 2 14:24:37 2009 +0800 ipw2100: fix rebooting hang with driver loaded Add PCI .shutdown method so that we can disable the device during shutdown or reboot. Without this, the reboot doesn't work well on some platforms. This fixes http://bugzilla.intellinuxwireless.org/show_bug.cgi?id=2124 Tested-by: pablo Signed-off-by: Zhu Yi Signed-off-by: John W. Linville commit 269ac5fd2d75b118d76a2291e28796527db2f3f8 Author: Kalle Valo Date: Tue Dec 1 10:47:15 2009 +0200 cfg80211: indent regulatory messages with spaces The regulatory messages in syslog look weird: kernel: cfg80211: Regulatory domain: US kernel: ^I(start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp) kernel: ^I(2402000 KHz - 2472000 KHz @ 40000 KHz), (600 mBi, 2700 mBm) kernel: ^I(5170000 KHz - 5190000 KHz @ 40000 KHz), (600 mBi, 2300 mBm) kernel: ^I(5190000 KHz - 5210000 KHz @ 40000 KHz), (600 mBi, 2300 mBm) kernel: ^I(5210000 KHz - 5230000 KHz @ 40000 KHz), (600 mBi, 2300 mBm) kernel: ^I(5230000 KHz - 5330000 KHz @ 40000 KHz), (600 mBi, 2300 mBm) kernel: ^I(5735000 KHz - 5835000 KHz @ 40000 KHz), (600 mBi, 3000 mBm) Indent them with four spaces instead of the tab character to get prettier output. Signed-off-by: Kalle Valo Acked: Luis R. Rodriguez Signed-off-by: John W. Linville commit 6646a664e3b60bf3e5db676e0626e6ccd71b3363 Author: Zhu Yi Date: Tue Dec 1 11:48:50 2009 +0800 iwmc3200wifi: fix NULL pointer dereference in pmkid update When handling IWM_CMD_PMKID_FLUSH command, the bssid and pmkid in pmksa are all NULL. Check it before memcpy. Signed-off-by: Zhu Yi Acked-by: Samuel Ortiz Signed-off-by: John W. Linville commit 914828fad09269292be1bfa3dfbe78d064f76068 Author: Jouni Malinen Date: Sun Nov 29 14:29:42 2009 +0200 mac80211: Fix TX status reporting for injected data frames An earlier optimization on removing unnecessary traffic on cooked monitor interfaces ("mac80211: reduce the amount of unnecessary traffic on cooked monitor interfaces ") ended up removing quite a bit more than just unnecessary traffic. It was not supposed to remove TX status reporting for injected frames, but ended up doing it by checking the injected flag in skb->cb only after that field had been cleared with memset.. Fix this by taking a local copy of the injected flag before skb->cb is cleared. This broke user space applications that depend on getting TX status notifications for injected data frames. For example, STA inactivity poll from hostapd did not work and ended up kicking out stations even if they were still present. Signed-off-by: Jouni Malinen Signed-off-by: John W. Linville commit a9a29ce674ac62e7bfcb6c1404ca86cda4782988 Author: Gabor Juhos Date: Fri Nov 27 12:01:35 2009 +0100 ath9k: enable 2GHz band only if the device supports it Currently, the 2GHz band is enabled unconditionally, even if the device does not support it. Changes-licensed-under: ISC Signed-off-by: Gabor Juhos Signed-off-by: John W. Linville commit 1f351e3840dcf25aaddec2d908c3ab06ae105ee6 Author: Michael Buesch Date: Wed Nov 25 22:55:11 2009 +0100 airo: Fix integer overflow warning On BigEndian gcc complains: drivers/net/wireless/airo.c: In function ‘sniffing_mode’: drivers/net/wireless/airo.c:4809: warning: integer overflow in expression Fix this by doing the bitwise AND on the host-endian value. Signed-off-by: John W. Linville commit a5186e997524578b4ba91390ad947c767450dac8 Author: Gertjan van Wingerde Date: Tue Nov 24 23:11:32 2009 +0100 rt2x00: Fix padding bug on L2PAD devices. While reviewing the l2pad function to align both the header and the payload on a DMA-capable boundary a bug was discovered where the payload would not be properly aligned. The header_align value was used where the payload_align value should have been used. Signed-off-by: Gertjan van Wingerde Signed-off-by: John W. Linville commit 1014eb6ec95b18f890101e99385f05539c0c2f01 Author: Jean Tourrilhes Date: Tue Nov 24 10:47:08 2009 -0800 WE: Fix set events not propagated I've just noticed that some events are no longer propagated for some wireless drivers. Basically, SET request with a extra payload for driver without commit handler. The fix is pretty simple, see attached. Actually, a few lines below this line, you will see that the event generation for simple SET (iwpoint-less ?) is done properly, and this other event generation does not need fixing. Signed-off-by: Jean Tourrilhes Signed-off-by: John W. Linville commit 316a4d966cae3c2dec83ebb1ee1a3515f97b30ff Author: Larry Finger Date: Mon Nov 23 18:42:36 2009 -0600 b43legacy: avoid PPC fault during resume For PPC architecture with PHY Revision < 3, a read of the register B43_MMIO_HWENABLED_LO will cause a CPU fault unless b43legacy_status() returns a value of 2 (B43legacy_STAT_STARTED); however, one finds that the driver is unable to associate after resuming from hibernation unless this routine returns 1. To satisfy both conditions, the routine is rewritten to return TRUE whenever b43legacy_status() returns a value < 2. This patch fixes the second problem listed in the postings for Red Hat Bugzilla #538523. Signed-off-by: Larry Finger Cc: Stable Signed-off-by: John W. Linville commit c2ff581acab16c6af56d9e8c1a579bf041ec00b1 Author: Larry Finger Date: Mon Nov 23 18:40:45 2009 -0600 b43: avoid PPC fault during resume The routine b43_is_hw_radio_enabled() has long been a problem. For PPC architecture with PHY Revision < 3, a read of the register B43_MMIO_HWENABLED_LO will cause a CPU fault unless b43_status() returns a value of 2 (B43_STAT_STARTED) (BUG 14181). Fixing that results in Bug 14538 in which the driver is unable to reassociate after resuming from hibernation because b43_status() returns 0. The correct fix would be to determine why the status is 0; however, I have not yet found why that happens. The correct value is found for my device, which has PHY revision >= 3. Returning TRUE when the PHY revision < 3 and b43_status() returns 0 fixes the regression for 2.6.32. This patch fixes the problem in Red Hat Bugzilla #538523. Signed-off-by: Larry Finger Tested-by: Christian Casteyde Signed-off-by: John W. Linville commit af901ca181d92aac3a7dc265144a9081a86d8f39 Author: André Goddard Rosa Date: Sat Nov 14 13:09:05 2009 -0200 tree-wide: fix assorted typos all over the place That is "success", "unknown", "through", "performance", "[re|un]mapping" , "access", "default", "reasonable", "[con]currently", "temperature" , "channel", "[un]used", "application", "example","hierarchy", "therefore" , "[over|under]flow", "contiguous", "threshold", "enough" and others. Signed-off-by: André Goddard Rosa Signed-off-by: Jiri Kosina commit bf48aabb894fd0639ab72a26e8abbd7683ef23c2 Author: Uwe Kleine-König Date: Wed Oct 28 20:11:03 2009 +0100 tree-wide: fix typos "offest" -> "offset" This patch was generated by git grep -E -i -l 'offest' | xargs -r perl -p -i -e 's/offest/offset/' Signed-off-by: Uwe Kleine-König Signed-off-by: Jiri Kosina commit 94e2bd688820aed72b4f8092f88c2ccf64e003de Author: Thadeu Lima de Souza Cascardo Date: Fri Oct 16 15:20:49 2009 +0200 tree-wide: fix some typos and punctuation in comments fix some typos and punctuation in comments Signed-off-by: Thadeu Lima de Souza Cascardo Signed-off-by: Jiri Kosina commit a7fca0ccecd3f5a111e08df8439f0b884099ad59 Merge: 424eff9 2861453 Author: David S. Miller Date: Thu Dec 3 13:51:02 2009 -0800 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/holtmann/bluetooth-next-2.6 commit 8e95a2026f3b43f7c3d676adaccd2de9532e8dcc Author: Joe Perches Date: Thu Dec 3 07:58:21 2009 +0000 drivers/net: Move && and || to end of previous line Only files where David Miller is the primary git-signer. wireless, wimax, ixgbe, etc are not modified. Compile tested x86 allyesconfig only Not all files compiled (not x86 compatible) Added a few > 80 column lines, which I ignored. Existing checkpatch complaints ignored. Signed-off-by: Joe Perches Signed-off-by: David S. Miller commit 2861453b1b5e022fd5e1294b8fbf39254440b661 Author: Ben Hutchings Date: Sat Nov 7 21:41:18 2009 +0000 Bluetooth: Declare MODULE_FIRMWARE for Marvell SDIO driver Signed-off-by: Ben Hutchings Signed-off-by: Marcel Holtmann commit eae38eede2e5f70d65f09327297bd698b0d3ea7e Author: Marcel Holtmann Date: Mon Oct 5 12:23:48 2009 +0200 Bluetooth: Add RFCOMM option to use L2CAP ERTM mode By default the RFCOMM layer would still use L2CAP basic mode. For testing purposes this option enables RFCOMM to select enhanced retransmission mode. Signed-off-by: Marcel Holtmann commit 5fbcd3d1a07e234583e17830e8aef47282c22141 Author: Marcel Holtmann Date: Mon Oct 5 11:35:43 2009 +0200 Bluetooth: Add L2CAP option for max transmit value For testing purposes it is important to modify the max transmit value. Signed-off-by: Marcel Holtmann commit 32fd63981ed453bd882f22e3e9b0ccbc11fb47e5 Author: Amitkumar Karwar Date: Wed Sep 30 11:18:30 2009 -0700 Bluetooth: Enable auto sleep mode for btmrvl driver The auto sleep mode for btmrvl driver is not enabled by default. This patch enables auto sleep mode when card is probed. Signed-off-by: Amitkumar Karwar Signed-off-by: Bing Zhao Signed-off-by: Marcel Holtmann commit 2ab25cdd7b54473dd42dcffc9872737de2517466 Author: Gustavo F. Padovan Date: Sat Oct 3 02:34:40 2009 -0300 Bluetooth: Fix 'SendRRorRNR' to send the ReqSeq value SendRRorRNR needs to acknowledge received I-frames (actually every packet needs to acknowledge received I-frames by sending the proper packet sequence number), so ReqSeq is set to the next I-frame number sequence to be pulled by the reassembly function. SendRRorRNR tells the remote side about local busy conditions, it sends a Receiver Ready frame if local busy is false or a Receiver Not Ready if local busy is true. ReqSeq is the packet's field to send the number of the acknowledged packets. Signed-off-by: Gustavo F. Padovan Signed-off-by: Marcel Holtmann commit 4ec10d9720ef78cd81d8bcc30a3238665744569f Author: Gustavo F. Padovan Date: Sat Oct 3 02:34:39 2009 -0300 Bluetooth: Implement RejActioned flag RejActioned is used to prevent retransmission when a entity is on the WAIT_F state, i.e., waiting for a frame with F-bit set due local busy condition or a expired retransmission timer. (When these two events raise they send a frame with the Poll bit set and enters in the WAIT_F state to wait for a frame with the Final bit set.) The local entity doesn't send I-frames(the data frames) until the receipt of a frame with F-bit set. When that happens it also set RejActioned to false. RejActioned is a mandatory feature of ERTM spec. Signed-off-by: Gustavo F. Padovan Signed-off-by: Marcel Holtmann commit 9f121a5a80b4417c6db5a35e26d2e79c29c3fc0d Author: Gustavo F. Padovan Date: Sat Oct 3 02:34:38 2009 -0300 Bluetooth: Fix sending ReqSeq on I-frames As specified by ERTM spec an ERTM channel can acknowledge received I-frames(the data frames) by sending an I-frame with the proper ReqSeq value (i.e. ReqSeq is set to BufferSeq). Until now we aren't setting the ReqSeq value on I-frame control bits. That way we can save sending S-frames(Supervise frames) only to acknowledge receipt of I-frames. It is very helpful to the full-duplex channel. ReqSeq is the packet sequence number sent in an acknowledgement frame to acknowledge receipt of frames up to (ReqSeq - 1). BufferSeq controls the receiver buffer, it is used to delay acknowledgement of new frames to not cause buffer overflow. BufferSeq value is not increased until frames are pulled by reassembly function. Signed-off-by: Gustavo F. Padovan Signed-off-by: Marcel Holtmann commit 889a3ca466018ab68363c3168993793bc2d984f1 Author: Gustavo F. Padovan Date: Sat Oct 3 02:34:37 2009 -0300 Bluetooth: Fix unset of SrejActioned flag SrejActioned is a flag that when set prevents local side to retransmit a I-frame(the data frame) already retransmitted. The local entity can retransmit again only when it receives a SREJ frame with the F-bit set. SREJ frame - Selective Reject frame - is sent when an entity wants the retransmission of a specific I-frame that was lost or corrupted. This bug can put ERTM in an unknown state once the entity can't retransmit. A frame with the Final bit set is expected when the local side sends a frame with the Poll bit set due to a local busy condition or a retransmission timer expired. (Receipt of P-bit shall always be replied by a frame with the F-bit set). pi->conn_state keeps informations about many ERTM flags including SrejActioned. Signed-off-by: Gustavo F. Padovan Signed-off-by: Marcel Holtmann commit 0565c1c24af94130b891f989fa608faddfadc52c Author: Gustavo F. Padovan Date: Sat Oct 3 02:34:36 2009 -0300 Bluetooth: Initialize variables and timers for both channel's sides Fix ERTM's full-duplex channel to work as specified by ERTM spec. ERTM needs to handle state vars, timers and counters to send and receive I-frames(the data frames), i.e., for both sides of data communication. We initialize all of them to the default values here. Full-duplex channel is a mandatory feature of ERTM spec. Signed-off-by: Gustavo F. Padovan Signed-off-by: Marcel Holtmann commit cde9f807f003676862178a6f28b52c7d431511ed Author: Vikram Kandukuri Date: Thu Dec 3 15:12:51 2009 +0530 Bluetooth: Fix handling of BNEP setup connection requests According to BNEP test specification the proper response should be sent for a setup connection request message after the BNEP connection setup has been completed. Signed-off-by: Vikram Kandukuri Signed-off-by: Marcel Holtmann commit c78ae283145d3a8799b2fb01650166a66af3bff8 Author: Marcel Holtmann Date: Wed Nov 18 01:02:54 2009 +0100 Bluetooth: Unobfuscate tasklet_schedule usage The tasklet schedule function helpers are just an obfuscation. So remove them and call the schedule functions directly. Signed-off-by: Marcel Holtmann commit 76bca88012e1d27de794f32cc551d6314d38b6d9 Author: Marcel Holtmann Date: Wed Nov 18 00:40:39 2009 +0100 Bluetooth: Turn hci_recv_frame into an exported function For future simplification it is important that the hci_recv_frame function is no longer an inline function. So move it into the module itself and export it. Signed-off-by: Marcel Holtmann commit 7e21addcd0ad87696c17409399e56e874931da57 Author: Marcel Holtmann Date: Wed Nov 18 01:05:00 2009 +0100 Bluetooth: Return ENETDOWN when interface is down Sending commands to a down interface results in a timeout while clearly it should just return ENETDOWN. When using the ioctls this works fine, but not when using the HCI sockets sendmsg interface. Signed-off-by: Marcel Holtmann commit 2da31939a42f7a676a0bc5155d6a0a39ed8451f2 Author: Jiri Kosina Date: Thu Nov 26 16:20:56 2009 +0100 Bluetooth: Implement raw output support for HIDP layer Implement raw output callback which is used by hidraw to send raw data to the underlying device. Without this patch, the userspace hidraw-based applications can't send output reports to HID Bluetooth devices. Reported-and-tested-by: Brian Gunn Signed-off-by: Jiri Kosina Signed-off-by: Marcel Holtmann commit fed4c2508b7419d0a55958fead6151b32def1683 Author: Marcel Holtmann Date: Thu Dec 3 18:07:28 2009 +0100 Bluetooth: Fix miscdev ops owner for virtual driver The /dev/vhci ops don't refer to the module and so it is possible to unload the module while the file descriptor is in use. This was an accidental removal after the cleanup. Signed-off-by: Marcel Holtmann commit 329ab1b3e6ceac3f77ab400206a97cc402624259 Author: Marcel Holtmann Date: Thu Dec 3 18:05:16 2009 +0100 Bluetooth: Remove unused global minor variable After the removal of the module parameter for setting the minor number, this variable became unused. So just remove it. Signed-off-by: Marcel Holtmann commit 5990108cfcd3eb2d365c9ea6f82318be80c4e9d3 Author: Thomas Gleixner Date: Thu Oct 15 20:28:53 2009 +0000 Bluetooth: Remove stub ioctl in hci_vhci Remove the empty ioctl which just returns -EINVAL. vfs_ioctl() will return -ENOTTY instead, but I doubt that any application will notice the difference :) Signed-off-by: Thomas Gleixner Signed-off-by: Marcel Holtmann commit b3cf652afb5404685e3d7ed6780a8d1fa10e21da Author: Rahul Tank Date: Mon Sep 28 19:43:35 2009 -0700 Bluetooth: Removal of unused variable in btmrvl driver This patch removes unused variable "drvdbg" from btmrvl_debugfs_data structure. Signed-off-by: Rahul Tank Signed-off-by: Bing Zhao Signed-off-by: Marcel Holtmann commit 650de8de16aa7c168c34d1b6a3191e4a5e2648c8 Author: Ben Hutchings Date: Tue Dec 1 19:10:18 2009 +0000 atl1e: Remove non-implementation of ethtool set_msglevel() operation Unimplemented operations should not silently fail. Signed-off-by: Ben Hutchings Signed-off-by: David S. Miller commit 95fec16869f22e94ff13dc5731aeba36bc47bbe6 Author: Ben Hutchings Date: Tue Dec 1 19:10:03 2009 +0000 atl1e: Remove redundant definitions of ethtool operations These functions provide the default behaviour and do not need to be set in struct ethtool_ops. Signed-off-by: Ben Hutchings Signed-off-by: David S. Miller commit ac936929092dc6a5409b627c4c67305ab9b626b3 Author: Ben Hutchings Date: Tue Dec 1 19:09:52 2009 +0000 atl1e: Allow TX checksum offload and TSO to be disabled and reenabled Signed-off-by: Ben Hutchings Signed-off-by: David S. Miller commit e00484023ebe94dce03fdd1270edf3e191c2bc79 Merge: 3248e16 1f5865e Author: David S. Miller Date: Wed Dec 2 22:00:34 2009 -0800 Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 commit 7c7afb083675b3d4d012a2aacec3a958ba484ab0 Author: Jie Yang Date: Tue Dec 1 17:18:34 2009 +0000 atl1e:disable NETIF_F_TSO6 for hardware limit For hardware limit to support TSOV6, just disable this feature Signed-off-by: Jie Yang Signed-off-by: David S. Miller commit ff9c38bba37937adb909cceb2a6521f2e92e17c6 Merge: 65c0cfa b2722b1 Author: David S. Miller Date: Tue Dec 1 22:13:38 2009 -0800 Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 Conflicts: net/mac80211/ht.c commit f64f9e719261a87818dd192a3a2352e5b20fbd0f Author: Joe Perches Date: Sun Nov 29 16:55:45 2009 -0800 net: Move && and || to end of previous line Not including net/atm/ Compiled tested x86 allyesconfig only Added a > 80 column line or two, which I ignored. Existing checkpatch plaints willfully, cheerfully ignored. Signed-off-by: Joe Perches Signed-off-by: David S. Miller commit 9b963e5d0e01461099a40117b05480f24b63381f Merge: 3b8626b 5fdd4ba Author: David S. Miller Date: Sun Nov 29 00:57:15 2009 -0800 Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 Conflicts: drivers/ieee802154/fakehard.c drivers/net/e1000e/ich8lan.c drivers/net/e1000e/phy.c drivers/net/netxen/netxen_nic_init.c drivers/net/wireless/ath/ath9k/main.c commit 9bf22f2c4607dbb68beb26153d83fa52b82e2d2f Author: Samuel Ortiz Date: Wed Nov 25 00:02:26 2009 +0100 iwmc3200wifi: Implement cfg80211 PMKSA API We need to implement the PMKSA API for proper WPA2 pre-auth and fast re-association. Our fullmac device generates all (re-)assoc IEs, and thus it needs the right PMKIDs. With this implementation we now get them from wpa_supplicant. Signed-off-by: Samuel Ortiz Signed-off-by: John W. Linville commit 2944b2c2d2dd884c550163c698577132588277d8 Author: Samuel Ortiz Date: Wed Nov 25 00:01:01 2009 +0100 cfg80211: Add PMKSA wext compatibility handler With the addition of the *_pmksa cfg80211 ops, we can now add the corresponding wireless extensions compatibility handler. Signed-off-by: Samuel Ortiz Signed-off-by: John W. Linville commit 67fbb16be69d138a3b6645ec5395b487cb915c58 Author: Samuel Ortiz Date: Tue Nov 24 23:59:15 2009 +0100 nl80211: PMKSA caching support This is an interface to set, delete and flush PMKIDs through nl80211. Main users would be fullmac devices which firmwares are capable of generating the RSN IEs for the re-association requests, e.g. iwmc3200wifi. Signed-off-by: Samuel Ortiz Signed-off-by: John W. Linville commit a830df0714117574fd0d5fe98477059b3e9fd5bf Author: Felix Fietkau Date: Mon Nov 23 22:33:27 2009 +0100 ath9k: separate debugfs support from CONFIG_ATH_DEBUG In my setups, ath9k's debugfs files are most of the time much more useful than the messages generated by enabling CONFIG_ATH_DEBUG along with the right debug flags. Since CONFIG_ATH_DEBUG comes with a noticeable overhead on embedded systems, this patch makes it possible to use the debugfs files without that option. Signed-off-by: Felix Fietkau Signed-off-by: John W. Linville commit f911ab83a2c07118dc605d643545647cef6f2322 Author: Johannes Berg Date: Wed Nov 25 19:07:20 2009 +0100 mac80211: log more data when tracing Enable logging of more configuration data when tracing is enabled. Except for the channel frequency this is only useful with the binary trace format, but that can be recorded and replayed with trace-cmd and I will be working on a plugin that reports all the information. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 2569a826de16ff82302a8a091228275be1aa911c Author: Johannes Berg Date: Wed Nov 25 17:46:17 2009 +0100 mac80211: correctly place aMPDU RX reorder code As indicated by the comment, the aMPDU RX reorder code should logically be after ieee80211_rx_h_check(). The previous patch moved the code there, and this patch now hooks it up in that place by introducing a list of skbs that are then processed by the remaining handlers. The list may be empty if the function is buffering the skb to release it later. The only change needed to the RX data is that the crypto handler needs to clear the key that may be set from a previous loop iteration, and that not everything can be in the rx flags now. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 1edfb1afba2f6e4114ff09f2e3bc948fcae0c419 Author: Johannes Berg Date: Wed Nov 25 17:46:16 2009 +0100 mac80211: move aMPDU RX reorder code This code should be part of RX handlers, so move it to the place where it belongs without changing it. A follow-up patch will do the changes to hook it up. The sole purpose of this code move is to make the other patch readable, it doesn't change the code at all except that it now requires a different static function declaration (which will go away too). Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 8c0c709eea5cbab97fb464cd68b06f24acc58ee1 Author: Johannes Berg Date: Wed Nov 25 17:46:15 2009 +0100 mac80211: move cmntr flag out of rx flags The RX flags should soon be used only for flags that cannot change within an a-MPDU, so move the cooked monitor flag into the RX status flags. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit e60d7443e00a72a2c056950cdaab79c7b077f3d4 Author: Alban Browaeys Date: Wed Nov 25 15:13:00 2009 +0100 wireless : use a dedicated workqueue for cfg80211. This patch moves the works cleanup, scan and events to a cfg80211 dedicated workqueue. Platform driver like eeepc-laptop ought to use works to rfkill (as new rfkill does lock in rfkill_unregister and the platform driver is called from rfkill_switch_all which also lock the same mutex). This raise a new issue in itself that the work scheduled by the platform driver to the global worqueue calls wiphy_unregister which flush_work scan and event works (which thus flush works on the global workqueue inside a work on the global workqueue) and also put on hold the wdev_cleanup_work (which prevents the dev_put on netdev thus indefinite Usage count error on wifi device). Signed-off-by: Johannes Berg Signed-off-by: Alban Browaeys Signed-off-by: John W. Linville commit ece1e3c61e59ba184150e5aff57bbc6355613e3e Author: Holger Schurig Date: Wed Nov 25 13:11:16 2009 +0100 libertas: move mesh command handling into mesh.c Signed-off-by: Holger Schurig Signed-off-by: John W. Linville commit c7fe64cf4a08561a9e8f57e6018a504881236e34 Author: Holger Schurig Date: Wed Nov 25 13:10:49 2009 +0100 libertas: move mesh-only ethtool operations into mesh.c Signed-off-by: Holger Schurig Signed-off-by: John W. Linville commit e0e42da3a4df6f487b59dad608db56e25001bcdb Author: Holger Schurig Date: Wed Nov 25 13:10:15 2009 +0100 libertas: moveing mesh-related functions into mesh.c This moves mesh initialization, start/stop and rx/tx handling from into mesh.c. Signed-off-by: Holger Schurig Signed-off-by: John W. Linville commit 5e8e8b5759566b76bdf36046ae015796676a423c Author: Holger Schurig Date: Wed Nov 25 13:09:32 2009 +0100 libertas: introduce mesh.h Signed-off-by: Holger Schurig Signed-off-by: John W. Linville commit 76bae570899be34317510d8006d490572152bdfb Author: Holger Schurig Date: Wed Nov 25 13:08:55 2009 +0100 libertas: rename persistcfg.c -> mesh.c mesh.c will be the file where we concentrate all mesh-related code. This allows us to either add a KConfig entry for mesh and makes matters easier for the cfg80211 transition. Signed-off-by: Holger Schurig Signed-off-by: John W. Linville commit b8d83392980b65ea548cbf2b1c7c542b51961166 Author: Alexey Dobriyan Date: Wed Nov 25 10:14:12 2009 +0300 ipw2x00: convert to seq_file Signed-off-by: Alexey Dobriyan Signed-off-by: John W. Linville commit 83daee06adeed7b294802c998d5e03ea7d856aa1 Author: Alexey Dobriyan Date: Wed Nov 25 10:12:20 2009 +0300 ray_cs: convert to proc_fops Signed-off-by: Alexey Dobriyan Signed-off-by: John W. Linville commit 94db29368a658b13a088db87c7b0bf59b1a7492d Author: Vivek Natarajan Date: Wed Nov 25 12:01:54 2009 +0530 ath9k: Ensure a fair beacon distribution in IBSS mode. Update the beacon queue parameters with best effort queue parameters for IBSS mode. This reduces the number of beacons generated by ath9k and ensures a fair beacon distribution when there are multiple IBSS stations. Also CWmin is quadrupled to achieve the expected percentage of distribution. Signed-off-by: Vivek Natarajan Signed-off-by: John W. Linville commit f4709fdf683e1ed37b321c258b614ebe39752bf3 Author: Luis R. Rodriguez Date: Tue Nov 24 21:37:57 2009 -0500 ath9k: Fix maximum tx fifo settings for single stream devices Atheros single stream AR9285 and AR9271 have half the PCU TX FIFO buffer size of that of dual stream devices. Dual stream devices have a max PCU TX FIFO size of 8 KB while single stream devices have 4 KB. Single stream devices have an issue though and require hardware only to use half of the amount of its capable PCU TX FIFO size, 2 KB and this requires a change in software. Technically a change would not have been required (except for frame burst considerations of 128 bytes) if these devices would have been able to use the full 4 KB of the PCU TX FIFO size but our systems engineers recommend 2 KB to be used only. We enforce this through software by reducing the max frame triggger level to 2 KB. Fixing the max frame trigger level should then have a few benefits: * The PER will now be adjusted as designed for underruns when the max trigger level is reached. This should help alleviate the bus as the rate control algorithm chooses a slower rate which should ensure frames are transmitted properly under high system bus load. * The poll we use on our TX queues should now trigger and work as designed for single stream devices. The hardware passes data from each TX queue on the PCU TX FIFO queue respecting each queue's priority. The new trigger level ensures this seeding of the PCU TX FIFO queue occurs as designed which could mean avoiding false resets and actually reseting hw correctly when a TX queue is indeed stuck. * Some undocumented / unsupported behaviour could have been triggered when the max trigger level level was being set to 4 KB on single stream devices. Its not clear what this issue was to me yet. Cc: Kyungwan Nam Cc: Bennyam Malavazi Cc: Stephen Chen Cc: Shan Palanisamy Cc: Paul Shaw Signed-off-by: Vasanthakumar Thiagarajan Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 1bc1488067ee2c295b933ef6decd6035230f1a1c Author: Benoit Papillault Date: Tue Nov 24 15:49:18 2009 +0100 ath9k: Proper padding/unpadding for the TX/RX path. Software padding is done on the TX path and software unpadding is done on the RX path. This patch corrects the position where the padding occurs. A specific function computes the pad position and this function is used in the TX and RX path. This patch has been tested by generating every possible 802.11 frames with every possible frame_control field and a varying length. This patch is useful for analyzing non standard 802.11 frames going over the air Signed-off-by: Benoit Papillault Signed-off-by: John W. Linville commit e7824a50662f7f79b1a739f705b4d906c31cf221 Author: Luis R. Rodriguez Date: Tue Nov 24 02:53:25 2009 -0500 ath9k: fix processing of TX PS null data frames When mac80211 was telling us to go into Powersave we listened and immediately turned RX off. This meant hardware would not see the ACKs from the AP we're associated with and hardware we'd end up retransmiting the null data frame in a loop helplessly. Fix this by keeping track of the transmitted nullfunc frames and only when we are sure the AP has sent back an ACK do we go ahead and shut RX off. Signed-off-by: Vasanthakumar Thiagarajan Signed-off-by: Vivek Natarajan Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 6b65b6ad016f048547127946d1afe4ba41c74296 Author: Samuel Ortiz Date: Tue Nov 24 11:33:33 2009 +0800 iwmc3200wifi: Remove tx concatenation option The tx concatenation option works fine now, we no longer need the debugging option of disabling concatenation. Signed-off-by: Samuel Ortiz Signed-off-by: Zhu Yi Signed-off-by: John W. Linville commit b136b3a2c1867172cd3de6e7286c600b04543b30 Author: Samuel Ortiz Date: Tue Nov 24 11:33:32 2009 +0800 iwmc3200wifi: Add stopped queue to debugfs We add the stopped queue count and display to the tx queue debugfs entry. Signed-off-by: Samuel Ortiz Signed-off-by: Zhu Yi Signed-off-by: John W. Linville commit a7af530d45969a63e20708417b70c547596ce3a9 Author: Samuel Ortiz Date: Tue Nov 24 11:33:31 2009 +0800 iwmc3200wifi: 802.11n Tx aggregation support To support 802.11n Tx aggregation support with iwmc3200 wifi, we have to handle the UMAC_CMD_OPCODE_STOP_RESUME_STA_TX notification from the UMAC. Before sending an AddBA, the UMAC synchronizes with the host in order to know what is the last Tx frame it's supposed to receive before it will be able to start the actual aggregation session. We thus have to keep track of the last sequence number that is scheduled for transmission on a particular RAxTID, send an answer to the UMAC with this sequence number. The UMAC then does the BA negociation and once it's done with it sends a new UMAC_CMD_OPCODE_STOP_RESUME_STA_TX notification to let us know that we can resume the Tx flow on the specified RAxTID. Signed-off-by: Samuel Ortiz Reviewed-by: Zhu Yi Signed-off-by: John W. Linville commit 2351178c52fedf1846c84b35418f4102487ec00e Author: Zhu Yi Date: Tue Nov 24 11:33:30 2009 +0800 iwmc3200wifi: Set wireless mode correctly Set the wireless mode with regard to both the driver's configuration and the device's EEPROM result. Signed-off-by: Zhu Yi Signed-off-by: John W. Linville commit 0bed08de91c41b21447d704995a438d4536586ba Author: Samuel Ortiz Date: Tue Nov 24 11:33:29 2009 +0800 iwmc3200wifi: Update wireless_mode with eeprom values The iwmc3200wifi eeprom contains information about the available PHYs on the chip. We should update our wireless_mode setting and profile according to it. Signed-off-by: Samuel Ortiz Signed-off-by: Zhu Yi Signed-off-by: John W. Linville commit fe19176ea46db572f0dc2df8bfe1dc5d8751ab9e Author: Samuel Ortiz Date: Tue Nov 24 11:33:28 2009 +0800 iwmc3200wifi: Dont set the UMAC power limit when interface is down When we're down, we shouldnt try to set the UMAC power limit. We just return 0 instead, and cfg80211 toggles the soft rfkill state. Signed-off-by: Samuel Ortiz Signed-off-by: Zhu Yi Signed-off-by: John W. Linville commit 902b6667d3d17ac53ec62c036cd2bcf713c29d86 Author: Samuel Ortiz Date: Tue Nov 24 11:33:27 2009 +0800 iwmc3200wifi: Parse HT channels EEPROM entries The fat channels eeprom entries let us know if 11n is enabled or not. We update our wiphy supported bands based on that. Signed-off-by: Samuel Ortiz Signed-off-by: Zhu Yi Signed-off-by: John W. Linville commit e6218cc47bd54710dc523e8c983ceddba625e3ae Author: Gertjan van Wingerde Date: Mon Nov 23 22:44:52 2009 +0100 rt2x00: Centralize setting of extra TX headroom requested by rt2x00. Set the value of extra_tx_headroom in a central place, rather than in each of the drivers. This is preparatory for taking alignment space into account in the TX headroom requested by rt2x00. Signed-off-by: Gertjan van Wingerde Acked-by: Ivo van Doorn Signed-off-by: John W. Linville commit 04d0362e2fa9d5f1ab560d0d59d04a535b4f3973 Author: Gertjan van Wingerde Date: Mon Nov 23 22:44:51 2009 +0100 rt2x00: Whitespace cleanup. Clean up the use of whitespace in the initialization of the rt2x00_ops structures. This is preparatory for a later patch that adds members to that structure, which require different whitespace alignment. Signed-off-by: Gertjan van Wingerde Acked-by: Ivo van Doorn Signed-off-by: John W. Linville commit 95d69aa046f75c750f18119810b6f58d397fb576 Author: Gertjan van Wingerde Date: Mon Nov 23 22:44:50 2009 +0100 rt2x00: Fix typo (lengt --> length) in rt2x00queue.c Signed-off-by: Gertjan van Wingerde Acked-by: Ivo van Doorn Signed-off-by: John W. Linville commit ee303e543e7d5f0d38197298adf0c4fb079094e9 Author: Gertjan van Wingerde Date: Mon Nov 23 22:44:49 2009 +0100 rt2x00: Clean up use of rt2x00_intf_is_pci. RT chipsets are unique across both PCI and USB busses, and don't overlap. Therefore there is no need to test for bus type when only checking for chipset type. Remove the redundant checks. Signed-off-by: Gertjan van Wingerde Acked-by: Ivo van Doorn Signed-off-by: John W. Linville commit 6a6f455ca4120ae0c6a1bb77d58ba2f5e3e96afd Author: Gertjan van Wingerde Date: Mon Nov 23 22:44:48 2009 +0100 rt2x00: Remove unused variable frame_control from rt2x00mac_tx. As additional fallout also remove the also unused variable ieee80211hdr. Reported-by: Johannes Stezenbach Signed-off-by: Gertjan van Wingerde Acked-by: Ivo van Doorn Signed-off-by: John W. Linville commit 38a522e6bc0fcd9848b91366ec899f1c2cb23609 Author: Gertjan van Wingerde Date: Mon Nov 23 22:44:47 2009 +0100 rt2x00: Only initialize HT on rt2800 devices that support it. Some RT28xx/RT30xx devices don't support 802.11n, when they are combined with the RF2020 chipset. Ensure that HT is disabled for these devices. Signed-off-by: Gertjan van Wingerde Acked-by: Ivo van Doorn Signed-off-by: John W. Linville commit c7c8adb53ff3e8fa3cf7a5144bd2791c4da2c07d Author: Luciano Coelho Date: Mon Nov 23 23:22:19 2009 +0200 wl1271: Remove REF_CLK hack This hack was totally wrong and was "needed" because of a problem in the way we were sending the GENERAL_PARMS command to the firmware. Now that that problem has been fixed, this hack can be removed. Signed-off-by: Luciano Coelho Reviewed-by: Juuso Oikarinen Signed-off-by: John W. Linville commit 4a90406b876cade9bb8d9c95b048d60fb979ba6b Author: Luciano Coelho Date: Mon Nov 23 23:22:18 2009 +0200 wl1271: remove workaround to ignore -EIO from radio and general params We were ignoring the -EIO return value from wl1271_cmd_radio_params() and wl1271_cmd_general_params(), because they were always returning an error and we didn't know why. Now this has been fixed, so the workaround can be removed. Signed-off-by: Luciano Coelho Reviewed-by: Juuso Oikarinen Signed-off-by: John W. Linville commit 98b5dd5ded8cb59b598b2c0c396100054779eda7 Author: Luciano Coelho Date: Mon Nov 23 23:22:17 2009 +0200 wl1271: fix radio and general parameters commands We were missing the command header in the radio and general parameters commands. This was causing them to fail, resulting in problems in the power levels and other PLT-related commands. Also reorganized the command functions, moving from wl1271_init.c to wl1271_cmd.c where it fits better. Signed-off-by: Luciano Coelho Reviewed-by: Juuso Oikarinen Signed-off-by: John W. Linville commit cc7defa366ea770efb25add8711defe88862197b Author: Luciano Coelho Date: Mon Nov 23 23:22:16 2009 +0200 wl1271: set radio and general params also for PLT We need to set the radio and general parameters when starting PLT mode. This patch adds calls to TEST_CMD_INI_RADIO_PARAMS and TEST_CMD_INIT_GENERAL_PARAMS when initializing PLT mode. Signed-off-by: Luciano Coelho Reviewed-by: Juuso Oikarinen Signed-off-by: John W. Linville commit 17d7265c7582af77357bd31884cef26f9f802313 Author: Luciano Coelho Date: Mon Nov 23 23:22:15 2009 +0200 wl1271: fix the inetdev notifier callback return values The wl1271_dev_notify() was returning 0 or -ENODEV, when it should return NOTIFY_* instead. Now we use NOTIFY_DONE when we didn't handle the event or NOTIFY_OK when we have handled it. For inetdev notifications, it doesn't matter whether we use NOTIFY_DONE or NOTIFY_OK, because it ignores the return value of the call to blocking_notifier_call_chain(). But the notify.h header says that NOTIFY_DONE is "Don't care" and NOTIFY_OK is "Suits me", so that seems to be the right way to do it. Reported-by: Johannes Berg Signed-off-by: Luciano Coelho Reviewed-by: Juuso Oikarinen Signed-off-by: John W. Linville commit 03442a33174b1d9f6f8eb8c3c2e8a9cf4b75fffe Author: Juuso Oikarinen Date: Mon Nov 23 23:22:14 2009 +0200 wl1271: Set PSM support flags in driver configuration Set the PSM support flag in the device configuration for the mac80211 stack. This will enable usage of powersave. Signed-off-by: Juuso Oikarinen Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho Signed-off-by: John W. Linville commit 461fa136bb120f5b6b7d5814888a7211dbbd211b Author: Juuso Oikarinen Date: Mon Nov 23 23:22:13 2009 +0200 wl1271: Prevent PSM-entry retry loop if PSM cancelled Prevent endless PSM-entry retry loops, if PSM has already been cancelled while PSM entry was attempted. Signed-off-by: Juuso Oikarinen Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho Signed-off-by: John W. Linville commit 845025634549850879d30f00e20bc8bfe63980b4 Author: Juuso Oikarinen Date: Mon Nov 23 23:22:12 2009 +0200 wl1271: Decrease BET consecutive terminated beacons value to 10 Decrease the consecutive terminated beacons value for BET from 100 to 10. According to the vendor, 10 will give a more reliable connection and more reliable detection of connection problems. Signed-off-by: Juuso Oikarinen Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho Signed-off-by: John W. Linville commit 1fe8234a376e341c378a6e1c5de65db0fb49189a Author: Felix Fietkau Date: Mon Nov 23 22:22:27 2009 +0100 ath9k: clean up rc rate table Remove some fields from struct ath_rate_table that are now unused. Signed-off-by: Felix Fietkau Signed-off-by: John W. Linville commit 545750d36fa78203e28acefb4bab61ebb7c4d197 Author: Felix Fietkau Date: Mon Nov 23 22:21:01 2009 +0100 ath9k: properly use the mac80211 rate control api This patch changes ath9k to pass proper MCS indexes and flags between the RC and the rest of the driver code. sc->cur_rate_table remains, as it's used by the RC code internally, but the rest of the driver code no longer uses it, so a potential new RC for ath9k would not have to update it. Signed-off-by: Felix Fietkau Signed-off-by: John W. Linville commit 5fa9167a1bf5f5a4b7282f5e7ac56a4a5a1fa044 Author: Dominik Brodowski Date: Sun Nov 8 17:24:46 2009 +0100 pcmcia: rework the irq_req_t typedef Most of the irq_req_t typedef'd struct can be re-worked quite easily: (1) IRQInfo2 was unused in any case, so drop it. (2) IRQInfo1 was used write-only, so drop it. (3) Instance (private data to be passed to the IRQ handler): Most PCMCIA drivers using pcmcia_request_irq() to actually register an IRQ handler set the "dev_id" to the same pointer as the "priv" pointer in struct pcmcia_device. Modify the two exceptions (ipwireless, ibmtr_cs) to also work this waym and set the IRQ handler's "dev_id" to p_dev->priv unconditionally. (4) Handler is to be of type irq_handler_t. (5) Handler != NULL already tells whether an IRQ handler is present. Therefore, we do not need the IRQ_HANDLER_PRESENT flag in irq_req_t.Attributes. CC: netdev@vger.kernel.org CC: linux-bluetooth@vger.kernel.org CC: linux-ide@vger.kernel.org CC: linux-wireless@vger.kernel.org CC: linux-scsi@vger.kernel.org CC: alsa-devel@alsa-project.org CC: Jaroslav Kysela CC: Jiri Kosina CC: Karsten Keil for the Bluetooth parts: Acked-by: Marcel Holtmann Signed-off-by: Dominik Brodowski commit dd2e5a156525f11754d9b1e0583f6bb49c253d62 Author: Dominik Brodowski Date: Tue Nov 3 10:27:34 2009 +0100 pcmcia: remove deprecated handle_to_dev() macro Update remaining users and remove deprecated handle_to_dev() macro CC: Harald Welte CC: netdev@vger.kernel.org CC: linux-wireless@vger.kernel.org CC: linux-serial@vger.kernel.org Signed-off-by: Dominik Brodowski commit 6838b03fc6564ea07d0cd87ea6e198d90ab1fc3e Author: Dominik Brodowski Date: Tue Nov 3 01:31:52 2009 +0100 pcmcia: pcmcia_request_window() doesn't need a pointer to a pointer pcmcia_request_window() only needs a pointer to struct pcmcia_device, not a pointer to a pointer. CC: netdev@vger.kernel.org CC: linux-wireless@vger.kernel.org CC: linux-scsi@vger.kernel.org CC: Jiri Kosina Acked-by: Karsten Keil (for ISDN) Signed-off-by: Dominik Brodowski commit 868575d1e87ff2091800aea816972ddb46de60d5 Author: Magnus Damm Date: Wed Dec 13 19:46:43 2006 +0900 pcmcia: Pass struct pcmcia_device to pcmcia_map_mem_page() No logic changes, just pass struct pcmcia_device to pcmcia_map_mem_page() [linux@dominikbrodowski.net: update to 2.6.31] CC: netdev@vger.kernel.org CC: linux-wireless@vger.kernel.org CC: linux-scsi@vger.kernel.org CC: Jiri Kosina Acked-by: Karsten Keil (for ISDN) Signed-off-by: Magnus Damm Signed-off-by: Dominik Brodowski commit f5560da549ea2e32dd41e36548c0e7dee3d4aabb Author: Magnus Damm Date: Wed Dec 13 19:46:38 2006 +0900 pcmcia: Pass struct pcmcia_device to pcmcia_release_window() No logic changes, just pass struct pcmcia_device to pcmcia_release_window(). [linux@dominikbrodowski.net: update to 2.6.31] CC: netdev@vger.kernel.org CC: Jiri Kosina Signed-off-by: Magnus Damm Signed-off-by: Dominik Brodowski commit 04658fba2314d6d70d5fa05c0b5995e6428aacc3 Author: John W. Linville Date: Fri Nov 13 13:12:59 2009 -0500 ath9k: remove warnings related to signed/unsigned type mismatch CC [M] drivers/net/wireless/ath/ath9k/recv.o drivers/net/wireless/ath/ath9k/recv.c: In function `ath_rx_prepare': drivers/net/wireless/ath/ath9k/recv.c:208: warning: comparison is always true due to limited range of data type drivers/net/wireless/ath/ath9k/recv.c:220: warning: comparison is always false due to limited range of data type Signed-off-by: John W. Linville commit efe117ab8114f47f317b4803e5bc0104420bcba2 Author: Eric Dumazet Date: Thu Nov 5 11:06:40 2009 +0100 mac80211: Speedup ieee80211_remove_interfaces() Speedup ieee80211_remove_interfaces() by factorizing synchronize_rcu() calls Signed-off-by: Eric Dumazet Reviewed-by: Johannes Berg Signed-off-by: John W. Linville commit 4ba3eb034fb6fd1990ccc5a6d71d5abcda37b905 Merge: 3570021 18b6c9a Author: David S. Miller Date: Tue Nov 24 15:01:29 2009 -0800 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 commit 18b6c9a2213d3b6e0212e8b225abf95f7564206a Author: John W. Linville Date: Mon Nov 23 16:15:19 2009 -0500 ath9k: set ps_default as false Copied from original one-line patch here: http://bugzilla.kernel.org/show_bug.cgi?id=14267#c26 (This is for 2.6.33 and beyond, where the bool was changed to a flag by "cfg80211: convert bools into flags". -- JWL) Signed-off-by: John W. Linville commit 77593ae28c4c134eaf28ef34ecac3cd4464ecd6e Author: Jussi Kivilinna Date: Sun Nov 22 20:16:47 2009 +0200 rndis_wlan: disable stall workaround Stall workaround doesn't work with bcm4320a devices like with bcm4320b. This workaround actually causes more stalls/device freeze on bcm4320a. Therefore disable stall workaround by default. Signed-off-by: Jussi Kivilinna Signed-off-by: John W. Linville commit c1f8ca1d837148bf061d6ffa2038366e3cf0e4d7 Author: Jussi Kivilinna Date: Sun Nov 22 20:16:42 2009 +0200 rndis_wlan: fix buffer overflow in rndis_query_oid rndis_query_oid overwrites *len which stores buffer size to return full size of received command and then uses *len with memcpy to fill buffer with command. Ofcourse memcpy should be done before replacing buffer size. Signed-off-by: Jussi Kivilinna Signed-off-by: John W. Linville commit 841507f5c1a5d2f196afb12e95eb11914f029832 Author: Jaswinder Singh Rajput Date: Sun Nov 22 13:47:58 2009 +0530 mac80211: Fix missing kernel-doc notation Fix the following htmldocs warnings: Warning(net/mac80211/sta_info.h:322): No description found for parameter 'drv_unblock_wk' Warning(net/mac80211/sta_info.h:322): No description found for parameter 'drv_unblock_wk' Signed-off-by: Jaswinder Singh Rajput Cc: Johannes Berg Cc: John W. Linville Cc: Randy Dunlap Cc: David Miller Signed-off-by: John W. Linville commit 3681165235aae95a2e6d5407bb4e9426d68a37dd Author: Wey-Yi Guy Date: Fri Nov 20 12:05:09 2009 -0800 iwlwifi: remove reset led_tpt from iwl_leds_init() Current blinking rate is calculated based on the difference between current tx/rx byte counts and priv->led_tpt. priv->led_tpt should not get reset in iwl_leds_init(), this function can be called by bring interface "up" or "down", or when uCode sysassert occurred. resetting the led_tpt parameter will introduce incorrect led blinking behavior. Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 2d237f71b00bdc9044b5853d79f8cbef6c8df3ed Author: Wey-Yi Guy Date: Fri Nov 20 12:05:08 2009 -0800 iwlwifi: change message for cmd queue full error Change error message for command queue full Signed-off-by: Wey-Yi Guy Acked-by: Ben Cahill Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit c341ddb283b9e1a6d217e73fa36738629ca8f4fb Author: Wey-Yi Guy Date: Fri Nov 20 12:05:07 2009 -0800 iwlwifi: print limited number of event log when uCode error To help iwlagn uCode debugging, event log will dump to syslog when driver detect uCode error occurred, but this only happen when compile with CONFIG_IWLWIFI_DEBUG and debug flag is enabled; which is not always the case. Also, there is another problem, if the flag is set, the entire event log buffer will be dump to syslog, it can flood the syslog and make it very difficult to debug the problem. Change the default to only dump last 20 entries of event log to syslog unless the following condition meets: 1. both compile with CONFIG_IWLWIFI_DEBUG and debug flag is enabled, and then dump the entire event buffer to syslog. 2. dump event log request from debugfs Signed-off-by: Wey-Yi Guy Acked-by: Ben Cahill Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 644c77f0cfa333e58fd4a09450434e89a52d8931 Author: Jay Sternberg Date: Fri Nov 20 12:05:06 2009 -0800 iwlwifi: Tell the ucode immediately when association state changes When we get a state change of associated or not, we need to tell the ucode via the RX_ON command using the filter flags. This will prevent the ucode from sending any packets when not associated, specifically not sending NULL QOS packets after a deauthentication which causes the AP to repeatedly send deauth's in some situations. Signed-off-by: Jay Sternberg Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 3a3ff72c18085563ce64f7456ae3afff3a83397e Author: Wey-Yi Guy Date: Fri Nov 20 12:05:05 2009 -0800 iwlwifi: dump error log when uCode error occurred uCode error log contain information as to what the error was and where it occurred necessary to debug any uCode issues. Always log the information without special debug flag, this can help to capture the important information when error happened. Signed-off-by: Wey-Yi Guy Acked-by: Ben Cahill Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 5ade1e4dd1df436c3a441d17321c24aac8497306 Author: Wey-Yi Guy Date: Fri Nov 20 12:05:04 2009 -0800 iwlwifi: by default, dump entire sram data portion For "sram" debugfs file, if user did not specify the offset and length, dump the entire data portion of sram by default. Data portion is 0x800000 - 0x80ffff, but the actual data size is known to the driver from the ucode file. Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit ac592574a577162183b5c1dd040a188caa068a29 Author: Wey-Yi Guy Date: Fri Nov 20 12:05:03 2009 -0800 iwlwifi: update supported PCI_ID list for 5xx0 series Update the PCI_ID list for 5xx0 series. Remove all the PCI_IDs which never made into production or not longer in production. Also make sure the supported bands(a/b/g/n) match specified PCI_IDs Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 0fd95afc7b8ae19045dc03ffeafb3afda78cb681 Author: Johannes Berg Date: Fri Nov 20 12:05:02 2009 -0800 iwlwifi: separate IO tracing Since IO tracing is usually not needed and generates a lot of data, separate it into its own trace system so that we can always enable iwlwifi:* and not have to worry about getting too much data. If IO tracing is then really needed we can enable iwlwifi_io:* in addition and get that data. Signed-off-by: Johannes Berg Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 6262408392aa66083c9d5db101755fe753c97d4e Author: Wey-Yi Guy Date: Fri Nov 20 12:05:01 2009 -0800 iwlwifi: fix reserved2 field in iwl4965_addsta reserved2 field in "struct iwl4965_addsta_cmd" is __le16. Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 2943f136ffe29adb08162197b129bf8106e8191c Author: Wey-Yi Guy Date: Fri Nov 20 12:05:00 2009 -0800 iwlwifi: dynamically allocate buffer for sram debugfs file Dynamically allocate memory for dumping SRAM based on the length of memory to be displayed. Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit d23db556819c00d297c0f447bdd75b282d563122 Author: Wey-Yi Guy Date: Fri Nov 20 12:04:59 2009 -0800 iwlwifi: increase tx_queue debugfs buffer size For tx_queue, need to increase the buffer size allocated for it, so all the queues information can be displayed Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 43e851157adb966dd633e983b24040f72877737e Author: Wey-Yi Guy Date: Fri Nov 20 12:04:58 2009 -0800 iwlwifi: set read/write permission for debugfs files Set the correct Read/Write file permission for iwlwifi debugfs files based on the functionality of the files Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit bc6c94f609d2f63347d4a05f28993792ae38caad Author: Reinette Chatre Date: Fri Nov 20 12:04:57 2009 -0800 iwl3945: removed unused struct and definitions Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 7163b8a4ec995dabda3e92c6fed7b8600060618c Author: Wey-Yi Guy Date: Fri Nov 20 12:04:56 2009 -0800 iwlwifi: reset led_tpt when clear tx/rx traffic byte counts LED blink rate is based on the traffic load, when tx/rx traffic counts got reset, we also need to reset the led_tpt to prevent incorrect blink rate being calculated. Merge both clear_tx_statistics() and clear_rx_statistics() into single clear_traffic_statistics() function, when reset the traffic byte counts, both tx and rx need to be reset at the same time, to make sure calculated the correct led blink rate. Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit c15d20c1d19616f73b6fee4befd254d0c37b4d87 Author: Wey-Yi Guy Date: Fri Nov 20 12:04:55 2009 -0800 iwlwifi: set sm_ps_mode as part of cfg parameters Setting "Spatial multiplexing Power Save" as part of per device configuration parameter. Report to uCode based on priv->conf setting, so driver can have more control of how different devices should operate in power save mode. Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit d5f4cf71f7b70e13f96cc8aac65b390707d5d80b Author: Wey-Yi Guy Date: Fri Nov 20 12:04:54 2009 -0800 iwlwifi: control led while update tx/rx bytes counts LED blinking rate is based on tx/rx traffic, the most reasonable place to do it is after update the traffic byte counts This fixes the recent LED blinking breakage on 3945 introduced by "iwlwifi: separate led function from statistic notification" Signed-off-by: Wey-Yi Guy Tested-by: Maxim Levitsky Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 74ba67edfcb235c0415a62d37493866c8380dc1d Author: Ben Cahill Date: Fri Nov 20 12:04:53 2009 -0800 iwlagn: Use iwl_write8() for CSR_INT_COALESCING register CSR_INT_COALESCING previously had only one, but now has two single-byte fields. With only one single-byte field (lowest order byte) it was okay to write via iwl_write32(), but now with two, an iwl_write32() to the lower order field clobbers the other field (odd-address CSR_INT_PERIODIC_REG, offset 0x5), and an iwl_write32() to CSR_INT_PERIODIC_REG could clobber the lowest byte of the next-higher register (CSR_INT, offset 0x8). Fortunately, no bad side effects have been produced by the iwl_write32() usage, due to order of execution (low order byte was always written before higher order byte), and the fact that writing "0" to the low byte of the next higher register has no effect (only action is when writing "1"s). Nonetheless, this cleans up the accesses so no bad side effects might occur in the future, if execution order changes, or more bit fields get added to CSR_INT_COALESCING. Add some comments regarding periodic interrupt usage. Signed-off-by: Ben Cahill Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 4e03185fb8e85d5624d3a68feced70cc9c9e2136 Author: Ben Cahill Date: Fri Nov 20 12:04:52 2009 -0800 iwlwifi: Add iwl_write8() To support byte writes to CSR_INT_COALESCING and CSR_INT_PERIODIC registers, add iwl_write8(), including debug/trace support. Signed-off-by: Ben Cahill Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 3305443c968b98902199bea0abbd9443c6a2bb8d Author: Johannes Berg Date: Fri Nov 20 10:09:14 2009 +0100 mac80211: fix rcu locking Add a missing rcu_read_unlock() before jumping out of the ieee80211_change_station() function in the error case. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit f1cf2dbd0f798b71b1590e7aca6647f2caef1649 Author: Lukáš Turek <8an@praha12.net> Date: Thu Nov 19 23:02:02 2009 +0100 ath5k: Fix I/Q calibration The sign of correction coefficients was lost in the calculations, which caused high packetloss in 802.11a mode after the results were applied. Fixed by removing unneccesary and broken AND with a bit mask. Signed-off-by: Lukas Turek <8an@praha12.net> Acked-by: Nick Kossifidis Signed-off-by: John W. Linville commit 98e3ac99e25601c3fb83dc91367d76f864496847 Author: Johannes Berg Date: Thu Nov 19 22:42:16 2009 +0100 mac80211: remove dead struct member ieee80211_local.wstats is a remnant from the days when we still had to worry about wireless extensions in mac80211 -- it can be removed. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 07681e211d736ba2394ab7f29f77e93adecd22c5 Author: Michael Buesch Date: Thu Nov 19 22:24:29 2009 +0100 b43: Rewrite DMA Tx status handling sanity checks This rewrites the error handling policies in the TX status handler. It tries to be error-tolerant as in "try hard to not crash the machine". It won't recover from errors (that are bugs in the firmware or driver), because that's impossible. However, it will return a more or less useful error message and bail out. It also tries hard to use rate-limited messages to not flood the syslog in case of a failure. Signed-off-by: Michael Buesch Signed-off-by: John W. Linville commit 8c35024aa65c079f800df7778869a8dbda074182 Author: Benoit PAPILLAULT Date: Thu Nov 19 22:19:26 2009 +0100 ath9k: This patch fix RX unpadding for any received frame. It has been tested with a 802.11 frame generator and by checking the FCS field of each received frame with the value reported by the Atheros hardware. This patch is useful if you are trying to analyze non standard 802.11 frame going over the air. Signed-off-by: Benoit PAPILLAULT Signed-off-by: John W. Linville commit 25f94aeaa3b20e804efbea0fe74d75bb15ecde4a Author: Matthew Garrett Date: Wed Nov 11 14:36:31 2009 -0500 ipw2200: Set core hw rfkill status when hardware changes state ipw2200 is able to detect when it's been hard-killed, but doesn't update the core rfkill state or update userspace. Ensure that the state is updated, allowing the rfkill core to notify userspace. Signed-off-by: Matthew Garrett Signed-off-by: John W. Linville commit c26409a919e2a338f0cff6ea0e1a96e658a3bfaa Author: Matthew Garrett Date: Wed Nov 11 14:36:30 2009 -0500 ipw2100: Register the wiphy device libipw unconditionally calls wiphy_unregister, but it's up to the driver to register it in the first place. ipw2100 fails to do so. Add the necessary glue code, and also ensure that rfkill statuses get set up appropriately. (Augmented for proper wiphy_unregister placement. -- JWL) Signed-off-by: Matthew Garrett Signed-off-by: John W. Linville commit a3caa99e6c68f466c13cfea74097f6fb01b45e25 Author: John W. Linville Date: Tue Aug 25 14:12:25 2009 -0400 libipw: initiate cfg80211 API conversion (v2) Initiate the conversion of libipw to the new cfg80211 configuration API. For now, leave CONFIG_IPW2200_PROMISCUOUS stuff alone. Eventually migrate it to cfg80211 when the add/del/change_virtual_intf methods are implemented. (v2: Fix unconditional wiphy_unregister in libipw which was causing problems for ipw2100, somewhat based on prior attempted fix by Zhu Yi . Previously both original version of this patch and Zhu Yi's fix attempt were reverted due to discovery of regressions. -- JWL) Signed-off-by: John W. Linville commit 9f13084d52d40dcce5a5f00586410acdb5a3fbff Author: Rui Paulo Date: Thu Nov 19 15:49:10 2009 +0000 mac80211: fix endianess on mesh_path_error_tx() calls Signed-off-by: Rui Paulo Signed-off-by: John W. Linville commit 64491f0ec8b653560a030022dccfce67ad353d81 Author: Johannes Berg Date: Thu Nov 19 14:26:11 2009 +0100 mac80211: add per-station HT capability file This is sometimes useful to debug HT issues as it shows what exactly the stack thinks the peer supports. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit a58ce43f2fb17b728395ff530f019ca53c80145f Author: Johannes Berg Date: Thu Nov 19 12:45:42 2009 +0100 mac80211: avoid spurious deauth frames/messages With WEXT, it happens frequently that the SME requests an authentication but then deauthenticates right away because some new parameters came along. Every time this happens we print a deauth message and send a deauth frame, but both of that is rather confusing. Avoid it by aborting the authentication process silently, and telling cfg80211 about that. The patch looks larger than it really is: __cfg80211_auth_remove() is split out from cfg80211_send_auth_timeout(), there's no new code except __cfg80211_auth_canceled() (a one-liner) and the mac80211 bits (7 new lines of code). Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 7351c6bd482712e5e3ec9dffc547de0e0863efb0 Author: Johannes Berg Date: Thu Nov 19 01:08:30 2009 +0100 mac80211: request TX status where needed Right now all frames mac80211 hands to the driver have the IEEE80211_TX_CTL_REQ_TX_STATUS flag set to request TX status. This isn't really necessary, only the injected frames need TX status (the latter for hostapd) so move setting this flag. The rate control algorithms also need TX status, but they don't require it. Also, rt2x00 uses that bit for its own purposes and seems to require it being set for all frames, but that can be fixed in rt2x00. This doesn't really change anything for any drivers but in the future drivers using hw-rate control may opt to not report TX status for frames that don't have the IEEE80211_TX_CTL_REQ_TX_STATUS flag set. Signed-off-by: Johannes Berg Acked-by: Ivo van Doorn [rt2x00 bits] Signed-off-by: John W. Linville commit ad4bb6f8883a13bb0f65b194dae36c62a02ac779 Author: Johannes Berg Date: Thu Nov 19 00:56:30 2009 +0100 cfg80211: disallow bridging managed/adhoc interfaces A number of people have tried to add a wireless interface (in managed mode) to a bridge and then complained that it doesn't work. It cannot work, however, because in 802.11 networks all packets need to be acknowledged and as such need to be sent to the right address. Promiscuous doesn't help here. The wireless address format used for these links has only space for three addresses, the * transmitter, which must be equal to the sender (origin) * receiver (on the wireless medium), which is the AP in the case of managed mode * the recipient (destination), which is on the APs local network segment In an IBSS, it is similar, but the receiver and recipient must match and the third address is used as the BSSID. To avoid such mistakes in the future, disallow adding a wireless interface to a bridge. Felix has recently added a four-address mode to the AP and client side that can be used (after negotiating that it is possible, which must happen out-of-band by setting up both sides) for bridging, so allow that case. Signed-off-by: Johannes Berg Acked-by: Stephen Hemminger Signed-off-by: John W. Linville commit 9bc383de37090ba7ca3ff32a12c9d809dc5867f0 Author: Johannes Berg Date: Thu Nov 19 11:55:19 2009 +0100 cfg80211: introduce capability for 4addr mode It's very likely that not many devices will support four-address mode in station or AP mode so introduce capability bits for both modes, set them in mac80211 and check them when userspace tries to use the mode. Also, keep track of 4addr in cfg80211 (wireless_dev) and not in mac80211 any more. mac80211 can also be improved for the VLAN case by not looking at the 4addr flag but maintaining the station pointer for it correctly. However, keep track of use_4addr for station mode in mac80211 to avoid all the derefs. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 5be83de54c16944dea9c16c6a5a53c1fa75ed304 Author: Johannes Berg Date: Thu Nov 19 00:56:28 2009 +0100 cfg80211: convert bools into flags We've accumulated a number of options for wiphys which make more sense as flags as we keep adding more. Convert the existing ones. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit a0607fd3a25ba1848a63a0d925e36d914735ab47 Author: Joe Perches Date: Wed Nov 18 23:29:17 2009 -0800 drivers/net: request_irq - Remove unnecessary leading & from second arg Not as fancy as coccinelle. Checkpatch errors ignored. Compile tested allyesconfig x86, not all files compiled. grep -rPl --include=*.[ch] "\brequest_irq\s*\([^,\)]+,\s*\&" drivers/net | while read file ; do \ perl -i -e 'local $/; while (<>) { s@(\brequest_irq\s*\([^,\)]+,\s*)\&@\1@g ; print ; }' $file ;\ done Signed-off-by: Joe Perches Signed-off-by: David S. Miller commit 3505d1a9fd65e2d3e00827857b6795d9d8983658 Merge: dfef948 66b00a7 Author: David S. Miller Date: Wed Nov 18 22:19:03 2009 -0800 Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 Conflicts: drivers/net/sfc/sfe4001.c drivers/net/wireless/libertas/cmd.c drivers/staging/Kconfig drivers/staging/Makefile drivers/staging/rtl8187se/Kconfig drivers/staging/rtl8192e/Kconfig commit 9bd568a50c446433038dec2a5186c5c57c3dbd23 Author: Michael Buesch Date: Wed Nov 18 20:53:05 2009 +0100 b43: Enforce DMA descriptor memory constraints Enforce all device constraints on the descriptor memory region. There are several constraints on the descriptor memory, as documented in the specification. The current code does not enforce them and/or incorrectly enforces them. Those constraints are: - The address limitations on 30/32bit engines, that also apply to the skbs. - The 4k alignment requirement on 30/32bit engines. - The 8k alignment requirement on 64bit engines. Signed-off-by: Michael Buesch Signed-off-by: John W. Linville commit 76aa5e704c80fb7ca8bd3d05593d9a28298c92cd Author: Rui Paulo Date: Wed Nov 18 18:22:59 2009 +0000 mac80211: update cfg80211 scan result code for the updated mesh conf IE Signed-off-by: Rui Paulo Signed-off-by: John W. Linville commit 136cfa28615ccce0f9374811480e0b81c4191ea5 Author: Rui Paulo Date: Wed Nov 18 18:40:00 2009 +0000 mac80211: use a structure to hold the mesh config information element Signed-off-by: Rui Paulo Signed-off-by: John W. Linville commit fe7a5d5c1ad659bf0ec7dc171e122aeefa16ac25 Author: Johannes Berg Date: Wed Nov 18 18:42:47 2009 +0100 mac80211: move TX status handling It's enough code to have its own file, I think. Especially since I'm going to add to it. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 62ae67be31c2346b6d74653a148ddbd1b9a94424 Author: Johannes Berg Date: Wed Nov 18 18:42:05 2009 +0100 mac80211: remove encrypt parameter from ieee80211_tx_skb Since the flags moved into skb->cb, there's no longer a need to have the encrypt bool passed into the function, anyone who requires it set to 0 (false) can just set the flag directly. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 875405a7793e9c35fab33819e7e5df7a98b6064c Author: Marcel Holtmann Date: Wed Nov 18 16:48:01 2009 +0100 rfkill: Add constant for RFKILL_TYPE_FM radio devices Signed-off-by: Marcel Holtmann Signed-off-by: Janakiram Sistla Signed-off-by: John W. Linville commit 0878c3504f92f1bf063d0890a9960d4b9e6c4618 Author: Marcel Holtmann Date: Wed Nov 18 16:48:00 2009 +0100 rfkill: Add missing description for RFKILL_TYPE_GPS Signed-off-by: Marcel Holtmann Signed-off-by: Janakiram Sistla Signed-off-by: John W. Linville commit a2fb0ad30aa52bdfd6e0870702444bae6090520f Author: John W. Linville Date: Wed Nov 18 16:37:22 2009 -0500 wl3501_cs: remove pedantic build warning drivers/net/wireless/wl3501_cs.c: In function ‘wl3501_esbq_exec’: drivers/net/wireless/wl3501_cs.c:387: warning: ‘tmp’ is used uninitialized in this function drivers/net/wireless/wl3501_cs.c:384: note: ‘tmp’ was declared here Signed-off-by: John W. Linville commit 98d3a7ca9232a436c067888936a0133e64ea126a Author: Johannes Berg Date: Wed Nov 18 13:03:43 2009 +0100 cfg80211: re-join IBSS when privacy changes When going from/to a WEP protected IBSS, we need to leave this one and join a new one to take care of the changed capability. Cc: Hong Zhang Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 0bc6b1871c111d8f2eb2ac022a705de4cf21f572 Author: Sujith Date: Wed Nov 18 11:42:14 2009 +0530 mac80211: Fix panic in aggregation handling Not assigning the vif pointer causes an oops. This patch fixes it. Signed-off-by: Sujith Signed-off-by: John W. Linville commit 24b6b15f7d07d26330f73057d618089976a08792 Author: Jouni Malinen Date: Tue Nov 17 21:35:38 2009 +0200 cfg80211: Allow reassociation in associated state cfg80211 rejects all association requests when in associated state. This prevents clean roaming within an ESS since one would first need to disassociate before being able to request reassociation. Accept the reassociation request and let the old association to be dropped when the new one is completed. This fixes nl80211-based roaming with the current snapshot version of wpa_supplicant (that has code for requesting reassociation explicitly withthe previous BSSID attribute). Signed-off-by: Jouni Malinen Signed-off-by: John W. Linville commit af65cd96dd4ea8ea5adc6ee850e61a407cd1067a Author: Johannes Berg Date: Tue Nov 17 18:18:36 2009 +0100 mac80211: make software rate control optional Some devices implement the entire rate control in firmware in some way, like wl1271 or like iwlwifi which does some things in software but not a lot. Therefore generic software rate control is rather useless for them and just adds avoidable overhead to the transmit path. It's fairly simple to let drivers indicate that they do not need rate control, but they need to fulfil a number of conditions that we encode in WARN_ONs. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit c95cf3d09adc9afe7816a13a920b6df36062a3fe Author: David-John Willis Date: Tue Nov 17 18:50:09 2009 +0200 wl1251: add NVS in EEPROM support wl1251 supports also that NVS is stored in a separate EEPROM, add support for that. kvalo: use platform data instead Kconfig and use kernel style Signed-off-by: David-John Willis Signed-off-by: Kalle Valo Signed-off-by: John W. Linville commit 7010193ad8e64dfbc006b167c2ee712d4441292c Author: Kalle Valo Date: Tue Nov 17 18:50:01 2009 +0200 wl1251: remove depcreated qual usage Fixes warnings: drivers/net/wireless/wl12xx/wl1251_rx.c: In function 'wl1251_rx_status': drivers/net/wireless/wl12xx/wl1251_rx.c:75: warning: 'qual' is deprecated (declared at include/net/mac80211.h:555) drivers/net/wireless/wl12xx/wl1251_rx.c:77: warning: 'qual' is deprecated (declared at include/net/mac80211.h:555) drivers/net/wireless/wl12xx/wl1251_rx.c:77: warning: 'qual' is deprecated (declared at include/net/mac80211.h:555) drivers/net/wireless/wl12xx/wl1251_rx.c:77: warning: 'qual' is deprecated (declared at include/net/mac80211.h:555) drivers/net/wireless/wl12xx/wl1251_rx.c:78: warning: 'qual' is deprecated (declared at include/net/mac80211.h:555) drivers/net/wireless/wl12xx/wl1251_rx.c:78: warning: 'qual' is deprecated (declared at include/net/mac80211.h:555) drivers/net/wireless/wl12xx/wl1251_rx.c:78: warning: 'qual' is deprecated (declared at include/net/mac80211.h:555) Signed-off-by: Kalle Valo Signed-off-by: John W. Linville commit 06cc5d3bb01350466f7a1bf64d9afe06870b6480 Author: Vidhya Govindan Date: Tue Nov 17 18:49:54 2009 +0200 wl1251: Send null data packet with "TODS" bit set According to IEEE80211 standard all the data packets have to be sent with TODS bit set. This patch fixes the null data packet format which was sent without TODS bit set. This should fix many problems associated with power save. Janne Ylalehto also found this fix in the same time as mine, for a different bug he was working on. Signed-off-by: Vidhya Govindan Reviewed-by: Janne Ylalehto Signed-off-by: Kalle Valo Signed-off-by: John W. Linville commit 79553f82c993ed511450748f01e16e4dccdc8c02 Author: Juuso Oikarinen Date: Tue Nov 17 18:49:46 2009 +0200 wl1251: Fix regression in IRQ loop handling In some cases, the IRQ loop handler could acknowledge an interrupt to the chipset, but not service it. Signed-off-by: Juuso Oikarinen Reviewed-by: Janne Ylalehto Signed-off-by: Luciano Coelho Signed-off-by: Kalle Valo Signed-off-by: John W. Linville commit a1590f2404d1c8d16f8ceed4fccc32ab9831e484 Author: Janne Ylalehto Date: Tue Nov 17 18:49:38 2009 +0200 wl1251: Filter out unwanted events Filter out unwanted events to reduce wakeups. Signed-off-by: Janne Ylalehto Reviewed-by: Vidhya Govindan Reviewed-by: Juuso Oikarinen Signed-off-by: Luciano Coelho Signed-off-by: Kalle Valo Signed-off-by: John W. Linville commit dcea4dbe54f5bbea2ef0bb265072754ccd934a1e Author: Janne Ylalehto Date: Tue Nov 17 18:49:31 2009 +0200 wl1251: Add IRQ looping support Add support for IRQ looping. Helps in the case that we have e.g. multiple packets coming from the network when we wake up from the ELP. Signed-off-by: Janne Ylalehto Reviewed-by: Juuso Oikarinen Signed-off-by: Luciano Coelho Signed-off-by: Kalle Valo Signed-off-by: John W. Linville commit 33d51facad8360cb9c55fd696431e2a477f16cc1 Author: Vidhya Govindan Date: Tue Nov 17 18:49:23 2009 +0200 wl1251: Increase the beacon loss timeout value and handle regain event This patch increases the number of beacons to be missed before generating SYNC TIMEOUT event. It increases the beacon timeout period to 500 microseconds, which gives enough time for the firmware to receive probe response or beacon. Also handled the regain event from firmware once it receives a probe response or beacon. Signed-off-by: Vidhya Govindan Reviewed-by: Janne Ylalehto Signed-off-by: Luciano Coelho Signed-off-by: Kalle Valo Signed-off-by: John W. Linville commit 72b57344a2a1f98c6838c2268fdc5ed5fae54cd8 Author: Vidhya Govindan Date: Tue Nov 17 18:49:16 2009 +0200 wl1251: Set the correct dtim period to the firmware This patch sets the dtim period obtained from the mac80211 to firmware. Signed-off-by: Vidhya Govindan Reviewed-by: Janne Ylalehto Signed-off-by: Luciano Coelho Signed-off-by: Kalle Valo Signed-off-by: John W. Linville commit d531cf303f765bf3477330e58fbeab75da668931 Author: Vidhya Govindan Date: Tue Nov 17 18:49:08 2009 +0200 wl1251: Add acx command to set tbtt and dtim period The dtim period obtained from the mac80211 is not set to the firmware. This patch implements the acx command to set correct tbtt and dtim value to the firmware. Signed-off-by: Vidhya Govindan Signed-off-by: Kalle Valo Reviewed-by: Janne Ylalehto Signed-off-by: Luciano Coelho Signed-off-by: John W. Linville commit 2410378a4c8e978823354ab3e44cd07c3c18a237 Author: Kalle Valo Date: Tue Nov 17 18:49:00 2009 +0200 wl1251: mask aid bits 14 and 15 in ps-poll template In ps-poll template aid bits 14 and 15 were not masked as required by the standard. Mask them so that aid is sent in correct format. Signed-off-by: Kalle Valo Reviewed-by: Juuso Oikarinen Reviewed-by: Vidhya Govindan Signed-off-by: John W. Linville commit c74ddfd5ea9c0c67d0aae77eeb5b610188cb8bc4 Author: Kalle Valo Date: Tue Nov 17 18:48:45 2009 +0200 wl1251: allocate space for firmware with vmalloc() Earlier firmware was stored to a memory area allocated with kmalloc() but finding a a contiguous area of memory long enough for the firmware is very difficult in certain cases. better to allocate the memory for firmware with vmalloc() instead and use a small buffer for DMA transfers. Thanks to Eero Tamminen for the idea. Signed-off-by: Kalle Valo Reviewed-by: Vidhya Govindan Signed-off-by: Luciano Coelho Signed-off-by: John W. Linville commit d5da79ac1f5050cccaa68d814ccce292371f25fa Author: Juuso Oikarinen Date: Tue Nov 17 18:48:37 2009 +0200 wl1251: Implement delayed entry into ELP mode Implement (slightly) delayed entry into ELP. This will cure several problems: - It works around a firmware race condition if ELP is entered too fast after commands (resulting in ELP timeout -traces) - It will reduce the number of sleep-wake cycles between already scheduled events such as interrupts and tx, hence improving performance (less delay in switching between RX and TX) Signed-off-by: Juuso Oikarinen Reviewed-by: Vidhya Govindan Signed-off-by: Kalle Valo Signed-off-by: John W. Linville commit 6b21a2cd315e2e56a1748bd3ef9d910fe4f2e711 Author: Juuso Oikarinen Date: Tue Nov 17 18:48:30 2009 +0200 wl1251: Configure beacon filtering on if PSM used Enable beacon filtering when PSM is enabled Signed-off-by: Juuso Oikarinen Signed-off-by: Kalle Valo Signed-off-by: John W. Linville commit 287f6f9672635f4e948c0aa96754a2ce448ebdb2 Author: Juuso Oikarinen Date: Tue Nov 17 18:48:23 2009 +0200 wl1251: Enable beacon filtering with the stack Enable beacon filtering with the mac80211 stack. Signed-off-by: Juuso Oikarinen Signed-off-by: Kalle Valo Signed-off-by: John W. Linville commit 474c48c9f2118e637477b3b1c70003cb5cbda983 Author: Juuso Oikarinen Date: Tue Nov 17 18:48:14 2009 +0200 wl1251: Add connection monitoring configuration Add configuration for connection monitor (number of allowed beacons, and timeout after last received beacon.) Signed-off-by: Juuso Oikarinen Signed-off-by: Kalle Valo Signed-off-by: John W. Linville commit 15295380f45aa0d35665f6e5596ac98c081d95b9 Author: Thomas Klute Date: Tue Nov 17 11:58:18 2009 +0100 ar9170: Add support for D-Link DWA 160 A2 At least two revisions of the D-Link DWA 160 exist, called A1 and A2. A1 (USB-ID 07d1:3c10) is already listed in usb.c as D-Link DWA 160A. A2 (USB-ID 07d1:3a09) works if added to ar9170_usb_ids. I didn't do much testing until now, but I was able to connect to APs using WPA or WEP and transmit data. Summary: * Add model revision number to the comment for D-Link DWA 160 A1 (07d1:3c10) * Add support for D-Link DWA 160 A2 (07d1:3a09) Signed-off-by: Thomas Klute Signed-off-by: John W. Linville commit 2edcb7ff8d7d84a3797bcecc7094da0fa9828a16 Author: Xose Vazquez Perez Date: Tue Nov 17 13:43:16 2009 +0100 rt2x00: more ids to rt2800usb.c taken from windows inf file (09/15/2009, 1.04.07.0000) Signed-off-by: Xose Vazquez Perez Acked-by: Ivo van Doorn Signed-off-by: John W. Linville commit 15ff63653e507ec928a4a4386405a82446e096b1 Author: Johannes Berg Date: Tue Nov 17 13:34:04 2009 +0100 mac80211: use fixed broadcast address The netdev broadcast address cannot change from all-ones so there's no need to use it; we can instead hard-code it. Since we already have an instance in tkip.c, which will be shared if it is marked static const, doing this reduces text size at no data/bss cost. The real motivation for this is, of course, the desire to get rid of almost all uses of netdevs in mac80211 so that auditing their use becomes easier. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit d84f323477260e773d5317ad7cbe50f76115cb47 Author: Johannes Berg Date: Mon Nov 16 23:20:41 2009 +0100 mac80211: remove dev_hold/put calls If we move the rcu sections a little, there's no need to touch the device refcount. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 5f0b7de59fae1e57b2481c9756cd4a0f6308530f Author: Johannes Berg Date: Mon Nov 16 13:58:21 2009 +0100 mac80211: improve rate handling Some code currently assumes that there's a valid rate pointer even in the HT case, but there can't be. To reduce reliance on that, remove the rate pointer from the RX data struct and pass it where it's needed. Also, for now, in radiotap announce HT frames as having a DYN channel type, and remove their rate from cooked monitor radiotap completely (it isn't present in the regular monitor radiotap either.) Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit eb9fb5b8883535c27d2cc5d4e4dbab3532f97b18 Author: Johannes Berg Date: Mon Nov 16 13:58:20 2009 +0100 mac80211: trim RX data The RX data contains the netdev, which is duplicated since we have the sdata, and the RX status pointer, which is duplicate since we have the skb. Remove those two fields to have fewer fields that depend on each other and simply load them as necessary. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit a02ae758e8780d737b6d0135d6292bb3043e7eea Author: Johannes Berg Date: Mon Nov 16 12:00:40 2009 +0100 mac80211: cleanup reorder buffer handling The reorder buffer handling is written in a quite peculiar style (especially comments) and also has a quirk where it invokes the entire reorder code in ieee80211_sta_manage_reorder_buf() for just a handful of lines in it with a special argument. Split out ieee80211_release_reorder_frames which can then be invoked from BAR handling and other reordering code, clean up code and comments and remove function arguments that are now unused from ieee80211_sta_manage_reorder_buf(). Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit af2ced6a32dafb71d21b726c06df57fc574093d7 Author: Johannes Berg Date: Mon Nov 16 12:00:39 2009 +0100 mac80211: push michael MIC report after DA check When we receive a michael MIC failure report from the hardware we currently do not check whether it is actually reported on a frame that is destined to us. It shouldn't be possible to get a michael MIC failure report on other frames, but it also doesn't hurt to verify. Also, since we then don't need the station struct that early, move looking it up a bit later in the RX path. Finally, while at it, a few code cleanups in the area. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit c951ad3550ab40071bb0f222ba6125845769c08a Author: Johannes Berg Date: Mon Nov 16 12:00:38 2009 +0100 mac80211: convert aggregation to operate on vifs/stas The entire aggregation code currently operates on the hw pointer and station addresses, but that needs to change to make stations purely per-vif; As one step preparing for that make the aggregation code callable with the station, or by the combination of virtual interface and station address. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 3b53fde8ac40c4321389def14d7f4a9e14092fd3 Author: Johannes Berg Date: Mon Nov 16 12:00:37 2009 +0100 mac80211: let sta_info_get_by_idx get sta by sdata Instead of filtering by device, directly look up by sdata. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit cb53a150caa3068ce366b75dd354718145f5e893 Author: Sujith Date: Mon Nov 16 11:40:57 2009 +0530 ath9k: Fix bug in initializing chain masks Check for AR5416 ver 1.0 before calibrating 3 chains for multi-chain. This is a WAR for calibration failure. Signed-off-by: Sujith Signed-off-by: John W. Linville commit 201cd6cce4f67ccead6240eb04ffa2f311661174 Author: Sujith Date: Mon Nov 16 11:40:53 2009 +0530 ath9k: Remove a few unused functions ATH9K_ANT_VARIABLE is the default diversity control used. Consequently ath9k_hw_decrease_chain_power() does nothing. ath9k_hw_setantennaswitch() is unused too. Also, gbeacon_rate is unused. Signed-off-by: Sujith Signed-off-by: John W. Linville commit 7c82a186b48882c2a21a3eda25f3dab2d6040a09 Author: Sujith Date: Mon Nov 16 11:40:51 2009 +0530 ath9k: Remove a few unused variables axq_linkbuf, axq_aggr_depth, axq_lastdsWithCTS and axq_gatingds are unused. Signed-off-by: Sujith Signed-off-by: John W. Linville commit c6089ccc22377bcbf055ece6a45b931a02630824 Author: Sujith Date: Mon Nov 16 11:40:48 2009 +0530 ath9k: Cleanup bss_info_changed callback * Remove a code chunk dealing with operating mode changes. As noted, all such policy changes are to be done in add_interface. * Remove pointless check for empty BSSID. Also, remove mode checks - mac80211 does all the needed checks. * Handle enabling/disabling beacon transmission properly. * Handle beacon interval changes for AP mode. The original code depended on config_interface() to update the HW TSF. Since that callback has been removed, handle it properly. * Remove unneeded code dealing with key/privacy. * Set the chainmasks to 1x1 for IBSS when the BSSID is set. This was happening uncondionally before. Signed-off-by: Sujith Signed-off-by: John W. Linville commit 827e69bf6734193d7a6f47f0435db7ebef1b636e Author: Felix Fietkau Date: Sun Nov 15 23:09:25 2009 +0100 ath9k: get rid of tx_info_priv This patch removes the need for separately allocated private tx info data in ath9k and brings the driver one small step closer to using the mac80211 rate control API properly. Signed-off-by: Felix Fietkau Signed-off-by: John W. Linville commit 3e5b1101f59fb3e17a8eb32cca100ae07fd7100e Author: Felix Fietkau Date: Sat Nov 14 03:29:38 2009 +0100 mac80211: reduce the amount of unnecessary traffic on cooked monitor interfaces In order to handle association and authentication in AP mode, hostapd needs access to the tx status info of its own frames through a cooked monitor interface. Without this patch the cooked monitor interfaces also passed on tx status information for packets from other virtual interfaces. This creates a significant performance issue on embedded system. Hostapd tries to work around this by installing a Linux Socket Filter that only captures the frames it's interested in, however data duplication and socket filter matching still uses up enough CPU cycles to be very noticeable on small systems. This patch ensures that tx status information of non-injected frames does not make it to cooked monitor interfaces. Signed-off-by: Felix Fietkau Signed-off-by: John W. Linville commit 7d57b73a73040525dfe22c56d823f146711ff971 Author: Christian Lamparter Date: Sat Nov 14 00:57:58 2009 +0100 ar9170: do not discard valuable DUPOFDM frames This patch enables the driver to process all incoming dupofdm-modulated frames when operating in HT40 mode. Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit 9e595d24b13a021ead42bedd5edba8801b0da6cd Author: Ben Cahill Date: Fri Nov 13 11:56:38 2009 -0800 iwlwifi: Add comments about CSR registers Also regroup CSR_EEPROM and CSR_OTP bit field definitions. Signed-off-by: Ben Cahill Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 6ab10ff8738dfb098fd32132b7ebcf5cdb43ebde Author: Johannes Berg Date: Fri Nov 13 11:56:37 2009 -0800 iwlwifi: handle unicast PS buffering Using the new mac80211 functionality, this makes iwlwifi handle unicast PS buffering correctly. The device works like this: * when a station goes to sleep, the microcode notices this and marks the station as asleep * when the station is marked asleep, the microcode refuses to transmit to the station and rejects all frames queued to it with the failure status code TX_STATUS_FAIL_DEST_PS (a previous patch handled this correctly) * when we need to send frames to the station _although_ it is asleep, we need to tell the ucode how many, and this is asynchronous with sending so we cannot just send the frames, we need to wait for all other frames to be flushed, and then update the counter before sending out the poll response frames. This is handled partially in the driver and partially in mac80211. In order to do all this correctly, we need to * keep track of how many frames are pending for each associated client station (avoid doing it for other stations to avoid the atomic ops) * tell mac80211 that we driver-block the PS status while there are still frames pending on the queues, and once they are all rejected (due to the dest sta being in PS) unblock mac80211 Signed-off-by: Johannes Berg Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 9bb487b406692e172b15eba58de7d69358ac2005 Author: Johannes Berg Date: Fri Nov 13 11:56:36 2009 -0800 iwlwifi: add sleep_tx_count ucode station API This field was marked as reserved before since we didn't use it, but is present in all released firmwares afaict. We're going to need it soon, so add it now. Signed-off-by: Johannes Berg Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit c397bf15a6067ecf39f8a771907f4721a64fd61f Author: Johannes Berg Date: Fri Nov 13 11:56:35 2009 -0800 iwlwifi: report PS filtered status When a frame is sent to a sleeping station, the microcode reports TX_STATUS_FAIL_DEST_PS as its status -- we need to translate that to the flag that mac80211 expects. Signed-off-by: Johannes Berg Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit f513dfff9622ac72c461770e1fa01d291ba6ba5a Author: Daniel C Halperin Date: Fri Nov 13 11:56:34 2009 -0800 iwlwifi: make iwlwifi send beacons Handle BSS_CHANGED_BEACON_ENABLED to enable the sending of beacons. Also set the correct HT RXON and QoS config. Signed-off-by: Daniel C Halperin Signed-off-by: Johannes Berg Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 47ff65c48748086a5e9cde6032451691a28ab19f Author: Daniel C Halperin Date: Fri Nov 13 11:56:33 2009 -0800 iwlwifi: fix bugs in beacon configuration When sending beacon commands to the uCode, we must inform it of the offset in the beacon frame of the TIM Element so it can transmit packets from the correct queue. This functionality is implemented in iwl_set_beacon_tim(). Fix a bug setting the rate_n_flags for the beacon packet. First, it should not use the station table's rate (it's a management frame), and second it needs to properly configure the TX antennas. Finally, also, clean up and comment relevant functions. Signed-off-by: Daniel C Halperin Signed-off-by: Johannes Berg Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit e43ab94d2ea01a74e60c3423334687c2156c39b2 Author: Reinette Chatre Date: Fri Nov 13 11:56:32 2009 -0800 iwlagn: power up device before initializing EEPROM A recent change optimized the power usage by the device by only powering it up during EEPROM load if it is required (for OTP devices). This change causes an error on the 1000 series devices during module load. The error looks as follows: [ 1624.024524] iwlagn: Intel(R) Wireless WiFi Link AGN driver for Linux, 1.3.27kds [ 1624.024527] iwlagn: Copyright(c) 2003-2009 Intel Corporation [ 1624.024711] iwlagn 0000:01:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16 [ 1624.024749] iwlagn 0000:01:00.0: setting latency timer to 64 [ 1624.024909] iwlagn 0000:01:00.0: Detected Intel Wireless WiFi Link 1000 Series BGN REV=0x6C [ 1624.081263] iwlagn 0000:01:00.0: MAC is in deep sleep!. CSR_GP_CNTRL = 0x080003D8 [ 1624.092967] iwlagn 0000:01:00.0: OTP is empty [ 1624.092988] iwlagn 0000:01:00.0: Unable to init EEPROM [ 1624.093033] iwlagn 0000:01:00.0: PCI INT A disabled [ 1624.093065] iwlagn: probe of 0000:01:00.0 failed with error -2 Adding a dump_stack() to where that error is printed shows the following: [ 1624.024524] iwlagn: Intel(R) Wireless WiFi Link AGN driver for Linux, 1.3.27kds [ 1624.024527] iwlagn: Copyright(c) 2003-2009 Intel Corporation [ 1624.024711] iwlagn 0000:01:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16 [ 1624.024749] iwlagn 0000:01:00.0: setting latency timer to 64 [ 1624.024909] iwlagn 0000:01:00.0: Detected Intel Wireless WiFi Link 1000 Series BGN REV=0x6C [ 1624.081263] iwlagn 0000:01:00.0: MAC is in deep sleep!. CSR_GP_CNTRL = 0x080003D8 [ 1624.081263] Pid: 3073, comm: work_for_cpu Tainted: G W 2.6.31.5 #4 [ 1624.081263] Call Trace: [ 1624.081263] [] T.726+0x22b/0x420 [iwlcore] [ 1624.081263] [] iwlcore_eeprom_acquire_semaphore+0x8a/0x190 [iwlcore] [ 1624.081263] [] ? __kmalloc+0x194/0x1c0 [ 1624.081263] [] ? iwlcore_eeprom_verify_signature+0x25/0xf0 [iwlcore] [ 1624.081263] [] iwl_eeprom_init+0x107/0xf40 [iwlcore] [ 1624.081263] [] ? iwl_prepare_card_hw+0x11c/0x470 [iwlagn] [ 1624.081263] [] ? pci_bus_write_config_byte+0x64/0x80 [ 1624.081263] [] iwl_pci_probe+0x308/0xac0 [iwlagn] [ 1624.081263] [] ? do_work_for_cpu+0x0/0x30 [ 1624.081263] [] local_pci_probe+0x12/0x20 [ 1624.081263] [] do_work_for_cpu+0x13/0x30 [ 1624.081263] [] kthread+0xa6/0xb0 [ 1624.081263] [] child_rip+0xa/0x20 [ 1624.081263] [] ? kthread+0x0/0xb0 [ 1624.081263] [] ? child_rip+0x0/0x20 [ 1624.092967] iwlagn 0000:01:00.0: OTP is empty [ 1624.092988] iwlagn 0000:01:00.0: Unable to init EEPROM [ 1624.093033] iwlagn 0000:01:00.0: PCI INT A disabled [ 1624.093065] iwlagn: probe of 0000:01:00.0 failed with error -2 We know that the routines in this trace, iwlcore_eeprom_acquire_semaphore and iwlcore_eeprom_verify_signature, only access CSR registers and thus do not need the device to be awake if it is EEPROM. But for OTP it is required for the device to be awake to read these registers. Ensure device is awake before accessing these registers. Signed-off-by: Reinette Chatre Acked-by: Ben Cahill Signed-off-by: John W. Linville commit 98a7b43be19faa7b92576c62614c45e38517331c Author: Wey-Yi Guy Date: Fri Nov 13 11:56:31 2009 -0800 iwlwifi: align tx/rx statistics debugfs format Align the format for tx_statistics and rx_statistics debugfs output for better readability Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit ae16fc3c3184bf27f0462e1951df918122498829 Author: Wey-Yi Guy Date: Fri Nov 13 11:56:30 2009 -0800 iwlwifi: eliminate the possible 1/2 dBm tx power loss in 6x00 & 6x50 series In both 6x00 and 6x50 series, the enhanced/extended tx power table in EEPROM is used to set the max. tx power limit. This new tx power table is in 1/2 dBm format, which creates an issue of possibility of 1/2 dBm loss when driver set the tx power limit; because of driver keep track and report the tx power in dBm format. In order to prevent the 1/2 dBm loss, keep track of the true max tx power in 1/2 dBm format in driver; do the comparison and adjust the tx power if needed when send tx power command to uCode. Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 4d6ccbf57ff7653217b7149976aa31e19f996544 Author: Ben Cahill Date: Fri Nov 13 11:56:29 2009 -0800 iwl3945: Reset saved POWER_TABLE_CMD in "up" Power-saving logic will not re-issue a POWER_TABLE_CMD if a new command matches the prior one. This can be bad if we re-start the device due to e.g. uCode error; the new POWER_TABLE_CMD (required to invoke power-saving) may match the prior POWER_TABLE_CMD issued before the uCode error. Ensure the POWER_TABLE_CMD is sent to device when uCode is up. Signed-off-by: Ben Cahill Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit ef8d5529b015d4c5db7fad1adfc91edfd5abad56 Author: Wey-Yi Guy Date: Fri Nov 13 11:56:28 2009 -0800 iwlwifi: update reply_statistics_cmd with 'clear' parameter When issue REPLY_STATISTICS_CMD to uCode, two possible flag can be set in the configuration flags bit 0: Clear statistics 0: Do not clear Statistics counters 1: Clear to zero Statistics counters Allow "clear" parameter to be set from the caller. Add debugfs file to clear the statistics counters to help monitor and debug the uCode behavior. Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 7d2ed110a80991849a2824a6dc3c063ffca9dbe4 Author: Wey-Yi Guy Date: Fri Nov 13 11:56:27 2009 -0800 iwlwifi: remove external reference for non-exist data structure Number of data structure for 6000 series no longer in production, the data structure already being removed; also need to remove the external reference define in iwl-dev.h Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit a8a9a159bf907ef02aca2e316025e427f315e82a Author: Wey-Yi Guy Date: Fri Nov 13 11:56:26 2009 -0800 iwlwifi: drop non-production PCI-IDs for 6x50 series drop the non-production PCI-IDs for 6x50 series Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit d7d144012a2949cf7f8eed758013adadf5e5a82e Author: Wey-Yi Guy Date: Fri Nov 13 11:56:25 2009 -0800 iwlwifi: remove unused parameter from iwl_channel_info Number of HT40 power parameters are not used; remove those from iwl_channel_info data structure Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 85bb174a386850c8a43e8d107af47de3c910be03 Author: Wey-Yi Guy Date: Fri Nov 13 11:56:24 2009 -0800 iwlwifi: disable coex until implementation ready for 6x50 Temporary disable the coex function for wifi/wimax for 6x50 series until the full implementation ready. Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 85f0d9e87794818356146996826b829100daa6bc Author: Wey-Yi Guy Date: Fri Nov 13 11:56:23 2009 -0800 iwlwifi: validate enhanced tx power entry Validate enhanced tx power entry read from EEPROM before applying the tx power value. Different versions of EEPROM might contain different size of table; always a good idea to make sure the entry is valid before applying to the targeted channel. Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit dfef948ed2ba69cf041840b5e860d6b4e16fa0b1 Merge: ea31ba3 c85e9d7 Author: David S. Miller Date: Wed Nov 18 10:55:32 2009 -0800 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 commit ea31ba359c55e0734ff895692185d4c50cf0c537 Author: Julia Lawall Date: Wed Nov 18 08:26:02 2009 +0000 drivers/net/wireless/rtl818x: remove exceptional & on function name In this file, function names are otherwise used as pointers without &. A simplified version of the semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @r@ identifier f; @@ f(...) { ... } @@ identifier r.f; @@ - &f + f // Signed-off-by: Julia Lawall Signed-off-by: David S. Miller commit 8fbd90b0612cca7cd9a29df59b69502a841bebf8 Author: Julia Lawall Date: Wed Nov 18 08:25:43 2009 +0000 drivers/net/wireless/p54: remove exceptional & on function name In this file, function names are otherwise used as pointers without &. A simplified version of the semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @r@ identifier f; @@ f(...) { ... } @@ identifier r.f; @@ - &f + f // Signed-off-by: Julia Lawall Signed-off-by: David S. Miller commit d20a80f0e6eb9a4f31489a0518a9ba0754eeee12 Author: Julia Lawall Date: Wed Nov 18 08:25:25 2009 +0000 drivers/net/wireless/iwlwifi: remove exceptional & on function name In this file, function names are otherwise used as pointers without &. A simplified version of the semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @r@ identifier f; @@ f(...) { ... } @@ identifier r.f; @@ - &f + f // Signed-off-by: Julia Lawall Signed-off-by: David S. Miller commit fe4eb54845fff09ec01b8421f53f92e08b67229c Author: Julia Lawall Date: Wed Nov 18 08:24:50 2009 +0000 drivers/net/adm8211.c: remove exceptional & on function name In this file, function names are otherwise used as pointers without &. A simplified version of the semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @r@ identifier f; @@ f(...) { ... } @@ identifier r.f; @@ - &f + f // Signed-off-by: Julia Lawall Signed-off-by: David S. Miller commit 9aff7e922b852036d864d039ce13ae1e38418b73 Author: Julia Lawall Date: Wed Nov 18 10:47:03 2009 -0800 drivers/net/atl1c: remove exceptional & on function name In this file, function names are otherwise used as pointers without &. A simplified version of the semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @r@ identifier f; @@ f(...) { ... } @@ identifier r.f; @@ - &f + f // Signed-off-by: Julia Lawall Signed-off-by: David S. Miller commit a2bfbc072e279ff81e6b336acff612b9bc2e5281 Merge: 5c427ff 82b3cc1 Author: David S. Miller Date: Tue Nov 17 00:05:02 2009 -0800 Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 Conflicts: drivers/net/can/Kconfig commit b23709248fc9b6d5877f9c741d639a160ed21ff6 Author: Jouni Malinen Date: Mon Nov 16 19:54:08 2009 +0200 mac80211: Do not queue Probe Request frames for station MLME Cooked monitor interfaces cannot currently receive Probe Request frames when the interface is in station mode. However, we do not process Probe Request frames internally in the station MLME, so there is no point in queueing the frame here. Remove Probe Request frames from the queued frame list to allow cooked monitor interfaces to receive these frames. Signed-off-by: Jouni Malinen Reviewed-by: Johannes Berg Signed-off-by: John W. Linville commit 2eb2fa67e5462a36e98172fb92c78bc405b3035f Author: Bob Copeland Date: Mon Nov 16 08:30:29 2009 -0500 ath5k: allow setting txpower to 0 As a holdover from earlier code when we used to set the power limit to '0' after a reset to configure the default transmit power, ath5k interprets txpower=0 as 12.5 dBm. Fix that by just passing 0 through. This fixes http://bugzilla.kernel.org/show_bug.cgi?id=14567 Cc: stable@kernel.org Reported-by: Daniel Folkers Tested-by: Daniel Folkers Signed-off-by: Bob Copeland Signed-off-by: John W. Linville commit 634a555ce3ee5ea1fdcaee8b4ac9ce7b54f301ac Author: Jussi Kivilinna Date: Mon Nov 16 12:49:43 2009 +0200 rndis_wlan: handle NL80211_AUTHTYPE_AUTOMATIC rndis_wlan didn't know about NL80211_AUTHTYPE_AUTOMATIC and simple setup with 'iwconfig wlan essid no-encrypt' would fail (ENOSUPP). v2: use NDIS_80211_AUTH_AUTO_SWITCH instead of _OPEN. This will make device try shared key auth first, then open. Signed-off-by: Jussi Kivilinna Signed-off-by: John W. Linville commit 6a62e5ef94f754892734f99e87ca3dedd3cef277 Author: Josef Bacik Date: Sun Nov 15 21:33:18 2009 -0500 rt2800: do not enable tbtt unless we are in a beacon mode Please be gentle, I'm a fs developer and this is my first foray into drivers, as I'm tired of building ralinks driver everytime I update my kernel. Whenever I load the rt2800pci driver my box bogs down, and a few printk's later I discovered its because I was getting 10's of thousands of TBTT interrupts a second. I discovered this was because we were setting the beacon timer to 0, which is apparently what TBTT keys off of. It seems to me that we should only be enabling TBTT when we are in a beacon transmitting mode, which from what I can tell is in AD-HOC and other such modes where the mac80211 layer would have given us a proper beacon_int to set the beacon timer to instead of 0. So this is my fix, only enable TBTT if our sync mode is for beacon. This makes it so my box doesn't die everytime I load the rt2800pci driver. Let me know if this is acceptable, I just learned all these terms about 15 minutes ago via wikipedia, so I really am not familiar with how this stuff is supposed to work. Thanks, Signed-off-by: Josef Bacik Acked-by: Ivo van Doorn Signed-off-by: John W. Linville commit dd6ae4f877ce8cde9f57046a8eea4efc46950502 Author: Felix Fietkau Date: Sun Nov 15 22:27:17 2009 +0100 ath9k: fix massive rx packet loss issue This patch fixes a regression introduced in "ath9k: avoid the copy skb->cb on every RX'd skb" With that change, the rx status in skb->cb was left uninitialized Signed-off-by: Felix Fietkau Signed-off-by: John W. Linville commit 31a4cf1f22677ba1ea90be055bc20aac25b8e7c4 Author: Gertjan van Wingerde Date: Sat Nov 14 20:20:36 2009 +0100 rt2x00: Fix BUG on rt2800usb when trying to read eFuse EEPROM. Current tree hits a BUG_ON in rt2x00_regbusy_read, because the eFuse EEPROM reading code of rt2800lib uses the function without the csr_mutex locked. Fix this by locking the csr_mutex for the of the EEPROM reading cycly and using the _lock variants of the register reading and writing functions. This also introcudes the register_read_lock function pointer in the rt2800_ops structure. Signed-off-by: Gertjan van Wingerde Acked-by: Ivo van Doorn Signed-off-by: John W. Linville commit 16475b095a9c952f16e626c142b30bc95cfeadb3 Author: Gertjan van Wingerde Date: Sat Nov 14 20:20:35 2009 +0100 rt2x00: Log RT/RF chipset information correctly. Some drivers (rt2800* most notably) cannot set the RF and RT chipset in the correct order to have the information logging in rt2x00_set_chip be correct. Fix this by decoupling the setting of the chipset information from the logging of the chipset information so that drivers can determine themselves when all information is set. Signed-off-by: Gertjan van Wingerde Acked-by: Ivo van Doorn Signed-off-by: John W. Linville commit cce5fc45f9e9570f320009431d033d5a8f6144cc Author: Gertjan van Wingerde Date: Tue Nov 10 22:42:40 2009 +0100 rt2x00: Initialize rf302x RF values properly for rt2800pci. Ensure RF302x and RF2020 chipsets are handled properly in rt2800lib for the rt3090 chipset. Signed-off-by: Gertjan van Wingerde Acked-by: Ivo van Doorn Signed-off-by: John W. Linville commit fa6f632fba300f92d21962ef6e58411345465241 Author: Gertjan van Wingerde Date: Mon Nov 9 22:59:58 2009 +0100 rt2x00: Fix rt2800lib RF chip programming selection. Mirror the legacy Ralink driver with respect to rt2800 RF register programming. Execute rt2800_config_channel_rt3x for all RF2020, RF3020, RF3021 & RF3022 chipsets when operating on RT3070 devices. Signed-off-by: Gertjan van Wingerde Acked-by: Ivo van Doorn Signed-off-by: John W. Linville commit 235faf9b41b7b090be15b483bf900c0b9a8da4ea Author: Thadeu Lima de Souza Cascardo Date: Thu Nov 12 20:04:52 2009 +0100 rt2800lib: fix some typos and punctuation in comments fix some typos and punctuation in comments Signed-off-by: Thadeu Lima de Souza Cascardo Signed-off-by: Jiri Kosina [bart: ported the change from the older patch for rt2800usb & rt61pci] Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: John W. Linville commit c37919bfe0a5c1bee9a31701a31e05a2f8840936 Author: Vasanthakumar Thiagarajan Date: Fri Nov 13 14:32:40 2009 +0530 ath9k_hw: Fix AR_GPIO_INPUT_EN_VAL_BT_PRIORITY_BB and its shift value in 0x4054 The bit value of AR_GPIO_INPUT_EN_VAL_BT_PRIORITY_BB is wrong, it should be 0x400 and the number of bits to be right shifted is 10. Having this wrong value in 0x4054 sometimes affects bt quality on btcoex environment. Signed-off-by: Vasanthakumar Thiagarajan Signed-off-by: John W. Linville commit c90017dd43f0cdb42134b9229761e8be02bcd524 Author: Vasanthakumar Thiagarajan Date: Fri Nov 13 14:32:39 2009 +0530 ath9k_hw: Fix possible OOB array indexing in gen_timer_index[] on 64-bit Signed-off-by: Vasanthakumar Thiagarajan Signed-off-by: John W. Linville commit c258d2de972d1e391a3dec731e0801ed1cc85494 Author: Felix Fietkau Date: Wed Nov 11 17:23:31 2009 +0100 nl80211: only allow adding stations to running vlan interfaces Signed-off-by: Felix Fietkau Signed-off-by: John W. Linville commit f501dba4c4c5bda1b64c941997ab7ece1d503945 Author: Felix Fietkau Date: Wed Nov 11 13:17:36 2009 +0100 mac80211: fix broadcast frame handling for 4-addr AP VLANs Without this patch, broadcast frames from the station behind a 4-addr AP VLAN would be reflected back to the source. Fix this by checking the 4-addr flag before bridging multicast frames in the cell. Signed-off-by: Felix Fietkau Signed-off-by: John W. Linville commit 61fa713c751683da915fa0c1aa502be85822c357 Author: Holger Schurig Date: Wed Nov 11 12:25:40 2009 +0100 cfg80211: return channel noise via survey API This patch implements the NL80211_CMD_GET_SURVEY command and an get_survey() ops that a driver can implement. The goal of this command is to allow a drivers to report channel survey data (e.g. channel noise, channel occupation). For now, only the mechanism to report back channel noise has been implemented. In future, there will either be a survey-trigger command --- or the existing scan-trigger command will be enhanced. This will allow user-space to request survey for arbitrary channels. Note: any driver that cannot report channel noise should not report any value at all, e.g. made-up -92 dBm. Signed-off-by: Holger Schurig Signed-off-by: John W. Linville commit a043897a314e8bcfc821d54fe4e591efed5936a3 Author: Holger Schurig Date: Wed Nov 11 11:30:02 2009 +0100 cfg80211: introduce nl80211_get_ifidx() ... which get's rid of three indentical cut-n-paste sections. Signed-off-by: Holger Schurig Signed-off-by: John W. Linville commit f273fe55e3f3f0b66b7624c0102d3ef44bbdfe6a Author: Gertjan van Wingerde Date: Tue Nov 10 22:41:51 2009 +0100 rt2x00: Properly detect Ralink RT3070 devices. Allow rt2800usb to properly detect RT307X based devices, and set the appropriate chipset values. Signed-off-by: Gertjan van Wingede Acked-by: Ivo van Doorn Signed-off-by: John W. Linville commit 264d9b7d8a629620c8de84c614910c3164e935f8 Author: Rui Paulo Date: Mon Nov 9 23:46:58 2009 +0000 mac80211: update copyrights to 2009 Signed-off-by: Rui Paulo Signed-off-by: Javier Cardona Reviewed-by: Andrey Yurovsky Tested-by: Brian Cavagnolo Signed-off-by: John W. Linville commit 63c5723bc3af8d4e86984dd4ff0c78218de418d0 Author: Rui Paulo Date: Mon Nov 9 23:46:57 2009 +0000 mac80211: add nl80211/cfg80211 handling of the new mesh root mode option. Signed-off-by: Rui Paulo Signed-off-by: Javier Cardona Reviewed-by: Andrey Yurovsky Tested-by: Brian Cavagnolo Signed-off-by: John W. Linville commit e304bfd30f356f7b75d30cad0029ecca705fd590 Author: Rui Paulo Date: Mon Nov 9 23:46:56 2009 +0000 mac80211: implement a timer to send RANN action frames RANN (Root Annoucement) frame TX. Send an action frame every second trying to build a path to all nodes on the mesh. Signed-off-by: Rui Paulo Signed-off-by: Javier Cardona Reviewed-by: Andrey Yurovsky Tested-by: Brian Cavagnolo Signed-off-by: John W. Linville commit d19b3bf6384e66ac6e11a61ee31ed2cfe149f4d8 Author: Rui Paulo Date: Mon Nov 9 23:46:55 2009 +0000 mac80211: replace "destination" with "target" to follow the spec Resulting object files have the same MD5 as before. Signed-off-by: Rui Paulo Signed-off-by: Javier Cardona Reviewed-by: Andrey Yurovsky Tested-by: Brian Cavagnolo Signed-off-by: John W. Linville commit be125c60e46e165fbfe33db36a4a9d943d560a5b Author: Rui Paulo Date: Mon Nov 9 23:46:54 2009 +0000 mac80211: add the DS params to the beacon Signed-off-by: Rui Paulo Signed-off-by: Javier Cardona Reviewed-by: Andrey Yurovsky Tested-by: Brian Cavagnolo Signed-off-by: John W. Linville commit 36f0d5f537885179c8fa92a70d4fcfb3a336b082 Author: Rui Paulo Date: Mon Nov 9 23:46:53 2009 +0000 mac80211: fix BSSID setup for beacon frames BSSID is now set to the TA. Signed-off-by: Rui Paulo Signed-off-by: Javier Cardona Reviewed-by: Andrey Yurovsky Tested-by: Brian Cavagnolo Signed-off-by: John W. Linville commit 77fa76bb7f5589cd336e4da4a02e2d685b70ce0a Author: Rui Paulo Date: Mon Nov 9 23:46:52 2009 +0000 mac80211: set the AID field correctly for mesh peer frames This sets the AID field correctly for mesh peer confirm frames. Signed-off-by: Rui Paulo Signed-off-by: Javier Cardona Reviewed-by: Andrey Yurovsky Tested-by: Brian Cavagnolo Signed-off-by: John W. Linville commit a6a58b4f14106e61e5d78aac7995686ed0d5eab8 Author: Rui Paulo Date: Mon Nov 9 23:46:51 2009 +0000 mac80211: properly forward the RANN IE Increase hopcount and convert metric to LE before forwarding the RANN action frame. Signed-off-by: Rui Paulo Signed-off-by: Javier Cardona Reviewed-by: Andrey Yurovsky Tested-by: Brian Cavagnolo Signed-off-by: John W. Linville commit d611f062f4351d8609910648854908fecf58970d Author: Rui Paulo Date: Mon Nov 9 23:46:50 2009 +0000 mac80211: update PERR frame format Update the PERR IE frame format according to latest draft (3.03). Signed-off-by: Rui Paulo Signed-off-by: Javier Cardona Reviewed-by: Andrey Yurovsky Tested-by: Brian Cavagnolo Signed-off-by: John W. Linville commit 90a5e16992fa6105f7ebf3f29f5cf5feb1bbf7dc Author: Rui Paulo Date: Wed Nov 11 00:01:31 2009 +0000 mac80211: implement RANN processing and forwarding Process the RANN (Root Annoucement) Frame and try to find the HWMP root station by sending a PREQ. Signed-off-by: Rui Paulo Signed-off-by: Javier Cardona Reviewed-by: Andrey Yurovsky Tested-by: Brian Cavagnolo Signed-off-by: John W. Linville commit 41a2617064a8458178ccdf31ed2be2b4eade4a2a Author: Gertjan van Wingerde Date: Mon Nov 9 22:59:04 2009 +0100 rt2x00: Fix typo in rf programming of rt2800lib. Fix a type in rt2800_config_channel_rt3x. The second write to RF register 2 should be to RF register 3. This is confirmed by the legacy Ralink code. Signed-off-by: Gertjan van Wingerde Acked-by: Ivo van Doorn Signed-off-by: John W. Linville commit e5d6eb8305a4c116fc94ce28b8136c538c92442f Author: Luis R. Rodriguez Date: Mon Nov 9 16:03:22 2009 -0500 mac80211: fix max HT rate processing on mac80211 The max MCS index is 76, fix the higher check to allow through frames received at MCS 76. This is a non-issue for current drivers as MCS 76 is only possible with a device supporting 4 spatial streams. While at it change the WARN_ON() on invalid HT rates to a WARN() to provide more useful information. This will help debug issues when the driver is passing up a bogus HT rate value. The rate must map to a valid MCS index which can be any of the values in the set [0 - 76] (inclusive). Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit b34e620faa843d746400e324580e9a9efd457e4d Author: Thadeu Lima de Souza Cascardo Date: Mon Nov 9 09:45:50 2009 +0100 rt2x00: fix some typos and punctuation in comments fix some typos and punctuation in comments Signed-off-by: Thadeu Lima de Souza Cascardo Signed-off-by: Jiri Kosina Signed-off-by: John W. Linville commit 13b409cc8c1614090f256729ee0038438a6946f7 Author: Jason Andryuk Date: Sun Nov 8 19:02:19 2009 -0500 at76c50x-usb: Supply additional parameters to at76_start_monitor scan request For my Linksys WUSB11 at76c503-i3861 device, scanning fails without probe_delay, min_channel_time, and max_channel_time specified for the scan request. These values were found by checking scan requests from the at76_usb driver. Signed-off-by: Jason Andryuk Acked-by: Kalle Valo Signed-off-by: John W. Linville commit a6ef92ad3588d4e011295bf724f88e7d5b8c0e1b Author: Jason Andryuk Date: Sun Nov 8 18:58:01 2009 -0500 at76c50x-usb: Remove mac2str and replace with %pM format specifier. Signed-off-by: Jason Andryuk Acked-by: Kalle Valo Signed-off-by: John W. Linville commit 9c9a0d145fee73b5e821bb460732ac2a66c680b3 Author: Gertjan van Wingerde Date: Sun Nov 8 16:39:55 2009 +0100 rt2x00: Update copyright statements. As mentioned on the linux-wireless mailing list, the current copyright statements in the rt2x00 are meaningless, as the rt2x00 project is not even a formal legal entity. Therefore it is better to replace the existing copyright statements with copyright statements for the people that actually wrote the code. Note: Updated to the best of my knowledge with respect to who contributed considerable amounts of code. Signed-off-by: Gertjan van Wingerde Acked-by: Ivo van Doorn CC: Bartlomiej Zolnierkiewicz Signed-off-by: John W. Linville commit 6aefbfa0204b1dab4b9f23ca30f8840ba0d9134a Author: Bartlomiej Zolnierkiewicz Date: Sun Nov 8 14:43:35 2009 +0100 rt2500usb: remove dead link tuning code Link tuning code from the legacy rt2570 driver turned out to be harmful and got disabled by the commit d06193f ("rt2x00: Disable link tuning in rt2500usb") in August 2008. There is no reason to keep this dead code any longer so remove it (it can still be retrieved from the git history if necessary). Signed-off-by: Bartlomiej Zolnierkiewicz Acked-by: Gertjan van Wingerde Signed-off-by: John W. Linville commit 40beee5c15a816bf77747e15940ac3b97229faf4 Author: Bartlomiej Zolnierkiewicz Date: Sun Nov 8 14:39:55 2009 +0100 rt2800usb: add eFuse EEPROM support It is needed for at least RT3070 chip. Signed-off-by: Bartlomiej Zolnierkiewicz Acked-by: Ivo van Doorn Acked-by: Gertjan van Wingerde Signed-off-by: John W. Linville commit 30e840346c516ad4e36f710fa485933ccc7afa66 Author: Bartlomiej Zolnierkiewicz Date: Sun Nov 8 14:39:48 2009 +0100 rt2800: add eFuse EEPROM support code to rt2800lib eFuse EEPROM is used also by USB chips (i.e. RT3070) so move the needed code from rt2800pci to rt2800lib. Signed-off-by: Bartlomiej Zolnierkiewicz Acked-by: Gertjan van Wingerde Signed-off-by: John W. Linville commit 4116cb483ec148e30f70408ad0600304a5de2a3c Author: Bartlomiej Zolnierkiewicz Date: Sun Nov 8 14:39:40 2009 +0100 rt2800usb: fix RX descriptor naming Rename RXD_W0_* defines to RXINFO_W0_* ones to match naming used for TX descriptor and by the vendor driver. Signed-off-by: Bartlomiej Zolnierkiewicz Acked-by: Ivo van Doorn Acked-by: Gertjan van Wingerde Signed-off-by: John W. Linville commit 4da2933fe1f2d3d9ed548660f5c02a9b0608a8c7 Author: Bartlomiej Zolnierkiewicz Date: Sun Nov 8 14:39:32 2009 +0100 rt2800: unify rt2800*_probe_hw_mode() Add rf_vals tables and rt2800_probe_hw_mode() to rt2800lib. Signed-off-by: Bartlomiej Zolnierkiewicz Acked-by: Ivo van Doorn Signed-off-by: John W. Linville commit f2b38cbfd98eb36799f45178c73b2ed81402abd8 Author: Bartlomiej Zolnierkiewicz Date: Sun Nov 8 14:39:25 2009 +0100 rt2800: prepare for rt2800*_probe_hw_mode() unification Enclose interface specific code in rt2800[pci,usb]_probe_hw_mode() with rt2x00_intf_is_[pci,usb]() checks. Signed-off-by: Bartlomiej Zolnierkiewicz Acked-by: Ivo van Doorn Acked-by: Gertjan van Wingerde Signed-off-by: John W. Linville commit 726984b61e744c1fef72d20e56eadd0864ecb240 Author: Bartlomiej Zolnierkiewicz Date: Sun Nov 8 14:39:16 2009 +0100 rt2800usb: reorganize code in rt2800usb_probe_hw_mode() Move hw_mode information initialization code block before HT information initialization one to match the ordering used by rt2800pci's rt2800pci_probe_hw_mode(). Signed-off-by: Bartlomiej Zolnierkiewicz Acked-by: Ivo van Doorn Acked-by: Gertjan van Wingerde Signed-off-by: John W. Linville commit 4d685e550b5ace42fdf6d72506bab6e7ae93e669 Author: Bartlomiej Zolnierkiewicz Date: Sun Nov 8 14:39:09 2009 +0100 rt2800pci: add missing RF values to rf_vals table rt2800pci's rf_vals[] copy was missing values for some channels. Signed-off-by: Bartlomiej Zolnierkiewicz Acked-by: Ivo van Doorn Acked-by: Gertjan van Wingerde Signed-off-by: John W. Linville commit 38bd7b8a0f485ba5ad514fcd621a1842ebadf9e6 Author: Bartlomiej Zolnierkiewicz Date: Sun Nov 8 14:39:01 2009 +0100 rt2800: unify EEPROM support code Add rt2800_validate_eeprom() and rt2800_init_eeprom() to rt2800lib. Signed-off-by: Bartlomiej Zolnierkiewicz Acked-by: Ivo van Doorn Acked-by: Gertjan van Wingerde Signed-off-by: John W. Linville commit 7ab71325cf0940099c376799aca6de7bc86ad2d0 Author: Bartlomiej Zolnierkiewicz Date: Sun Nov 8 14:38:54 2009 +0100 rt2800: prepare for unification of EEPROM support code * Factor out common code from rt2800[pci,usb]_validate_eeprom() to rt2800_validate_eeprom(). * Fix interface specific comment in rt2800[pci,usb]_validate_eeprom(). * Enclose interface specific code in rt2800[pci,usb]_init_eeprom() with rt2x00_intf_is_[pci,usb]() checks. Signed-off-by: Bartlomiej Zolnierkiewicz Acked-by: Ivo van Doorn Acked-by: Gertjan van Wingerde Signed-off-by: John W. Linville commit 863cc978a73bc07f1de0e9a9bd9889bed6e618da Author: Ivo van Doorn Date: Sun Nov 8 14:37:48 2009 +0100 rt2x00: Remove deprecated ieee80211_rx_status->qual usage ieee80211_rx_status->qual has been marked deprecated. This allows us to remove several functions and fields which were used to calculate a reasonable value for it. Signed-off-by: Ivo van Doorn Acked-by: Gertjan van Wingerde Signed-off-by: John W. Linville commit a65986824d2552dd76786d5a0012989a64c45ab7 Author: Gertjan van Wingerde Date: Sun Nov 8 12:30:35 2009 +0100 rt2x00: Add dynamic detection of eFuse EEPROM in rt2800pci. Instead of assuming that all rt3090 devices will have an eFuse EEPROM, do as the legacy Ralink driver, and detect at run-time whether an eFuse EEPROM is present. Signed-off-by: Gertjan van Wingerde Acked-by: Ivo van Doorn Acked-by: Bartlomiej Zolnierkiewicz Signed-off-by: John W. Linville commit 748d451028ef037576b57517bc81e62f1fd92250 Author: Luis R. Rodriguez Date: Thu Nov 5 14:10:07 2009 -0800 ath9k_common: clarify and correct jumbogram processing Jumbograms are frames put together linked together through more than one descriptor. For example ath9k_htc will use this to send from the target a large frame split up into 2 or more segments. The driver then would be in charge of putting the frame back together. When jumbograms are constructed the rx_stats->rs_more will bet set and rx_stats->rs_status will not have any valid content as the actual status will only be avialable at the end of the chained descriptors. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 165864d08774823e3b88d5fcf4dad302700612e3 Author: Luis R. Rodriguez Date: Thu Nov 5 08:53:10 2009 -0800 ath9k_common: remove ath9k_compute_qual() This is now deprecated and unused within mac80211, so time to remove it as otherwise we'd be doing some unecessary computations for nothing. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit db86f07ec6cdea9670a0928bd1289109d2a989dc Author: Luis R. Rodriguez Date: Thu Nov 5 08:44:39 2009 -0800 ath9k_common: add new module to share 802.11n driver helpers ath9k and ath9k_htc share a lot of common hardware characteristics. They only differ in that ath9k_htc works with a target CPU and ath9k works directly with the hardware. ath9k_htc will do *some* things in the firmware, but a lot of others on the host. The common 802.11n hardware code is already shared through the ath9k_hw module. Common helpers amongst all Atheros drivers can use the ath module, this includes ath5k and ar9170 as users. But there is some common driver specific helpers which are not exactly hardware code which ath9k and ath9k_htc can share. We'll be using ath9k_common for this to avoid bloating the ath module and the common 802.11n hardware module ath9k_hw. We start by sharing skb pre and post processing in preparation for a hand off to mac80211. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit c9b1417055cd2518e8a3b4b27e1f8e4b72821dff Author: Luis R. Rodriguez Date: Wed Nov 4 16:47:22 2009 -0800 ath9k: move RX skb post processing to a helper Use a helper for the RX skb post processing, ath9k_rx_skb_postprocess(). Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit dc1e001bf498a19dcb46676d933cd0e92dc53ef3 Author: Luis R. Rodriguez Date: Wed Nov 4 17:47:31 2009 -0800 ath5k: use the common->keymap Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 7e86c1048a9f5f1e157daf28411f3526f0b9f7b6 Author: Luis R. Rodriguez Date: Wed Nov 4 17:21:01 2009 -0800 ath9k: move driver keymap, keymax and splitmic to common This will make sharing code easier between ath9k and ath9k_htc. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 1e875e9f16e3138d0e23cbf806a6d9520b622db2 Author: Luis R. Rodriguez Date: Wed Nov 4 16:34:33 2009 -0800 ath9k: rename ath_rx_prepare() to ath9k_rx_skb_preprocess() And change the return value to something more obvious. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 2c74aa4d73dbed2e879e7eb5ee9de95d40e5298d Author: Luis R. Rodriguez Date: Wed Nov 4 15:11:05 2009 -0800 ath9k: move the max rx buffer size check to ath9k_rx_accept() While at it flip the order, seems easier to read and also add some better description as to why we do this check. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit dd849782a7388e091e356373a744f8b7ae97188a Author: Luis R. Rodriguez Date: Wed Nov 4 09:44:50 2009 -0800 ath5k: remove double cache alignment, ath_rxbuf_alloc() already does it ath5k is using the (csz - 1) twice as ath_rxbuf_alloc() already allocates and moves skb->data accordingly. Remove the extra (csz -1). Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit cc861f7468724e66567baf087b4e413e91b18150 Author: Luis R. Rodriguez Date: Wed Nov 4 09:11:34 2009 -0800 ath: move the rx bufsize to common to share with ath5k/ath9k This will also be used by ath9k_htc. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 0a45da765e4bf5e8a7705266fa36e0f44787b0a1 Author: Luis R. Rodriguez Date: Wed Nov 4 08:58:45 2009 -0800 ath9k: move the rx_stats->rs_datalen check to ath9k_rx_accept() Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 5ca42627f3ddc0e4fc3e62d879cc35ab5beaaa8b Author: Luis R. Rodriguez Date: Wed Nov 4 08:20:42 2009 -0800 ath9k: avoid the copy skb->cb on every RX'd skb The skb->cb (control buffer, 48 bytes) is available to the skb upon skb allocation. You can fill it up imediately after skb allocation. ath9k was copying onto the skb->cb the data from the processed skb for mac80211 from a stack struct ieee80211_rx_status structure. This is unnecessary, instead use the skb->cb for the rx status immediately after the skb becomes available and DMA synched. Additionally, avoid the copy of the skb->cb also for virtual wiphys as skb_copy() will copy over the skb->cb for us as well. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit dbfc22df1afbeb91d528e2f84d6603ac9ce98bc2 Author: Luis R. Rodriguez Date: Tue Nov 3 18:35:05 2009 -0800 ath9k: move rssi processing into a helper This moves all the RX processing of RSSI into a helper, ath_rx_prepare(). ath_rx_prepare() should now be really easy to read and follow. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 21b22738068366d7740b4b7cf55ce270f479543a Author: Luis R. Rodriguez Date: Tue Nov 3 18:20:26 2009 -0800 ath9k: move qual processing into a helper This moves the qual computing into a small helper, ath9k_compute_qual() Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 9878841e1360266fa4522fbdc2448fcdce95e0dd Author: Luis R. Rodriguez Date: Tue Nov 3 18:10:30 2009 -0800 ath9k: move rate descriptor reading into a helper ath9k_process_rate() now does all the rx status processing to read the rate the hardware passed and translate it to whatever mac80211 wants. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 14077f5b7a28bdcd166faed2c0b36fad9f3eadda Author: Luis R. Rodriguez Date: Tue Nov 3 17:52:33 2009 -0800 ath9k: remove temp variable ratecode from ath_rx_prepare() Its just a distraction when reading the code, instead use the rx_stats->rs_rate directly. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 207e96854e39380fce8b589bbbdaf6e9a83b9151 Author: Luis R. Rodriguez Date: Tue Nov 3 17:39:00 2009 -0800 ath9k: move RX check code into helper ath9k_rx_accept() This does sanity checking on the skb and RX status descriptor prior to processing. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 712c13a86affe69dd8462631808edd5825b5e1cb Author: Luis R. Rodriguez Date: Tue Nov 3 15:57:16 2009 -0800 ath9k: use the ieee80211_hw to get to an sband on ath_rx_prepare() No need to use the private driver structure to get to an sband. This will make it easier to share this code with ath9k_htc. With the sc gone we can now just pass the common structure to ath_rx_prepare(). Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 3d536acf45ba65acb15fc65bf46f8d6c7ad6c463 Author: Luis R. Rodriguez Date: Tue Nov 3 17:07:04 2009 -0800 ath9k: move struct ath_ani to common area This can be shared between ath9k and ath9k_htc. It will also help with sharing routine helpers on the RX path. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 30cbd42265546a3efa146d4eb3456165325c83a7 Author: Luis R. Rodriguez Date: Tue Nov 3 16:10:46 2009 -0800 ath9k_hw: move ath_extend_tsf() to hw code to share as ath9k_hw_extend_tsf() This will be shared between ath9k and ath9k_htc. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 26ab2645b478fd98aa1d10a07eb07f2235bc1f1c Author: Luis R. Rodriguez Date: Mon Nov 2 18:49:56 2009 -0800 ath9k: do not pass the entire descriptor to ath_rx_prepare() Its not needed, so just pass the hardware RX status. We'll be simplfying ath_rx_prepare() with code we can share between ath9k and ath9k_htc. This will help make that code easier to read and manage. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit f52de03bf9843673cadff8016a609e1628c139e2 Author: Luis R. Rodriguez Date: Mon Nov 2 17:09:12 2009 -0800 ath9k: handle low buffer space for virtual wiphys ath9k virtual wiphys all share the same internal buffer space for TX but they do not share the mac80211 skb queues. When ath9k detects it is running low on buffer space to TX it tells mac80211 to stop sending it skbs its way but it always does this only for the primary wiphy. This means mac80211 won't know its best to avoid sending ath9k more skbs on a separate virtual wiphy. The same issue is present for reliving the skb queue. Since ath9k does not keep track of which virtual wiphy is hammering on TX silence all wiphy's TX when we're low on buffer space. When we're free on buffer space only bother informing the virtual wiphy which is active that we have free buffers. Cc: Jouni.Malinen Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 5008f3727b05b5eb970ce703721aa5897a088e30 Author: Luis R. Rodriguez Date: Mon Nov 2 16:27:33 2009 -0800 ath9k: use the right hw on ath_tx_setup_buffer() for HT When using virtual wiphys the base sc->hw was being used, the correct hw is passed along the caller already so just use that. Cc: Jouni.Malinen Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 76d5a9e83b6e72ebe651c08e6dc247a58469ddda Author: Luis R. Rodriguez Date: Mon Nov 2 16:08:34 2009 -0800 ath9k: use correct hw for tx aggregation TX completion When ath9k virtual wiphys are used the sc->hw will not always represent the active hw, instead we need to get it from the skb->cb private driver area. This ensures the right hw is used to find a sta for the TX'd skb. Cc: Jouni.Malinen Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 68a89116157d9d479a854db6d79a9116be79cd99 Author: Luis R. Rodriguez Date: Mon Nov 2 14:35:42 2009 -0800 ath9k: pass the ieee80211_hw on radio enable/disable We use the ieee80211_hw for radio enable/disable but the wrong structure hw was being used in consideration for virtual wiphys as each virtual wiphy has its own ieee80211_hw struct. Just pass the hw struct to ensure we use the right one. This should fix the hw used and passed for radio enable/disable. This includes the stoping / starting of the software TX queues so mac80211 doesn't send us data for a specific virtual wiphy. ath9k already takes care of pausing virtual wiphys and stopping the respective queues on its own, but this should handle the idle mac80211 conf calls as well. Cc: Jouni.Malinen Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit cee71d6c1471953239ea4c13306888cf2b36426e Author: Luis R. Rodriguez Date: Mon Nov 2 14:17:51 2009 -0800 ath9k: use the passed ieee80211_hw on ath_rx_prepare() this now uses the proper hw which should mean finding the right sta when using ath9k virtual wiphy stuff. Only advantage I see here is getting the rssi properly updated so the 'fix' itself isn't that great, but at least this is correct. Cc: Jouni.Malinen Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit b4afffc0cfa3f35ee011d5ed4153e49f5cc3bc96 Author: Luis R. Rodriguez Date: Mon Nov 2 11:36:08 2009 -0800 ath9k: simpify RX by calling ath_get_virt_hw() once ath_get_virt_hw() is required on RX to determine for which virtual wiphy an skb came in for. Instead of searching for the hw twice do it only once. Cc: Jouni.Malinen Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 1bdf6c3bece59c96aec3b8b457a9a554f6b2c433 Author: Luis R. Rodriguez Date: Wed Oct 28 13:39:40 2009 -0700 ath9k: update hw configuration for virtual wiphys ath9k supports its own virtual wiphys. The hardware code relies on the ieee80211_hw for the present interface but with recent changes introduced the common->hw was never updated and is required for virtual wiphys. Cc: Jouni.Malinen Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 194b7c13b4c516db94db8ee004342f8935922739 Author: Luis R. Rodriguez Date: Thu Oct 29 10:41:15 2009 -0700 ath9k: fix listening to idle requests The way idle configuration detection was implemented as busted due to the fact that it assumed the ath9k virtual wiphy, the aphy, would be marked as inactive if it was not used but it turns out an aphy is always active if its the only wiphy present. We need to distinguish between aphy activity and idleness so we now add an idle bool for the aphy and mark it as such based on the passed IEEE80211_CONF_CHANGE_IDLE from mac80211. Previous to all_wiphys_idle would never be true when using only one device so we never really were using IEEE80211_CONF_CHANGE_IDLE -- we never turned the radio off or on upon IEEE80211_CONF_CHANGE_IDLE changes as radio changes depended on all_wiphys_idle being true either to turn the radio on or off. Since it was always false for one device this code was doing nothing. Cc: Jouni.Malinen Reported-by: Vasanthakumar Thiagarajan Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit f14543ee4d0681df1377b976cba704557ba220d3 Author: Felix Fietkau Date: Tue Nov 10 20:10:05 2009 +0100 mac80211: implement support for 4-address frames for AP and client mode In some situations it might be useful to run a network with an Access Point and multiple clients, but with each client bridged to a network behind it. For this to work, both the client and the AP need to transmit 4-address frames, containing both source and destination MAC addresses. With this patch, you can configure a client to communicate using only 4-address frames for data traffic. On the AP side you can enable 4-address frames for individual clients by isolating them in separate AP VLANs which are configured in 4-address mode. Such an AP VLAN will be limited to one client only, and this client will be used as the destination for all traffic on its interface, regardless of the destination MAC address in the packet headers. The advantage of this mode compared to regular WDS mode is that it's easier to configure and does not require a static list of peer MAC addresses on any side. Signed-off-by: Felix Fietkau Signed-off-by: John W. Linville commit 8b787643ca0a5130c647109d77fe512f89cfa611 Author: Felix Fietkau Date: Tue Nov 10 18:53:10 2009 +0100 nl80211: add a parameter for using 4-address frames on virtual interfaces Signed-off-by: Felix Fietkau Signed-off-by: John W. Linville commit ddd21046e7b5e112b5a4722b7e071ae9d4c96a2b Author: John W. Linville Date: Wed Nov 11 13:04:42 2009 -0800 iwlwifi: fix iwl1000 "RTS/CTS for HT" merge damage I may have botched my merge conflict resolution instructions for Dave... Signed-off-by: John W. Linville Signed-off-by: David S. Miller commit 1460dd158a520447b87661aea4afda1997d69cde Author: Rui Paulo Date: Mon Nov 9 23:46:48 2009 +0000 mac80211: improve peer link management debugging Print the FSM state strings instead of just the numbers. Signed-off-by: Rui Paulo Signed-off-by: Javier Cardona Reviewed-by: Andrey Yurovsky Tested-by: Brian Cavagnolo Signed-off-by: John W. Linville commit f3c0d88a7fc1c3fff84ac57d3f3195d0dd1854ac Author: Rui Paulo Date: Mon Nov 9 23:46:47 2009 +0000 mac80211: improve HWMP debugging Signed-off-by: Rui Paulo Signed-off-by: Javier Cardona Reviewed-by: Andrey Yurovsky Tested-by: Brian Cavagnolo Signed-off-by: John W. Linville commit dbb81c428bf534fcfe94102acca50f6d56504999 Author: Rui Paulo Date: Mon Nov 9 23:46:46 2009 +0000 mac80211: allow processing of more than one HWMP IE Since the HWMP IEs are now all optional and the action code is fixed, allow the HWMP code to find and process each IE on the path selection action frames. Signed-off-by: Rui Paulo Signed-off-by: Javier Cardona Reviewed-by: Andrey Yurovsky Tested-by: Brian Cavagnolo Signed-off-by: John W. Linville commit 27db2e423fdeae8815087677261ab72cca7b3c28 Author: Rui Paulo Date: Mon Nov 9 23:46:45 2009 +0000 mac80211: add MAC80211_VERBOSE_MHWMP_DEBUG Add MAC80211_VERBOSE_MHWMP_DEBUG, a debugging option for HWMP frame processing. Signed-off-by: Rui Paulo Signed-off-by: Javier Cardona Reviewed-by: Andrey Yurovsky Tested-by: Brian Cavagnolo Signed-off-by: John W. Linville commit 095de01325962e7574d5793193c6f3ae9a175aab Author: Rui Paulo Date: Mon Nov 9 23:46:44 2009 +0000 mac80211: update the format of path selection frames Update the format of path selection frames according to latest draft (3.03). Signed-off-by: Rui Paulo Signed-off-by: Javier Cardona Reviewed-by: Andrey Yurovsky Tested-by: Brian Cavagnolo Signed-off-by: John W. Linville commit 0938393f02c5a4db75a6e38ee31645c974169bb5 Author: Rui Paulo Date: Mon Nov 9 23:46:43 2009 +0000 mac80211: update peer link management IE and action frames Update the length and format of the peer link management action frames. Signed-off-by: Rui Paulo Signed-off-by: Javier Cardona Reviewed-by: Andrey Yurovsky Tested-by: Brian Cavagnolo Signed-off-by: John W. Linville commit 23c7a29cd020250646249592941261777cbeaf16 Author: Rui Paulo Date: Mon Nov 9 23:46:42 2009 +0000 mac80211: fix typo in a comment Signed-off-by: Javier Cardona Signed-off-by: Rui Paulo Reviewed-by: Andrey Yurovsky Tested-by: Brian Cavagnolo Signed-off-by: John W. Linville commit 8f2fda9594f083981ad54c1994863875fe680925 Author: Rui Paulo Date: Mon Nov 9 23:46:41 2009 +0000 mac80211: implement the meshconf formation info field The Mesh Configuration Formation Info field contains the number of neighbors. This means that the beacon must be updated every time a peer joins or leaves. Signed-off-by: Rui Paulo Signed-off-by: Javier Cardona Reviewed-by: Andrey Yurovsky Tested-by: Brian Cavagnolo Signed-off-by: John W. Linville commit a1935218da8964a033bdf68c591629741c94eeec Author: Rui Paulo Date: Mon Nov 9 23:46:40 2009 +0000 mac80211: set MESH_TTL to 31 Update the mesh time to live field to 31 according to draft 3.03. Signed-off-by: Rui Paulo Signed-off-by: Javier Cardona Reviewed-by: Andrey Yurovsky Tested-by: Brian Cavagnolo Signed-off-by: John W. Linville commit 3491707a070c1183c709516b2f876f798c7a9a84 Author: Rui Paulo Date: Mon Nov 9 23:46:39 2009 +0000 mac80211: update meshconf IE This updates the Mesh Configuration IE according to the latest draft (3.03). Notable changes include the simplified protocol IDs. Signed-off-by: Rui Paulo Signed-off-by: Javier Cardona Reviewed-by: Andrey Yurovsky Tested-by: Brian Cavagnolo Signed-off-by: John W. Linville commit ac9d1a7bef71afa4837769ef38edb0f7e2ef8028 Author: Gertjan van Wingerde Date: Mon Nov 9 23:38:35 2009 +0100 rt2x00: Fix building of rt2800lib when rt2x00 driver is built-in. When enabling rt2800usb as a built-in driver (as opposed to a as a module) the build fails. See http://marc.info/?l=linux-wireless&m=125768687711034&w=2 for details. Fix it by properly including from rt2x00usb.h Signed-off-by: Gertjan van Wingerde Acked-by: Ivo van Doorn Signed-off-by: John W. Linville commit 2015d1920c6ec637b16db1e8734d9070983db21f Author: Gertjan van Wingerde Date: Sun Nov 8 12:30:14 2009 +0100 rt2x00: Move interface type assignments to generic code. Make sure all drivers can benefit of the assignment of the interface type of an adapter, instead of keeping it for rt2800 only. Signed-off-by: Gertjan van Wingerde Acked-by: Ivo van Doorn Acked-by: Bartlomiej Zolnierkiewicz Signed-off-by: John W. Linville commit f9ef6028b2c1272a2f12299053efef90e8721f21 Author: Julia Lawall Date: Sun Nov 8 09:23:07 2009 +0100 drivers/net/wireless: correct check on CCS_START_NETWORK CCS_START_NETWORK is declared in drivers/net/wireless/rayctl.h with the comment Values for cmd. status is previously compared to CCS_COMMAND_COMPLETE, which is declared in the same file with the comment Values for buffer_status. Finally, it is possible at this point that cmd is CCS_START_NETWORK, because it is compared to that value in an enclosing switch that has CCS_START_NETWORK as one of two case labels around this code. Signed-off-by: Julia Lawall Signed-off-by: John W. Linville commit 3e8b4d006ed04b1ddb7450faee7fa429e2a00e48 Author: Ben Hutchings Date: Sat Nov 7 22:03:22 2009 +0000 zd1211rw: declare MODULE_FIRMWARE Signed-off-by: Ben Hutchings Signed-off-by: John W. Linville commit e01b0e0f90681072d29fe1ba6a29298683f42c15 Author: Ben Hutchings Date: Sat Nov 7 22:02:39 2009 +0000 zd1201: declare MODULE_FIRMWARE Signed-off-by: Ben Hutchings Signed-off-by: John W. Linville commit 49f146de405cfb37c51976b8a682330b8cb2972e Author: Ben Hutchings Date: Sat Nov 7 22:02:15 2009 +0000 wl12xx: declare MODULE_FIRMWARE Signed-off-by: Ben Hutchings Signed-off-by: John W. Linville commit a830e6599263aa535e298f5f834f3a119050757f Author: Ben Hutchings Date: Sat Nov 7 22:01:55 2009 +0000 prism54: declare MODULE_FIRMWARE Signed-off-by: Ben Hutchings Signed-off-by: John W. Linville commit 6f48d0e981c026572eac643ed43ebfb883048c14 Author: Ben Hutchings Date: Sat Nov 7 22:01:29 2009 +0000 orinoco: declare MODULE_FIRMWARE Signed-off-by: Ben Hutchings Signed-off-by: Pavel Roskin Signed-off-by: John W. Linville commit 7e75b942f67a13a9980c5e2b4fa1993b20426284 Author: Ben Hutchings Date: Sat Nov 7 22:00:57 2009 +0000 mwl8k: declare MODULE_FIRMWARE Signed-off-by: Ben Hutchings Signed-off-by: John W. Linville commit 790e7560c09a0184afcc00ac0f8df95de7468acc Author: Ben Hutchings Date: Sat Nov 7 22:00:38 2009 +0000 libertas_tf_usb: declare MODULE_FIRMWARE Signed-off-by: Ben Hutchings Signed-off-by: John W. Linville commit a974a4bbcb1ceddc9c89defd7dab4da4b2b53d77 Author: Ben Hutchings Date: Sat Nov 7 22:00:03 2009 +0000 libertas: declare MODULE_FIRMWARE Signed-off-by: Ben Hutchings Signed-off-by: John W. Linville commit 328aca32783cc98088151ce905977c8e899e5fc9 Author: Ben Hutchings Date: Sat Nov 7 21:59:38 2009 +0000 iwmc3200wifi: declare MODULE_FIRMWARE Signed-off-by: Ben Hutchings Signed-off-by: John W. Linville commit 873395a9fe15e5c42004e341b7d3632e6a273f73 Author: Ben Hutchings Date: Sat Nov 7 21:59:10 2009 +0000 ipw2200: declare MODULE_FIRMWARE Signed-off-by: Ben Hutchings Acked-by: Zhu Yi Signed-off-by: John W. Linville commit a278ea3e423f7231934ba06a29592cddad8a6663 Author: Ben Hutchings Date: Sat Nov 7 21:58:47 2009 +0000 ipw2100: declare MODULE_FIRMWARE Signed-off-by: Ben Hutchings Acked-by: Zhu Yi Signed-off-by: John W. Linville commit b98a032f6d9d4a5bc17490f67b13e5ca77c8410f Author: Ben Hutchings Date: Sat Nov 7 21:58:05 2009 +0000 atmel: declare MODULE_FIRMWARE Signed-off-by: Ben Hutchings Signed-off-by: John W. Linville commit 202982dbf51ece7c2b49dc8b6066ff60cb02bcce Author: Ben Hutchings Date: Sat Nov 7 21:56:08 2009 +0000 at76c50x-usb: declare MODULE_FIRMWARE Signed-off-by: Ben Hutchings Signed-off-by: John W. Linville commit c286181d5bfd8703219b954284143cfadff60b9b Author: Michael Buesch Date: Sat Nov 7 18:54:22 2009 +0100 b43-pio: Fix RX error path for rev>=8 devices This fixes the RX error path for rev>=8 devices. The wrong register size and definitions were used. Signed-off-by: Michael Buesch Signed-off-by: John W. Linville commit 309e731a619bee28ace609b0c4c3a0029b7e5394 Author: Ben Cahill Date: Fri Nov 6 14:53:03 2009 -0800 iwlwifi: MAC_ACCESS_REQ cleanup Add txq_id info to "Tx queue requesting wakeup" debug message Add "Rx queue requesting wakeup" debug message Move clear of CSR_GP_CNTRL_REG_FLAG_MAC_ACCESS_REQ to be after nearby iwl_write_prph(), since iwl_write_prph() sets it and clears it. Almost removed it entirely, but just making sure in case someone removes the iwl_write_prph()! Also remove unneeded priv->lock usage; this is now handled by priv->reg_lock within iwl_clear_bit(). Join a couple of lines that had unneeded line returns. Signed-off-by: Ben Cahill Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit f060face819401fb1f6456d362c5bc6672bba655 Author: Wey-Yi Guy Date: Fri Nov 6 14:53:02 2009 -0800 iwlwifi: Fix issue on file transfer stalled in HT mode Turn on RTS/CTS for HT to prevent uCode TX fifo underrun This is fix for http://bugzilla.intellinuxwireless.org/show_bug.cgi?id=2103 Signed-off-by: Wey-Yi Guy Tested-by: Jiajia Zheng Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 8756990f99ecdfe64ed32cce878e36bddc16bdcc Author: Ben Cahill Date: Fri Nov 6 14:53:01 2009 -0800 iwlagn: update write pointers in iwl_irq_tasklet() Follow-up to "update write pointers for all tx queues after wakeup"; that patch changed iwl_irq_tasklet_legacy(), but not iwl_irq_tasklet(), so newer devices were not covered. Comments from original patch: Wakeup interrupt has been updating write pointers (indexes, actually) only for tx queues 0-5. This is adequate just for 3945, but inadequate for other devices, all of which have more tx queues. Now updating all tx/command queues, so device can be aware of all new tx and host commands enqueued while device was asleep. This can potentially improve data traffic bandwidth and/or latency. Signed-off-by: Ben Cahill Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit a7e6611034530fce62f5499f77dd4fb6cde4d130 Author: Ben Cahill Date: Fri Nov 6 14:53:00 2009 -0800 iwlwifi: Add comments about MAC_ACCESS_REQ Signed-off-by: Ben Cahill Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 2a3b793d6a0ff30ad4a541230a6dba2ecb6fff1b Author: Ben Cahill Date: Fri Nov 6 14:52:59 2009 -0800 iwlwifi: Update comments for struct iwl_ssid_ie Signed-off-by: Ben Cahill Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit e585447189123de627ecbfaccab9d7a3328a5dd8 Author: Ben Cahill Date: Fri Nov 6 14:52:58 2009 -0800 iwlwifi: speed up event log dumps Take advantage of device's auto-increment for SRAM reads to eliminate extra write address accesses. Grab/release NIC access before/after entire read sequence, rather than for each read individually. After a quick check of dmesg logs, this seems to double Event Log dump speed, reducing from about 20 milliseconds to about 10 milliseconds for 512 entries using 3945. Signed-off-by: Ben Cahill Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 84c4069232a671b3739387949d5cb588dacbd24a Author: Ben Cahill Date: Fri Nov 6 14:52:57 2009 -0800 iwlwifi: Limit size of Event Log dump If device provides bad values for Event Log parameters (due to being asleep or SRAM corruption, etc.), the size can be very, very large (e.g. 0xa5a5a5a5), which can flood system log. Sanity-check capacity and next_entry values and limit to reasonable size dump. Signed-off-by: Ben Cahill Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 6762f07fd55ff5e588aa5f0a1b70efe8e268a2e8 Author: Wey-Yi Guy Date: Fri Nov 6 14:52:56 2009 -0800 iwlwifi: do not base station's sm_ps setting on AP Do not use AP's SM_PS setting for our own SM_PS setting. Reported-by: Johannes Berg Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 740e7f51c226076d8f8ccb203d9ba6258a5bcec7 Author: Wey-Yi Guy Date: Fri Nov 6 14:52:55 2009 -0800 iwlwifi: drop non-production PCI-IDs Remove the support for all the PCI_IDs never make into production Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 0924e519a3a18ffbfaa043f4a2c369140c5a235c Author: Wey-Yi Guy Date: Fri Nov 6 14:52:54 2009 -0800 iwlwifi: fix for channel switch Different channel has different configuration, need to pass correct configuration to uCode when send "channel switch" command to uCode. Invalid configuration will cause sysassert in uCode and produce un-expected result. Even it is a very small windows, but we also need to consider and handle the case if commit_rxon occurred before the "channel switch announcement" notification received from uCode. Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 681988653ed46a14032ac5fe2ee84eaae314b72e Author: Johannes Berg Date: Fri Nov 6 14:52:53 2009 -0800 iwlwifi: add FIFO usage for 5000 This is part of the code, but the comment doesn't have it, add pointers to the code and the FIFO usage for 5000 and up. Signed-off-by: Johannes Berg Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit bed0a68f98d93c0abdc96b4c290a92c80234c182 Author: Wey-Yi Guy Date: Fri Nov 6 14:52:52 2009 -0800 iwlwifi: remove un-used parameter Remove un-used parameter "recovery_rxon" from "priv" data structure Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 1a716557a5ed3b814cb32b8be79848d53e470871 Author: Johannes Berg Date: Fri Nov 6 14:52:51 2009 -0800 iwlwifi: fix FIFO vs. queue confusion When I added that code setting the swq_id, I evidently did not understand the distinction between FIFO and TX queue yet and added code to compare a queue ID and a FIFO number, which is bogus. However, the code there need not be this specific, it can just set all queues to the identity mapping which will be overwritten by the aggregation queue code. As a bit of defensive coding, don't assign an swq_id to the command queue so that if we ever use it for frames we notice quickly. Signed-off-by: Johannes Berg Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit a221e6f7b48ee2d9352827af8aec8b49272b5b43 Author: Johannes Berg Date: Fri Nov 6 14:52:50 2009 -0800 iwlwifi: don't double-activate queue 4 The fourth queue (command queue) is already activated in the loop above that also maps it to the command FIFO and therefore doesn't need to be marked as activated again. Also change the TODO comment to be accurate -- we need to initialise the _queues_, not FIFOs, and map them to device FIFOs. Signed-off-by: Johannes Berg Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 0748dc1fcd8589c0e215e26112320b76e7c9a262 Author: Wey-Yi Guy Date: Fri Nov 6 14:52:49 2009 -0800 iwlwifi: no periodic Tx/IQ calibration for 6x00/6x50 series For both 6x00 and 6x50 series devices, periodic Tx IQ calibration is disabled in uCode, driver do not need to set the periodic Tx/IQ calibration bit in calibration command. Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit b23aa883678aec0f5d9e96c9b3e416ec4fdf735e Author: Shanyu Zhao Date: Fri Nov 6 14:52:48 2009 -0800 iwlwifi: use configured valid rx chain for scan Use configured valid rx chains in scan command instead of ANT_ABC, correcting valid rx chain configuration of 4965, should be ANT_ABC instead of ANT_AB. Signed-off-by: Shanyu Zhao Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit f1e3d7d428616c04ef71bee3c2b6f274b8947755 Author: Shanyu Zhao Date: Fri Nov 6 14:52:47 2009 -0800 iwlwifi: use only one chain for scan in PS When doing scan in power saving mode, choose only 1 valid RX chain instead of turning all chains on. Signed-off-by: Shanyu Zhao Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit a643565efcdafdc37638aa5131ced91b2d3ddcb2 Author: Wey-Yi Guy Date: Fri Nov 6 14:52:46 2009 -0800 iwlwifi: print rx_on config to help debug To help debug rx related issues, if IWL_DEBUG_RADIO flag is set, print the rxon configuration when rxon host command send to uCode. Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit a3b6bd5bf23c5cd95389e24121da02d2330eaf21 Author: Zhu Yi Date: Fri Nov 6 14:52:45 2009 -0800 iwlwifi: allocate 128 bytes linear buffer for rx skb Allocate 128 bytes linear buffer for rx skb. The first 64 bytes is reserved for mac80211 usage (for radiotap header expansion, etc). The frame header starts from the second 64 bytes. Cc: Johannes Berg Signed-off-by: Zhu Yi Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit cf7ff8dfe64c8ca8a71b4fcbac357a3476ed1888 Author: Reinette Chatre Date: Fri Nov 6 14:52:44 2009 -0800 iwlwifi: change debug message to error in failure case Since these messages indicate failure we would be interested in seeing them always. Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit f54a52021d7ad039c16fe5a1e094d8f0394d90ec Author: Michael Buesch Date: Fri Nov 6 18:32:44 2009 +0100 b43: Rewrite TX bounce buffer handling Do not mess with the original skb, but allocate an independent bouncebuffer. This protects against bad interference with mac80211's assumptions about the skb (which already caused bugs). Signed-off-by: Michael Buesch Signed-off-by: John W. Linville commit 2071a0084a0323697b7d6fd5a98982194bd6929f Merge: ff879eb d01032e Author: David S. Miller Date: Wed Nov 11 11:38:16 2009 -0800 Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 Conflicts: drivers/net/wireless/iwlwifi/iwl-1000.c drivers/net/wireless/iwlwifi/iwl-6000.c drivers/net/wireless/iwlwifi/iwl-core.h commit f6d773cd4f3c18c40ab25a5cb92453756237840e Merge: d0e1e88 bcb628d Author: David S. Miller Date: Mon Nov 9 11:17:24 2009 -0800 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 commit 21ae2956ce289f61f11863cc67080f9a28101ae0 Author: Uwe Kleine-König Date: Wed Oct 7 15:21:09 2009 +0200 tree-wide: fix typos "aquire" -> "acquire", "cumsumed" -> "consumed" This patch was generated by git grep -E -i -l '[Aa]quire' | xargs -r perl -p -i -e 's/([Aa])quire/$1cquire/' and the cumsumed was found by checking the diff for aquire. Signed-off-by: Uwe Kleine-König Signed-off-by: Jiri Kosina commit 06fe9fb4182177fb046e6d934f80254dd90956ea Author: Dirk Hohndel Date: Mon Sep 28 21:43:57 2009 -0400 tree-wide: fix a very frequent spelling mistake something-bility is spelled as something-blity so a grep for 'blit' would find these lines this is so trivial that I didn't split it by subsystem / copy additional maintainers - all changes are to comments The only purpose is to get fewer false positives when grepping around the kernel sources. Signed-off-by: Dirk Hohndel Signed-off-by: Jiri Kosina commit 2caff14713d53abba273e6095495788e2720f756 Author: Dominik Brodowski Date: Sat Oct 24 15:53:36 2009 +0200 pcmcia: use dynamic debug infrastructure, deprecate CS_CHECK (wireless) Convert PCMCIA drivers to use the dynamic debug infrastructure, instead of requiring manual settings of PCMCIA_DEBUG. Also, remove all usages of the CS_CHECK macro and replace them with proper Linux style calling and return value checking. The extra error reporting may be dropped, as the PCMCIA core already complains about any (non-driver-author) errors. CC: linux-wireless@vger.kernel.org CC: netdev@vger.kernel.org Signed-off-by: Dominik Brodowski commit 624dd66957e53e15cf40e937b50597c4d41f0e99 Author: Dominik Brodowski Date: Sat Oct 24 15:52:44 2009 +0200 pcmcia: use dynamic debug infrastructure, deprecate CS_CHECK (ray-cs.c) Convert PCMCIA drivers to use the dynamic debug infrastructure, instead of requiring manual settings of PCMCIA_DEBUG. Also, remove all usages of the CS_CHECK macro and replace them with proper Linux style calling and return value checking. The extra error reporting may be dropped, as the PCMCIA core already complains about any (non-driver-author) errors. CC: linux-wireless@vger.kernel.org CC: netdev@vger.kernel.org Signed-off-by: Dominik Brodowski commit d0e1e88d6e7dbd8e1661cb6a058ca30f54ee39e4 Merge: 9e0d57f 2606289 Author: David S. Miller Date: Sun Nov 8 23:00:54 2009 -0800 Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 Conflicts: drivers/net/can/usb/ems_usb.c commit 9ac3e58ceff0b7b8b981c09c38a28742270eea12 Author: Dominik Brodowski Date: Sat Oct 24 15:45:06 2009 +0200 pcmcia: deprecate CS_CHECK (bluetooth) Remove all usages of the CS_CHECK macro and replace them with proper Linux style calling and return value checking. The extra error reporting may be dropped, as the PCMCIA core already complains about any (non-driver-author) errors. CC: linux-bluetooth@vger.kernel.org Signed-off-by: Dominik Brodowski commit aaa8cfdada648a6bae32f62df76cc60137a2b323 Author: Dominik Brodowski Date: Sun Oct 18 18:28:39 2009 +0200 pcmcia: use pcmcia_loop_config in misc pcmcia drivers Use pcmcia_loop_config() in a few drivers missed during the first round. On fmvj18x_cs.c it -- strangely -- only requries us to set conf.ConfigIndex, which is done by the core, so include an empty loop function which returns 0 unconditionally. CC: David S. Miller CC: David Sterba CC: netdev@vger.kernel.org CC: linux-wireless@vger.kernel.org For the ipwireless part: Acked-by: Jiri Kosina Acked-by: John W. Linville Signed-off-by: Dominik Brodowski commit 7d2e8d00b47b973c92db4df7444d5e6d3bb945f9 Author: Dominik Brodowski Date: Sun Oct 18 18:22:32 2009 +0200 pcmcia: use pre-determined values A few PCMCIA network drivers can make use of values provided by the pcmcia core, instead of tedious, independent CIS parsing. xirc32ps_cs.c: manf_id hostap_cs.c: multifunction count b43/pcmcia.c: ConfigBase address and "Present" smc91c92_cs.c: By default, mhz_setup() can use VERS_1 as it is stored in struct pcmcia_device. Only some cards require workarounds, such as reading out VERS_1 twice. CC: David S. Miller CC: netdev@vger.kernel.org CC: linux-wireless@vger.kernel.org Acked-by: John W. Linville Signed-off-by: Dominik Brodowski commit c6060be46fbda5af651b6ed2b85502ccbb3d9279 Author: Jie Yang Date: Fri Nov 6 00:32:05 2009 -0800 atl1c: change atl1c_buffer struct and restructure clean atl1c_buffer procedure change atl1c_buffer struct, use "u16 flags" instead of "u16 state" to store more infomation for atl1c_buffer, and restructure clean atl1c_buffer procedure, add common api atl1c_clean_buffer. Signed-off-by: Jie Yang Signed-off-by: David S. Miller commit 9646e7ce3d1955478aa0573b36c151ab4b649486 Author: Arnd Bergmann Date: Fri Nov 6 22:51:16 2009 -0800 net, compat_ioctl: handle socket ioctl abuses in tty drivers Slip and a few other drivers use the same ioctl numbers on tty devices that are normally meant for sockets. This causes problems with our compat_ioctl handling that tries to convert the data structures in a different format. Fortunately, these five drivers all use 32 bit compatible data structures in the ioctl numbers, so we can just add a trivial compat_ioctl conversion function to each of them. SIOCSIFENCAP and SIOCGIFENCAP do not need to live in fs/compat_ioctl.c after this any more, and they are not used on any sockets. Signed-off-by: Arnd Bergmann Signed-off-by: David S. Miller commit bcb628d579a61d0ab0cac4c6cc8a403de5254920 Author: John W. Linville Date: Fri Nov 6 16:40:16 2009 -0500 mwl8k: use integral index instead of pointer for driver_data Use of an integral index makes adding new device IDs through sysfs more practical. Signed-off-by: John W. Linville commit 6f6d1e9a8a7fea5e4400cad64bed717e322208e1 Author: Lennert Buytenhek Date: Thu Oct 22 20:21:48 2009 +0200 mwl8k: add support for the 88w8366 Add support for the 88w8366 firmware receive descriptor format, and add the 88w8366 PCI ID. Signed-off-by: Lennert Buytenhek Signed-off-by: John W. Linville commit 2e484c8964f7845d320eb1161c514dbfcafdda78 Author: Lennert Buytenhek Date: Thu Oct 22 20:21:43 2009 +0200 mwl8k: implement AP firmware EDCA parameter configuration Signed-off-by: Lennert Buytenhek Signed-off-by: John W. Linville commit 259a8e7ddd55485b4a75ec39bc6716745c08fce0 Author: Lennert Buytenhek Date: Thu Oct 22 20:21:40 2009 +0200 mwl8k: add AP firmware (mbss) handling to mwl8k_set_mac_addr() Signed-off-by: Lennert Buytenhek Signed-off-by: John W. Linville commit 5e4cf166f4a9801ea9ca1bab210d763d27538de6 Author: Lennert Buytenhek Date: Thu Oct 22 20:21:38 2009 +0200 mwl8k: add AP firmware handling to ->start() Signed-off-by: Lennert Buytenhek Signed-off-by: John W. Linville commit c0adae2caa1a152c6ec691c5d1e815e47dac2a0c Author: Lennert Buytenhek Date: Thu Oct 22 20:21:36 2009 +0200 mwl8k: add AP firmware handling to ->configure_filter() Signed-off-by: Lennert Buytenhek Signed-off-by: John W. Linville commit 08b063477e45cb366df7204cbcdc79ff86513ef9 Author: Lennert Buytenhek Date: Thu Oct 22 20:21:33 2009 +0200 mwl8k: implement AP firmware antenna configuration Signed-off-by: Lennert Buytenhek Signed-off-by: John W. Linville commit 42fba21d56df644887488a29b158cc8916b9ba99 Author: Lennert Buytenhek Date: Thu Oct 22 20:21:30 2009 +0200 mwl8k: add the commands used for AP firmware initialisation Add the AP version of the GET_HW_SPEC command, as well as the SET_HW_SPEC command, for initialising AP firmware. Signed-off-by: Lennert Buytenhek Signed-off-by: John W. Linville commit 04b147b19303724aac5ee8e56f113f1935a5c255 Author: Lennert Buytenhek Date: Thu Oct 22 20:21:05 2009 +0200 mwl8k: rename mwl8k_cmd_get_hw_spec() to mwl8k_cmd_get_hw_spec_sta() As the AP version of the command uses a different format. Signed-off-by: Lennert Buytenhek Signed-off-by: John W. Linville commit 547810e3af15cf9efc3b3ebaa7b006ef606fc892 Author: Lennert Buytenhek Date: Thu Oct 22 20:21:02 2009 +0200 mwl8k: set ->interface_modes from the driver data As different chip/firmware combinations support different interface types. Signed-off-by: Lennert Buytenhek Signed-off-by: John W. Linville commit 54bc3a0d7a0c9a13da31183609c42cf7786138e1 Author: Lennert Buytenhek Date: Thu Oct 22 20:20:59 2009 +0200 mwl8k: allow for different receive descriptor formats As the receive descriptor format is determined by the firmware running on the hardware and not by the hardware itself, and as these descriptor formats vary a bit between different firmware releases, abstract out the receive descriptor init/refill/process methods, and allow choosing between different formats at run time depending on the chip and firmware we're running on. Signed-off-by: Lennert Buytenhek Signed-off-by: John W. Linville commit 788838ebe8a4caca93a91982c7bbf393edf24c08 Author: Lennert Buytenhek Date: Thu Oct 22 20:20:56 2009 +0200 mwl8k: use pci_unmap_addr{,set}() to keep track of unmap addresses on rx Instead of reading back the unmap address from the receive descriptor when doing receive processing, use DECLARE_PCI_UNMAP_ADDR and pci_unmap_addr{,set}() to keep track of these addresses. Signed-off-by: Lennert Buytenhek Signed-off-by: John W. Linville commit eae74e6545d995ab0baa8fb07309f714d9616293 Author: Lennert Buytenhek Date: Thu Oct 22 20:20:53 2009 +0200 mwl8k: handle loading AP firmware images AP and STA firmware images provide a different signature in the HIU_INT_CODE register after loading. Record which of the signatures we saw, as it determines which command sequences to use later on. Signed-off-by: Lennert Buytenhek Signed-off-by: John W. Linville commit a74b295edb3e2b39d6c03255b24dca862a843c59 Author: Lennert Buytenhek Date: Thu Oct 22 20:20:50 2009 +0200 mwl8k: spell out the names of firmware images in the pci driver data To allow use of a more flexible firmware file naming scheme. Signed-off-by: Lennert Buytenhek Signed-off-by: John W. Linville commit 45a390ddd70d8bec0b17dd37bc8f77372c9c3d33 Author: Lennert Buytenhek Date: Thu Oct 22 20:20:47 2009 +0200 mwl8k: change pci id table driver data to a structure pointer To prepare for adding support for more device types, introduce a new structure, mwl8k_device_info, where per-device information can be stored, and change the pci id table driver data from an integer indicating only the part number to a pointer to a mwl8k_device_info structure. Signed-off-by: Lennert Buytenhek Signed-off-by: John W. Linville commit af81858172cc0f3da81946aab919c26e4b364efc Author: Johannes Berg Date: Fri Nov 6 11:35:50 2009 +0100 mac80211: async station powersave handling Some devices require that all frames to a station are flushed when that station goes into powersave mode before being able to send frames to that station again when it wakes up or polls -- all in order to avoid reordering and too many or too few frames being sent to the station when it polls. Normally, this is the case unless the station goes to sleep and wakes up very quickly again. But in that case, frames for it may be pending on the hardware queues, and thus races could happen in the case of multiple hardware queues used for QoS/WMM. Normally this isn't a problem, but with the iwlwifi mechanism we need to make sure the race doesn't happen. This makes mac80211 able to cope with the race with driver help by a new WLAN_STA_PS_DRIVER per-station flag that can be controlled by the driver and tells mac80211 whether it can transmit frames or not. This flag must be set according to very specific rules outlined in the documentation for the function that controls it. When we buffer new frames for the station, we normally set the TIM bit right away, but while the driver has blocked transmission to that sta we need to avoid that as well since we cannot respond to the station if it wakes up due to the TIM bit. Once the driver unblocks, we can set the TIM bit. Similarly, when the station just wakes up, we need to wait until all other frames are flushed before we can transmit frames to that station, so the same applies here, we need to wait for the driver to give the OK. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 70d9f405d09e334b609702d88ee03b6119c4b45e Author: Larry Finger Date: Thu Nov 5 00:09:51 2009 -0600 rtl8187: Remove deprecated 'qual' from returned RX status The qual member of ieee80211_rx_status is deprecated. As a result, this driver no longer needs to calculate a quality value. Signed-off-by: Larry Finger Acked-by: Hin-Tak Leung Signed-off-by: John W. Linville commit 715caaeb896a51fe1583f306fb10b22cfab4f7fd Author: Larry Finger Date: Thu Nov 5 00:09:15 2009 -0600 b43legacy: Remove deprecated 'qual' from returned RX status With the deprecation of the qual member of ieee80211_rx_status, that calculation and an associated constant can be removed. Signed-off-by: Larry Finger Signed-off-by: John W. Linville commit c1b84ab059541517f51df534e87071723264833d Author: Larry Finger Date: Thu Nov 5 00:08:59 2009 -0600 b43: Remove deprecated 'qual' from returned RX status With the deprecation of the qual member of ieee80211_rx_status, that calculation and an associated constant can be removed. Signed-off-by: Larry Finger Signed-off-by: John W. Linville commit 77c8258ff7e6788d3889e7062607e891618d811f Author: Keng-Yu Lin Date: Thu Nov 5 11:21:37 2009 +0800 ath5k: add LED support for Acer Aspire One AO751h/AO531h Add LED support for a Foxconn AR242X module, found on the Acer Aspire One models AO751h/AO531h Signed-off-by: Keng-Yu Lin Signed-off-by: John W. Linville commit 2ce33995216a088fc11e1f85768375580324174c Author: Bartlomiej Zolnierkiewicz Date: Wed Nov 4 18:37:05 2009 +0100 rt2800: add rt2800lib (part four) Code unification. Signed-off-by: Bartlomiej Zolnierkiewicz Acked-by: Ivo van Doorn Acked-by: Gertjan van Wingerde Signed-off-by: John W. Linville commit fcf5154118849cca3cdf424e83f863225d8173e7 Author: Bartlomiej Zolnierkiewicz Date: Wed Nov 4 18:36:57 2009 +0100 rt2800: add rt2800lib (part three) Code unification. Signed-off-by: Bartlomiej Zolnierkiewicz Acked-by: Ivo van Doorn Acked-by: Gertjan van Wingerde Signed-off-by: John W. Linville commit 1f285f1423e456cfa14331987782edeca64d8e70 Author: Bartlomiej Zolnierkiewicz Date: Wed Nov 4 18:36:50 2009 +0100 rt2x00: move REGISTER_BUSY_* definitions to rt2x00.h Signed-off-by: Bartlomiej Zolnierkiewicz Acked-by: Ivo van Doorn Acked-by: Gertjan van Wingerde Signed-off-by: John W. Linville commit f445061630c7a4a85193fdef006234f94f71c366 Author: Bartlomiej Zolnierkiewicz Date: Wed Nov 4 18:36:40 2009 +0100 rt2800: add rt2800lib (part two) Code unification. Signed-off-by: Bartlomiej Zolnierkiewicz Acked-by: Ivo van Doorn Acked-by: Gertjan van Wingerde Signed-off-by: John W. Linville commit 89297425c2104b187c25d6260a41345c491c8f18 Author: Bartlomiej Zolnierkiewicz Date: Wed Nov 4 18:36:24 2009 +0100 rt2800: add rt2800lib (part one) Code unification. Signed-off-by: Bartlomiej Zolnierkiewicz Acked-by: Ivo van Doorn Acked-by: Gertjan van Wingerde Signed-off-by: John W. Linville commit 4d6f8b9f17626da48d6badc6ba259fbacc1413c3 Author: Bartlomiej Zolnierkiewicz Date: Wed Nov 4 18:36:17 2009 +0100 rt2800: prepare for rt2800lib addition Part of preparations for later code unification. Signed-off-by: Bartlomiej Zolnierkiewicz Acked-by: Ivo van Doorn Acked-by: Gertjan van Wingerde Signed-off-by: John W. Linville commit 5822e0701d9c29291f16cf170417071b702edeee Author: Bartlomiej Zolnierkiewicz Date: Wed Nov 4 18:36:10 2009 +0100 rt2x00: add support for different chipset interfaces Enhance rt2x00 infrastructure by adding explicit information about used chipset interface to struct rt2x00_chip. The new field will be used by rt2800 drivers for rt2800 library. Also add commonly used rt2x00_intf_is_pci() and rt2x00_intf_is_usb() helpers to make code easier to read (noticed by Ivo van Doorn). Signed-off-by: Bartlomiej Zolnierkiewicz Acked-by: Ivo van Doorn Acked-by: Gertjan van Wingerde Signed-off-by: John W. Linville commit a4385213883420f2f0f77e531fb96489ca001239 Author: Bartlomiej Zolnierkiewicz Date: Wed Nov 4 18:36:02 2009 +0100 rt2800: fix comments in rt2800.h Signed-off-by: Bartlomiej Zolnierkiewicz Acked-by: Ivo van Doorn Acked-by: Gertjan van Wingerde Signed-off-by: John W. Linville commit b54f78a8b7a108a4abc81d88d641769726be23c1 Author: Bartlomiej Zolnierkiewicz Date: Wed Nov 4 18:35:54 2009 +0100 rt2800: fix duplication in header files Updated debugging scripts are located here: http://www.kernel.org/pub/linux/kernel/people/bart/rt2800/scripts/ (they also work fine with older drivers) Signed-off-by: Bartlomiej Zolnierkiewicz Acked-by: Ivo van Doorn Acked-by: Gertjan van Wingerde Signed-off-by: John W. Linville commit d42c8d86ca52185c053f3352c57b46857573307a Author: Bartlomiej Zolnierkiewicz Date: Wed Nov 4 18:35:47 2009 +0100 rt2800usb: add RXINFO_DESC_SIZE definition Add RXINFO_DESC_SIZE definition and use it instead of abusing RXD_DESC_SIZE one (TXD_DESC_SIZE and RXD_DESC_SIZE are specific to PCI version of the chipset). Signed-off-by: Bartlomiej Zolnierkiewicz Acked-by: Ivo van Doorn Acked-by: Gertjan van Wingerde Signed-off-by: John W. Linville commit 7ef5cc92bac940419f022e11115a28daea53814f Author: Bartlomiej Zolnierkiewicz Date: Wed Nov 4 18:35:32 2009 +0100 rt2800: add rt2800lib.h Code unification. Signed-off-by: Bartlomiej Zolnierkiewicz Acked-by: Ivo van Doorn Acked-by: Gertjan van Wingerde Signed-off-by: John W. Linville commit 473196bd9935f0efd4c5f1cda28229e7dcff564c Author: Bartlomiej Zolnierkiewicz Date: Wed Nov 4 18:35:25 2009 +0100 rt2x00: fix rt2x00pci_register_multi[read,write]() arguments Change type of 'length' argument from u16 to u32 (all arguments match rt2x00usb_register_multi[read,write]() ones now). Signed-off-by: Bartlomiej Zolnierkiewicz Acked-by: Ivo van Doorn Acked-by: Gertjan van Wingerde Signed-off-by: John W. Linville commit f255b92b570325dfbd4c4a791a0eda7999e67fe7 Author: Bartlomiej Zolnierkiewicz Date: Wed Nov 4 18:35:18 2009 +0100 rt2x00: fix rt2x00usb_regbusy_read() arguments Add const to 'field' argument of rt2x00usb_regbusy_read() (all arguments match rt2x00pci_regbusy_read() ones now). Signed-off-by: Bartlomiej Zolnierkiewicz Acked-by: Ivo van Doorn Acked-by: Gertjan van Wingerde Signed-off-by: John W. Linville commit 5b10b09898bf00350a68af4cdaf96c393b252591 Author: Bartlomiej Zolnierkiewicz Date: Wed Nov 4 18:35:10 2009 +0100 rt2x00: fix rt2x00usb_register_multiwrite() arguments Add const to 'value' argument of rt2x00usb_register_multiwrite() (all arguments match rt2x00pci_register_multiwrite() ones now). Signed-off-by: Bartlomiej Zolnierkiewicz Acked-by: Ivo van Doorn Acked-by: Gertjan van Wingerde Signed-off-by: John W. Linville commit b0a1edabd31a18de3c6380022af0804592bded14 Author: Bartlomiej Zolnierkiewicz Date: Wed Nov 4 18:35:00 2009 +0100 rt2800pci: convert to use struct rt2800_ops methods Add chipset registers access abstraction layer and prepare for later code unification. Signed-off-by: Bartlomiej Zolnierkiewicz Acked-by: Ivo van Doorn Acked-by: Gertjan van Wingerde Signed-off-by: John W. Linville commit 7a345d3d2512769ca693d4844b215ae2cc267dce Author: Bartlomiej Zolnierkiewicz Date: Wed Nov 4 18:34:53 2009 +0100 rt2800usb: convert to use struct rt2800_ops methods Add chipset registers access abstraction layer and prepare for later code unification. Signed-off-by: Bartlomiej Zolnierkiewicz Acked-by: Ivo van Doorn Acked-by: Gertjan van Wingerde Signed-off-by: John W. Linville commit ee134fcc552e17e708346a183076db21b8c49188 Author: Bartlomiej Zolnierkiewicz Date: Wed Nov 4 18:34:46 2009 +0100 rt2x00: add driver private field to struct rt2x00_dev Enhance rt2x00 infrastructure by adding driver specific field to struct rt2x00_dev. The new field will be used by rt2800 drivers for chipset registers access abstraction layer. Signed-off-by: Bartlomiej Zolnierkiewicz Acked-by: Ivo van Doorn Acked-by: Gertjan van Wingerde Signed-off-by: John W. Linville commit 3a9e5b0fff63bb87dd6e0f9c60626e16d81192af Author: Bartlomiej Zolnierkiewicz Date: Wed Nov 4 18:34:39 2009 +0100 rt2800pci: add rt2800_mcu_request() wrapper Part of preparations for later code unification. Signed-off-by: Bartlomiej Zolnierkiewicz Acked-by: Ivo van Doorn Acked-by: Gertjan van Wingerde Signed-off-by: John W. Linville commit 4f2c53268ad1bdc7d6d12ca8bd110bb288a14300 Author: Bartlomiej Zolnierkiewicz Date: Wed Nov 4 18:34:32 2009 +0100 rt2800usb: add rt2800_mcu_request() wrapper Part of preparations for later code unification. Signed-off-by: Bartlomiej Zolnierkiewicz Acked-by: Ivo van Doorn Acked-by: Gertjan van Wingerde Signed-off-by: John W. Linville commit ada0394cede08702b604a4c8ee13409a4109e773 Author: Bartlomiej Zolnierkiewicz Date: Wed Nov 4 18:34:25 2009 +0100 rt2800pci: add rt2800_rf_[read,write]() wrappers Part of preparations for later code unification. Signed-off-by: Bartlomiej Zolnierkiewicz Acked-by: Ivo van Doorn Acked-by: Gertjan van Wingerde Signed-off-by: John W. Linville commit 5c70e5bb36584a1c1d5be85e40aabac3a8f68d83 Author: Bartlomiej Zolnierkiewicz Date: Wed Nov 4 18:34:18 2009 +0100 rt2800usb: add rt2800_rf_[read,write]() wrappers Part of preparations for later code unification. Signed-off-by: Bartlomiej Zolnierkiewicz Acked-by: Ivo van Doorn Acked-by: Gertjan van Wingerde Signed-off-by: John W. Linville commit 1af68f75a808d02997ad0c6dde9e37f43b7dfcb4 Author: Bartlomiej Zolnierkiewicz Date: Wed Nov 4 18:34:11 2009 +0100 rt2800pci: add rt2800_rfcsr_[read,write]() wrappers Part of preparations for later code unification. Signed-off-by: Bartlomiej Zolnierkiewicz Acked-by: Ivo van Doorn Acked-by: Gertjan van Wingerde Signed-off-by: John W. Linville commit e91fea9b38b2208113dd540f436ce2aba7ab29fd Author: Bartlomiej Zolnierkiewicz Date: Wed Nov 4 18:34:04 2009 +0100 rt2800usb: add rt2800_rfcsr_[read,write]() wrappers Part of preparations for later code unification. Signed-off-by: Bartlomiej Zolnierkiewicz Acked-by: Ivo van Doorn Acked-by: Gertjan van Wingerde Signed-off-by: John W. Linville commit 3e2c9df7b940c8d1d0626f61038e10a32d65f27d Author: Bartlomiej Zolnierkiewicz Date: Wed Nov 4 18:33:57 2009 +0100 rt2800pci: add rt2800_bbp_[read,write]() wrappers Part of preparations for later code unification. Signed-off-by: Bartlomiej Zolnierkiewicz Acked-by: Ivo van Doorn Acked-by: Gertjan van Wingerde Signed-off-by: John W. Linville commit eff6eced615f80cef3e4979691c7920961dda47c Author: Bartlomiej Zolnierkiewicz Date: Wed Nov 4 18:33:50 2009 +0100 rt2800usb: add rt2800_bbp_[read,write]() wrappers Part of preparations for later code unification. Signed-off-by: Bartlomiej Zolnierkiewicz Acked-by: Ivo van Doorn Acked-by: Gertjan van Wingerde Signed-off-by: John W. Linville commit b4a77d0dee11db834bebe0cc78c211cfebf0d924 Author: Bartlomiej Zolnierkiewicz Date: Wed Nov 4 18:33:41 2009 +0100 rt2800pci: add rt2800_regbusy_read() wrapper Part of preparations for later code unification. Signed-off-by: Bartlomiej Zolnierkiewicz Acked-by: Ivo van Doorn Acked-by: Gertjan van Wingerde Signed-off-by: John W. Linville commit ab209b9834d43ac7c01e803681c5c50c941e4de3 Author: Bartlomiej Zolnierkiewicz Date: Wed Nov 4 18:33:34 2009 +0100 rt2800usb: add rt2800_regbusy_read() wrapper Part of preparations for later code unification. Signed-off-by: Bartlomiej Zolnierkiewicz Acked-by: Ivo van Doorn Acked-by: Gertjan van Wingerde Signed-off-by: John W. Linville commit 4f2732ce8d02836b94299f64bc29b030545d654a Author: Bartlomiej Zolnierkiewicz Date: Wed Nov 4 18:33:27 2009 +0100 rt2800pci: add rt2800_register_multi[read,write]() wrappers Part of preparations for later code unification. Signed-off-by: Bartlomiej Zolnierkiewicz Acked-by: Ivo van Doorn Acked-by: Gertjan van Wingerde Signed-off-by: John W. Linville commit 678b4eee767b3d92bb187d2ca17d33400f26f880 Author: Bartlomiej Zolnierkiewicz Date: Wed Nov 4 18:33:20 2009 +0100 rt2800usb: add rt2800_register_multi[read,write]() wrappers Part of preparations for later code unification. Signed-off-by: Bartlomiej Zolnierkiewicz Acked-by: Ivo van Doorn Acked-by: Gertjan van Wingerde Signed-off-by: John W. Linville commit 9ca21eb7cd2ba4f837bcde5e1c9ec0c784cfc03d Author: Bartlomiej Zolnierkiewicz Date: Wed Nov 4 18:33:13 2009 +0100 rt2800pci: add rt2800_register_[read,write]() wrappers Part of preparations for later code unification. Signed-off-by: Bartlomiej Zolnierkiewicz Acked-by: Ivo van Doorn Acked-by: Gertjan van Wingerde Signed-off-by: John W. Linville commit abbb505dddef31707d06ff26539639ccdfa56f45 Author: Bartlomiej Zolnierkiewicz Date: Wed Nov 4 18:33:05 2009 +0100 rt2800usb: add rt2800_register_[read,write]() wrappers Part of preparations for later code unification. Signed-off-by: Bartlomiej Zolnierkiewicz Acked-by: Ivo van Doorn Acked-by: Gertjan van Wingerde Signed-off-by: John W. Linville commit 230f9bb701d37ae9b48e96456689452978f5c439 Merge: 000ba2e 887e671 Author: David S. Miller Date: Fri Nov 6 00:55:55 2009 -0800 Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 Conflicts: drivers/net/usb/cdc_ether.c All CDC ethernet devices of type USB_CLASS_COMM need to use '&mbm_info'. Signed-off-by: David S. Miller commit c84b3268da3b85c9d8a9e504e1001a14ed829e94 Author: Eric Paris Date: Thu Nov 5 20:45:52 2009 -0800 net: check kern before calling security subsystem Before calling capable(CAP_NET_RAW) check if this operations is on behalf of the kernel or on behalf of userspace. Do not do the security check if it is on behalf of the kernel. Signed-off-by: Eric Paris Acked-by: Arnaldo Carvalho de Melo Signed-off-by: David S. Miller commit 3f378b684453f2a028eda463ce383370545d9cc9 Author: Eric Paris Date: Thu Nov 5 22:18:14 2009 -0800 net: pass kern to net_proto_family create function The generic __sock_create function has a kern argument which allows the security system to make decisions based on if a socket is being created by the kernel or by userspace. This patch passes that flag to the net_proto_family specific create function, so it can do the same thing. Signed-off-by: Eric Paris Acked-by: Arnaldo Carvalho de Melo Signed-off-by: David S. Miller commit e9a6269d5bcb1c7cd18cea02a9a73fac8712f2d1 Author: Luis R. Rodriguez Date: Mon Nov 2 12:15:15 2009 -0500 wl1271: use __dev_alloc_skb() on RX RX is handled in a workqueue therefore allocating for GFP_ATOMIC is overkill and not required. Signed-off-by: Luis R. Rodriguez Acked-by: Luciano Coelho Signed-off-by: John W. Linville commit c327d96759ac134384114830e19ded80e29fdcc4 Author: Johannes Berg Date: Mon Nov 2 11:31:51 2009 +0100 mac80211: fix internal scan request The internal scan request mac80211 uses to scan for IBSS networks was set up to contain no channels at all because n_channels wasn't set after setting up the channels array. Fix this to properly scan for networks. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 450aae3d7b60a970f266349a837dfb30a539198b Author: Sujith Date: Mon Nov 2 12:33:23 2009 +0530 mac80211: Fix IBSS merge Currently, in IBSS mode, a single creator would go into a loop trying to merge/scan. This happens because the IBSS timer is rearmed on finishing a scan and the subsequent timer invocation requests another scan immediately. This patch fixes this issue by checking if we have just completed a scan run trying to merge with other IBSS networks. Signed-off-by: Sujith Signed-off-by: John W. Linville commit b35686d0b2d754d627aeb0c4340884aeaed8e4f3 Author: Bartlomiej Zolnierkiewicz Date: Wed Nov 4 18:36:33 2009 +0100 rt2x00: remove needless ifdefs from rt2x00leds.h Signed-off-by: Bartlomiej Zolnierkiewicz Acked-by: Ivo van Doorn Signed-off-by: John W. Linville commit d07624f191a14e2a59e1fe884a13582f24d7f8cb Author: Bartlomiej Zolnierkiewicz Date: Wed Nov 4 18:35:39 2009 +0100 rt2800usb: fix comments in rt2800usb.h Signed-off-by: Bartlomiej Zolnierkiewicz Acked-by: Ivo van Doorn Acked-by: Gertjan van Wingerde Signed-off-by: John W. Linville commit 3306ef642a4dec6ba5341eceb8b9cb1e4a82ddb0 Author: Bartlomiej Zolnierkiewicz Date: Wed Nov 4 18:32:58 2009 +0100 rt2800usb: use rt2x00usb_register_multiwrite() to set key entries Since struct hw_key_entry is 32-bytes large and is smaller than CSR cache size (which is 64-bytes large) we can use the standard rt2x00usb_register_multiwrite() helper to set key entries. This cleanup is a part of preparations for later code unification. Signed-off-by: Bartlomiej Zolnierkiewicz Acked-by: Ivo van Doorn Acked-by: Gertjan van Wingerde Signed-off-by: John W. Linville commit 02a39c209bda97f5dfd0c390c3926c131a052e34 Author: Bartlomiej Zolnierkiewicz Date: Wed Nov 4 18:32:50 2009 +0100 rt2x00: fix rt2x00usb_register_read() comment Signed-off-by: Bartlomiej Zolnierkiewicz Acked-by: Ivo van Doorn Acked-by: Gertjan van Wingerde Signed-off-by: John W. Linville commit 77dba493618b5b5c84c9e375b6e3d51862ca7408 Author: Bartlomiej Zolnierkiewicz Date: Wed Nov 4 18:32:40 2009 +0100 rt2800pci: fix comment about IV/EIV fields The bit tested by hardware is TXD_W3_WIV and its value equals the negated value of ENTRY_TXD_ENCRYPT_IV bit. Signed-off-by: Bartlomiej Zolnierkiewicz Acked-by: Ivo van Doorn Acked-by: Gertjan van Wingerde Signed-off-by: John W. Linville commit 8807bb8cddbeb5b48bd9c6e40396af07980c7cdf Author: Bartlomiej Zolnierkiewicz Date: Wed Nov 4 18:32:32 2009 +0100 rt2800pci: fix comment about register access Registers used for indirect BBP and RF registers access are respectively BBPCSR and RFCSR, also make it clear that all CSR registers access goes through rt2x00pci_register_[read,write]() methods. Signed-off-by: Bartlomiej Zolnierkiewicz Acked-by: Ivo van Doorn Acked-by: Gertjan van Wingerde Signed-off-by: John W. Linville commit f644fea1a8433f65f78a36cd7b23b8f57b0f77e4 Author: Bartlomiej Zolnierkiewicz Date: Wed Nov 4 18:32:24 2009 +0100 rt2800pci: fix crypto in TX frame Based on rt2800usb patch from Benoit PAPILLAULT (commit 17616310836ad2cc45a64576ef0e1520b0dcc81b). Signed-off-by: Bartlomiej Zolnierkiewicz Acked-by: Ivo van Doorn Acked-by: Gertjan van Wingerde Signed-off-by: John W. Linville commit a8ea2b23f62e23c2afac291f9caa500bd1a60618 Author: Bartlomiej Zolnierkiewicz Date: Wed Nov 4 18:32:17 2009 +0100 rt2800usb: fix rt2800usb_rfcsr_read() The driver should write the read request into RF_CSR_CFG register and not BBP_CSR_CFG one in rt2800usb_rfcsr_read(). Signed-off-by: Bartlomiej Zolnierkiewicz Acked-by: Ivo van Doorn Acked-by: Gertjan van Wingerde Signed-off-by: John W. Linville commit f44eafa76be981b57667adcef5153b18e8a21904 Author: Bartlomiej Zolnierkiewicz Date: Wed Nov 4 18:32:10 2009 +0100 rt2800pci: make Kconfig help entry more helpful Document known issues with the driver to aid distribution makers, users and developers in making informed decisions instead of wasting their time needlessly. Signed-off-by: Bartlomiej Zolnierkiewicz Acked-by: Gertjan van Wingerde Signed-off-by: John W. Linville commit 71eafe3230073917456973d67bc49eaa874c5a42 Author: Bartlomiej Zolnierkiewicz Date: Wed Nov 4 18:31:58 2009 +0100 rt2800usb: make Kconfig help entry more helpful Document known issues with the driver to aid distribution makers, users and developers in making informed decisions instead of wasting their time needlessly. Signed-off-by: Bartlomiej Zolnierkiewicz Acked-by: Gertjan van Wingerde Signed-off-by: John W. Linville commit 5ed176e1c425f9bd1af161d66d348f6116a04fc6 Author: Johannes Berg Date: Wed Nov 4 14:42:28 2009 +0100 mac80211: make ieee80211_find_sta per virtual interface Since we have a TODO item to make all station management dependent on virtual interfaces, I figured I'd start with pushing such a change to drivers before more drivers start using the ieee80211_find_sta() API with a hw pointer and cause us grief later on. For now continue exporting the old API in form of ieee80211_find_sta_by_hw(), but discourage its use strongly. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 7fdad987d63f02c8fba30276ba395ac8dc93b719 Author: Johannes Berg Date: Sat Oct 31 16:15:39 2009 +0100 cfg80211: remove dead variable commit 211a4d12abf86fe0df4cd68fc6327cbb58f56f81 Author: Johannes Berg Date: Tue Oct 20 15:08:53 2009 +0900 cfg80211: sme: deauthenticate on assoc failure accidentally introduced a dead variable, I had changed the code to not need it while creating the patch and it looks like I forgot to remove the variable (and nobody else noticed either). Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 5b9482dda6dda11dc7050ffa5b4ebfb0c775880f Author: Lennert Buytenhek Date: Thu Oct 22 20:20:43 2009 +0200 mwl8k: pci BAR mapping changes Map BAR0 as well, as we need to write to it during init on some chips. Also, if BAR0 is a 64bit BAR, the register BAR becomes BAR2, so try mapping BAR2 if mapping BAR1 fails. Signed-off-by: Lennert Buytenhek Signed-off-by: John W. Linville commit 45eb400d50e1ad84a8e8f9e9a82cd8ae13d7d691 Author: Lennert Buytenhek Date: Thu Oct 22 20:20:40 2009 +0200 mwl8k: shorten receive/transmit state variable names To conserve horizontal space. Signed-off-by: Lennert Buytenhek Signed-off-by: John W. Linville commit a43c49a817f31ce1accc029239827b108319ecf9 Author: Lennert Buytenhek Date: Thu Oct 22 20:20:32 2009 +0200 mwl8k: add support for enabling hardware sniffer mode Signed-off-by: Lennert Buytenhek Signed-off-by: John W. Linville commit 5dfd3e2c6fb69cf4295ec139107f4ebd3f7fbff0 Author: Lennert Buytenhek Date: Thu Oct 22 20:20:29 2009 +0200 mwl8k: report rate and other information for received frames When receiving a frame, report the antenna info, long/short preamble status, 20/40 MHz flag, long/short guard interval status, MCS/legacy rate status, and MCS/legacy rate index to the stack. Signed-off-by: Lennert Buytenhek Signed-off-by: John W. Linville commit 22995b2411d4c5bbd832a54c4ef6ad3e24a2a34b Author: Lennert Buytenhek Date: Thu Oct 22 20:20:25 2009 +0200 mwl8k: clarify WME transmit queue 0/1 swizzling Signed-off-by: Lennert Buytenhek Signed-off-by: John W. Linville commit 3d76e82c9538d8104e578ca460d35f214bfddfd3 Author: Lennert Buytenhek Date: Thu Oct 22 20:20:16 2009 +0200 mwl8k: use cond_resched() when loading firmware blocks Since each firmware block takes on the order of several hundred usec to upload to the hardware, using msleep in the inner loop would make the firmware loading process take a lot more time than just doing busy-waiting like we do now. But if we keep the busy-waiting, we can at least add a cond_resched() to the inner loop so that we give other tasks a chance to run while the firmware is being loaded. Signed-off-by: Lennert Buytenhek Signed-off-by: John W. Linville commit 32060e1b64f23fe315a35d2df8c2c7ad010df73e Author: Lennert Buytenhek Date: Thu Oct 22 20:20:04 2009 +0200 mwl8k: clear hardware MAC address if no STA interface configured If there is no STA interface configured, clear the hardware MAC address to prevent ACKing frames sent to our MAC address. Signed-off-by: Lennert Buytenhek Signed-off-by: John W. Linville commit 77165d8809cda1a77bc8752148a6252d7735c12e Author: Lennert Buytenhek Date: Thu Oct 22 20:19:53 2009 +0200 mwl8k: enforce FIF_BCN_PRBRESP_PROMISC when no STA interfaces are active When FIF_BCN_PRBRESP_PROMISC is not set, we enable the hardware's BSS filter so that we'll only see packets destined for our BSS. But if no STA interfaces have been configured, we would end up passing the BSSID 00:00:00:00:00:00 into the POST_SCAN command, which actually disables the hardware's BSS filter, as it's not a valid BSSID. Fix this by passing in 01:00:00:00:00:00 instead (the criterion is that the OUI part of the BSSID must be nonzero), and add comments to explain what PRE_SCAN and POST_SCAN do. Signed-off-by: Lennert Buytenhek Signed-off-by: John W. Linville commit 447ced07d04525218ae586cd70b759b48bcb1fc8 Author: Lennert Buytenhek Date: Thu Oct 22 20:19:50 2009 +0200 mwl8k: implement FIF_ALLMULTI Signed-off-by: Lennert Buytenhek Signed-off-by: John W. Linville commit 3779752d764b86077375510b1fd13d8fb2c7c3a5 Author: Lennert Buytenhek Date: Thu Oct 22 20:19:45 2009 +0200 mwl8k: use the mac80211-provided workqueue instead of creating our own Signed-off-by: Lennert Buytenhek Signed-off-by: John W. Linville commit d5e308457e8e9b4988fbd69d38c30782125b3f65 Author: Lennert Buytenhek Date: Thu Oct 22 20:19:41 2009 +0200 mwl8k: fix multicast address filter programming mwl8k's ->prepare_multicast() currently just enables reception of all multicast packets, which is somewhat ineffective. Fix this by either disabling all multicast RX, enabling multicast RX according to the multicast address filter table, or enabling all multicast RX, depending on whether ->prepare_multicast() was given any multicast addresses and whether the hardware multicast address filter table is large enough to fit all requested addresses. Signed-off-by: Lennert Buytenhek Signed-off-by: John W. Linville commit 88de754ad59025eba797e7a8375807755577f450 Author: Lennert Buytenhek Date: Thu Oct 22 20:19:37 2009 +0200 mwl8k: minor transmit quiescing rework Minor changes to the transmit quiescing logic: - Clarify the locking rules for ->tx_wait: only the holder of fw_mutex can wait for the TX path to become idle, but tx_wait itself is read and cleared by the TX reclaim tasklet under tx_lock. - Inline mwl8k_txq_busy() in its callers. - There's no need to kick the transmitter again in mwl8k_tx_wait_empty(), since it will have been kicked when the packets currently in the TX ring were added to it. - If the TX ring didn't drain in time, run mwl8k_scan_tx_ring() after reading priv->pending_pkts without dropping tx_lock in between. Signed-off-by: Lennert Buytenhek Signed-off-by: John W. Linville commit c2c357ce309221b85fd36e50aade66d01a556cde Author: Lennert Buytenhek Date: Thu Oct 22 20:19:33 2009 +0200 mwl8k: coding style cleanups Signed-off-by: Lennert Buytenhek Signed-off-by: John W. Linville commit 8848fd253bb26f09987405613bad3e0d53441ec0 Author: Lennert Buytenhek Date: Thu Oct 22 20:19:23 2009 +0200 mwl8k: fix GET_STAT firmware command packet layout The GET_STAT command doesn't have an 'action' field like other commands do, so remove it. Signed-off-by: Lennert Buytenhek Signed-off-by: John W. Linville commit 3c6af5b54fe74b6e56efadc22927e4055d00e9fc Author: John W. Linville Date: Mon Nov 2 13:43:32 2009 -0500 wl1271: depend on INET wl1271_main.c:(.text+0x271052): undefined reference to `unregister_inetaddr_notifier' wl1271_main.c:(.text+0x2714d7): undefined reference to `register_inetaddr_notifier' Driver is doing some filtering based on IP addresses... Acked-by: Luciano Coelho Signed-off-by: John W. Linville commit fa867e7355a1bdcd9bf7d55ebe9296f5b9c4028a Author: Juuso Oikarinen Date: Mon Nov 2 20:22:13 2009 +0200 wl1271: Generalize command response reading Responses to firmware commands are read in by the command transmission function, as part of command flow. Previously responses were read in multiple places. Signed-off-by: Juuso Oikarinen Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho Signed-off-by: John W. Linville commit ad150e966e987edcf737e1871d9e44a30d1aa58d Author: Juuso Oikarinen Date: Mon Nov 2 20:22:12 2009 +0200 wl1271: Correct endianness-handling of command status Correct the endianness-handling of the firmware command result status handling code. Signed-off-by: Juuso Oikarinen Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho Signed-off-by: John W. Linville commit 19ad0715d8d9acc259ef02f83df767df2cf1eafe Author: Juuso Oikarinen Date: Mon Nov 2 20:22:11 2009 +0200 wl1271: Add retry implementation for PSM entries PSM entries can fail (transmitting the corresponding null-func may not be heard by the AP.) Previously, this scenario was not detected, and out-of-sync between STA and AP could occur. Add retry implementation for the entries to recover from the situation. Signed-off-by: Juuso Oikarinen Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho Signed-off-by: John W. Linville commit 3b775b4b27818130291e7716f3ce1e24664004c9 Author: Juuso Oikarinen Date: Mon Nov 2 20:22:10 2009 +0200 wl1271: Check result code of commands Check the result code of all commands, and return an error code if the firmware reports an error in execution. Previously this error would go ignored in most cases. Signed-off-by: Juuso Oikarinen Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho Signed-off-by: John W. Linville commit 605351e2220bd7960a55d6d7903f87f11f419f4e Author: Juuso Oikarinen Date: Mon Nov 2 20:22:09 2009 +0200 wl1271: Increase TX power value Currently, to avoid distortions, the TX power level has been hardcoded to a low value. The value is slightly too low for good functionality, so we increase it from 7dB to 12dB. Signed-off-by: Juuso Oikarinen Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho Signed-off-by: John W. Linville commit c6317a548d839e6f518649a4e7e9aa30b55d509a Author: Juuso Oikarinen Date: Mon Nov 2 20:22:08 2009 +0200 wl1271: Remove excess null-data template settings The null-data template (nullfunc) is dependent on the BSSID of the current AP only, so it needs to be updated only when the BSSID changes. Removed excess setting of the template. Signed-off-by: Juuso Oikarinen Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho Signed-off-by: John W. Linville commit 584991dccfd347cd2e1675ab262998f6c335d3c0 Author: Johannes Berg Date: Mon Nov 2 13:32:03 2009 +0100 cfg80211: validate scan channels Currently it is possible to request a scan on only disabled channels, which could be problematic for some drivers. Reject such scans, and also ignore disabled channels that are given. This resuls in the scan begin/end event only including channels that are actually used. This makes the mac80211 check for disabled channels superfluous. At the same time, remove the no-IBSS check from mac80211 -- nothing says that we should not find any networks on channels that cannot be used for an IBSS, even when operating in IBSS mode. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 6c085227bd7168fd84976479218f81bf35b5acd7 Author: Jouni Malinen Date: Sun Nov 1 11:31:45 2009 +0200 mac80211_hwsim: Send ACK frames on the hwsim0 interface Report successful transmissions (receiver awake and on the same channel) by generating ACK frames on the hwsim0 interface. This makes it easier to figure out from packet capture logs whether frames were delivered or not. Signed-off-by: Jouni Malinen Signed-off-by: John W. Linville commit 70541839dd2eacb521fa4f8515ab696599b36ea3 Author: Jouni Malinen Date: Sun Nov 1 11:30:48 2009 +0200 mac80211_hwsim: Check idle state on TX Track the idle state for hwsim radios and reject TX if mac80211 is trying to transmit something when the radio is supposed to be idle. In addition, do not deliver frames if the receiving radio is in the idle state. Signed-off-by: Jouni Malinen Signed-off-by: John W. Linville commit c5f8289cd9b2e31fca506cb82f4aaa5ffc468602 Author: Jouni Malinen Date: Sun Nov 1 11:18:49 2009 +0200 cfg80211: Fix WEXT compat siwauth wpa and group cipher Neither of these commands should clear the current configuration value if they return error. Furthermore, cfg80211_set_cipher_group() should be able to handle IW_AUTH_CIPHER_NONE without reporting error. Signed-off-by: Jouni Malinen Signed-off-by: John W. Linville commit 93a59d7527147e3656664aa3179f8d19de256081 Author: Christian Lamparter Date: Sat Oct 31 22:59:27 2009 +0100 p54: disable channels with incomplete calibration data sets James Grossmann [1] reported that p54 spews out confusing messages instead of preventing the mayhem from happening. the reason is that "p54: generate channel list dynamically" is not perfect. It didn't discard incomplete channel data sets and therefore p54 advertised to support them as well. [1]: http://marc.info/?l=linux-wireless&m=125699830215890 Cc: Larry Finger Reported-by: James Grossmann Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit 6d3560d4fc9c5b9fe1a07a63926ea70512c69c32 Author: Johannes Berg Date: Sat Oct 31 07:44:08 2009 +0100 mac80211: fix scan abort sanity checks Since sometimes mac80211 queues up a scan request to only act on it later, it must be allowed to (internally) cancel a not-yet-running scan, e.g. when the interface is taken down. This condition was missing since we always checked only the local->scanning variable which isn't yet set in that situation. Reported-by: Luis R. Rodriguez Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 1933ac4d9377ed44caba45abe1531ec1bc14bb63 Author: Wey-Yi Guy Date: Fri Oct 30 14:36:18 2009 -0700 iwlwifi: add wimax/wifi coexist support for 6x50 series For 6x50 series, it is wimax/wifi combo device, so driver need to enable the wimax/wifi co-exist function and send the coexist event priority table to uCode for operation. The priority table will be used by uCode to determine what is the proper action it should take when co-exist with WiMAX. For example, when WiFi runs a scan, it must own radio exclusively, therefore will disconnect WiMAX if WiMAX is connected. Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 3f3e0376bb14ac7bfd8ac3e9824b2ad04d945e18 Author: Wey-Yi Guy Date: Fri Oct 30 14:36:17 2009 -0700 iwlwifi: add SM PS support for 6x50 series Spatial Multiplexing Power Save was disabled to achieve better throughput while in power save mode by activating all the rx chains all the time. By doing so, the device power consumption is high. Enable static/dynamic spatial multiplexing power save if device support it, which can lower the power consumption without impact throughput. Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit fe1bcbfda77bf6fa3bbad8bf26b9e9ab23fbe345 Author: Wey-Yi Guy Date: Fri Oct 30 14:36:16 2009 -0700 iwlwifi: coex API data structure Add data structure define for COEX_MEDIUM_NOTIFICATION and COEX_EVENT_CMD host commands. COEX_MEDIUM_NOTIFICATION is notification from uCode to host to indicate medium changes. COEX_EVENT_CMD is from host to uCode for coex event request. Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit f2f21b4928489e1cf6c289d2f429e75c6dee61b5 Author: Reinette Chatre Date: Fri Oct 30 14:36:15 2009 -0700 iwlwifi: print warning when sending host command fails More information than the "-EIO" return code will be useful here. Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 5ad13f8ce76814b37842c15301287efd607c6d26 Author: Reinette Chatre Date: Fri Oct 30 14:36:14 2009 -0700 iwlagn: move rate scale initialization to init function This fits better in how the callbacks operate (alloc does allocation and init does initialization). This also helps if we later want to do our own initialization without relying on the mac80211 allocation. Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 62a94926183374d8414ab2ec633d9fe9530644ec Author: Reinette Chatre Date: Fri Oct 30 14:36:13 2009 -0700 iwl3945: store station rate scale information in mac80211 station structure Currently the rate scale information is pointed to from the mac80211 station structure but since that is the only member we might as well make it part of the structure. Also move the rate scaling initialization to the init function, no need to do it when we allocate the structure. This fits with how mac80211 deals with rate scaling information (it always calls init after allocation) and makes it easier for us to later call initialization directly. Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 9a9ca65fbfa1cd14a6c016b793d61492f9f613d0 Author: Reinette Chatre Date: Fri Oct 30 14:36:12 2009 -0700 iwlwifi: split adding broadcast station from others In preparation for some station management changes we split the addition of a broadcast station from the other stations. Later we will rely on mac80211 to direct all management (addition/removal) of all stations except the broadcast station. Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 89f186a8b64a4c90a219cfd94c26de5cfea54b84 Author: Reinette Chatre Date: Fri Oct 30 14:36:11 2009 -0700 iwlwifi: move iwl_[un]init_drv to iwlagn Since iwlagn is the only user of these functions, move it to this module. This results in a bit more code moving than just these functions since the functions only used by them are also moved and we need to export the symbols previously available to them directly. Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit c33de6256a07869b48830e3a26fb6942ea8c4f79 Author: Reinette Chatre Date: Fri Oct 30 14:36:10 2009 -0700 iwlwifi: unmap memory before use Handling responses to driver originated commands include passing the original command buffer to the caller. At this time it is possible for a callback to be invoked that is passed this command buffer and thus likely to access it. We need to make sure that the memory associated with that buffer is not DMA mapped at the time. Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit c2e61da29d92df864dc5eec81d774199b02d7023 Author: Ben Cahill Date: Fri Oct 30 14:36:09 2009 -0700 iwlagn: update write pointers for all tx queues after wakeup Wakeup interrupt has been updating write pointers (indexes, actually) only for tx queues 0-5. This is adequate just for 3945, but inadequate for other devices, all of which have more tx queues. Now updating all tx/command queues, so device can be aware of all new tx and host commands enqueued while device was asleep. This can potentially improve data traffic bandwidth and/or latency. Signed-off-by: Ben Cahill Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit c72cd19fab7983e97a1a41b7158e0b9f87a7fe96 Author: Ben Cahill Date: Fri Oct 30 14:36:08 2009 -0700 iwlagn: Clarify FH_TX interrupt Add/clarify comments and debug messages for interrupt used only for uCode load Signed-off-by: Ben Cahill Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit a6c5c731c3f783f60ed79dcf41efa8b5b3af2f22 Author: Ben Cahill Date: Fri Oct 30 14:36:07 2009 -0700 iwlagn: invoke L0S workaround for 6000/1000 series Invoke workaround to avoid instability in L0->L0S->L1 transition on PCIe bus. Workaround disables L0S state so device moves directly from L0->L1. Workaround needed on all devices since and including 4965; add to 6000/1000. Describe bug and workaround better in comments. Signed-off-by: Ben Cahill Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 88521364cc04b67f36748983545b9fe1d4ba4a15 Author: Ben Cahill Date: Fri Oct 30 14:36:06 2009 -0700 iwlwifi: remove power-wasting calls to apm_ops.init() To save power, don't run apm_ops.init() until needed at "up" time. EEPROM (5000 and earlier devices) may be read without running apm_ops.init(), but OTP reads (6000 and newer devices) require a powered-up chip. Therefore, remove apm_ops.init() from the general path in XXXX_pci_probe(), and call it only if device uses OTP. Once done with OTP read, call apm_ops.stop() to reset chip and save power until "up" time comes around. NOTE: This patch depends on removal of priv->lock from iwl_apm_stop(); lock does not get initialized until later in flow. See patch "remove unneeded locks from apm_stop()". Signed-off-by: Ben Cahill Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 5220af0c3b44f5d6e32661e5bb49154c514dbf4f Author: Ben Cahill Date: Fri Oct 30 14:36:05 2009 -0700 iwlwifi: remove unneeded locks from apm_stop() and stop_master() Since priv->reg_lock was added to keep multi-access register manipulation atomic, priv->lock protection is no longer needed. Remove this from iwl_apm_stop_master() and iwl_apm_stop(). Add warning of timeout when polling for busmaster disablement confirmation, and some comments. NOTE: This is needed to enable use of apm_ops.stop() within iwl_eeprom_init(); priv->lock does not get initialized until after this flow. See patch "remove power-wasting calls to apm_ops.init()" Signed-off-by: Ben Cahill Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 5ebeb5a676c864acf59caa166b3cc0a13b7cff93 Author: Reinette Chatre Date: Fri Oct 30 14:36:04 2009 -0700 iwlwifi: provide firmware version By setting the firmware version in wiphy it is possible to obtain this information via ethtool. Some examples, # ethtool -i wlan1 driver: iwlagn version: 2.6.32-rc5-wl-56840-g26d8540 firmware-version: 228.57.2.23 bus-info: 0000:03:00.0 # ethtool -i wlan0 driver: iwl3945 version: 2.6.32-rc5-wl-56840-g26d8540 firmware-version: 15.28.2.8 bus-info: 0000:02:00.0 Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 9aa4aee30f4d155fc91abbaecfef9b3bb759699e Author: Johannes Berg Date: Thu Oct 29 08:43:48 2009 +0100 mac80211: make CALL_TXH a statement The multi-line code in this macro wasn't wrapped in do {} while (0) so we cannot use it in an if() branch safely in the future -- fix that. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 86c34fe89e9cad9e1ba4d1a8bbf98259035f4caf Author: Andrey Yurovsky Date: Tue Oct 27 16:51:40 2009 -0700 libertas: remove internal buffers from GSPI driver This patch removes the internal command and data buffers that the GSPI driver maintained and instead relies on the Libertas core to synchronize access to the command and data ports as with the other interface drivers. This cleanup reduces the GSPI driver's memory footprint and should improve performance by removing the need to copy to these internal buffers. This also simplifies the bottom half of the interrupt handler. This is an incremental cleanup: after removing the redundant buffers, we can further improve the driver to use a threaded IRQ handler instead of maintaining its own thread. However I would like a few folks to test the buffer removal first and make sure that I'm not introducing regressions. Tested on Blackfin BF527 with DMA disabled due to an issue with the SPI host controller driver in the current bleeding-edge Blackfin kernel. I would appreciate it if someone with working DMA could test this patch and provide feedback. Signed-off-by: Andrey Yurovsky Tested-by: George Shore Acked-by: Dan Williams Signed-off-by: John W. Linville commit d2d8cda7fc0b7a133492e70332217a7f20757615 Author: Larry Finger Date: Fri Oct 30 11:58:21 2009 -0500 b43legacy: Fix DMA TX bounce buffer copying This patch is adapted from the submission by Michael Buesch for a bounce-buffer copying problem with b43. Signed-off-by: Larry Finger Signed-off-by: John W. Linville commit e6e898cfea5f35d64f850277e7fa295c386cf953 Author: Johannes Berg Date: Fri Oct 30 15:48:43 2009 +0100 mac80211: remove bogus code It's not right to do something here when returning an error, and hostapd should never have relied on it as it only fixes up a small part of the problem anyway. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit ff9458d3ec179831ebe6966a8aa014ccb3907dc6 Author: Johannes Berg Date: Fri Oct 30 12:56:02 2009 +0100 mac80211: remove sent_ps_buffered This variable is set once, and tested once. However, the code path that can set it is mutually exclusive with the code path that tests it, so the test is always true. Thus we also don't need to set it either and can just remove the variable. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 22403def134e2c1017cb04ae9129a38e841b2d8c Author: Johannes Berg Date: Fri Oct 30 12:55:03 2009 +0100 mac80211: also drop qos-nullfunc frames silently We drop nullfunc frames, but not qos-nullfunc frames, even though those could be used for PS state control as well. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit e7d17cf4f7e1b8d06575b6db2397c99c151674b8 Author: Luciano Coelho Date: Thu Oct 29 13:20:04 2009 +0200 wl1271: fix init loop timeout The check after the loop which checks whether the initialization timed-out was wrong. If the initialization would succeed exactly in the 20000th time (the value set for INIT_LOOP), the driver would bail out and claim that initialization failed. Reported-by: Juha Leppanen Signed-off-by: Luciano Coelho Reviewed-by: Janne Ylalehto Signed-off-by: John W. Linville commit 62b517cb3e974624a2958ad0b603ebb59cd96e16 Author: Johannes Berg Date: Thu Oct 29 12:19:21 2009 +0100 mac80211: unconditionally set IEEE80211_TX_CTL_SEND_AFTER_DTIM When mac80211 is asked to buffer multicast frames in AP mode, it will not set the flag indicating that the frames should be sent after the DTIM beacon for those frames buffered in software. Fix this little inconsistency by always setting that flag in the buffering code path. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit c27f2fded51948edf40007f4f31350e9e0c6ba23 Author: Johannes Berg Date: Thu Oct 29 08:41:25 2009 +0100 mac80211: deprecate qual value This value is unused by mac80211, because it was only be used by wireless extensions, and turned out to not be useful there because the quality value needs to be comparable between scan results and the current value which is impossible when the qual value is calculated taking into account noise, for example. Since it is unused anyway, this patch deprecates it in the hope that drivers will remove their sometimes quite expensive calculations of the value. I'm open to actual uses of the value, but the best way of using it seems to be what the Intel drivers do which should probably be generalised if we have noise values from the hardware. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit eddcbb94f75c3e8944503e9f13c1d29acd0d7052 Author: Johannes Berg Date: Thu Oct 29 08:30:35 2009 +0100 mac80211: introduce ieee80211_beacon_get_tim() Compared to ieee80211_beacon_get(), the new function ieee80211_beacon_get_tim() returns information on the location and length of the TIM IE, which some drivers need in order to generate the TIM on the device. The old function, ieee80211_beacon_get(), becomes a small static inline wrapper around the new one to not break all drivers. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 750266646befe42ee8a3a9f9b6f692174635c5b8 Author: Randy Dunlap Date: Wed Oct 28 16:08:32 2009 -0700 wireless: airo_cs needs WEXT_SPY airo_cs uses spy interfaces so it needs to select WEXT_SPY. ERROR: "iw_handler_set_thrspy" [drivers/net/wireless/airo.ko] undefined! ERROR: "wireless_spy_update" [drivers/net/wireless/airo.ko] undefined! ERROR: "iw_handler_get_spy" [drivers/net/wireless/airo.ko] undefined! ERROR: "iw_handler_get_thrspy" [drivers/net/wireless/airo.ko] undefined! ERROR: "iw_handler_set_spy" [drivers/net/wireless/airo.ko] undefined! Signed-off-by: Randy Dunlap Signed-off-by: John W. Linville commit 8ce0b5892460c670b71b7a0bf96549f5e7a63d6c Author: Zhu Yi Date: Wed Oct 28 13:13:52 2009 -0700 mac80211: make align adjustment code support paged SKB This fixed a BUG_ON in __skb_trim() when paged rx is used in iwlwifi driver. Yes, the whole mac80211 stack doesn't support paged SKB yet. But let's start the work slowly from small code snippets. Reported-and-tested-by: Abhijeet Kolekar Signed-off-by: Zhu Yi Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit ddcd4c08188dc512ceb08bcc3f4f830c2dbfb5ce Author: Luis R. Rodriguez Date: Mon Oct 19 02:33:46 2009 -0400 ath9k_hw: make ath9k_phy_modify_rx_buffer() static To do this we reorder callers in order in which they are called. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit a77658286105c8be3741305c5dcf4c319746817f Author: Luis R. Rodriguez Date: Mon Oct 19 02:33:45 2009 -0400 ath9k_hw: Fix and complete force bias for AR5416 Force bias is a fix for usage of AR5416 radios on the 2.4 GHz band for orientation sensitivity. This was only partially implemented with the ath9k_hw_decrease_chain_power() but first -- this was being called for all chipsets which is not correct and second -- it was missing the actual orientation code. We now ensure to only enable force bias only for AR5416 and BUG_ON() on other chipsets. Although ath9k_hw_decrease_chain_power() was enabled for newer chipsets I suspect that it never ran unless the EEPROM had ATH9K_ANT_FIXED_A or ATH9K_ANT_FIXED_B for antenna diversity. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 896ff260351f736f0d9d32f4fd36257f3e75bd97 Author: Luis R. Rodriguez Date: Mon Oct 19 02:33:44 2009 -0400 ath9k_hw: remove unused modesIndex param from ath9k_hw_write_regs() Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit ae478cf69e9e49a88e0fe8beaffbcba2f97b5209 Author: Luis R. Rodriguez Date: Mon Oct 19 02:33:43 2009 -0400 ath9k_hw: make spur mitigation a callback This only differs between single-chip solutions and non single-chip solutions. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit e16393bbb17e828aa433be9909462f9a61e4cbdb Author: Luis R. Rodriguez Date: Mon Oct 19 02:33:42 2009 -0400 ath9k_hw: order phy.c code and integrate spur mitigation This reorders phy.c routines in the order in the order in which they are used and also moves the spur mitigation helpers for each type of chip into phy.c as they are RF related. This patch has no functional changes. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit e68a060b5d88a72c06ec87864d20bea3f2a40629 Author: Luis R. Rodriguez Date: Mon Oct 19 02:33:41 2009 -0400 ath9k_hw: use a callback for frequency change This avoids a branch on every channel change. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 0a3b7bac673ee9462f5defe808609746d27af50d Author: Luis R. Rodriguez Date: Mon Oct 19 02:33:40 2009 -0400 ath9k_hw: make both analog channel change routines return int This allows us to later define a callback for both. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit dc51dd503953a8bed545d10eb89fb3340a98879b Author: Luis R. Rodriguez Date: Mon Oct 19 02:33:39 2009 -0400 ath9k_hw: rename ath9k_hw_rf_free() to ath9k_hw_rf_free_ext_banks() This clarifies this is only required for external radios. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 431ba3c6dce0256eafde43af221504f99a2fcc0a Author: Luis R. Rodriguez Date: Mon Oct 19 02:33:38 2009 -0400 ath9k_hw: simplify ath9k_hw_rf_alloc_ext_banks() This is calling an allocation and checking for it, simplify this process in a macro. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 574d6b122d37549bc2817a4939d238f3d8b41da4 Author: Luis R. Rodriguez Date: Mon Oct 19 02:33:37 2009 -0400 ath9k_hw: simplify rf attach and rename to ath9k_hw_rf_alloc_ext_banks() ath9k_hw_rfattach() was just calling a helper and this helper was doing nothing for single-chip devices, and for non single-chip devices it is just allocating memory for banks to program the RF registers at a later time. Simplify this by having the hw initialization call the rf bank allocation directly for external radios. Also, propagate an -ENOMEM properly now upon failure. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit b67b4397cfbfca8f5c4fff2a36e00d81ef6a28c2 Author: Luis R. Rodriguez Date: Mon Oct 19 02:33:36 2009 -0400 ath9k_hw: bail out early on ath9k_hw_init_rf() We a huge branch for old hardware and nothing for newer hardware. Instead of doing this just bail out early for newer hardware. This patch has no functional changes. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 131d1d036ac7e7c8ad063581b57ba3bb5f7c881d Author: Luis R. Rodriguez Date: Mon Oct 19 02:33:35 2009 -0400 ath9k_hw: start documenting 802.11n RF anlong front ends Document what we can about the RF analog front ends (radios) of Atheros 802.11n devices. What should be clearer now is the what we do for old pre AR5416 and AR5418 MAC based devices in comparison to the modern sigle-chip 802.11n solutions. All devices after AR9280 are single chip and require less programming -- the RF registers no longer need to be initialized as they all have the RF analog front end embedded together with the MAC/BB; this includes the AR9271. Older devices such as the ones with the AR5416 MACs (PCI) or AR5418 MACs (PCI-E) have an external 2.4 GHz AR2133 radio or a dual band 2.4 GHz / 5 GHz AR5133 radio. These external radios require additional programming of the RF registers. Clarify which parts are for what devices and which code is shared. This patch has no functional changes. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit c75724d1747230abdd37d0594ac5277b867befd4 Author: Luis R. Rodriguez Date: Mon Oct 19 02:33:34 2009 -0400 ath9k_hw: change the way we initialize the pll for ar9271 We adjust the core clock for ar9271 to 117 MHz; this also requires us to adjust the baud divider based on the targetted baud rate. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 8564328d85f69121744d8337124857a2e726239b Author: Luis R. Rodriguez Date: Mon Oct 19 02:33:33 2009 -0400 ath9k_hw: update register initialization/reset values for ar9271 This update the register initialization/reset values (aka initvals) for ar9271 based on the last recommended values on 2009-06-04 by our systems engineering team. The changes account for: * Supporting ar9271 1.0 and ar9271 1.1 together, the difference is bb_spectral_scan_ena, for 1.0 we'll set this to 0x1. * Ensuring we get the correct noise floor values -115 ~ -118 when we enable bb_enable_ant_div_lnadiv=0 and mc_tx_def_ant_sel=1. Previous to this we would get noise floor values in the range -50 ~ -80. To fix settings for the registers: - bb_ch1_xatten1_db - bb_ch1_xatten2_db - bb_ch1_xatten1_margin - bb_ch1_xatten2_margin - bb_ch1_gain_force - bb_ch1_xatten2_hyst_margin - bb_ch1_xatten1_hyst_margin - bb_ch1_max_oc_gain * 0x8120[2] mc_mic_new_location_enable is changed to 0x1. The MAC team suggest to set this value. * 0x9910[0] bb_spectral_scan_ena is changed to 0x0. For ar9271 1.1 we don't need to enable this bit. Cc: Stephen Chen Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 0cab6559f878f328906949c5c20cbbc411cddeb7 Author: Luis R. Rodriguez Date: Mon Oct 19 02:33:32 2009 -0400 ath9k_hw: modify the rf control register for ar9271 revision 1.0 Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 133d7c6a504c672011ebc24b26e05b15f7410c07 Author: John W. Linville Date: Wed Oct 28 16:29:30 2009 -0400 wireless: remove WLAN_80211 and WLAN_PRE80211 from Kconfig With the WLAN_PRE80211 drivers moved to drivers/staging, this distinction becomes unnecessary. Signed-off-by: John W. Linville commit 4b5783549730da21d88b41dce9a2b738afa44abc Author: John W. Linville Date: Wed Oct 28 16:16:38 2009 -0400 netwave: move driver to staging Move the netwave driver to drivers/staging. This is another pre-802.11 driver that has seen virtually no non-API-fixup activity in years, and for which no active hardware is likely to still exist. This driver represents unnecessary ongoing maintenance for no clear benefit. This patch brought to you by the "hacking" session at the 2009 Kernel Summit in Tokyo, Japan... Acked-by: Greg Kroah-Hartman Signed-off-by: John W. Linville commit 0234f84ebb00d36c48062befa5436eef36b71ccd Author: John W. Linville Date: Wed Oct 28 16:06:56 2009 -0400 wavelan: move driver to staging Move the wavelan driver to drivers/staging. This is another pre-802.11 driver that has seen virtually no non-API-fixup activity in years, and for which no active hardware is likely to still exist. This driver represents unnecessary ongoing maintenance for no clear benefit. This patch brought to you by the "hacking" session at the 2009 Kernel Summit in Tokyo, Japan... Acked-by: Greg Kroah-Hartman Signed-off-by: John W. Linville commit e38879efd336fb78b288dcebdc9ca030fd24f449 Author: John W. Linville Date: Tue Oct 20 13:53:08 2009 +0900 arlan: move driver to staging Move the arlan driver to drivers/staging. This is another pre-802.11 driver that has seen virtually no non-API-fixup activity in years, and for which no active hardware is likely to still exist. This driver represents unnecessary ongoing maintenance for no clear benefit. This patch brought to you by the "hacking" session at the 2009 Kernel Summit in Tokyo, Japan... Acked-by: Greg Kroah-Hartman Signed-off-by: John W. Linville commit 955015bb0b42167d14f776ff5947ae2463a974dc Author: John W. Linville Date: Tue Oct 20 13:38:11 2009 +0900 strip: move driver to staging Move the strip ("Starmode Radio IP") driver to drivers/staging. For several years this driver has only seen API "bombing-run" changes, and few people ever had the hardware. This driver represents unnecessary ongoing maintenance for no clear benefit. This patch brought to you by the "hacking" session at the 2009 Kernel Summit in Tokyo, Japan... Acked-by: Greg Kroah-Hartman Signed-off-by: John W. Linville commit 0869aea0eb711982cd2b8bebf41b3c0191c89cde Author: Johannes Berg Date: Wed Oct 28 10:03:35 2009 +0100 mac80211: remove RX_FLAG_RADIOTAP While there may be a case for a driver adding its own bits of radiotap information, none currently does. Also, drivers would have to copy the code to generate the radiotap bits that now mac80211 generates. If some driver in the future needs to add some driver-specific information I'd expect that to be in a radiotap vendor namespace and we can add a different way of passing such data up and having mac80211 include it. Additionally, rename IEEE80211_CONF_RADIOTAP to IEEE80211_CONF_MONITOR since it's still used by b43(legacy) to obtain per-frame timestamps. The purpose of this patch is to simplify the RX code in mac80211 to make it easier to add paged skb support. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 6a86b9c78ebd0397eb953493c68ea9e194e7023c Author: Johannes Berg Date: Wed Oct 28 09:58:52 2009 +0100 mac80211: fix radiotap header generation In commit 601ae7f25aea58f208a7f640f6174aac0652403a Author: Bruno Randolf Date: Thu May 8 19:22:43 2008 +0200 mac80211: make rx radiotap header more flexible code was added that tried to align the radiotap header position in memory based on the radiotap header length. Quite obviously, that is completely useless. Instead of trying to do that, use unaligned accesses to generate the radiotap header. To properly do that, we also need to mark struct ieee80211_radiotap_header packed, but that is fine since it's already packed (and it should be marked packed anyway since its a wire format). Cc: Bruno Randolf Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 4d36ec58239eec44d77839ef6c25108efcbbb58c Author: Johannes Berg Date: Tue Oct 27 20:59:55 2009 +0100 mac80211: split hardware scan by band There's currently a very odd bug in mac80211 -- a hardware scan that is done while the hardware is really operating on 2.4 GHz will include CCK rates in the probe request frame, even on 5 GHz (if the driver uses the mac80211 IEs). Vice versa, if the hardware is operating on 5 GHz the 2.4 GHz probe requests will not include CCK rates even though they should. Fix this by splitting up cfg80211 scan requests by band -- recalculating the IEs every time -- and requesting only per-band scans from the driver. Apparently this bug hasn't been a problem yet, but it is imaginable that some older access points get confused if confronted with such behaviour. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit b59f04cbf8ab4dce63f0d2ed658624b0ad21c67d Author: Johannes Berg Date: Tue Oct 27 20:56:21 2009 +0100 mac80211: remove outdated comment This comment hasn't been a real TODO item for a long time now since we fixed that quite a while ago. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit d130eb498c75095297debbca596b19fcdc823924 Author: Johannes Berg Date: Tue Oct 27 20:53:58 2009 +0100 mac80211_hwsim: don't register CCK rates on 5ghz This buglet confused me a lot just now ... Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 1d9c185d67e61737562befdc6b0c4f19b6a85be6 Author: Luis R. Rodriguez Date: Tue Oct 27 12:59:37 2009 -0400 ath9k_hw: remove bogus register write on ath9k_hw_9271_pa_cal() An extra register was being written to for PA calibration making the hardware unresponsive, remove it. Hardware reset should now complete fine on ar9271. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit ec11bb88f977321f117865b4d21079bbacc474ee Author: Luis R. Rodriguez Date: Tue Oct 27 12:59:36 2009 -0400 ath9k_hw: correct AR_PHY_SPECTRAL_SCAN register offset We had 0x9912 but AR_PHY_SPECTRAL_SCAN is 0x9910. By using the 0x9912 we were making the hardware unresponsive. This allows us to move forward with hardware reset on ar9271 on the ath9k_htc driver. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 11158472c4ea7a4817d85912c491afa36a244192 Author: Luis R. Rodriguez Date: Tue Oct 27 12:59:35 2009 -0400 ath9k_hw: add AR9271 single chip name mapping Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit f934c4d9de85571ff792360aa72dd26e00e1afc7 Author: Luis R. Rodriguez Date: Tue Oct 27 12:59:34 2009 -0400 ath9k_hw: distinguish single-chip solutions on initial probe print Devices with external radios have revisions which we can count on. On single chip solutions these EEPROM values for these radio revision also exist but are not meaningful as the radios are embedded onto the same chip. Each single-chip device evolves together as one device. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 2da4f01a0938b688f92f9ee380013cfb8653510f Author: Luis R. Rodriguez Date: Tue Oct 27 12:59:33 2009 -0400 ath9k_hw: move mac name and rf name helpers to hw code These are shared between ath9k and the future ath9k_htc driver. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 8c8746f9db8b1f644695050703e2d38cd5964ba7 Author: Kalle Valo Date: Tue Oct 27 17:36:25 2009 +0200 wl1251: enable power save wl1251 supports power save and it can be enabled now. Signed-off-by: Kalle Valo Signed-off-by: John W. Linville commit a9685338ab9d331c25ca92b0e8a92631e14c6b45 Author: Kalle Valo Date: Tue Oct 27 17:36:17 2009 +0200 mac80211: fix dynamic power save for devices with nullfunc support in hw In TX path it was assumed that dynamic power save works only if IEEE80211_HW_PS_NULLFUNC_STACK is set. But is not the case, there are devices which have nullfunc support in hardware but need mac80211 to handle dynamic power save timers, TI's wl1251 is one of them. The fix is to not check for IEEE80211_HW_PS_NULLFUNC_STACK in is_dynamic_ps_enabled(), instead check IEEE80211_HW_SUPPORTS_PS and IEEE80211_HW_SUPPORTS_DYNAMIC_PS flags and act accordingly. Tested with wl1251. Signed-off-by: Kalle Valo Acked-by: Johannes Berg Signed-off-by: John W. Linville commit ed620590de15021f6baf08ca098c90f47470efd7 Author: Kalle Valo Date: Tue Oct 27 17:36:09 2009 +0200 mac80211: refactor dynamic power save check Refactor dynamic power save checks to a function of it's own for better readibility. No functional changes. Signed-off-by: Kalle Valo Reviewed-by: Johannes Berg Signed-off-by: John W. Linville commit 7bcfaf2f431c09c51fe776fc06638b25d3b421c5 Author: Johannes Berg Date: Tue Oct 27 12:59:03 2009 +0100 cfg80211/mac80211: use debugfs_remove_recursive We can save a lot of code and pointers in the structs by using debugfs_remove_recursive(). First, change cfg80211 to use debugfs_remove_recursive() so that drivers do not need to clean up any files they added to the per-wiphy debugfs (if and only if they are ok to be accessed until after wiphy_unregister!). Then also make mac80211 use debugfs_remove_recursive() where necessary -- it need not remove per-wiphy files as cfg80211 now removes those, but netdev etc. files still need to be handled but can now be removed without needing struct dentry pointers to all of them. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 2c0d6100da3ee9b0f0cc46add9bb8a8161299a92 Author: Gábor Stefanik Date: Sun Oct 25 16:26:36 2009 +0100 b43: LP-PHY: Begin implementing calibration & software RFKILL support This implements the following calibration functions: -Set TX IQCC -Set TX Power by Index -PR41573 workaround (incomplete, needs PHY reset) -Calc RX IQ Comp -PHY Cordic -Run Samples -Start/Stop TX Tone -part of PAPD Cal TX Power -RX I/Q Calibration -The basic structure of the periodic calibration wrapper Software RFKILL (required by calibration) is also implemented in this round. Signed-off-by: Gábor Stefanik Signed-off-by: John W. Linville commit 0519d83d83ed485b5a1f9222ff69d7d6c9bb8a01 Merge: 38bfd8f b5dd884 Author: David S. Miller Date: Thu Oct 29 21:28:59 2009 -0700 Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 commit ed3f2e40f3d438f4a1ec0a898173116cb26f106a Merge: fb699dfd bd6b444 Author: David S. Miller Date: Thu Oct 29 02:47:13 2009 -0700 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 commit 678b77e265f6d66f1e68f3d095841c44ba5ab112 Author: Jie Yang Date: Tue Oct 27 22:31:19 2009 -0700 atl1c: duplicate atl1c_get_tpd remove duplicate atl1c_get_tpd, it may cause hardware to send wrong packets. Signed-off-by: Jie Yang Signed-off-by: David S. Miller commit bd6b4442ff3cee73f73987cf0c0e66ea677aa075 Author: Vivek Natarajan Date: Tue Oct 27 11:32:52 2009 +0530 ath: Updates for regulatory and country codes. Add a few new country codes and update the regulatory domain for some countries. Signed-off-by: Vivek Natarajan Signed-off-by: John W. Linville commit d23000cd8992823e06ca0745564f2c25fe923ce4 Author: Wey-Yi Guy Date: Fri Oct 23 13:42:36 2009 -0700 iwlwifi: minor comments changes for wimax co-exist command 'COEX_PRIORITY_TABLE_CMD' host command will be supported for 5000 series and up. Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit c166b25a5c02d881b1da15f3afe9dc9e56b206a8 Author: Ben Cahill Date: Fri Oct 23 13:42:35 2009 -0700 iwlwifi: make sure device is reset when unloading driver Add unconditional call to apm_ops.stop() to reset device to low power state when unloading driver. Some paths have existed to unload driver *without* resetting device, therefore some errors have persisted through multiple load/unload cycles, until the whole platform gets rebooted; this is an attempt to remedy some of those situations. Sorry, I can't seem to find a bughost.org bug that specifically has these symptoms, but I had it happen recently here. Note that this will *not* fix situations in which the PCI express bus has crashed (evidenced by register reads showing "0xffffffff"), e.g. bughost.org 1855 and 2096; device is unreachable from driver in those cases. Signed-off-by: Ben Cahill Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 442464218d93aa0aacc55c3a7ac908ae00abff5f Author: Wey-Yi Guy Date: Fri Oct 23 13:42:34 2009 -0700 iwlwifi: update lowest API version support for 6x00 & 6x50 series For 6x00 and 6x50 series devices, APIv4 is the lowest firmware version driver can support. This is also the lowest API version available to the public so there is no need for backward compatibility support for the earlier API versions. Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 570af86e0ab7e7b42b2562ff3209c16ab1ebd5f8 Author: Wey-Yi Guy Date: Fri Oct 23 13:42:33 2009 -0700 iwlwifi: remove duplicated define Duplicated define for listen interval (IWL_CONN_MAX_LISTEN_INTERVAL and IWL_CONN_LISTEN_INTERVAL), remove IWL_CONN_LISTEN_INTERVAL Signed-off-by: Wey-Yi Guy Reported-by: Tomas Winkler Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 7300515d1095aa11731866da7c9b000f2edb4626 Author: Zhu Yi Date: Fri Oct 23 13:42:32 2009 -0700 iwlwifi: reuse page for notification packets For notification packets and SKBs that fail to rx correctly, add them back into the rx_free list so that the pages can be reused later. This avoids allocating new rx pages unnecessarily. Signed-off-by: Zhu Yi Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 71c55d90f9733abdf5e4e0bc24f71e189cefeea6 Author: Wey-Yi Guy Date: Fri Oct 23 13:42:31 2009 -0700 iwlwifi: remove unused parameters parameters "len" is not used in both iwl_tx_queue_free() and iwl_cmd_queue_free() functions Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 6c5cd9d524a3393f6450ee523f4a942d4404f7de Author: Reinette Chatre Date: Fri Oct 23 13:42:30 2009 -0700 iwlwifi: remove duplicate defines RX_FREE_BUFFERS and RX_LOW_WATERMARK are currently defined in four places. Based on how files are included we only need the definition in iwl-fh.h Signed-off-by: Reinette Chatre Reported-by: Frans Pop Signed-off-by: John W. Linville commit 4a56e9652ec2ffce87b099aa2fc5b4eb2d5b2666 Author: Wey-Yi Guy Date: Fri Oct 23 13:42:29 2009 -0700 iwlwifi: add channel switch support to 5000 series and up Support "channel switch" request by issue "channel switch" host command to uCode. There is no separated "channel switch" indication from mac80211, when detected "IEEE80211_CONF_CHANGE_CHANNEL" flag in iwl_mac_config(), if the station is in "associated" state, then assume "channel switch announcement" IE was received by mac80211. Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 480e8407dc0bccdd8d7cfe29b8fcaaa21dd20e68 Author: Wey-Yi Guy Date: Fri Oct 23 13:42:28 2009 -0700 iwlwifi: issue ct_kill host command based on device config Using device configuration structure to decide how to configure ct_kill host command. Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 6047b4f939682ae9bf839fd00c80029cb8f073bb Author: Wey-Yi Guy Date: Fri Oct 23 13:42:27 2009 -0700 iwlwifi: choose thermal throttle method based on device config Using device configuration structure to decide the type of thermal throttle method for the device. Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit c8c24872c6a90ef0298491a1c14326861ab74cab Author: Wey-Yi Guy Date: Fri Oct 23 13:42:26 2009 -0700 iwlwifi: increase max tfd payload size Increase the size of TFD_MAX_PAYLOAD_SIZE (the size of iwl_device_cmd) to accommodate iwl6000_channel_switch_cmd data structure. Signed-off-by: Wey-Yi Guy Acked-by: Ben Cahill Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 29b1b2688fd71346f78f175d9669c006686b6dc3 Author: Zhu Yi Date: Fri Oct 23 13:42:25 2009 -0700 iwlwifi: fix use after free bug for paged rx In the paged rx patch (4854fde2), I introduced a bug that could possibly touch an already freed page. It is fixed by avoiding the access in this patch. I've also added some comments so that other people touching the code won't make the same mistake. In the future, if we cannot avoid access the page after being handled to the upper layer, we can use get_page/put_page to handle it. For now, it's just not necessary. It also fixed a debug message print bug reported by Stanislaw Gruszka . Signed-off-by: Zhu Yi Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 52aa081c40324ecb04a47864e4e56dafc5a72a34 Author: Wey-Yi Guy Date: Fri Oct 23 13:42:24 2009 -0700 iwlwifi: specify the valid tx/rx chain in device config structure Specify both Tx and Rx chain in device configuration structure instead of hard code in set_hw_params() for 4965 Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 456d0f76727ba6f97aa1cee63f1bae84642768c4 Author: Wey-Yi Guy Date: Fri Oct 23 13:42:23 2009 -0700 iwlwifi: update bt co-exit configuration parameter Adding parameter ranges for bt co-exist configuration command. Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 1ed2a3d29ac304092f588a47a9ed2b83d4d8c835 Author: Wey-Yi Guy Date: Fri Oct 23 13:42:22 2009 -0700 iwlwifi: separate led function from statistic notification Detach led background task from statistic notification routine. if led blinking is required; the blink rate is based on the traffic condition. It do not relate to statistics notification. In addition to that, there is not a requirement for statistics notification has to occur all the time. Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit fadb3582a38c33d0f7c58ab7905d4dbc67f4c4d9 Author: Ben Cahill Date: Fri Oct 23 13:42:21 2009 -0700 iwlwifi: consolidate apm_init() functions Consolidate most iwlXXXX_apm_init() functions into single iwl_apm_init(). Keep iwl3945_apm_init(), but leverage iwl_apm_init() for most functionality. Update 4965 init sequence to follow most recent factory recommendations. Add following members to struct iwl_cfg to guide the init sequence: pll_cfg_val (replaces needs_pll_cfg), set_l0s, use_bsm Move L0S enable/disable from nic_config() functions to iwl_apm_init(). This satisifies the "FIXME: put here L1A -L0S w/a" notice, and complies with factory-recommended sequence. Add debug info message in iwl_apm_init(), and symmetrical message in iwl_apm_stop(). Signed-off-by: Ben Cahill Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 065e63b00cf13919010bbeff48f7a120033be448 Author: Wey-Yi Guy Date: Fri Oct 23 13:42:20 2009 -0700 iwlwifi: fix gain computation for 5000 series and up In Rx gain balancing (chain noise) computation for 5000 series and up, the delta gain calculation should use the average noise of default chain, not "chain 0" which do not exist for all the devices. Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 1a5c3d61993f56daf15c35bea8d3943f4e835638 Author: Jay Sternberg Date: Fri Oct 23 13:42:19 2009 -0700 iwlwifi: add missing commands to syslog messages Two commands missing from list of commands such that when debug is enabled, these commands are shown as UNKNOWN. Missing commands are TX_ANT_CONFIGURATION_CMD and TEMPERATURE_NOTIFICATION. Signed-off-by: Jay Sternberg Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit fef0640e1e5d5f79c48d1de1f54ed285429b4a6c Author: Holger Schurig Date: Thu Oct 22 15:30:59 2009 +0200 libertas: remove some references to IW_MODE_abc ... in pursue to quaff the wide-spread references to WEXT constants. When setting SNMP_MIB_OID_BSS_TYPE, wext.c can directly calculate the value the firmware wants. Reading of SNMP_MIB_OID_BSS_TYPE doesn't happen anywhere, so no need to convert the firmware value into WEXT values anyway. Signed-off-by: Holger Schurig Signed-off-by: John W. Linville commit e93156e7c4c3e2be355cac27c58664e4385c58fd Author: Holger Schurig Date: Thu Oct 22 15:30:58 2009 +0200 libertas: sort and categorize entries in decl.h This now makes decl.h only contain declarations for functions that don't have their own *.h file. No function change. Signed-off-by: Holger Schurig Signed-off-by: John W. Linville commit 560c63383f060b5ea68834e4720ab7bfb4303ff7 Author: Holger Schurig Date: Thu Oct 22 15:30:57 2009 +0200 libertas: move mic failure event to wext.c ... because for cfg80211 we'll need a completely different implementation. Signed-off-by: Holger Schurig Signed-off-by: John W. Linville commit fea2b8ec8192c62dbf5347c873cb1c8a87717a6a Author: Holger Schurig Date: Thu Oct 22 15:30:56 2009 +0200 libertas: move SIOCGIWAP calls to wext.c Signed-off-by: Holger Schurig Signed-off-by: John W. Linville commit 8ec97cc803e1d52022e916074415acaec276288c Author: Holger Schurig Date: Thu Oct 22 15:30:55 2009 +0200 libertas: remove "struct cmd_ds_gen" It was only used as a source for S_DS_GEN, but the size of this struct is equal to the size of "struct cmd_header". Signed-off-by: Holger Schurig Signed-off-by: John W. Linville commit b856f73b39ca6b619e6e8d088141aec3ff62852c Author: Holger Schurig Date: Thu Oct 22 15:30:54 2009 +0200 libertas: remove handling for CMD_GET_TSF ... which just resided as an old-style command in cmd/cmdresp, but was nowhere useed. If we ever need it, we can re-add it as a newstyle command. Signed-off-by: Holger Schurig Signed-off-by: John W. Linville commit f57bd284e435d1ddf69b4266f63d856865152271 Author: Holger Schurig Date: Thu Oct 22 15:30:53 2009 +0200 libertas: remove handling for CMD_802_11_LED_GPIO_CTRL ... which just resided as an old-style command in cmd/cmdresp, but was nowhere useed. If we ever need it, we can re-add it as a newstyle command. Signed-off-by: Holger Schurig Signed-off-by: John W. Linville commit 6e85e0b7ab1cafd6ff63c391d231b5a39934802e Author: Holger Schurig Date: Thu Oct 22 15:30:52 2009 +0200 libertas: move lbs_send_iwevcustom_event() to wext.c ... because it's purely a WEXT function. No functional change. Signed-off-by: Holger Schurig Signed-off-by: John W. Linville commit d0de37417e51219d7d56a452d18fa7b829342fcc Author: Holger Schurig Date: Thu Oct 22 15:30:51 2009 +0200 libertas: move association related commands into assoc.c That's because the new cfg80211 implementation will provide cleaner implementations. No functional changes. Signed-off-by: Holger Schurig Signed-off-by: John W. Linville commit c14951fec6c292dca60e3cf8ab0edfdf11e6c0e2 Author: Holger Schurig Date: Thu Oct 22 15:30:50 2009 +0200 libertas: get current channel out of priv->curbssparams ... as priv->curbssparams won't exist once libertas+cfg80211 lands. Signed-off-by: Holger Schurig Signed-off-by: John W. Linville commit 5e047692245c7b8d338ddeece156721d594ca985 Author: Holger Schurig Date: Thu Oct 22 15:30:49 2009 +0200 libertas: sort variables in struct lbs_private Having the variables in logical groups allows us to easier #ifdef stuff out. No functional change. Signed-off-by: John W. Linville commit 2d46502dce3c79c3c15ac537cb271911f58d12d1 Author: Holger Schurig Date: Thu Oct 22 15:30:48 2009 +0200 libertas: move scan/assoc related stuff Another cfg80211-preparation patch: removes some code/definitions from main.c and dev.h and put's it into assoc.c/.h, scan.c/.h. No function change. Signed-off-by: Holger Schurig Signed-off-by: John W. Linville commit 243e84e91ed810f7dca5ba1c2d1a611811948566 Author: Holger Schurig Date: Thu Oct 22 15:30:47 2009 +0200 libertas: change IW_ESSID_MAX_SIZE -> IEEE80211_MAX_SSID_LEN Signed-off-by: Holger Schurig Acked-by: Dan Williams Signed-off-by: John W. Linville commit f4228b4c2e5864ee9d2051176beb2bd5a49a15cc Author: Holger Schurig Date: Thu Oct 22 15:30:46 2009 +0200 libertas: remove unused 11d.h as well, priv->countryinfo Signed-off-by: Holger Schurig Acked-by: Dan Williams Signed-off-by: John W. Linville commit d37b4fdd43f7e5686c40181f33a50a7ee03ddbd8 Author: Holger Schurig Date: Thu Oct 22 15:30:45 2009 +0200 libertas: remove unused 11d code Most of the 11d code was protected with an "if (priv->enable11d)" clause. But there was no code that anywhere that was able to set this variable to true. So all 11d code was dead for almost a year and no one complained. That's enought incentive to remove this code. Besides removing old cruft, we gain back the 11d capability in a common way when we merge the cfg80211 functionality. Signed-off-by: Holger Schurig Acked-by: Dan Williams Signed-off-by: John W. Linville commit 7f4013f09654216653121f216bd0257f460f5dcc Author: Benoit PAPILLAULT Date: Thu Oct 22 12:04:52 2009 +0200 zd1211rw: Fix TX status reporting in order to have proper rate control First, we reduce the number of hardware retries to 0 (ie 2 real retries for each rate). Next, when we report the retries to mac80211, we always report a retry count of 1 (it seems to be 2 in fact, but using 2 seems to lead to wrong performance for some reason). We use a state machine to determine the real fate of a packet based on the 802.11 ACK and what the Zydas hardware is saying when a real retry occurs. The real retry rates are encoded in a static array. It has been tested with both zd1211 and zd1211b hardware. Of course, since the Zydas hardware is not reporting retries accurately, we are just doing our best in order to get the best performance (ie higher throughput). Signed-off-by: Benoit PAPILLAULT Signed-off-by: John W. Linville commit 287d37412035d003430f69a828c98b1cc6ee6d60 Author: Luciano Coelho Date: Wed Oct 21 14:03:46 2009 +0300 wl1271: use ieee80211_rx_ni() Use the new ieee80211_rx_ni() function instead of ieee80211_rx(). Since we use a workqueue to handle the RX path, we need to call the new function, which disables bottom half handling. This patch fixes the NOHZ: local_softirq_pending messages. CC: Kalle Valo Signed-off-by: Luciano Coelho Reviewed-by: Kalle Valo Signed-off-by: John W. Linville commit 6b9ac4425d6ec871faf54540e0f1c5ff420a8f29 Author: Rui Paulo Date: Tue Oct 20 21:21:48 2009 +0100 mesh: use set_bit() to set MESH_WORK_HOUSEKEEPING. This makes the mesh housekeeping timer work properly on big endian systems. Signed-off-by: Rui Paulo Signed-off-by: Javier Cardona Signed-off-by: John W. Linville commit 68676df00d956e191c442cb697154a7a18a1e054 Author: Christian Lamparter Date: Sat Oct 17 21:56:55 2009 +0200 ar9170: don't filter BlockACK frames The current A-MPDU tx_status report mechanism is too inaccurate. With this patch BlockACK frames show now up to the driver and can be processed. Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit 731d6bfc2d201958cfa3d08c7acff218497bbd50 Author: Christian Lamparter Date: Sat Oct 17 21:56:51 2009 +0200 ar9170usb: atomic pending urbs counter This patch follows "ar9170: atomic pending A-MPDU counter" idea and converts another critical counter to atomic_*. Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit 02bdf5b48a2cd90a5d036eab68e6f65adb200140 Author: Christian Lamparter Date: Sat Oct 17 21:56:43 2009 +0200 ar9170: atomic pending A-MPDU counter A ref-counting bug emerged after testing ar9170usb's HT implementation on a bigger SMP/SMT system without the usual _debugging_ overhead. Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit 4ad177b5c860dc0b1083eccc55957daf4a116b90 Author: Wey-Yi Guy Date: Fri Oct 16 14:25:58 2009 -0700 iwlwifi: rework for static power save For static power save, the actual intervals are calculated by driver based on the default table and DTIM flag, then sent to uCode when the scheme is changed. Three tables are defined based on DTIM period. 1. DTIM 0 - 2 2. DTIM 3 - 10 3. DTIM > 11 The actual number of DTIM a station may miss may not exceed the following: . Only 1 DTIM may be skipped at PI=4 when allowed . Only 2 DTIMs may be skipped at PI=5 when allowed . DTIM may be skipped only 5 sec after last activity . DTIM may be skipped only 30 sec after connection establishment Only allow user to override the power_level when rf is ready to make sure power level gets changed upon request. Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 9444b188022418c624ce32584c3b9544b500d15e Author: Wey-Yi Guy Date: Fri Oct 16 14:25:57 2009 -0700 iwlwifi: no chain noise support for 6x50 series For initial bring up of 6x50 series NICs, no chain noise support in uCode, this feature will be added in the later stage of development. Two chain noise related functions are removed from 6x50 series: 1. gain computation 2. chain noise reset Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 32004ee42fced8b2372dd2f93e65cc9d71e8c4bf Author: Wey-Yi Guy Date: Fri Oct 16 14:25:56 2009 -0700 iwlwifi: set auto clock gate disable bit for 6x00/6x50 series For 6x00 and 6x50 series NIC with OTP shadow RAM, set auto clock gate disable bit when initializing OTP access. Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 8d9698b3e6ce3c50f9ec5a0aaea4da82d5af7779 Author: Reinette Chatre Date: Fri Oct 16 14:25:55 2009 -0700 iwlagn: store station rate scale information in mac80211 station structure Currently mac80211 initializes the rate scaling before notifying the driver of the station's existence. The driver dealt with this by not relying on mac80211's station notifications and instead mixing this functionality with the rate scaling code and other places. To clean this up the driver needs to do rate scaling initialization after being notified of the station, this can be done if the rate scaling information forms part of the station information passed from mac80211 to driver. Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit cc1282f63b53d0967bd96ed56aa3d2463dc4b4b6 Author: Reinette Chatre Date: Fri Oct 16 14:25:54 2009 -0700 iwlwifi: move rate scaling structures to header file Move to header file so they can be included and used in other parts of the driver. Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit f0b6e2e8cbc6026d3d6d3087032f5eceafaee0b8 Author: Reinette Chatre Date: Fri Oct 16 14:25:53 2009 -0700 iwlwifi: move iwl_setup_mac to iwlagn This function is only used in iwlagn so there is no need to have it in iwlcore. Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 3ab312a893bbfc0fad7b1b644b3d477905773b1a Author: Wey-Yi Guy Date: Fri Oct 16 14:25:52 2009 -0700 iwlwifi: fix incorrect otp blocks number for 6x50 series For 6x50 series, number of OTP blocks is different from 6x00 series Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 32b7e244f2b1082ac0a1cda1b088574f2d590496 Author: Wey-Yi Guy Date: Fri Oct 16 14:25:51 2009 -0700 iwlwifi: identify eeprom version for 6x50 series NIC Adding support for 6x50 series EEPROM version check, 6x50 is wifi/wimax combo device which has different EEPROM map Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit c09430abed4159e5c56aaea257d040f7452daba6 Author: Wey-Yi Guy Date: Fri Oct 16 14:25:50 2009 -0700 iwlwifi: show current power save status reported by uCode Power save request is sent from driver to uCode, but there is no indication from uCode about the current device power save state. Reading GP_CNTRL register bit 25:24 to show the current power save status 00: no power save 01: MAC power down 10: PHY power down 11: Error The uCode could switch in and out of power save mode in the order of once per 100-300 ms in many cases. The reading here should just be used for reference on the current uCode power save status. Do not confuse this reading with the PowerSave set by driver and mac80211. Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 1f80989e8b7f79d8e916b14600488489bdd5569f Author: Abhijeet Kolekar Date: Fri Oct 16 14:25:49 2009 -0700 iwl3945: disable all tx fifos Disable the all the tx fifos while stopping the tx queues. Signed-off-by: Abhijeet Kolekar Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 9a493e8f4d78fc3f2494fa952500b720c86737d8 Author: John W. Linville Date: Tue Oct 27 15:15:05 2009 -0400 wl1251: re-disable PG10 chips "wl1251: add support for PG11 chips." accidentally enabled PG10 chips as well... Reported-by: Kalle Valo Signed-off-by: John W. Linville commit 72f5f457564e8ebc6c38ee4f98ee59cd03c2f614 Author: John W. Linville Date: Fri Oct 16 14:35:51 2009 -0400 b43: use ieee80211_rx_ni() Convert to new use ieee80211_rx_ni() routine rather than open-coded version. Signed-off-by: John W. Linville commit 8ef37f1cb24bfc89297eab6cd6f1e1096d954139 Author: Holger Schurig Date: Fri Oct 16 17:34:22 2009 +0200 libertas: remove unused lbs_cmd_802_11_inactivity_timeout() Signed-off-by: Holger Schurig Acked-by: Dan Williams Signed-off-by: John W. Linville commit a3cbfb08ca634019516c91f3d5266b18e3dbbf77 Author: Holger Schurig Date: Fri Oct 16 17:33:56 2009 +0200 libertas: make lbs_get_channel() static Signed-off-by: Holger Schurig Acked-by: Dan Williams Signed-off-by: John W. Linville commit bca61f8a4df69949cc7426b39daa867f5274a9b8 Author: Holger Schurig Date: Fri Oct 16 17:33:23 2009 +0200 libertas: harmonize cmd.h * move declarations for functions of cmd.c/cmdresp.c into cmd.h * move declarations from cmd.h that are in main.c to decl.h * group command functions Signed-off-by: Holger Schurig Acked-by: Dan Williams Signed-off-by: John W. Linville commit 9e66e701d0e42efd548f0f7249af8a56f8e07b67 Author: Holger Schurig Date: Fri Oct 16 17:32:16 2009 +0200 libertas: cleanup host.h and hostcmd.h Also remove some unused definitions and make tab usage consistent. Signed-off-by: Holger Schurig Acked-by: Dan Williams Signed-off-by: John W. Linville commit b8fcf590939f0aa24d43bdbdae7c963f31ba90bd Author: Zhu Yi Date: Fri Oct 16 13:19:00 2009 +0800 iwmc3200wifi: handle coexistence radio notification Handle WiFi/WiMax coexistence radio preemption notification event. Signed-off-by: Zhu Yi Signed-off-by: John W. Linville commit 5dc53163c24ad288cfa2369b14a073992e069908 Author: Samuel Ortiz Date: Fri Oct 16 13:18:59 2009 +0800 iwmc3200wifi: Set wiphy firmware version Our wiphy firmware version is a combination of the UMAC and LMAC ones. Signed-off-by: Samuel Ortiz Signed-off-by: Zhu Yi Signed-off-by: John W. Linville commit 7fd6b12f329b7ec1c1e3ad49d701d2ac7ab42d9e Author: Samuel Ortiz Date: Fri Oct 16 13:18:58 2009 +0800 iwmc3200wifi: Support unexpected reboot barker We can receive unexpected reboot barker at any time, and we're supposed to reset the whole device then. Signed-off-by: Samuel Ortiz Signed-off-by: Zhu Yi Signed-off-by: John W. Linville commit 9829e1b510214956bc9d5e278be49d781e1a6fbf Author: Samuel Ortiz Date: Fri Oct 16 13:18:57 2009 +0800 iwmc3200wifi: Try shared auth when open WEP fails When we fail to associate with an open WEP AP, we fall back to shared auth. This allows us to support joining a shared auth WEP AP with iwconfig. Signed-off-by: Samuel Ortiz Signed-off-by: Zhu Yi Signed-off-by: John W. Linville commit 56e3f085f5b5e49cca37a3d1b0aa4266b984eb12 Author: Samuel Ortiz Date: Fri Oct 16 13:18:56 2009 +0800 iwmc3200wifi: Do not handle wifi command if the interface is not ready When resetting or bringing the interface down, we should just reject any wifi related command. Signed-off-by: Samuel Ortiz Signed-off-by: Zhu Yi Signed-off-by: John W. Linville commit 708567e0723f3a217286c2b60805af6de360ec50 Author: Samuel Ortiz Date: Fri Oct 16 13:18:55 2009 +0800 iwmc3200wifi: Check for cmd pointer before dereferencing it The wifi_if_wrapper notification handling code uses a cmd pointer without checking if it's valid or not. We're dereferencing it because we assume that we only get to that point if there was a pending command for us. That's not always true, so we'd better check. Signed-off-by: Samuel Ortiz Signed-off-by: Zhu Yi Signed-off-by: John W. Linville commit f96cca8483c1b0bcc8002dc466159bf8fd53ca47 Author: Samuel Ortiz Date: Fri Oct 16 13:18:54 2009 +0800 iwmc3200wifi: SDIO disable race fix When calling sdio->bus_disable(), we are flushing the command lists before disabling the sdio function. We can thus potentially get a command response after having flushed the command list. To avoid that race, we have to call iwm_reset() after disabling the sdio function. Signed-off-by: Samuel Ortiz Signed-off-by: Zhu Yi Signed-off-by: John W. Linville commit 88e6195a911bce85adcc14e8377aa619e8054ab2 Author: Samuel Ortiz Date: Fri Oct 16 13:18:53 2009 +0800 iwmc3200wifi: Tx power setting We can now set the Tx power from e.g. iwconfig. Signed-off-by: Samuel Ortiz Signed-off-by: Zhu Yi Signed-off-by: John W. Linville commit 7eae165e2d7dd32e88a641c0f38b2be840bcae07 Author: Samuel Ortiz Date: Fri Oct 16 13:18:52 2009 +0800 iwmc3200wifi: Update fixed size config definitions We need to be in sync with the latest firmware API. Signed-off-by: Samuel Ortiz Signed-off-by: Zhu Yi Signed-off-by: John W. Linville commit 05f9589cd37be9ead62a92755cd86f14b247229d Author: Samuel Ortiz Date: Fri Oct 16 13:18:51 2009 +0800 iwmc3200wifi: Update statistics notification structure The latest firmware adds a ht_rates and a chain_energy field. The latter is needed as we want to eventually support RSSI/antenna handling. Signed-off-by: Samuel Ortiz Signed-off-by: Zhu Yi Signed-off-by: John W. Linville commit 69cf6e2d5bd90436a0fa6cef2f4d65583faef388 Author: Samuel Ortiz Date: Fri Oct 16 13:18:50 2009 +0800 iwmc3200wifi: Improve rx debug We display the correct DROP/RELEASE string for each rx packets, and when it's dropped we also display the reason. Signed-off-by: Samuel Ortiz Signed-off-by: Zhu Yi Signed-off-by: John W. Linville commit 6a79c9f62a87e39a265f9b855911fbc1f094ded0 Author: Samuel Ortiz Date: Fri Oct 16 13:18:49 2009 +0800 iwmc3200wifi: Profile flags can be WPA1 or WPA2 not both UMAC will ASSERT if the profile security flag is WPA1 | WPA2, so we can only accept one of those. Moreover wpa_s wext and nl80211 drivers dont try to send WPA1 | WPA2, but only one at a time. Signed-off-by: Samuel Ortiz Signed-off-by: Zhu Yi Signed-off-by: John W. Linville commit e85498b21d0372a00f31ab9f7c0d215c32c9fad5 Author: Samuel Ortiz Date: Fri Oct 16 13:18:48 2009 +0800 iwmc3200wifi: CT kill support We set the initial CT (Temperature control) value to 110 degrees. If the chip goes over that threshold, we hard block the device which will turn it down. At the same time we schedule a 30 seconds delayed work that unblock the device (and userspace is supposed to bring it back up), hoping that the chip will have cooled down by then... Signed-off-by: Samuel Ortiz Signed-off-by: Zhu Yi Signed-off-by: John W. Linville commit a82aedbf1b043f7a7474aa9b6d223104ac51827a Author: Samuel Ortiz Date: Fri Oct 16 13:18:47 2009 +0800 iwmc3200wifi: WPS support By setting the WSC profile flag, we now support WPS as an enrollee. Signed-off-by: Samuel Ortiz Signed-off-by: Zhu Yi Signed-off-by: John W. Linville commit 03d1a62c1fb10fe00cfc5cb7f4496d8d6d0e7660 Author: Zhu Yi Date: Fri Oct 16 13:18:46 2009 +0800 iwmc3200wifi: allow joining an existed IBSS network We used to only support creating a new IBSS network. Now joining to an existed IBSS network is supported as well. Signed-off-by: Zhu Yi Signed-off-by: John W. Linville commit 30315ff05fce99ef0c172a966b3ed71baa62219b Author: Zhu Yi Date: Fri Oct 16 13:18:45 2009 +0800 iwmc3200wifi: add BGN sdio device id Add BGN SKU sdio device id. Signed-off-by: Zhu Yi Signed-off-by: John W. Linville commit 43b7b314f606b64f8645e4ec1a59df8a97a79b5a Author: Javier Cardona Date: Thu Oct 15 18:10:51 2009 -0700 mac80211: Learn about mesh portals from multicast traffic Mesh portals proxy traffic for nodes external to the mesh. When a proxied frame is received by a mesh interface, it should update its mesh portal table. This was only happening for unicast frames. With this change we also learn about mesh portals from proxied multicast frames. Signed-off-by: Javier Cardona Signed-off-by: John W. Linville commit a9b3a9f7214b3acc56330c2257aeaa5fa85bf520 Author: Ivo van Doorn Date: Thu Oct 15 22:04:14 2009 +0200 rt2x00: Implement support for rt2800pci Add support for the rt2860/rt3090 chipsets from Ralink. Includes various patches from a lot of people who helped getting this driver into the current shape. Signed-off-by: Alban Browaeys Signed-off-by: Benoit PAPILLAULT Signed-off-by: Felix Fietkau Signed-off-by: Luis Correia Signed-off-by: Mattias Nissler Signed-off-by: Mark Asselstine Signed-off-by: Xose Vazquez Perez Signed-off-by: Ivo van Doorn Signed-off-by: John W. Linville commit 5d78d34ba2d4a044983b599a697dc1d71af38c96 Author: Ivo van Doorn Date: Thu Oct 15 21:38:19 2009 +0200 rt2x00: Add rt2x00soc bus module Add new library module for SoC drivers. This is needed to fully support the platform driver part of rt2800pci. Based on original patch from Felix. Signed-off-by: Felix Fietkau Signed-off-by: Ivo van Doorn Signed-off-by: John W. Linville commit 878283f19809bc73872c70ea53381f74a43a15e7 Author: Kalle Valo Date: Tue Oct 13 20:33:21 2009 +0300 wl1251: use ieee80211_rx_ni() Because of SPI and SDIO wl1251 does everything in a workqueue, including calling ieee80211_rx() which should be called with bottom halves disabled. An error message is emitted because of this: NOHZ: local_softirq_pending 08 Fix this by using ieee80211_rx_ni(). Signed-off-by: Kalle Valo Signed-off-by: John W. Linville commit 88499ab3d8dbbf9c080416952603742666c71262 Author: Michael Buesch Date: Fri Oct 9 20:33:32 2009 +0200 b43: Optimize PIO scratchbuffer usage This optimizes the PIO scratchbuffer usage. Signed-off-by: Michael Buesch Signed-off-by: John W. Linville commit 2c759e03b3b7639fff23ec3b7bab64a35ca0914f Author: David-John Willis Date: Thu Oct 15 14:38:16 2009 +0100 wl1251: add support for PG11 chips. This simple patch adds support for the PG11 variant of the WL1251 chip as used on the OpenPandora OMAP3 device. Signed-off-by: David-John Willis Signed-off-by: John W. Linville commit fb46f26f383c3129ce4ae551a359a8e11704cbce Author: Luciano Coelho Date: Thu Oct 15 10:33:30 2009 +0300 wl1271: added missing packed modifier in some cmd structs Some of the struct definitions in the wl1271_acx.h file were missing the __attribute__ ((packed)) modifier. Signed-off-by: Luciano Coelho Reviewed-by: Juuso Oikarinen Signed-off-by: John W. Linville commit d0f63b202146f3281800ee44823740c8bbf38f11 Author: Luciano Coelho Date: Thu Oct 15 10:33:29 2009 +0300 wl1271: fix endianess issues We were not handling endianess correctly. The wl1271 chip runs on little-endian values. This patch makes sure that all the communication with the wl1271 firmware is done in little-endian by using cpu_to_le* and le*_to_cpu where appropriate. Also, all the struct definitions for data exchanged with the firmware has been changed to use __le16/32 types instead of u16/32. This fixes a few sparse warnings, such as these: drivers/net/wireless/wl12xx/wl1271_cmd.c:554:42: warning: incorrect type in assignment (different base types) drivers/net/wireless/wl12xx/wl1271_cmd.c:555:42: warning: incorrect type in assignment (different base types) drivers/net/wireless/wl12xx/wl1271_cmd.c:577:58: warning: incorrect type in assignment (different base types) drivers/net/wireless/wl12xx/wl1271_cmd.c:579:58: warning: incorrect type in assignment (different base types) drivers/net/wireless/wl12xx/wl1271_cmd.c:676:18: warning: incorrect type in assignment (different base types) drivers/net/wireless/wl12xx/wl1271_cmd.c:787:22: warning: incorrect type in assignment (different base types) drivers/net/wireless/wl12xx/wl1271_cmd.c:789:21: warning: incorrect type in assignment (different base types) drivers/net/wireless/wl12xx/wl1271_tx.c:98:47: warning: incorrect type in argument 1 (different base types) drivers/net/wireless/wl12xx/wl1271_acx.c:932:32: warning: incorrect type in assignment (different base types) drivers/net/wireless/wl12xx/wl1271_boot.c:191:32: warning: incorrect type in argument 1 (different base types) drivers/net/wireless/wl12xx/wl1271_boot.c:197:38: warning: incorrect type in argument 1 (different base types) drivers/net/wireless/wl12xx/wl1271_boot.c:199:37: warning: incorrect type in argument 1 (different base types) drivers/net/wireless/wl12xx/wl1271_init.c:255:40: warning: incorrect type in assignment (different base types) drivers/net/wireless/wl12xx/wl1271_init.c:275:53: warning: incorrect type in assignment (different base types) Reported-by: Johannes Berg Signed-off-by: Luciano Coelho Reviewed-by: Juuso Oikarinen Signed-off-by: John W. Linville commit 0b5b72da1b21fe61926318dd842f6dd7c8862e9f Author: Luciano Coelho Date: Thu Oct 15 10:33:28 2009 +0300 wl1271: added missing packed modifier in some acx structs Some of the struct definitions in the wl1271_acx.h file were missing the __attribute__ ((packed)) modifier. Signed-off-by: Luciano Coelho Reviewed-by: Juuso Oikarinen Signed-off-by: John W. Linville commit 938e30c9301fbd7c3677d01ad01c7eb4ad78b998 Author: Luciano Coelho Date: Thu Oct 15 10:33:27 2009 +0300 wl1271: fix sparse warnings about undeclared functions The following sparse warnings were fixed: drivers/net/wireless/wl12xx/wl1271_spi.c:199:6: warning: symbol 'wl1271_spi_read_busy' was not declared. Should it be static? drivers/net/wireless/wl12xx/wl1271_cmd.c:84:5: warning: symbol 'wl1271_cmd_cal_channel_tune' was not declared. Should it be static? drivers/net/wireless/wl12xx/wl1271_cmd.c:107:5: warning: symbol 'wl1271_cmd_cal_update_ref_point' was not declared. Should it be static? drivers/net/wireless/wl12xx/wl1271_cmd.c:132:5: warning: symbol 'wl1271_cmd_cal_p2g' was not declared. Should it be static? drivers/net/wireless/wl12xx/wl1271_cmd.c:153:5: warning: symbol 'wl1271_cmd_cal' was not declared. Should it be static? Reported-by: Johannes Berg Signed-off-by: Luciano Coelho Reviewed-by: Juuso Oikarinen Signed-off-by: John W. Linville commit 7a38079e0da19447ab1c41e42094b311c6e945e4 Author: Juuso Oikarinen Date: Thu Oct 15 10:33:26 2009 +0300 wl1271: Set IEEE80211_FCTL_TODS in the null data template Set the IEEE80211_FCTL_TODS bit in the FC of the null data template. This is a mandatory requirement in specification. Signed-off-by: Juuso Oikarinen Cc: Vidhya Govindan Cc: Janne Ylälehto Reviewed-by: Janne Ylalehto Signed-off-by: Luciano Coelho Signed-off-by: John W. Linville commit 53623f1a09c7a7d23b74f0f7d93dba0ebde1006b Author: John W. Linville Date: Thu Oct 15 15:10:16 2009 -0400 mac80211: replace netif_tx_{start,stop,wake}_all_queues Replace netif_tx_{start,stop,wake}_all_queues with the single-queue equivalents (i.e. netif_{start,stop,wake}_queue). Since we are down to a single queue, these should peform slightly better. Signed-off-by: John W. Linville commit e5e2647fd6ceef2cdc479954b84517535eb7febd Author: Bob Copeland Date: Wed Oct 14 14:16:30 2009 -0400 ath5k: use noise calibration from madwifi hal This updates ath5k to calibrate the noise floor similar to the way it is done in the madwifi hal and ath9k. Of note: - we start NF measurement at the same time as AGC calibration, but do not actually read the value until the periodic (long) calibration - we keep a history of the last few values read and write the median back to the hardware for CCA - we do not complain if NF calibration isn't complete, instead we keep the last read value. Signed-off-by: Bob Copeland Acked-by: Nick Kossifidis Signed-off-by: John W. Linville commit e307fcf0a10f9c0c21b3d8b2ff7862b29796cc7f Author: Marek Lindner Date: Wed Oct 14 23:04:45 2009 +0800 ath9k: adjust ahb callbacks to new struct layout to avoid compile errors Signed-off-by: Marek Lindner Signed-off-by: John W. Linville commit 6d898b1983b62ad52f862014748ddce35aad005a Author: Holger Schurig Date: Wed Oct 14 16:49:53 2009 +0200 libertas: make __lbs_cmd_async() non-static This function will be needed for the cfg80211-enabled libertas driver. Signed-off-by: Holger Schurig Signed-off-by: John W. Linville commit 40f54242ae2d2b958b6ae7644f58de9e8a48992a Author: Kalle Valo Date: Tue Oct 13 20:41:20 2009 +0300 wl1251: rename spi device to wl1251 During rename of the driver from wl12xx to wl1251 the spi device name was accidentally left as wl12xx. Rename it to wl1251 which is the proper name of the driver. Signed-off-by: Kalle Valo Signed-off-by: John W. Linville commit e0da41b2cf10ae95592cb2496f8f81aa4b4bf16c Author: Holger Schurig Date: Tue Oct 13 13:45:28 2009 +0200 cfg80211: remove warning in deauth case It might be the case that __cfg80211_disconnected() has already cleaned up wdev->current_bss() for us. The old code didn't catch that situation and didn't warn needlessly. Signed-off-by: Holger Schurig Signed-off-by: John W. Linville commit ce470613cdfde70f25419cc52a4816315825f5d9 Author: Holger Schurig Date: Tue Oct 13 13:28:13 2009 +0200 cfg80211: no cookies in cfg80211_send_XXX() Get rid of cookies in cfg80211_send_XXX() functions. Signed-off-by: Holger Schurig Signed-off-by: John W. Linville commit b54853f1b157a173fe5ac9145623670c66a9e7b9 Author: Juuso Oikarinen Date: Tue Oct 13 12:47:59 2009 +0300 wl1271: Fix filter configuration Fix the filter configuration to properly work with the two phase filter configuration (prepare_multicast/configure_filter.) Signed-off-by: Juuso Oikarinen Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho Signed-off-by: John W. Linville commit bd5ea18f7b47b5397233301920180128793295a2 Author: Luciano Coelho Date: Tue Oct 13 12:47:58 2009 +0300 wl1271: make sure PS is disabled in PLT We cannot be in PS mode when running PLT tests, so we need to make sure we're in active mode. Also, we need to clear up the rx_counter when we stop PLT, otherwise it could cause problems when entering PLT again. Signed-off-by: Luciano Coelho Reviewed-by: Juuso Oikarinen Signed-off-by: John W. Linville commit ed317788b925cfd896506ee775acca7392470b9b Author: Juuso Oikarinen Date: Tue Oct 13 12:47:57 2009 +0300 wl1271: Correct memory handling for FW boot Several memory allocation related failure cases were not properly handled by the driver - the result was that in low memory conditions booting of a corrupted FW could be attempted - and user space would not get proper failure code. Signed-off-by: Juuso Oikarinen Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho Signed-off-by: John W. Linville commit a163acce485a9629418659ff74737b89ba2c1751 Author: Juuso Oikarinen Date: Tue Oct 13 12:47:56 2009 +0300 wl1271: Remove unnecessary rx_descriptor memory allocation Remove unnecessary RX descriptor memory allocation from the driver. The allocation was a remnant of the wl1251 driver. Signed-off-by: Juuso Oikarinen Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho Signed-off-by: John W. Linville commit 01c09162cd6170f3671825d6d5f2c1ae7b27cbf3 Author: Juuso Oikarinen Date: Tue Oct 13 12:47:55 2009 +0300 wl1271: Support for IPv4 ARP filtering Add support for IPv4 ARP filtering in the driver. This will dramatically reduce the number of unnecessary interrupts by the device in conqested networks. This patch is based on a similar patch to wl1251 by Janne Ylälehto. Cc: Janne Ylälehto Signed-off-by: Juuso Oikarinen Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho Signed-off-by: John W. Linville commit 1fd2794f36913992798184c464fe8f85753b13e0 Author: Juuso Oikarinen Date: Tue Oct 13 12:47:54 2009 +0300 wl1271: Fix event handling mechanism The event handling mechanism could miss events if multiple events would occur simultaneously. Fix event handling mechanism to process all events. Signed-off-by: Juuso Oikarinen Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho Signed-off-by: John W. Linville commit 7444113017b9d5394dc8c4bdf577f9567502417b Author: Juuso Oikarinen Date: Tue Oct 13 12:47:53 2009 +0300 wl1271: Fix multicast list handling Fixes bugs in the multicast list handling: - Use atomic memory allocation in non-sleepable context - Increment address pointer when iterating list of MC addresses Signed-off-by: Juuso Oikarinen Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho Signed-off-by: John W. Linville commit 5d07b668f28175a39e4ad06eccab75e8275266d1 Author: Teemu Paasikivi Date: Tue Oct 13 12:47:52 2009 +0300 wl1271: Checking of rx descriptor status fixed Fixed checking of status of the received packet. On wl1251 status is in the flags field of the descriptor, on wl1271 there is a separate status field. Signed-off-by: Teemu Paasikivi Reviewed-by: Juuso Oikarinen Signed-off-by: Luciano Coelho Signed-off-by: John W. Linville commit a410264553447ff90bf13e3662684e794e5ff83e Author: Teemu Paasikivi Date: Tue Oct 13 12:47:51 2009 +0300 wl1271: Added 5 GHz support to join and rx Added support to assiociate and use connection on 5 GHz band (802.11a). Signed-off-by: Teemu Paasikivi Reviewed-by: Juuso Oikarinen Signed-off-by: Luciano Coelho Signed-off-by: John W. Linville commit abb0b3bfb2d2411034b721df21c31964265b851e Author: Teemu Paasikivi Date: Tue Oct 13 12:47:50 2009 +0300 wl1271: Added support to scan on 5 GHz band Added support to scan 802.11a access points on 5 GHz band when using wl1273 chip. Signed-off-by: Teemu Paasikivi Reviewed-by: Juuso Oikarinen Signed-off-by: Luciano Coelho Signed-off-by: John W. Linville commit 311494c47fb670a1fd74eea54fa4d02a56fcc2ad Author: Teemu Paasikivi Date: Tue Oct 13 12:47:49 2009 +0300 wl1271: Scan only enabled channels Added checking of whether channel is enabled or disabled by mac80211 stack to scan. Disabled channels are not scanned. Signed-off-by: Teemu Paasikivi Reviewed-by: Juuso Oikarinen Signed-off-by: Luciano Coelho Signed-off-by: John W. Linville commit 1ebec3d750f2b5740e3c334dac06104d2f74a9b1 Author: Teemu Paasikivi Date: Tue Oct 13 12:47:48 2009 +0300 wl1271: Added 5 GHz parameters for wl1273 Added data rate and frequency tables for 5 GHz band channels, 5 GHz radio configration parameters and configuration option to enable 802.11 support. Signed-off-by: Teemu Paasikivi Reviewed-by: Juuso Oikarinen Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho Signed-off-by: John W. Linville commit c6d5d06e455b9965e300ae40c34fa2337e1aad0f Author: Juuso Oikarinen Date: Tue Oct 13 12:47:47 2009 +0300 wl1271: Remove busy-word checking Remove busy-word checking to work around an SPI bug. To reduce the chance of chipset-busy scenarios, increment the number of fixed busy words. Signed-off-by: Juuso Oikarinen Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho Signed-off-by: John W. Linville commit 11f70f9715f0d8f99eac42d69689e8df15283fea Author: Juuso Oikarinen Date: Tue Oct 13 12:47:46 2009 +0300 wl1271: Implement beacon early termination support Add support to enable beacon early termination in the firmware. Early Beacon termination is a feature which allows the radio to be turned off after TIM IE to save power. Signed-off-by: Juuso Oikarinen Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho Signed-off-by: John W. Linville commit eb5b28d021a1b96050f7af46e9140eb0051cc6d8 Author: Juuso Oikarinen Date: Tue Oct 13 12:47:45 2009 +0300 wl1271: Fix IRQ enable handling on FW init failure Disable IRQ's after FW initialization failure - originally this was not done in all cases, and it resulted in a kernel warning if firmware initialization was tried again without reboot. Signed-off-by: Juuso Oikarinen Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho Signed-off-by: John W. Linville commit 8a08048a3722a6b52c2b34e070c4e6a32ad19e0d Author: Juuso Oikarinen Date: Tue Oct 13 12:47:44 2009 +0300 wl1271: Move default FW config struct away from stack Move the default FW config into a module global static variable, instead of being a stack variable. Signed-off-by: Juuso Oikarinen Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho Signed-off-by: John W. Linville commit 47fab7d589d46d87a5dbfd7f2ddd53deccfad504 Author: Juuso Oikarinen Date: Tue Oct 13 12:47:43 2009 +0300 wl1271: Add config structure for FW init parameters Add a configuration structure for RX path parameters, and set default configuration values there. Signed-off-by: Juuso Oikarinen Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho Signed-off-by: John W. Linville commit 51f2be24328957f9e2acf116b1b1d2dfd10bf41f Author: Juuso Oikarinen Date: Tue Oct 13 12:47:42 2009 +0300 wl1271: Add config structure for connection management parameters Add a configuration structure for connection management parameters, and set default configuration values there. Signed-off-by: Juuso Oikarinen Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho Signed-off-by: John W. Linville commit 45b531a86f93c82d8e390e19a6258111b3627bb0 Author: Juuso Oikarinen Date: Tue Oct 13 12:47:41 2009 +0300 wl1271: Add config structure for TX path parameters Add a configuration structure for TX path parameters, and set defalt configuration values there. Signed-off-by: Juuso Oikarinen Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho Signed-off-by: John W. Linville commit 8793f9bb19c00b26532e37f1f516e1d9c7bc0476 Author: Juuso Oikarinen Date: Tue Oct 13 12:47:40 2009 +0300 wl1271: Add config structure for RX path parameters Add a configuration structure for RX path parameters, and set default configuration values there. Signed-off-by: Juuso Oikarinen Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho Signed-off-by: John W. Linville commit 2b60100bf04aba28133ccb24efd85f72fb1a5494 Author: Juuso Oikarinen Date: Tue Oct 13 12:47:39 2009 +0300 wl1271: Add structure for firmware configuration values In order to make the firmware configuration more manageable, collect hardcoded configuration values into one data structure, and set default values there. Add the SoftGemini BT/WLAN coex paramters into the config structure. Signed-off-by: Juuso Oikarinen Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho Signed-off-by: John W. Linville commit 2cc8d4db9dd7df9dd12d86f2e37d1b4760d3dd98 Author: Juuso Oikarinen Date: Tue Oct 13 12:47:38 2009 +0300 wl1271: Workaround for reference clock setting on boot. If the 38.4MHz reference clock is configured to the firmware, it crashes on boot. Configuring an experimental 38.4MHz in XTAL mode allows the firmware to boot, and everything appears to work. Signed-off-by: Juuso Oikarinen Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho Signed-off-by: John W. Linville commit 2f301227a1ede57504694e1f64839839f5737cac Author: Zhu Yi Date: Fri Oct 9 17:19:45 2009 +0800 iwlwifi: use paged Rx This switches the iwlwifi driver to use paged skb from linear skb for Rx buffer. So that it relieves some Rx buffer allocation pressure for the memory subsystem. Currently iwlwifi (4K for 3945) requests 8K bytes for Rx buffer. Due to the trailing skb_shared_info in the skb->data, alloc_skb() will do the next order allocation, which is 16K bytes. This is suboptimal and more likely to fail when the system is under memory usage pressure. Switching to paged Rx skb lets us allocate the RXB directly by alloc_pages(), so that only order 1 allocation is required. It also adjusts the area spin_lock (with IRQ disabled) protected in the tasklet because tasklet guarentees to run only on one CPU and the new unprotected code can be preempted by the IRQ handler. This saves us from spawning another workqueue to make skb_linearize/__pskb_pull_tail happy (which cannot be called in hard irq context). Finally, mac80211 doesn't support paged Rx yet. So we linearize the skb for all the management frames and software decryption or defragmentation required data frames before handed to mac80211. For all the other frames, we __pskb_pull_tail 64 bytes in the linear area of the skb for mac80211 to handle them properly. Signed-off-by: Zhu Yi Signed-off-by: John W. Linville commit ae751bab9f55c3152ebf713c89a4fb6f439c2575 Author: Luciano Coelho Date: Mon Oct 12 15:08:57 2009 +0300 wl1271: remove unnecessary joins and join only when the bssid changes We were using the join command to change some settings when the stack asked us to do it. In many cases they were not needed (and could cause potential problems), so they were removed. In other cases there are ACX commands that can be used instead of using join to reconfigure. Signed-off-by: Luciano Coelho Reviewed-by: Juuso Oikarinen Signed-off-by: John W. Linville commit 0535d9f4f07df9a592b77fe75f66faee66a851e8 Author: Luciano Coelho Date: Mon Oct 12 15:08:56 2009 +0300 wl1271: use acx_rx_config instead of join when updating filters We shouldn't use a join command to change the filter settings while associated. The right way to do it is to use ACX_RX_CFG. Signed-off-by: Luciano Coelho Reviewed-by: Juuso Oikarinen Signed-off-by: John W. Linville commit 8bcfcb125b036e978b1bd478d3f68278b05bcfd6 Author: Juuso Oikarinen Date: Mon Oct 12 15:08:55 2009 +0300 wl1271: Update boot time configuration for the new firmware Update the magic values of the wl1271 boot time config according to the new reference driver. Signed-off-by: Juuso Oikarinen Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho Signed-off-by: John W. Linville commit 746214178774bc7f9adbeaef7d43a634570eb870 Author: Juuso Oikarinen Date: Mon Oct 12 15:08:54 2009 +0300 wl1271: Remove outdated SPI functions With the change to the new firmware, there was a change to firmware memory partitioning. Along with that change, the translation of all partitions was unified, and separate functions for reg and mem access became unnecessary. Cleanup the unnecessary functions. Signed-off-by: Juuso Oikarinen Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho Signed-off-by: John W. Linville commit 207347e498cbe25fa2a8369edd49df43e56000be Author: Juuso Oikarinen Date: Mon Oct 12 15:08:53 2009 +0300 wl1271: Update TX path block calucation algo Update the TX path block calculation algorithm based on TI reference. Signed-off-by: Juuso Oikarinen Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho Signed-off-by: John W. Linville commit 3cfd6cf960b2b030ccae1144a5c0dcd91c7c56a8 Author: Juuso Oikarinen Date: Mon Oct 12 15:08:52 2009 +0300 wl1271: Enable smart reflex Enable and configure smart reflex. This should have a reducing impact on power consumption. Signed-off-by: Juuso Oikarinen Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho Signed-off-by: John W. Linville commit 5d0af498c08b43566733d5c5fb8293ce3b109eab Author: Juuso Oikarinen Date: Mon Oct 12 15:08:51 2009 +0300 wl1271: Enable ELP The new firmware has fixed a firmware crash problem related to ELP entry. Enable ELP to conserve power. Signed-off-by: Juuso Oikarinen Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho Signed-off-by: John W. Linville commit c15f63bffabb996f90b9c24c62fb0614c5a4f676 Author: Juuso Oikarinen Date: Mon Oct 12 15:08:50 2009 +0300 wl1271: Update interrupt handling by removing an extra SPI read Remove separate interrupt register reading from the interrupt handling routine. This will slightly improve interrupt performance. Signed-off-by: Juuso Oikarinen Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho Signed-off-by: John W. Linville commit 284134eb6f928f6cdbfe95ab79f8e46233a22c98 Author: Juuso Oikarinen Date: Mon Oct 12 15:08:49 2009 +0300 wl1271: RefClk configuration Updated RefClk configuration based on reference sources. Apparently this change will improve RF performance. Signed-off-by: Juuso Oikarinen Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho Signed-off-by: John W. Linville commit e8768eeb5993bf9695adb4afe4118b7fd5e307a3 Author: Juuso Oikarinen Date: Mon Oct 12 15:08:48 2009 +0300 wl1271: Add top-register access functions Add top register access function. Signed-off-by: Juuso Oikarinen Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho Signed-off-by: John W. Linville commit 732a1ad93e820768bb14732b8365493dbd69ecc8 Author: Juuso Oikarinen Date: Mon Oct 12 15:08:47 2009 +0300 wl1271: Remove RX workaround Remove RX workaround which is not needed with newer firmware revisions. This will reduce one SPI register transaction per RX packet. Signed-off-by: Juuso Oikarinen Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho Signed-off-by: John W. Linville commit 451de97adb4d0f101f3befc881a548adb47c467a Author: Juuso Oikarinen Date: Mon Oct 12 15:08:46 2009 +0300 wl1271: Update memory mapping for firmware revision 6.1.0.0.241 Update the memory regions and memory mapping to support firmware revision 6.1.0.0.241. Signed-off-by: Juuso Oikarinen Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho Signed-off-by: John W. Linville commit 37079a831d8194e138c03663b7cab281ab1dc181 Author: Luciano Coelho Date: Mon Oct 12 15:08:45 2009 +0300 wl1271: enable HW_AVAILABLE interrupt to fix ELP We need to listen to HW_AVAILABLE interrupts when using ELP with firmware revision 6.1.0.0.241. Add WL1271_ACX_INTR_HW_AVAILABLE to the interrupts that are enabled by default. Signed-off-by: Luciano Coelho Reviewed-by: Juuso Oikarinen Signed-off-by: John W. Linville commit ac78403e149cae56efa75ba025e7e717c4ad01ed Author: Luciano Coelho Date: Mon Oct 12 15:08:44 2009 +0300 wl1271: add workaround to avoid distortion due to excessive tx power We still don't have proper calibration for our devices, so we are using way too much power for TX, which causes a lot of distortion. This hack hardcodes the txpower to 7dBm. Signed-off-by: Luciano Coelho Reviewed-by: Juuso Oikarinen Signed-off-by: John W. Linville commit d6e19d135dadb1895296668914d0a15bc3cafcbf Author: Luciano Coelho Date: Mon Oct 12 15:08:43 2009 +0300 wl1271: workaround to send a disconnect before rejoining We don't get any indication from the stack when we have disassociated. In wl1271, it is important to send a CMD_DISCONNECT before joining again, because the firmware cleans some things up. So we check if we're already joined and disconnect if that's the case. Signed-off-by: Luciano Coelho Reviewed-by: Juuso Oikarinen Signed-off-by: John W. Linville commit 25a7dc6d22adda590be4932ebc772ea35914880c Author: Luciano Coelho Date: Mon Oct 12 15:08:42 2009 +0300 wl1271: implement cmd_disconnect This patch implements the CMD_DISCONNECT command, which should be sent to the firmware when we are disassociated. Signed-off-by: Luciano Coelho Reviewed-by: Juuso Oikarinen Signed-off-by: John W. Linville commit e57f14895bf6bc7f16df760963427ac6ee6ff7e1 Author: Wey-Yi Guy Date: Fri Oct 9 13:20:34 2009 -0700 iwlwifi: update channel switch command API Channel switch host command has different data structure for different devices. Adding additional structures to support 5000 and 6000 NICs. unlike 4965, starting with 5000 series, the tx power is managed by uCode, there is no tx power db information need to be passing from driver to uCode; but the space needs to be reserved to match uCode expection. 1000 NIC do not support channel switch operation since it is 'bgn' device, there is no need to have data structure defined for it. Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 768db9829d0d45d57204714f18b54f7fc0561ddf Author: Abhijeet Kolekar Date: Fri Oct 9 13:20:33 2009 -0700 iwl3945: rearrange the code. Rearrange the code and groups setting of retry_limit and data_retry_limits code together. Make 'data_retry_limit' setting similar to iwlwifi for better readability. Signed-off-by: Abhijeet Kolekar Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 1f0436f4702b7cdda22a38689cc1903822694a17 Author: Abhijeet Kolekar Date: Fri Oct 9 13:20:32 2009 -0700 iwlwifi/iwl3945: remove data_retry_limit Remove the ununsed variable data_retry_limit from priv. Signed-off-by: Abhijeet Kolekar Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 9744c91f91e9e467b38473a8b673324ae658ca88 Author: Abhijeet Kolekar Date: Fri Oct 9 13:20:31 2009 -0700 iwl3945: rename tx to tx_cmd Rename iwl3945_tx_cmd variable tx to tx_cmd for better readability. Signed-off-by: Abhijeet Kolekar Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 37dc70fea870ced8fbd9ae786701529e7ce48f03 Author: Abhijeet Kolekar Date: Fri Oct 9 13:20:30 2009 -0700 iwlwifi/iwl3945: unify rts_tx_cmd_flag 3945 and 4965 share the functionality for setting RTS and CTS to the tx_cmd. Unify these functions and move the common functionality to core. Signed-off-by: Abhijeet Kolekar Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 92a35bda792cf9295b1d399f7c937d4560292b1e Author: Wey-Yi Guy Date: Fri Oct 9 13:20:29 2009 -0700 iwlwifi: showing accumulative ucode statistics counters Adding accumulative statistics counters in iwlwifi driver. Statistics counters are reported by uCode every beacon interval; but can be reset by uCode when needed. The accumulative statistics counters is maintained by driver to keep track of the history of all the counters. Update the ucode stats files in debugfs to display both latest and accumulative counters. Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 88804e2b33b6ab3974ff2330cd045ca53d6750c5 Author: Wey-Yi Guy Date: Fri Oct 9 13:20:28 2009 -0700 iwlwifi: dynamic allocate tx queue structure Instead of always allocate the max number of tx queue structure, use dynamic allocation based on the number of queues in device configuration. With these changes, device does not have to allocate more memory than the h/w can support. Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 008a9e3e3c37abd7f56d2478fe92d5874de3630a Author: Ben Cahill Date: Fri Oct 9 13:20:27 2009 -0700 iwl3945: move iwl_power_initialize() iwl_power_initialize() initializes driver data (not device hardware), and does not need to execute more than once (when the driver initializes). Therefore, it does not belong in iwl3945_apm_init(), which initializes hardware, and may run more than once. Move it to iwl3945_pci_probe(), where it will run only once. This agrees with similar placement in iwl-agn.c's iwl_pci_probe(), although placement under "services" seemed more appropriate than under "mac80211". Signed-off-by: Ben Cahill Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 743cdf1b65656faf1e6f1f74278c52b89a0b7360 Author: Ben Cahill Date: Fri Oct 9 13:20:26 2009 -0700 iwl3945: streamline iwl3945_rfkill_poll() iwl3945_rfkill_poll() has been silently calling wiphy_rfkill_set_hw_state() every 2 seconds, regardless of whether hardware RF KILL switch changed state. Call wiphy_rfkill_set_hw_state() only when RFKILL switch changes. Add IWL_DEBUG_RF_KILL log message and documentation. Signed-off-by: Ben Cahill Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 1a34c043802a213e719420ece395cf25c85cc7c5 Author: Reinette Chatre Date: Fri Oct 9 13:20:25 2009 -0700 iwlwifi: fix userspace setting of sleep_level_override The sleep_level_override debugfs file is used by the user to request a static power index instead of the dynamic sleep values. Users are expected to provide value from 1 to 5 as an index or -1 to disable it. The problem at the moment is that users can also provide 0 to this file which, together with the value 1, is translated to index 1. This is confusing and even more so when users write 0 to sleep_level_override and then read 1 from it afterwards. Modify checking to treat 0 as invalid. Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 55036d6602679fb88dd7b1c19bb7203a0213b684 Author: Wey-Yi Guy Date: Fri Oct 9 13:20:24 2009 -0700 iwlwifi: additional items in sensitivity range table Add more items to sensitivity range table to avoid using hardcoded values. Initialize the table per device since unique per device information is required to perform sensitivity calibration. additional items in sensitivity range table: .barker_corr_th_min: Barker correlation threshold minimum .barker_corr_th_min_mrc: Barker correlation threshold minimum for MRC .nrg_th_cca: Energy threshold for Clear Channel Assessment Barker codes are a technique used in WLAN encoding for transmission. MRC is "Maximal Ratio Combining", a technique for optimally combining the signals from 2 or more receivers to achieve a better signal. Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit bd35f150823c21000f4c0f029abb258bc1ae3b5f Author: Wey-Yi Guy Date: Fri Oct 9 13:20:23 2009 -0700 iwlwifi: remove duplicated/unused definition "IWL_CMD_QUEUE_NUM" is being defined in multiple places and used by all the devices. move it to iwl-dev.h file and shared by all the devices. Remove "IWL_CMD_FIFO_NUM", replaced by "IWL49_CMD_FIFO_NUM" and IWL50_CMD_FIFO_NUM" Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit b660d3adb8dd4ead54744c9269bae9338163020a Author: Ben Cahill Date: Fri Oct 9 13:20:22 2009 -0700 iwlagn, iwl3945: remove apm_reset() functions Clean up device-specific apm_reset() functions and library infrastructure, now that these reset() functions are no longer being used. Signed-off-by: Ben Cahill Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 278d84051d1944080d4cfdba205af5f5ce4f4064 Author: Ben Cahill Date: Fri Oct 9 13:20:21 2009 -0700 iwl3945: remove unnecessary call to apm_ops.reset() Now that we're unconditionally using apm_ops.stop() to reset and power-down the device in __iwl3945_down(), the apm_ops.reset() is redundant. Removing this call will also allow us to remove iwl3945_apm_reset(). Remove unneeded iwl_clear_bit(CSR_GP_CNTRL_REG_FLAG_MAC_ACCESS_REQ) because this bit will be set again very soon in iwl3945_hw_txq_ctx_stop() and other following calls. Signed-off-by: Ben Cahill Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 4d2ccdb94847248a4075414169108d8f929c153c Author: Ben Cahill Date: Fri Oct 9 13:20:20 2009 -0700 iwlwifi: turn off device when not used. In some cases (e.g. when mac80211 calls iwl_mac_stop() for suspend or user no longer wants device active), device has not been going into low power state via __iwl_down(). apm_ops.reset() does not put device into low power state; instead it resets the device, then puts it into a powered-up state ready to be re-loaded with uCode and re-started. This has needlessly warmed up user's laptops and drained batteries. With current architecture in which mac80211 controls device up/down (including resetting device after firmware errors), there is no need for apm_ops.reset() any more; apm_ops.reset() is basically a combination of apm_ops.stop() and apm_ops.init(). Instead, __iwl_down() now unconditionally places the device into a low-power state via apm_ops.stop(). Device may be re-started via __iwl_up() calling apm_ops.init() as soon as it may be needed (e.g. quickly for firmware errors), but in the meantime, device will stop wasting energy. Note that, even in this low power state, if driver re-enables interrupts, the device retains the ability to sense the hardware RF-KILL switch, and (except for 3945) interrupt the host when it changes. Signed-off-by: Ben Cahill Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit f33269b8968d1c64772a9221e2c9c42d07a9b5ae Author: Ben Cahill Date: Fri Oct 9 13:20:19 2009 -0700 iwl3945: update iwl3945_apm_init() Update iwl3945_apm_init() to set up device registers in sequence most recently recommended by factory. Add resets for APMG interrupts and radio chip, formerly done only in iwl3945_apm_reset(); moving them here assures that apm_init() will do a complete job of preparing hardware not only after platform boot, but also after apm_stop() has executed (due to rfkill, ifconfig down, driver unload, etc.). This is in preparation to completely remove apm_reset(). Add some comments. Signed-off-by: Ben Cahill Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 40b93ad6e97a1d412c4b86f4717fee9b4bc830e1 Author: matthieu castet Date: Fri Oct 9 22:12:25 2009 +0200 airo : allow supend with card without power management Some airo card don't support power Management [1]. Don't abort suspend with those cards. 00:06.0 Network controller: AIRONET Wireless Communications PC4800 (rev 01) Flags: medium devsel, IRQ 17 Memory at dffffe00 (32-bit, non-prefetchable) [size=128] I/O ports at d000 [size=128] I/O ports at cc00 [size=64] Kernel driver in use: airo Signed-off-by: Matthieu CASTET Signed-off-by: John W. Linville commit 899110fe4e1b26f7a13e639c57e2a047d21bffa2 Author: Michael Buesch Date: Fri Oct 9 20:30:10 2009 +0200 b43/legacy: Fix usage of host_pci pointer We must check the bustype before using the host_pci pointer. Signed-off-by: Michael Buesch Signed-off-by: John W. Linville commit 332c556633b8c5fb4e890b1783122f2315526590 Author: Sujith Date: Fri Oct 9 09:51:28 2009 +0530 ath9k: Fix TX hang poll routine When TX is hung, the chip is reset. Ensure that the chip is awake by using the PS wrappers. Signed-off-by: Sujith Signed-off-by: John W. Linville commit c0bbd57679efc2350703a1c0f3fc624cbcaba55f Author: Amitkumar Karwar Date: Thu Oct 8 19:38:45 2009 -0700 libertas: Check return status of command functions Return status of lbs_prepare_and_send_command and lbs_cmd_with_response functions is not checked at some places. Those checks are added. Signed-off-by: Amitkumar Karwar Signed-off-by: Bing Zhao Acked-by: Dan Williams Signed-off-by: John W. Linville commit be823e5b2d71d367b5e27496e2b19d453e21936e Author: Juuso Oikarinen Date: Thu Oct 8 21:56:36 2009 +0300 wl1271: Mask unneeded events from firmware to conserve power Currently several events are enabled from the firmware for which there is no handling. This wakes up the host unnecessarily. Mask those unneeded events. Signed-off-by: Juuso Oikarinen Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho Signed-off-by: John W. Linville commit 1922167b9de575d9d1a56be9b80f0fa3b22785f9 Author: Juuso Oikarinen Date: Thu Oct 8 21:56:35 2009 +0300 wl1271: Configure beacon filtering on if PSM used Enable beacon filtering when PSM is enabled Signed-off-by: Juuso Oikarinen Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho Signed-off-by: John W. Linville commit b771eee583343782c8b44d2b78cf53c29d0f3303 Author: Juuso Oikarinen Date: Thu Oct 8 21:56:34 2009 +0300 wl1271: Enable beacon filtering with the stack Enable beacon filtering with the mac80211 stack. Signed-off-by: Juuso Oikarinen Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho Signed-off-by: John W. Linville commit 344152361e6d14ade61d7f43678db7418cb445db Author: Juuso Oikarinen Date: Thu Oct 8 21:56:33 2009 +0300 wl1271: Add connection monitoring configuration Add configuration for connection monitor (number of allowed beacons, and timeout after last received beacon.) Signed-off-by: Juuso Oikarinen Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho Signed-off-by: John W. Linville commit 1fba49741dc50d13d2fe6cf04f5a547e6c5c81f6 Author: Juuso Oikarinen Date: Thu Oct 8 21:56:32 2009 +0300 wl1271: Use vmalloc to allocate memory for firmware Use vmalloc to allocate memory for the firmware image, and use a smaller linear buffer for the actual transfer of the firmware to the chipset. This patch is an adaptation of a similar patch for wl1251 by Kalle Valo. Signed-off-by: Juuso Oikarinen Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho Signed-off-by: John W. Linville commit c87dec9f189b884df215756e285b9281cf065206 Author: Juuso Oikarinen Date: Thu Oct 8 21:56:31 2009 +0300 wl1271: Multicast filtering configuration Enable multicast filtering. This way by default no multicast frames will reach the host, and when needed, only required multicast frames can be passed from the WLAN chipset to the host. Signed-off-by: Juuso Oikarinen Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho Signed-off-by: John W. Linville commit 66497dc3bd569e05a5bcb729d495eebad47aa46a Author: Juuso Oikarinen Date: Thu Oct 8 21:56:30 2009 +0300 wl1271: Clear probe-request template after scan Clear the probe-request template on the firmware after scan. Unless cleared, the firmware can independently send probe requests to the AP and interfere with the mac80211 logic. Signed-off-by: Juuso Oikarinen Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho Signed-off-by: John W. Linville commit a64b07e8c6ff8394cd8c5a505b9f04d945f9f30f Author: Juuso Oikarinen Date: Thu Oct 8 21:56:29 2009 +0300 wl1271: use workqueue provided by mac80211 instead of the default Use the workqueue provided by the mac80211 stack instead of the system default queue. Modified to use new ieee_queue_work() as required by changes in the stack. Signed-off-by: Juuso Oikarinen Signed-off-by: Luciano Coelho Signed-off-by: John W. Linville commit 64a7f67287c75f5bb28018a6ff2750a59ee1195a Author: Luciano Coelho Date: Thu Oct 8 21:56:28 2009 +0300 wl1271: hack to disable filters This is a hack to disable all filters in the join command. This is based on Kalle Valo's patch for wl1251. Cc: Kalle Valo Signed-off-by: Luciano Coelho Signed-off-by: John W. Linville commit 2f0187250041afc765df51e2cce653e8a5b9c1b6 Author: Luciano Coelho Date: Thu Oct 8 21:56:27 2009 +0300 wl1271: added Juuso Oikarinen as module author Add Juuso as one of the module authors, since he's working heavily on this module as well. Cc: Juuso Oikarinen Reviewed-by: Juuso Oikarinen Signed-off-by: Luciano Coelho Signed-off-by: John W. Linville commit be7078c21d826fbaab77f88440958019aab969af Author: Juuso Oikarinen Date: Thu Oct 8 21:56:26 2009 +0300 wl1271: Corrections to TX path Corrections to the TX path - use correct number of maximum descriptors (32 instead of 16) and correct checking and setting of excessive retries on completion. Signed-off-by: Juuso Oikarinen Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho Signed-off-by: John W. Linville commit d94cd297e58b55bb272fdfd51ff0de7acbc1941b Author: Juuso Oikarinen Date: Thu Oct 8 21:56:25 2009 +0300 wl1271: Update join usage Update the usage of join's, including using actual beacon interval and dtim from AP, and configuring a basic rate set from AP. Signed-off-by: Juuso Oikarinen Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho Signed-off-by: John W. Linville commit 8a5a37a6c492f7c9602aa72ef19f69c926cdca15 Author: Juuso Oikarinen Date: Thu Oct 8 21:56:24 2009 +0300 wl1271: Configure rate policies based on AP rates Configure the rate policies to the firmware based on the rates given by the AP. Signed-off-by: Juuso Oikarinen Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho Signed-off-by: John W. Linville commit 545f1da8ef0f20923feb500bcfaf0e2fb6068fb4 Author: Juuso Oikarinen Date: Thu Oct 8 21:56:23 2009 +0300 wl1271: Implementation for SPI busy word checking This patch adds implementation for checking for SPI busy words - i.e. honoring a delay request from the WLAN chipset upon reading registers/memory. To optimized the average SPI ready by 32 bits, also configure the number of busywords to one to disable the "fixed-busy-word" functionality. Signed-off-by: Juuso Oikarinen Reviewed-by: Vidhya Govindan Signed-off-by: Luciano Coelho Signed-off-by: John W. Linville commit c3fea1994ac34dafa3ebb40d4f95354b2782af31 Author: Juuso Oikarinen Date: Thu Oct 8 21:56:22 2009 +0300 wl1271: mask aid bits 14 and 15 in ps-poll template In ps-poll template aid bits 14 and 15 were not masked as required by the standard. Mask them so that aid is sent in correct format. This patch is a direct port of the respective patch for the wl1251 driver by Kalle Valo. Signed-off-by: Juuso Oikarinen Reviewed-by: Vidhya Govindan Signed-off-by: Luciano Coelho Signed-off-by: John W. Linville commit 37b70a81855e4a2e66716804ae55ff717520e7fb Author: Juuso Oikarinen Date: Thu Oct 8 21:56:21 2009 +0300 wl1271: Implement delayed entry into ELP Implement delayed entry into ELP. This will promote the following: - Less redundant sleep/wake cycles (better perf) - Avoids known firmware issues with going to ELP too fast after an operation Signed-off-by: Juuso Oikarinen Reviewed-by: Vidhya Govindan Signed-off-by: Luciano Coelho Signed-off-by: John W. Linville commit 1e2b79761d551c545225e1fa6e7d144f7e804898 Author: Juuso Oikarinen Date: Thu Oct 8 21:56:20 2009 +0300 wl1271: Correct TKIP header space handling in TX path Correct the position to which TKIP header space is appended for TX packets. Signed-off-by: Juuso Oikarinen Reviewed-by: Vidhya Govindan Signed-off-by: Luciano Coelho Signed-off-by: John W. Linville commit ac4e4ce54eb9cb4963a1d3d91fc65536d882ffb2 Author: Juuso Oikarinen Date: Thu Oct 8 21:56:19 2009 +0300 wl1271: Security sequence number handling for TX (for WPA) Add security sequence number handling to the driver TX data path needed by WPA. Signed-off-by: Juuso Oikarinen Reviewed-by: Kalle Valo Signed-off-by: Luciano Coelho Signed-off-by: John W. Linville commit 3b4be9e08abd8c390d13001f5dd55f64afa5ab93 Author: Juuso Oikarinen Date: Thu Oct 8 21:56:18 2009 +0300 wl1271: Correction to TX block allocation calculation Correct the TX path implementation to allocate sufficient blocks in the firmware for TX packets. Signed-off-by: Juuso Oikarinen Reviewed-by: Kalle Valo Signed-off-by: Luciano Coelho Signed-off-by: John W. Linville commit 9d565973deb09479de5eed7a5b6594428dc49dde Author: Luciano Coelho Date: Thu Oct 8 21:56:17 2009 +0300 wl1271: remove unecessary qual parameter from rx status The qual element in ieee80211_rx_status is not used anymore, so we don't need to set it in the wl1271_rx_status() function. This saves a bit of time in the RX path. Signed-off-by: Luciano Coelho Signed-off-by: John W. Linville commit 3414fc3f527ce74cfca543c37bcb52c8e63b915e Author: David Kilroy Date: Wed Oct 7 22:23:32 2009 +0100 orinoco: use cfg80211 ethtool ops Signed-off-by: David Kilroy Signed-off-by: John W. Linville commit 6226811f4eec35c509b931ac900ac074336103f5 Author: Luis R. Rodriguez Date: Wed Oct 7 16:22:19 2009 -0400 ath9k_hw: run ath9k_hw_9271_pa_cal() initial calibration The PA calibration for ar9271 ath9k_hw_9271_pa_cal() can run during reset or initial calibration, update the PA calibration to account for that and initialize PA calibration variables for both conditions. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit b57df129aaf65819f4eb80c2a5be3765509e9d23 Author: Luis R. Rodriguez Date: Wed Oct 7 16:22:18 2009 -0400 ath9k_hw: run the carrier leakage calibration fix for ar9271 as well This is required for the ar9271 hardware as well. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit cfadf853f6cd9689f79a63ca960c6f9d6665314f Merge: 05423b2 f568a92 Author: David S. Miller Date: Tue Oct 27 01:03:26 2009 -0700 Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 Conflicts: drivers/net/sh_eth.c commit 439ca3a4b1997858a34ee414856511fe7a282553 Author: Tomas Winkler Date: Sat Oct 17 09:09:35 2009 +0000 iwmc3200wifi: select IWMC3200TOP in Kconfig iwmc3200wifi requires iwmc3200top for its operation Signed-off-by: Tomas Winkler Acked-by: Zhu Yi Signed-off-by: David S. Miller commit 421355de876b9f3fcc7e4cb6026e416fb12a5068 Merge: aace495 0fe7463 Author: David S. Miller Date: Tue Oct 13 12:55:20 2009 -0700 Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 commit 89d71a66c40d629e3b1285def543ab1425558cd5 Author: Eric Dumazet Date: Tue Oct 13 05:34:20 2009 +0000 net: Use netdev_alloc_skb_ip_align() Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 3b885787ea4112eaa80945999ea0901bf742707f Author: Neil Horman Date: Mon Oct 12 13:26:31 2009 -0700 net: Generalize socket rx gap / receive queue overflow cmsg Create a new socket level option to report number of queue overflows Recently I augmented the AF_PACKET protocol to report the number of frames lost on the socket receive queue between any two enqueued frames. This value was exported via a SOL_PACKET level cmsg. AFter I completed that work it was requested that this feature be generalized so that any datagram oriented socket could make use of this option. As such I've created this patch, It creates a new SOL_SOCKET level option called SO_RXQ_OVFL, which when enabled exports a SOL_SOCKET level cmsg that reports the nubmer of times the sk_receive_queue overflowed between any two given frames. It also augments the AF_PACKET protocol to take advantage of this new feature (as it previously did not touch sk->sk_drops, which this patch uses to record the overflow count). Tested successfully by me. Notes: 1) Unlike my previous patch, this patch simply records the sk_drops value, which is not a number of drops between packets, but rather a total number of drops. Deltas must be computed in user space. 2) While this patch currently works with datagram oriented protocols, it will also be accepted by non-datagram oriented protocols. I'm not sure if thats agreeable to everyone, but my argument in favor of doing so is that, for those protocols which aren't applicable to this option, sk_drops will always be zero, and reporting no drops on a receive queue that isn't used for those non-participating protocols seems reasonable to me. This also saves us having to code in a per-protocol opt in mechanism. 3) This applies cleanly to net-next assuming that commit 977750076d98c7ff6cbda51858bb5a5894a9d9ab (my af packet cmsg patch) is reverted Signed-off-by: Neil Horman Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 7fe13c5733790ef582769a54693fa6a5abf3c032 Merge: 8aa0f64a 10c435f Author: David S. Miller Date: Sun Oct 11 23:15:47 2009 -0700 Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 commit 8aa0f64ac3835a6daf84d0b0e07c4c01d7d8eddc Merge: cd7e1f0 eab2ec8 Author: David S. Miller Date: Fri Oct 9 14:40:09 2009 -0700 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 commit eab2ec83dbf0e32e28f3108f302ffdaa225d4cce Author: Johannes Berg Date: Fri Oct 9 18:17:05 2009 +0200 wireless: make wireless drivers select core It is somewhat non-sensical to allow selecting wireless drivers without showing wireless core code options, and since the wext refactoring this has made it possible to generate configurations that will not build. Avoid this and make wireless drivers select the wireless options. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 5718f5009b114372fc237254906812c0d6e57ab1 Author: Holger Schurig Date: Fri Oct 9 09:10:34 2009 +0200 libertas: depend on CONFIG_CFG80211 Signed-off-by: Holger Schurig Signed-off-by: John W. Linville commit 7891849e5a79eb1e6ddc12abf75a69981f567b98 Author: Luis R. Rodriguez Date: Thu Oct 8 16:46:09 2009 -0400 libertas: remove double assignment of dev->netdev_ops This came in through the patch titled: libertas: first stab at cfg80211 support I only noticed it because it breaks compat-wireless :) Signed-off-by: Luis R. Rodriguez Acked-by: Holger Schurig Signed-off-by: John W. Linville commit af1fc67c1a803d303b59e54be45fe3329103e7db Author: Luis R. Rodriguez Date: Thu Oct 8 01:00:18 2009 -0400 ath9k: use right parameter for MODULE_PARM_DESC() for debug Reported-by: sujith.manoharan@atheros.com Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 82e62926ab31d5a535f85be36d6621635ee34c3c Author: Holger Schurig Date: Wed Oct 7 09:10:33 2009 +0200 libertas: remove extraneous select FW_LOADER As kindly pointed out by Andrey Yurovsky, CONFIG_LIBERTAS already selects FW_LOADER. Signed-off-by: Holger Schurig Signed-off-by: John W. Linville commit 63f275df64dc69a46bbc21e6a68d5506d2da9c51 Author: Amitkumar Karwar Date: Tue Oct 6 19:20:28 2009 -0700 libertas: Use lbs_is_cmd_allowed() check in command handling routines. lbs_is_cmd_allowed() check is added in __lbs_cmd_async() and lbs_prepare_and_send_command(). The check is removed from other places. Signed-off-by: Amitkumar Karwar Signed-off-by: Bing Zhao Acked-by: Dan Williams Signed-off-by: John W. Linville commit 536b3a7a10c8fd39576a0602bfeca9bbd04658a6 Author: Luis R. Rodriguez Date: Tue Oct 6 21:19:11 2009 -0400 ath9k: rename ath_beaconq_setup() to ath9k_hw_beaconq_setup() And move it to hw code on mac.c where it belongs. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit bd96d3909549a0c09388987810e3e81397b500a9 Author: Luis R. Rodriguez Date: Tue Oct 6 21:19:10 2009 -0400 ath9k: move ath_cleanup() below helpers to avoid forward declarations This should fix the oops which occurs during module unload due to the dereferencig of ah upon debugfs exit. IP: [<46412d6b>] 0x46412d6b *pde = 00000000 Oops: 0000 [#1] PREEMPT SMP DEBUG_PAGEALLOC last sysfs file: /sys/class/power_supply/BAT0/energy_full Modules linked in: ath9k(-) ath9k_hw mac80211 ath cfg80211 Pid: 3112, comm: rmmod Not tainted (2.6.32-rc2-wl #101) 9461DUU EIP: 0060:[<46412d6b>] EFLAGS: 00010246 CPU: 0 EIP is at 0x46412d6b EAX: f5870004 EBX: f6700d94 ECX: 00000000 EDX: c14313a7 ESI: f5870000 EDI: fb58ce70 EBP: f6661eb4 ESP: f6661ea8 DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068 Process rmmod (pid: 3112, ti=f6660000 task=f6579380 task.ti=f6660000) Stack: fb57e5e5 f5ca5d50 fb58ce70 f6661ebc fb58629a f6661ec8 c11b715e f5ca5da8 <0> f6661ed8 c1223d98 f5ca5da8 f5ca5ddc f6661eec c1223e6f fb58ce70 fb58ce70 <0> c14958a0 f6661f00 c1222edb fb58ce70 fb58ce70 fb58cebc f6661f1c c12243c9 Call Trace: [] ? ath_cleanup+0x35/0x50 [ath9k] [] ? ath_pci_remove+0x1a/0x20 [ath9k] [] ? pci_device_remove+0x1e/0x40 [] ? __device_release_driver+0x58/0xa0 [] ? driver_detach+0x8f/0xa0 [] ? bus_remove_driver+0x7b/0xb0 [] ? driver_unregister+0x49/0x80 [] ? sysfs_remove_file+0x12/0x20 [] ? pci_unregister_driver+0x35/0x90 [] ? ath_pci_exit+0x12/0x20 [ath9k] [] ? ath9k_exit+0x10/0x3d [ath9k] [] ? mutex_unlock+0xd/0x10 [] ? sys_delete_module+0x16f/0x220 [] ? do_munmap+0x23d/0x290 [] ? trace_hardirqs_off_thunk+0xc/0x10 [] ? trace_hardirqs_on_thunk+0xc/0x10 [] ? sysenter_exit+0xf/0x1a [] ? sysenter_do_call+0x12/0x3c Code: Bad EIP value. EIP: [<46412d6b>] 0x46412d6b SS:ESP 0068:f6661ea8 CR2: 0000000046412d6b ---[ end trace 847f3b05ff3dcb19 ]--- Reported-by: Vasanthakumar Thiagarajan Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 2568835cb44d6fe976e977d96aeca73c9fe1642c Author: Luis R. Rodriguez Date: Tue Oct 6 21:19:09 2009 -0400 ath9k: add a helper to clean the core driver upon module unload The core driver needs to be stopped and then as a last step the hardware needs to be stopped and its structure free'd. We do this by moving the core driver cleanup to a new helper ath_clean_core() and have ath_cleanup() call it. Only as a last step does ath_cleanup() now free the hw. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 7fda16665152851fe65ee73e24afdcaf67acba59 Author: Luis R. Rodriguez Date: Tue Oct 6 21:19:08 2009 -0400 ath9k: add helper to un-init the hw properly This is used in several places, ensure we do it right in all callers by using a helper. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 211f5859af951788a3fe4752142a5e9047afa5d8 Author: Luis R. Rodriguez Date: Tue Oct 6 21:19:07 2009 -0400 ath9k: initialize hw prior to debugfs debugfs uses the hardware for several debugfs files as such the hardware must be initialized and available prior to its usage. The same applies to when we free the hw structs -- free debufs file entries prior to free'ing the hardware. Reported-by: Vasanthakumar Thiagarajan Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit faa27fae7da900b6d977124410caa3d014676478 Author: Luis R. Rodriguez Date: Tue Oct 6 21:19:06 2009 -0400 ath9k: move common->debug_mask setting to ath_init_softc() What this means is we can enable now debug prints without requiring CONFIG_ATH9K_DEBUG. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 8ce54c5a5f5d2f4f03993395d60f3110670002ca Author: Luis R. Rodriguez Date: Tue Oct 6 20:44:34 2009 -0400 ath5k: enable Power-Save Polls by setting the association ID mac80211 has long provided us the association ID. This isn't useful except for Power-Save polling which now gets enabled. We can now poll for our pending frames on the AP during power save. You can review the details of Power-Save on the wireless wiki: http://wireless.kernel.org/en/developers/Documentation/ieee80211/power-savings Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit a3f86bff1c056f47c2df4c58bfcf7bdda8eaf9d0 Author: Luis R. Rodriguez Date: Tue Oct 6 20:44:33 2009 -0400 ath5k: fix regression which triggers an SME join upon assoc This fixes a regression introduced by patch titled: "atheros: define shared bssidmask setting" The register for the BSSID was exchanged for the bssid mask register. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit abba06869e2546484fa142528737d1a0622add54 Author: Luis R. Rodriguez Date: Tue Oct 6 20:44:32 2009 -0400 ath5k: remove temporary low_id and high_id vars on ath5k_hw_set_associd() Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit be5d6b75e0fb3f7e23ea5325109ef4195f2b282a Author: Luis R. Rodriguez Date: Tue Oct 6 20:44:31 2009 -0400 ath5k: simplify passed params to ath5k_hw_set_associd() We have access to common->curbssid and common->curaid so just use those. Note that common->curaid is always 0 so this keeps our current behaviour of always using 0 for now. Once we fix storing the association ID passed by mac80211 this will require no changes here. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 91b9eb8261acfe473c369750036df24ad071e5c1 Author: Luis R. Rodriguez Date: Tue Oct 6 20:44:30 2009 -0400 ath5k: fix regression introduced upon the removal of AR5K_HIGH_ID() The trick was to add four bytes whenever this was used. There are two places where this was missed. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit a72d57a862f700edf85da81aae3cd8f923e989a1 Author: Luis R. Rodriguez Date: Tue Oct 6 20:44:29 2009 -0400 ath5k: use ath_hw_setbssidmask() for bssid mask setting upon assoc This should avoid future typos. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit eb053a037d8951018bdc9133c8d312da9cd0aefb Author: Luis R. Rodriguez Date: Tue Oct 6 20:44:28 2009 -0400 ath5k: fix regression on setting bssid mask on association There was a typo on the second bssid mask register. This was caused by the patch titled: "ath5k: use common curbssid, bssidmask and macaddr" Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit c6d3597cd54739281e964aa3c063f794e960f75e Author: Randy Dunlap Date: Tue Oct 6 13:27:29 2009 -0700 wireless: fix CFG80211_WEXT build problems Fix CFG80211_WEXT build dependencies/errors: ERROR: "cfg80211_wext_siwscan" [drivers/net/wireless/orinoco/orinoco.ko] undefined! ERROR: "cfg80211_wext_siwmode" [drivers/net/wireless/orinoco/orinoco.ko] undefined! ERROR: "cfg80211_wext_giwrange" [drivers/net/wireless/orinoco/orinoco.ko] undefined! ERROR: "cfg80211_wext_giwmode" [drivers/net/wireless/orinoco/orinoco.ko] undefined! ERROR: "cfg80211_wext_giwname" [drivers/net/wireless/orinoco/orinoco.ko] undefined! ERROR: "cfg80211_wext_giwscan" [drivers/net/wireless/orinoco/orinoco.ko] undefined! ERROR: "cfg80211_wext_giwname" [drivers/net/wireless/ipw2x00/ipw2200.ko] undefined! Signed-off-by: Randy Dunlap Signed-off-by: John W. Linville commit a82ac21efcefabb4879eb5b4e7a2c7a142026bdb Author: John W. Linville Date: Wed Oct 7 10:49:33 2009 -0400 net/wireless/ethtool.h: drop unnecessary include of linux/ethtool.h Everything including this header includes net/cfg80211.h, which includes linux/netdevice.h, which includes linux/ethtool.h already. Why slow-down the build, even a little bit? Signed-off-by: John W. Linville commit cf32ed92432303022be208bb6a173994712f1f23 Author: John W. Linville Date: Tue Oct 6 16:47:23 2009 -0400 orinoco: support ETHTOOL_GPERMADDR Signed-off-by: John W. Linville commit 5e5eab5dd4339b66e9e59695812fd4b96c3bb1c0 Author: John W. Linville Date: Tue Oct 6 16:45:14 2009 -0400 ipw2200: support ETHTOOL_GPERMADDR Signed-off-by: John W. Linville commit 5b367378ee826b0566e51d32b78b00ce24eac8f9 Author: John W. Linville Date: Tue Oct 6 16:41:21 2009 -0400 iwmc3200wifi: support ETHTOOL_GPERMADDR Signed-off-by: John W. Linville commit 0adc23f58e21cb47be998063ea1b82de33ccdd46 Author: John W. Linville Date: Tue Oct 6 16:27:18 2009 -0400 mac80211: support ETHTOOL_GPERMADDR Signed-off-by: John W. Linville commit ff9fc791940f9ff51387c35f9332efe5007154f1 Author: Holger Schurig Date: Tue Oct 6 16:31:54 2009 +0200 libertas: first stab at cfg80211 support Signed-off-by: Holger Schurig Signed-off-by: John W. Linville commit 0465af8e03bdc6cd0b49dc5548671387a8674b69 Author: Holger Schurig Date: Tue Oct 6 16:31:20 2009 +0200 libertas: separate libertas' Kconfig in it's own file Also sorts all "source" lines in the wireless/Kconfig. Signed-off-by: Holger Schurig Acked-by: Dan Williams Signed-off-by: John W. Linville commit baee1f3caa5a771880144358dd07d32e09ba4dcf Author: Rafael J. Wysocki Date: Mon Oct 5 00:52:09 2009 +0200 Wireless / ath5k: Simplify suspend and resume callbacks Simplify the suspend and resume callbacks of ath5k by converting the driver to struct dev_pm_ops and allowing the PCI PM core to do the PCI-specific suspend/resume handling. Signed-off-by: Rafael J. Wysocki Signed-off-by: John W. Linville commit fe348cb628e6a78cc1e82fe64404c9a304ed9c12 Author: Kalle Valo Date: Thu Sep 24 11:02:51 2009 -0700 at76c50x-usb: set firmware and hardware version in wiphy Set firmware and hardware version in wiphy so that user space can access it. (Modification from original in favor of cfg80211 ethtool support. -- JWL) Cc: Kalle Valo Signed-off-by: John W. Linville commit dfce95f51fe34fa18c87a7d0bea53594b9bf1b9a Author: Kalle Valo Date: Thu Sep 24 11:02:42 2009 -0700 cfg80211: add firmware and hardware version to wiphy It's useful to provide firmware and hardware version to user space and have a generic interface to retrieve them. Users can provide the version information in bug reports etc. Add fields for firmware and hardware version to struct wiphy. (Dropped nl80211 bits for now and modified remaining bits in favor of ethtool. -- JWL) Cc: Kalle Valo Signed-off-by: John W. Linville commit 4890e3beddfb4a6859c4bb782c9cd05dd94ead82 Author: John W. Linville Date: Wed Sep 30 14:50:17 2009 -0400 wireless: implement basic ethtool support for cfg80211 devices Signed-off-by: John W. Linville commit f41bb897f202d23a7d896c716002a3d6050b991e Author: Wey-Yi Guy Date: Fri Oct 2 13:44:06 2009 -0700 iwlwifi: validate the signature for EEPROM and OTP Both 1000 & 6000 series NICs contain on-chip OTP memory that replaces the off-chip EEPROM memory. The nature of OTP means there is a limited number of times a particular board can go through the factory flow and be (re)calibrated. As a consequence there will be some boards that contain EEPROM memory because OTP blocks were full. In the signature validation routine, iwlwifi needs to make sure "select bit" and "EEPROM/OTP signature" agree on the type of NVM to be used to configure the system. Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 1739d3322008fb95e88ad0530bcc057789107879 Author: Abhijeet Kolekar Date: Fri Oct 2 13:44:05 2009 -0700 iwlwifi: replace iwl_poll_direct_bit with iwl_poll_bit for CSR access Replace iwl_poll_direct_bit with iwl_poll_bit when accessing CSR registers. There is no need to power up the mac to access CSR registers. Signed-off-by: Abhijeet Kolekar Acked-by: Ben M Cahill Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit d68b603cf01a6e7d8c85c5a86db751ed3960c0c7 Author: Abhijeet Kolekar Date: Fri Oct 2 13:44:04 2009 -0700 iwlwifi/iwl3945 : unify apm stop operation Unify the usage of apm_stop_master and apm_stop across all hardwares. Signed-off-by: Abhijeet Kolekar Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit e932a609e9759cc75db0c234f465a5fd6e20d362 Author: Johannes Berg Date: Fri Oct 2 13:44:03 2009 -0700 iwlwifi: LED cleanup The iwlwifi drivers have LED blinking requirements that mac80211 cannot fulfill due to the use of just a single LED instead of different ones for TX, RX, radio etc. Instead, the single LED blinks according to transfers and is solid on the rest of the time. As such, having LED class devices registered that mac80211 triggers are connected to is pointless as we don't use the triggers anyway. Remove all the useless code and add hooks into the driver itself. At the same time, make the LED code abstracted so the core code that determines blink rate etc. can be shared between 3945 and agn in iwlcore. At the same time, the fact that we removed the use of the mac80211 LED triggers means we can also remove the IWLWIFI_LEDS Kconfig symbol since the LED support is now self-contained. Signed-off-by: Johannes Berg Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit be1a71a128ed91372d4ad8d54d8fd972a1a356eb Author: Johannes Berg Date: Fri Oct 2 13:44:02 2009 -0700 iwlwifi: device tracing In order to have an easier way to debug issues, create trace events (using the ftrace framework) that will allow us to follow exactly what the driver is doing with the device. The text format isn't all that useful, but the binary format can also be obtained easily via debugfs and then analysed on the fly or offline with debugging tools. Signed-off-by: Johannes Berg Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 4d80d7210bb5a36a18978d1305b44375ecb857d9 Author: Wey-Yi Guy Date: Fri Oct 2 13:44:01 2009 -0700 iwlwifi: set default aggregation frame count limit to 31 Multiple MPDUs can be aggregated, transmitted, and finally acknowledged together using a single BA frame. Block ACK (BA) contains bitmap size of 64*16 bits so the maximum frame count is 64. The default value of aggregation frame count suggested by uCode is 31 to achieve best performance. Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 39d5e0ce0f2ab9a4bb88e22a9f07ba3943e3646d Author: Huaxu Wan Date: Fri Oct 2 13:44:00 2009 -0700 iwlwifi: clear the translate table area Driver should clear the translate table area after receiving "Alive" response from uCode. This patch corrects a mistake when doing this. Signed-off-by: Huaxu Wan Signed-off-by: Guo Chaohong Acked-by: Ben M Cahill Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 72f0ebd9e0af0cb642b5f8955380c5043c5c83b4 Author: Wey-Yi Guy Date: Fri Oct 2 13:43:59 2009 -0700 iwlwifi: change valid EEPROM version for 1000 series In order to support different type of 1000 series NICs we release to customers before the production release, iwlwifi driver need to support all the NICs has EEPROM version greater than 0x15c. Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 7812b16730ccebce71a3b2228ac08dd4f8b39469 Author: Wey-Yi Guy Date: Fri Oct 2 13:43:58 2009 -0700 iwlwifi: reliable entering of critical temperature state When uCode detects critical temperature it should send "card state notification" interrupt to driver and then shut itself down to prevent overheating. There is a race condition where uCode shuts down before it can deliver the interrupt to driver. Additional method provided here for driver to enter CT_KILL state based on temperature reading. How it works: Method 1: If driver receive "card state notification" interrupt from uCode; it enters "CT_KILL" state immediately Method 2: If the last temperature report by Card reach Critical temperature, driver will send "statistic notification" request to uCode to verify the temperature reading, if driver can not get reply from uCode within 300ms, driver will enter CT_KILL state automatically. Method 3: If the last temperature report by Card did not reach Critical temperature, but uCode already shut down due to critical temperature. All the host commands send to uCode will not get process by uCode; when command queue reach the limit, driver will check the last reported temperature reading, if it is within pre-defined margin, enter "CT_KILL" state immediately. In this case, when uCode ready to exit from "CT_KILL" state, driver need to restart the adapter in order to reset all the queues and resume normal operation. One additional issue being address here, when system is in CT_KILL state, both tx and rx already stopped, but driver still can send host command to uCode, it will flood the command queue since card was not responding; adding STATUS_CT_KILL flag to reject enqueue host commands to uCode if it is in CT_KILL state, when uCode is ready to come out of CT_KILL, driver will clear the STATUS_CT_KILL bit and allow enqueue the host commands to uCode to recover from CT_KILL state. Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit ffe9793252de2e9a3cc7e29a6c7debd1d549df07 Author: Kalle Valo Date: Thu Oct 1 12:51:20 2009 +0300 wl1251: remove wl1251_netlink.h The file was accidentally added in commit ef2f8d4577 ("wl1251: add wl1251 prefix to all 1251 files"). This happened when I rebased the patches from a private tree. Reported-by: Robert P. J. Day Signed-off-by: Kalle Valo Signed-off-by: John W. Linville commit 4912545472d71e3dd546b18b397aec4c89fd7403 Author: Amitkumar Karwar Date: Wed Sep 30 20:04:38 2009 -0700 libertas: Add auto deep sleep support for SD8385/SD8686/SD8688 Add timer based auto deep sleep feature in libertas driver which can be configured using iwconfig command. This is tested on SD8688, SD8686 cards with firmware versions 10.38.1.p25, 9.70.4.p0 respectively on 32-bit and 64-bit platforms. Tests have been done for USB/CS cards to make sure that the patch won't break USB/CS code. We didn't test the if_spi driver. Signed-off-by: Amitkumar Karwar Signed-off-by: Bing Zhao Acked-by: Dan Williams Signed-off-by: John W. Linville commit 3d23e349d807177eaf519d444677cee86b1a04cf Author: Johannes Berg Date: Tue Sep 29 23:27:28 2009 +0200 wext: refactor Refactor wext to * split out iwpriv handling * split out iwspy handling * split out procfs support * allow cfg80211 to have wireless extensions compat code w/o CONFIG_WIRELESS_EXT After this, drivers need to - select WIRELESS_EXT - for wext support - select WEXT_PRIV - for iwpriv support - select WEXT_SPY - for iwspy support except cfg80211 -- which gets new hooks in wext-core.c and can then get wext handlers without CONFIG_WIRELESS_EXT. Wireless extensions procfs support is auto-selected based on PROC_FS and anything that requires the wext core (i.e. WIRELESS_EXT or CFG80211_WEXT). Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit bc974f4a230756faf4f69114f271de2e678b363b Author: Luis R. Rodriguez Date: Mon Sep 28 02:54:40 2009 -0400 atheros: define a common priv struct hw code should never use private driver data, but sometimes we need a backpointer so just stuff it on the common ath struct. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 7c89606e24cdabaceb8ca9b3c7ab866c6bcc9e38 Author: Holger Schurig Date: Thu Sep 24 12:21:01 2009 +0200 nl80211: report age of scan results Linux keeps scan results up to 15 seconds. This can be a problem for fast moving clients: they get back stale data. But if the kernel reports the age of the BSS items, then user-space can simply weed out old entries by itself. Signed-off-by: Holger Schurig Acked-by: Johannes Berg Signed-off-by: John W. Linville commit 7976b4263cb05dc638297d35f2a42375090ebaff Author: Luis R. Rodriguez Date: Wed Sep 23 23:07:02 2009 -0400 ath9k_hw: add AR9271 srev and device ID to allow hw to support ar9271 This allows for hw support to be enabled for ar9271. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 3ca340381a1da26906dc766a1e4f8a5d0a613189 Author: Luis R. Rodriguez Date: Wed Sep 23 23:07:01 2009 -0400 ath9k_hw: print device ID if not supported Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 7322fd19295fa7f7d954a19a5f0b77687d441846 Author: Luis R. Rodriguez Date: Wed Sep 23 23:07:00 2009 -0400 ath9k: move hw code to its own module hw code for Atheros 802.11n hardware is commmon between different chipsets. This moves this code into a separate module, the next expected user of this code will be the ath9k_htc module. The ath9k/ dir is now selected by ATH9K_HW, an option which gets selected by either ath9k or ath9k_htc, but remains invisible for user menuconfig configuration. If either ath9k or ath9k_htc will be compiled into the kernel ath9k_hw will also be compiled in. Cc: Jouni Malinen Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 475a6e4d3907d6af412d081a9eab3b1e8a24afd1 Author: Luis R. Rodriguez Date: Wed Sep 23 23:06:59 2009 -0400 ath9k: use common read/write ops on pci and debug code PCI and debug code will not be shared between ath9k and ath9k_htc, so make that code use the common read/write ops. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit bdcf8ff3dd7e89ee4b3f303b6f7e5e04876f9d76 Author: Jaswinder Singh Rajput Date: Sun Sep 20 13:39:24 2009 +0530 b43: Comment unused functions lpphy_restore_dig_flt_state and lpphy_disable_rx_gain_override Commenting unused functions lpphy_restore_dig_flt_state and lpphy_disable_rx_gain_override, may be we need these functions in future. This also fixed following compilation warnings : CC [M] drivers/net/wireless/b43/phy_lp.o drivers/net/wireless/b43/phy_lp.c:383: warning: ‘lpphy_restore_dig_flt_state’ defined but not used drivers/net/wireless/b43/phy_lp.c:891: warning: ‘lpphy_disable_rx_gain_override’ defined but not used Signed-off-by: Jaswinder Singh Rajput Signed-off-by: John W. Linville commit c099752ae06784fcd9cd393cbf3dfbc6b54f4569 Author: Christian Lamparter Date: Fri Sep 18 18:20:03 2009 +0200 iwlwifi: drop lib80211 dependency Ever since Johannes' "iwlwifi: improve scan support" iwlwifi no longer needs any of lib80211's functions or definitions. This patch updates iwlwifi's Kconfig _selections_ and removes all left lib80211.h inclusions from the source files. Signed-off-by: Christian Lamparter Acked-by: Reinette Chatre Signed-off-by: John W. Linville commit e41f0bfcb130d9f17cf5ee8e46d739c1bebda963 Author: Senthil Balasubramanian Date: Fri Sep 18 15:08:20 2009 +0530 ath9k: Fix bugs in handling TX power * Get power table offset from the EEPROM instead of using a hardcoded value of -5 if the EEPROM rev is >= 21. * Add support in the 4k eeprom code for tx power offset in case we have a 4k AR9280 implementation. * Fix tx power accuracy at high powers. Signed-off-by: Senthil Balasubramanian Signed-off-by: John W. Linville commit ebb90cfc32f0d7ee55be7787ce7d88e521e9ed01 Author: Senthil Balasubramanian Date: Fri Sep 18 15:07:33 2009 +0530 ath9k: Advertise midband for AR5416 devices This has to be done if the EEPROM supports FCC Midband capability. Signed-off-by: Senthil Balasubramanian Signed-off-by: John W. Linville commit 63a75b912b00fbafeb54849ca3bcd0295ad68609 Author: Senthil Balasubramanian Date: Fri Sep 18 15:07:03 2009 +0530 ath9k: Reduce PLL Settle time and eliminate redundant PLL calls. Reduce PLL Settle time and eliminate redundant PLL calls. Also reduce the LoadNF timeout from 10 msec to 250usec as the 10 msec timeout was hit with AR9285 in some cases. Signed-off-by: Senthil Balasubramanian Signed-off-by: John W. Linville commit 1d50a69b18818b276333590d1f2c9382d292d84d Author: Senthil Balasubramanian Date: Fri Sep 18 15:06:37 2009 +0530 ath9k: Handle ATH9K_BEACON_RESET_TSF properly Clearing a local variable is unnecessary. Get rid of it. Signed-off-by: Senthil Balasubramanian Signed-off-by: John W. Linville commit 66afad0156a0b673688f309147e57c3a85541329 Author: Senthil Balasubramanian Date: Fri Sep 18 15:06:07 2009 +0530 ath9k: Allow PSPOLL only when the interface is configured in AP mode Signed-off-by: Senthil Balasubramanian Signed-off-by: John W. Linville commit 7aa034928392f16d48c536b315575e2dcfa53252 Author: Vasanthakumar Thiagarajan Date: Fri Sep 18 15:04:51 2009 +0530 ath9k: Update initvals * Move 0xa274 and 0xa27c to the top of tx_gain table. * Update initvals to fix random failure of noise floor calibration. Signed-off-by: Vasanthakumar Thiagarajan Signed-off-by: John W. Linville commit 4921be8058f1c8854e501305b96196856fe7f830 Author: Sujith Date: Fri Sep 18 15:04:27 2009 +0530 ath9k: Fix RTC reset for AR5416 For AR5416 chipsets, clearing RTC_RESET_EN when setting the chip to SLEEP mode results in high power consumption. This patch fixes this issue by not clearing it for AR5416. Signed-off-by: Sujith Signed-off-by: John W. Linville commit 193cd4585e6c5650875e98ccfef2fa93616fef30 Author: Sujith Date: Fri Sep 18 15:04:07 2009 +0530 ath9k: Update INI release for AR9287 If the current channel is between 2412 and 2472 MHz and if the channel is changing to 2484 MHz, then the registers 0xa1f4, 0xa1f8 and 0xa1fc need to be programmed to the "japan_2484" values. Conversely, if the current channel is 2484 MHz and if the channel is changing to one between 2412 and 2472 MHz, then the three registers need to be programmed to the "normal" values. This is needed for compliance with Japanese regulatory requirements. Signed-off-by: Sujith Signed-off-by: John W. Linville commit 0b98eaaa02965fb06dee4ad8c605bb3c93df2c98 Author: Vivek Natarajan Date: Fri Sep 18 15:03:42 2009 +0530 ath9k: Add Calibration checks * Prevent divide-by-zero errors in IQ Calibration. * Do not run temperature compensation if initPDADC or currPDADC is zero. * Also, introduce a separate function for handling OLC for AR9287. Signed-off-by: Vivek Natarajan Signed-off-by: John W. Linville commit 181af387033e20065e94363d07ecbace7738278c Author: Joerg Albert Date: Tue Sep 15 23:27:53 2009 +0200 ar9170: handle overflow in tsf_low register during get_tsf ar9170_op_get_tsf: handle a carry from TSF_L into TSF_H by reading TSF_H twice. Signed-off-by: Joerg Albert Signed-off-by: John W. Linville commit 7c52c07de8bd0433db6b3e0147544e5a2f01b786 Author: Joerg Albert Date: Tue Sep 15 22:23:06 2009 +0200 ar9170: add heavy clip handling add heavy clip handling for 2.4GHz only (similar to the vendor driver). Signed-off-by: Joerg Albert Signed-off-by: John W. Linville commit 90f2908d3263e5c84c8408ce382a669b528b10e3 Author: Joerg Albert Date: Tue Sep 15 22:20:22 2009 +0200 ar9170: fixed coding style, moved define This patch fixes some coding style issues and moves MAX_RATE_POWER into hw.h Signed-off-by: Joerg Albert Signed-off-by: John W. Linville commit 9554b34ad5817f424253aab265d0e2a54207f810 Author: Huaxu Wan Date: Fri Sep 25 14:24:28 2009 -0700 iwlwifi: add module firmware info for 1000 series The module firmware information of 1000 series is missing from iwlagn. Signed-off-by: Huaxu Wan Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 78f5fb7fc6c2c668a12fd6892c18baa20e4ffd27 Author: Johannes Berg Date: Fri Sep 25 14:24:27 2009 -0700 iwlwifi: support idle for 6000 series hw Using powersave while idle saves a lot of power, but we've had problems with this on some cards (5150 has been reported to be problematic). However, on the new 6000 series we're seeing no problems, so for now let that hardware benefit from idle mode, we can look at the problems with other hardware one by one and then enable those once we figure out the problems. Signed-off-by: Johannes Berg Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit d8c07e7a84950b5fdef424c6dabe6bed3a9ffa19 Author: Wey-Yi Guy Date: Fri Sep 25 14:24:26 2009 -0700 iwlwifi: Chain Noise Calibration for 6000 series Adding support of Chain Noise Calibration for 6000 series NICs. Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 2b396a120922062a0ffd2648be3ed7e72ff83620 Author: Johannes Berg Date: Fri Sep 25 14:24:25 2009 -0700 iwlwifi: default to using all chains When instructing the microcode to use just a single chain when we have power saving enabled, we should also tell the AP that we are doing SM powersave. However, using a single chain doesn't actually have any power saving advantage while idle -- measurements show that the power consumption is no different when using one vs. two or three chains. Therefore, always instruct the microcode to use all chains. Signed-off-by: Johannes Berg Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 9bddbab36d736c181678e07515aaa63045bdcea7 Author: Johannes Berg Date: Fri Sep 25 14:24:24 2009 -0700 iwlwifi: fix a typo We never have four chains, but let's fix the typo while we noticed it. You count 0, 1, 2, 3, not 0, 1, 2, 4 :) Signed-off-by: Johannes Berg Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 02f5dac08364d01a8b2c8e298b529b97f356b3f5 Author: Wey-Yi Guy Date: Thu Sep 17 10:43:54 2009 -0700 iwlwifi: add LED mode to support different LED behavior Today's implementation allow LED to blink based on the traffic condition. We introduce an additional LED mode that reflects the RF state. The supported LED modes after this are: IWL_LED_BLINK (current/default) - blink rate based on current Tx/Rx traffic IWL_LED_RF_STATE (new) - LED OFF: No power/RF disabled, the LED is emitting no light LED ON: Powered/RF enabled, the LED is emitting light in a stable non-flashing state. In order to provide the flexibility to support different LED behavior per user/system preference we add "led_mode" iwlcore module parameter. Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 5953a62e7df064a5d7ba7e790d590f27c65ddf4c Author: Wey-Yi Guy Date: Thu Sep 17 10:43:53 2009 -0700 iwlwifi: update PCI Subsystem ID for 6000 series Update PCI Subsystem ID for 60x0 series based on HW SKU. Adding new SKU for "ABG" and "BG" only devices. Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 4bd0914fa2a09d655c54fb0355aed7f9182b2187 Author: Wey-Yi Guy Date: Thu Sep 17 10:43:52 2009 -0700 iwlwifi: update PCI Subsystem ID for 1000 series Update PCI Subsystem ID for 1000 series based on HW SKU. Adding new SKU for "BG" only devices. Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 2f748deceee10bac563df0e859830cc628d1a841 Author: Wey-Yi Guy Date: Thu Sep 17 10:43:51 2009 -0700 iwlwifi: send cmd to uCode to configure valid tx antenna In order for uCode to select the valid antennas for transmit, driver need to configure the allowed tx antennas through host command. The TX_ANT_CONFIGURATION_CMD should be used for 5000 series and up Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit e3949d62861b3fdef19e80080d670aa1153a23c4 Author: Daniel C Halperin Date: Thu Sep 17 10:43:50 2009 -0700 iwlwifi: add aggregation tables to the rate scaling algorithm Current rate scale algorithm fluctuates between different MIMO modes fairly rapidly, causing widely varying performance. These fluctuations occur because in the rate_scale tables for expected throughput the values are not very different for different modes. However, when aggregation is turned on and MAC overhead is reduced, the expected throughput for different MIMO modes grows and different modes have vastly different performance. Add expected throughput tables for this case. We also need to keep track of aggregation status per-station, so we add the "is_agg" field to struct lq_sta. Also includes cleanup of comments and variable names in/around the affected code. Signed-off-by: Daniel C Halperin Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 91a55ae60168847c3c8ab348f10d517407052b71 Author: Daniel C Halperin Date: Thu Sep 17 10:43:49 2009 -0700 iwlwifi: do not clear TX info flags when receiving BlockAckResponse OR-in AMPDU flags rather than assigning them. This lets the TX status for aggregated packets be processed by rs_tx_status. Signed-off-by: Daniel C Halperin Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 95407aa4d48a8b3a2adf6a110853b544342913bd Author: Daniel C Halperin Date: Thu Sep 17 10:43:48 2009 -0700 iwlwifi: clean up rs_tx_status Cut down on redundant code, reorganize structure, and add/improve comments. Should contain no functional changes. Signed-off-by: Daniel C Halperin Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 4e30cb691b9ba62642cc1594ef08f7439deb5a02 Author: Wey-Yi Guy Date: Thu Sep 17 10:43:47 2009 -0700 iwlwifi: use S_IRUGO and S_IWUSR in module parameters Instead of hardcode module parameter's permissions, use pre-defined. Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 1f4b9665032c4a1d60efd9ceaad2781cae6c7e92 Author: Wey-Yi Guy Date: Thu Sep 17 10:43:46 2009 -0700 iwlwifi: EEPROM version for 1000 and 6000 series Update EEPROM version requirement for 1000 and 6000 series of NIC for EEPROM version verification. Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 01abfbb282482d01e2ac2e6b00e75b248bf517c8 Author: Wey-Yi Guy Date: Thu Sep 17 10:43:45 2009 -0700 iwlwifi: allow user change protection mechanism for HT Allow user to change protection mechanism for HT between RTS/CTS and CTS-to-self through sysfs: Show current protection mechanism for HT cat /sys/class/net/wlan0/device/rts_ht_protection Change protection mechanism for HT (only allowed while not-associated) CTS-to-self: echo 0 > /sys/class/net/wlan0/device/rts_ht_protection RTS/CTS: echo 1 > /sys/class/net/wlan0/device/rts_ht_protection Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 47eef9bd1079edbc3e6606309c733a2316ca5a72 Author: Wey-Yi Guy Date: Thu Sep 17 10:43:44 2009 -0700 iwlwifi: Use RTS/CTS as the preferred protection mechanism for 6000 series When 802.11g was introduced, we had RTS/CTS and CTS-to-Self protection mechanisms. In an HT Beacon, HT stations use the "Operating Mode" field in the HT Information Element to determine whether or not to use protection. The Operating Mode field has 4 possible settings: 0-3: Mode 0: If all stations in the BSS are 20/40 MHz HT capable, or if the BSS is 20/40 MHz capable, or if all stations in the BSS are 20 MHz HT stations in a 20 MHz BSS Mode 1: used if there are non-HT stations or APs using the primary or secondary channels Mode 2: if only HT stations are associated in the BSS and at least one 20 MHz HT station is associated. Mode 3: used if one or more non-HT stations are associated in the BSS. When in operating modes 1 or 3, and the Use_Protection field is 1 in the Beacon's ERP IE, all HT transmissions must be protected using RTS/CTS or CTS-to-Self. By default, CTS-to-self is the preferred protection mechanism for less overhead and higher throughput; but using the full RTS/CTS will better protect the inner exchange from interference, especially in highly-congested environment. For 6000 series WIFI NIC, RTS/CTS protection mechanism is the recommended choice for HT traffic based on the HW design. Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 02bb1bea85e6570b4e64825026382556970b9296 Author: Johannes Berg Date: Fri Sep 11 10:38:17 2009 -0700 iwlwifi: clarify and clean up chain settings The chain settings we currently use in iwlwifi are rather confusing -- and we also go by the wrong settings entirely under certain circumstances. To clean it up, create a new variable in the current HT config -- single_chain_sufficient -- that tells us whether we need more than one chain. Calculate that based on the AP and operating mode (no IBSS HT implemented -- so no need for multiple chains, for station mode we use the AP's capabilities). Additionally, since APs always send disabled SM PS mode, keeping track of their sm_ps mode isn't very useful -- doubly not so for our _own_ RX config since that should depend on our, not the AP's, SM PS mode. Finally, document that our configuration of the number of RX chains used is currently wrong when in powersave (by adding a comment). All together this removes the two remaining items in struct iwl_ht_config that were done wrong there. For the future, the number of RX chains and some SM PS handshaking needs to be added to mac80211, which then needs to tell us, and the new variable current_ht_config.single_chain_sufficient should also be calculated by mac80211. Signed-off-by: Johannes Berg Acked-by: Daniel C Halperin Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit e307ddce394ee7bcec41fb74330ac89eafaea1d9 Author: Wey-Yi Guy Date: Fri Sep 11 10:38:16 2009 -0700 iwlwifi: show NVM version in debugfs Show version number along with dumping NVM data, the version information being removed from sysfs, add it back to debugfs to help debugging. Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit fad95bf59bf14f72e7d45d3887044e88b8584637 Author: Johannes Berg Date: Fri Sep 11 10:38:15 2009 -0700 iwlwifi: clean up ht config naming Daniel Halperin pointed out that the naming here is rather inconsistent with at least 3 different names being used for one thing in different contexts. Rename the struct to iwl_ht_config (rather than iwl_ht_info) and use ht_conf as a variable for it. Signed-off-by: Johannes Berg Acked-by: Daniel C Halperin Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit f2d0d0e2bab7a325071dbaba3bef51c90868e1e6 Author: Wey-Yi Guy Date: Fri Sep 11 10:38:14 2009 -0700 iwlwifi: Adjust blink rate to compensate Clock difference Adjust led blink rate to compensate on a MAC Clock difference on every HW. Led blink rate analysis showed an average deviation of 0% on 3945, 5% on 4965 HW and 20% on 5000 series and up. Need to compensate on the led on/off time per HW according to the deviation to achieve the desired led frequency The calculation is: (100-averageDeviation)/100 * blinkTime For code efficiency the calculation will be: compensation = (100 - averageDeviation) * 64 / 100 NewBlinkTime = (compensation * BlinkTime) / 64 Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit c812ee24855e20f43cf211e51e3eb53fe6dc6f1d Author: Johannes Berg Date: Fri Sep 11 10:38:13 2009 -0700 iwlwifi: clean up ht config a little is_ht can be bool instead of u8, and there's no need to use IWL_CHANNEL_WIDTH_* constants in supported_chan_width when that could just be named is_40mhz instead. Signed-off-by: Johannes Berg Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit f3a2a42470c1c362b9a7b4e933a15a274d4b090e Author: Wey-Yi Guy Date: Fri Sep 11 10:38:11 2009 -0700 iwlwifi: separate set_hw_params function for 6000 series Separate set_hw_params() function for 6000 series from 5000/1000 series because: 1) 6000 series use different set of sensitivity range table 2) 6000 series has different uCode image size Also include the new sensitivity parameters needed by sensitivity algorithm. Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 9371d4ed79c1c2efefa00226f7f6b95e0e0b8f2b Author: Wey-Yi Guy Date: Fri Sep 11 10:38:10 2009 -0700 iwlwifi: separate nic_config for different NIC Different NIC has different requirements for configuration. Currently all 5000 series hardware and later share the same configuration function even though they do not need the same configurations. Fix this by separating the needed configuration actions for each hardware model. .5000 series: L1-ASPM H/W bug work-around configure radio write CSR_HW_IF_CONFIG_REG for uCode use work-around for NIC get stuck after early PCIe power off .1000 series: write CSR_HW_IF_CONFIG_REG for uCode use setting digital SVR for 1000 card to 1.32V .6000 series: configure radio write CSR_HW_IF_CONFIG_REG for uCode use write CSR_GP_DRIVER_REG to indicate radio sku Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 1b07a1307250e55fe00c076b33d0ab5ac088a489 Author: Wey-Yi Guy Date: Fri Sep 11 10:38:09 2009 -0700 iwlwifi: remove un-supported eeprom parameters Remove few of the parameters not used and no longer valid in EEPROM. Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 85fecff155ed2ba0cccd618ab92d5b4e7d69cd5d Author: Wey-Yi Guy Date: Fri Sep 11 10:38:07 2009 -0700 iwlwifi: modify LED blink index table Modify LED blink index table to include 1Mbps. Signed-off-by: Wey-Yi Guy Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit 2ddb5c8b8739ec054d22ef8efd9bf04cac12a36c Author: Luis R. Rodriguez Date: Mon Sep 14 02:09:38 2009 -0700 ath9k: make ath9k_common_ops const As noted by Jiri. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 5bb127913299b37fceecf66ce86ee8ede70e7d13 Author: Luis R. Rodriguez Date: Mon Sep 14 00:55:09 2009 -0700 atheros: move bus ops to ath_common This is the last part to make ath9k hw code core driver agnostic. I believe ath9k_htc can now use use the hw code unmodified. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 990b70ab24cbce585a3436c8c88cb48b888d48b4 Author: Luis R. Rodriguez Date: Sun Sep 13 23:55:05 2009 -0700 ath9k: move ATH9K_RSSI_BAD to hw.h mac.c is now core driver independent. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit cfe8cba982cda73d4970dab712411bebdcc3b9cd Author: Luis R. Rodriguez Date: Sun Sep 13 23:39:31 2009 -0700 ath9k: clarify what hw code is and remove ath9k.h from a few files hw code will be shared between ath9k and ath9k_htc. Just a few more files are left to clean up, mark them as well. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 9680e8a391078a2bfa099b2c59542a6916a023ed Author: Luis R. Rodriguez Date: Sun Sep 13 23:28:00 2009 -0700 ath9k: remove driver ASSERT, just use BUG_ON() Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit e3d01bfc3ea4f17c9e91bb930f10062efb0c86eb Author: Luis R. Rodriguez Date: Sun Sep 13 23:11:13 2009 -0700 ath9k: move ATH_AMPDU_LIMIT_MAX to hw.h This is used by hw code. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 25c56eec92b15fdec5be96fa1303dac3443200ae Author: Luis R. Rodriguez Date: Sun Sep 13 23:04:44 2009 -0700 ath9k: remove ath9k_ht_macmode This is used just to determine how to program the MAC, either for 20 MHz operation of 40 MHz so just use conf_is_ht40() Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 6420014ca4a6b0e853c9a19a8649d93682a5bdac Author: Luis R. Rodriguez Date: Sun Sep 13 22:05:04 2009 -0700 ath9k: remove ath9k 25 MHz HT40 spacing stuff This was for supporting 25 MHz spacing for HT40, this is not used as we use 20 MHz spacing instead for HT40 as per 802.11n. The hardware is capable of it though so we leave the phymode definition and EEPROM parsing for it. If some experimenter wants to work on this stuff stuff you can add an extension enabling bool on ath_common and perhaps some debugfs knob to enable it. Keep in mind you'll also need to update the phymode with the AR_PHY_FC_DYN2040_EXT_CH which has been left on the driver. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 43c2761364b77cd7fd20eb1f14cfee4cd1462abd Author: Luis R. Rodriguez Date: Sun Sep 13 21:07:07 2009 -0700 atheros: move tx/rx chainmask to ath_common Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit c46917bb53a546f60c7d3103407fe953c418dd5b Author: Luis R. Rodriguez Date: Sun Sep 13 02:42:02 2009 -0700 atheros: add common debug printing ath9k uses this for now, ath9k_htc is expected to re-use this as well. We lave ath5k as is, but it certainly can also be converted later. The ath9k module parameter and debugfs entry is kept. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit cd9bf689600e62d84449d65b3d25fb6d2757589e Author: Luis R. Rodriguez Date: Sun Sep 13 02:08:34 2009 -0700 ath9k: separate core driver and hw timer code Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit b002a4a950e41326310795cf4a0c74d0e90fa70a Author: Luis R. Rodriguez Date: Sun Sep 13 00:03:27 2009 -0700 atheros: add ieee80211_hw to ath_common Make use of it on hw code in ath9k to avoid using the ath9k ath_softc. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 13b81559200b8e54473e5b140323cbb5f2bb21c0 Author: Luis R. Rodriguez Date: Thu Sep 10 17:52:45 2009 -0700 atheros: define shared bssidmask setting Also make ath5k and ath9k use it, and share register definitions. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit e5aa847489e543e33a7c72898e72183871ce2916 Author: Luis R. Rodriguez Date: Thu Sep 10 16:55:11 2009 -0700 ath5k: define ath_common ops Only common ath read/write ops go through the common ops. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 9adca126dbf4bf099bc7051deb6b566725a046dc Author: Luis R. Rodriguez Date: Thu Sep 10 18:04:47 2009 -0700 ath5k: allocate ath5k_hw prior to initializing hw We can propagate better errors upon failed hw initialization, and set up the ath_common structure for attach purposes. This will become important once we start using the ath_common for read/write ops. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 9e4bffd233f27fe83fc48efb01935aee7d0685bf Author: Luis R. Rodriguez Date: Thu Sep 10 16:11:21 2009 -0700 atheros/ath9k: add common read/write ops and port ath9k to use it In an effort to make hw code driver core agnostic read and write operations are defined on the ath_common structure. This patch adds that and makes ath9k use it. This allows drivers like ath9k_htc to define its own read/write ops and still rely on the same hw code. This also paves the way for sharing code between ath9k/ath5k/ath9k_htc. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 867633f026456ff71d4c4890f502c7a61b2adac0 Author: Luis R. Rodriguez Date: Thu Sep 10 12:12:23 2009 -0700 ath9k: Define bus agnostic bluetooth coex prep helper We disable ASPM when enabling bluetooth coexistance. Disabling ASPM is a bus specific operation. In the future other buses may support bluetooth coexistance, an example is USB. To this end move the current routine which disables ASPM into pci.c, and declare it the PCI bt_coex_prep() helper. Additionally, since ASPM is a PCI-Express primitive ensure we don't ever try to muck with ASPM registers on non PCI-express devices. This also cleans up hw.c to not include bus specific headers or utilities. Cc: Vasanthakumar Thiagarajan Cc: Stephen Chen Cc: Zhifeng Cai Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit db7197184802578314d974e4b2bc961bdcec8f8c Author: Luis R. Rodriguez Date: Thu Sep 10 11:20:57 2009 -0700 ath5k: move ath_common to ath5k_hw Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 27c51f1a349f3e4eb9c1d6d3a548eafe1828cc7a Author: Luis R. Rodriguez Date: Thu Sep 10 11:08:14 2009 -0700 ath9k: move ath_common to ath_hw This ensures that we can access common on hw related code independent of the driver core. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 394317fc793eb25dbbda4432d29d97cd80f3b561 Author: Luis R. Rodriguez Date: Thu Sep 10 10:57:00 2009 -0700 ath5k: initialize eeprom struct early on attach This fixes this sparse warning: CHECK drivers/net/wireless/ath/ath5k/attach.c drivers/net/wireless/ath/ath5k/attach.c:288:42: warning: symbol 'ee' shadows an earlier one drivers/net/wireless/ath/ath5k/attach.c:109:34: originally declared here Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 954fecea5d1df4d1dc7bf9a822a2fad308e8588e Author: Luis R. Rodriguez Date: Thu Sep 10 10:51:33 2009 -0700 ath5k: use common curbssid, bssidmask and macaddr The ah_sta_id was really being used as the macaddr. ath5k still does not use the association ID now passed up by mac80211, that can be fixed later. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 8c727e70860dab0cf34a68591cd3f2043a9b9757 Author: Luis R. Rodriguez Date: Thu Sep 10 10:10:54 2009 -0700 ar9170: make use of common macaddr and curbssid These are provided by ath_common. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 1510718d0fd6e20803aac95fe1d8a44846098a34 Author: Luis R. Rodriguez Date: Thu Sep 10 09:22:37 2009 -0700 atheros/ath9k: move macaddr, curaid, curbssid and bssidmask to common These are common amongst ath9k and ath5k, so put them into the common structure and make ath9k to use it. ar9170 can use macaddr, and curbssid. We'll change ath5k and ar9170 separately. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 3453ad8839ca91e1c11211d4d87dc3657c5a2b44 Author: Luis R. Rodriguez Date: Thu Sep 10 08:57:00 2009 -0700 ath9k: use ath9k_hw_write_associd() on reset Use the already provided helper instead of rewriting the code required in place. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 7664072b7937d0bd5563800359e04ff4418572e0 Author: Luis R. Rodriguez Date: Thu Sep 10 08:54:56 2009 -0700 ath9k: Use ath9k_hw_setbssidmask() on reset The same code was being implemented on reset for setting the bssidmask, instead just use the already provided helper. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit f2b2143e60651228945f361c09de7ee752360cd1 Author: Luis R. Rodriguez Date: Thu Sep 10 08:50:20 2009 -0700 ath9k: make ath9k_hw_setbssidmask() and ath9k_hw_write_associd() use ath_hw Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit bcd8f54a84ce99ade91c250a9bc850a9fd3389c1 Author: Luis R. Rodriguez Date: Wed Sep 9 22:43:17 2009 -0700 atheros: use get_unaligned_le*() for bssid mask setting Historically some macro helpers have been users for this, AR5K_LOW_ID() and AR5K_HIGH_ID(), use upstream unaligned helpers instead. This applid to ath5k and ar9170. ath9k already uses this. Worth noting is ath5k uses an ah_sta_id but that is already the MAC address combined with the associaiton ID, ah_sta_id is really ETH_ALEN in size. Cc: Bob Copeland Cc: Nick Kossifidis Cc: Christian Lamparter Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 17753748e15eaf29c8db15c5c05b8dde5db6e64d Author: Luis R. Rodriguez Date: Wed Sep 9 22:19:26 2009 -0700 ath: move ath_bcast_mac to common header This is used by both ath5k and ath9k to set the first bssid mask. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 9ecdef4be864fede4e5964abc82c8d7451288539 Author: Luis R. Rodriguez Date: Wed Sep 9 21:10:09 2009 -0700 ath9k: rename driver core and hw power save helpers ath9k_hw_setpower_nolock --> ath9k_hw_setpower() ath9k_hw_setpower() --> ath9k_setpower() Also change the param for ath9k_setpower() to pass the ath_softc. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 8c77a5694cd31eb2291948dd1bfe700a199be8e7 Author: Luis R. Rodriguez Date: Wed Sep 9 21:02:34 2009 -0700 ath9k: move ath9k_hw_setpower() to main.c And we make it static. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 1adc93c832726c9de4a43445c008a7f17549390b Author: Luis R. Rodriguez Date: Wed Sep 9 20:54:36 2009 -0700 ath9k: avoid usage of ath9k_hw_setpower() on hw.c ath9k_hw_setpower() is a core driver helper with locking protection. Locking protection should be left to the driver core, not the hw code. Hardware code no longer contends for locking when it needs to wake up the chip or put it to sleep. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit a91d75aec19d8d23c7c543dd4bc0e394e1d46867 Author: Luis R. Rodriguez Date: Wed Sep 9 20:29:18 2009 -0700 ath9k: move ath9k_ps_wakeup() and ath9k_ps_restore() to main.c These are driver core helpers. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 21526d57ad98635fe12dc8efe46a3d992439a443 Author: Luis R. Rodriguez Date: Wed Sep 9 20:05:39 2009 -0700 ath9k: move ps helpers onto core driver when reseting tsf When the TSF is reset power save state is disabled and then restored. The helpers to disable power save and restore it use a lock provided by the driver core. Move the callers of the helpers outside of the hw code. We reset the TSF when mac80211 tells us and on the beacon.c helper ath9k_hw_beaconinit() when it is made explicitly required. Add a helper on beacon.c which will deal with ps awake/restore if we need to reset the TSF upon ath9k_hw_beaconinit(). Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit a36cfbca21d0acbab0840337f0b59ea58f415e50 Author: Luis R. Rodriguez Date: Wed Sep 9 16:05:32 2009 -0700 ath9k: rename ath_btcoex_supported() to ath9k_hw_btcoex_supported() Also just pass the ath_hw as the parameter. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 8b4fc5ba896cd1b73c598d07fc51224abbfe8cdb Author: Luis R. Rodriguez Date: Wed Sep 9 15:24:02 2009 -0700 ath9k: move ath_btcoex_config and ath_bt_mode to btcoex.c These are only used by btcoex.c on one routine, so stuff them into that file. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 5e1972929532bfc3a26b1782c8551d3c56306ffd Author: Luis R. Rodriguez Date: Wed Sep 9 15:15:55 2009 -0700 ath9k: now move ath9k_hw_btcoex_set_weight() to btcoex.c After some necessary cleanups we now move ath9k_hw_btcoex_set_weight() to where it belongs. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 269ad8120b2e1f01a7bcea4bdb175142a0e62171 Author: Luis R. Rodriguez Date: Wed Sep 9 15:05:00 2009 -0700 ath9k: simplify ath_btcoex_bt_stomp() The second argument is always the hardware bt coex struct, so remove it, and rename the function on the path with a ath9k_ prefix. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 766ec4a9a813ae262b61842020f150f865c1b10a Author: Luis R. Rodriguez Date: Wed Sep 9 14:52:02 2009 -0700 ath9k: rename ath_btcoex_info to ath_btcoex_hw Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 46289e1e5f2155ba1502b079e786e91755919823 Author: Luis R. Rodriguez Date: Wed Sep 9 14:34:22 2009 -0700 ath9k: rename btcoex_scheme to just scheme btcoex_scheme is already part of a btcoex struct, its implied this is btcoex related. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 05a0b3c9200f4677097937efe634204044c4b4dc Author: Luis R. Rodriguez Date: Wed Sep 9 14:31:24 2009 -0700 ath9k: remove unused bt_duty_cycle Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit e08a6ace7db089dc111c6d0abe9278226c39b7b0 Author: Luis R. Rodriguez Date: Wed Sep 9 14:26:15 2009 -0700 ath9k: move bt_stomp_type to driver core The bt_stomp_type defines the bt coex weight, it has a one-to-one mapping. In the future we may want to just use the weight directly. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 8c1b39547e2562f9aa0cc00b1a7d4cc325a46a4c Author: Luis R. Rodriguez Date: Wed Sep 9 13:44:23 2009 -0700 ath9k: replaces SC_OP_BTCOEX_ENABLED with a bool Whether or not bluetooth coex has been enabled is a hardware state and only the hardware helpers will be able to set this. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit bc74bf8fc382b30df24c4e280fb84f3b1303958f Author: Luis R. Rodriguez Date: Wed Sep 9 04:17:45 2009 -0700 ath9k: split ath9k_hw_btcoex_enable() into two helpers One for 2-wire and another for 3-wire. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 75d7839f4c4ca472bcf0b71f6f682957e19f777a Author: Luis R. Rodriguez Date: Wed Sep 9 04:00:10 2009 -0700 ath9k: move driver core helpers to main.c Keep on btcoex.c only hardware access helpers, move the driver core specific code to main.c. To accomplish this we had to split ath_init_btcoex_info() into two parts, the driver core part -- ath_init_btcoex_timer() and the hw specific part -- ath9k_hw_init_btcoex_hw_info(). This highlights how ath_gen_timer is part of the driver core, not hw related, so stuff that into ath_btcoex struct. The ath9k_hw_btcoex_init() code is now put inline on ath_init_softc() through a switch to it easier to follow, since we did that we can now call ath_tx_get_qnum() from the main.c instead of btcoex.c Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 7a2f0f58c865be9217356528ab6cf73feb35cb07 Author: Luis R. Rodriguez Date: Wed Sep 9 02:54:40 2009 -0700 ath9k: split bluetooth hardware coex init into two helpers Use a helper for 2-wire and another for 3-wire. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit af03abecd8e3646736904431f3335dad5e28cb8d Author: Luis R. Rodriguez Date: Wed Sep 9 02:33:11 2009 -0700 ath9k: move hw specific btcoex info to ath_hw Since we now access it via the ath_hw declare the ath_hw pointer at the header of some routines and se it. ath9k.h no longer needs to access btcoex.h and to adjust for this move ath_btcoex_set_weight() into btcoex.h and instead give main.c a helper for setting initial values upon drv_start() Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 2e20250a2ce1f4a7ba7c83ccb62d9b7b9b96c736 Author: Luis R. Rodriguez Date: Wed Sep 9 01:18:09 2009 -0700 ath9k: move btcoex core driver info to its own struct There is some bluetooth coexistance data which is driver specific, stuff that into its own structure. Cc: Vasanthakumar Thiagarajan Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 4d6b228d84ba992ee13c90312c1ed539191c94b1 Author: Luis R. Rodriguez Date: Mon Sep 7 04:52:26 2009 -0700 ath9k: use ath_hw for DPRINTF() and debug init/exit DPRINTF() is used in hw specific related code, as such ensure we don't rely on the private driver core ath_softc struct when calling it. Drivers can then implement their own DPRINTF() as they see fit. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit ec1b4cf74c81bfd0fbe5bf62bafc86c45917e72f Author: Stephen Hemminger Date: Mon Oct 5 05:58:39 2009 +0000 net: mark net_proto_ops as const All usages of structure net_proto_ops should be declared const. Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller commit 053a93dd126f68ba37973f95f00af6045fa7c957 Author: Marcel Holtmann Date: Fri Oct 2 05:15:28 2009 +0000 cfg80211: assign device type in netdev notifier callback Instead of having to modify every non-mac80211 for device type assignment, do this inside the netdev notifier callback of cfg80211. So all drivers that integrate with cfg80211 will export a proper device type. Signed-off-by: Marcel Holtmann Signed-off-by: David S. Miller