aboutsummaryrefslogtreecommitdiff
path: root/drivers/net/wireless
AgeCommit message (Collapse)AuthorFilesLines
2014-07-15wlcore/wl18xx/wl12xx: convert bitmaps to unsigned longsEliad Peller6-17/+17
The *_bit operations expect unsigned longs. Instead of casting the pointers, simply define various bitmaps as unsigned long (instead of u32). Signed-off-by: Eliad Peller <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2014-07-15wl18xx: make sure fw_status->priv exists before derefEliad Peller1-2/+12
In some corner cases with specific timings, we might try dequeueing tx before we got information about the link status (e.g. due to recovery during tx). Instead of NULL dereference, assume all the links in this case have low priorities. Signed-off-by: Eliad Peller <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2014-07-15wl18xx: change the number of WLAN addrs per chipArik Nemtsov1-1/+1
Each 18xx chip contains only 2 real MAC addresses usable for WLAN, forcing us to use the LAA bit approach to obtain a third MAC address. Signed-off-by: Arik Nemtsov <[email protected]> Signed-off-by: Eliad Peller <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2014-07-15wlcore: don't switch channels on disconnected STA vifsArik Nemtsov1-0/+7
Sending the FW a channel switch command on a disconnected vif may result in a beacon loss event. Avoid this corner case. Signed-off-by: Arik Nemtsov <[email protected]> Signed-off-by: Eliad Peller <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2014-07-15wlcore: register vendor commandsEliad Peller1-0/+4
All the smart config code is in place now, so register the relevant vendor commands. Signed-off-by: Eliad Peller <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2014-07-15wlcore: increase max roc duration to 30 secondsEliad Peller1-1/+1
we don't have any actual limitation in the driver, so increase it arbitrarily to 30 seconds. The long ROC is needed for the smart config.flow. Signed-off-by: Eliad Peller <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2014-07-15wlcore/wl18xx: handle smart config eventsEliad Peller5-1/+93
add defintions and handling for smart config events (SMART_CONFIG_SYNC_EVENT_ID and SMART_CONFIG_DECODE_EVENT_ID) parse the relevant info and send it to userspace as vendor event. Signed-off-by: Eliad Peller <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2014-07-15wlcore: handle smart config vendor commandsEliad Peller3-1/+221
userspace can ask to perform various smart config actions via custom vendor commands. Signed-off-by: Eliad Peller <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2014-07-15wlcore/wl18xx: add smart config commandsEliad Peller5-1/+127
These commands configures the fw to set key, enter smart config mode, and exit it. Add relevant hw ops as well. Signed-off-by: Eliad Peller <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2014-07-15wlcore: add smart config definitionsEliad Peller2-0/+17
Add definitions for the smart config commands. Signed-off-by: Eliad Peller <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2014-07-15wlcore: use correct LAA bitEliad Peller1-1/+1
The LAA bit is second bit of the MSB, not of the third byte. Signed-off-by: Eliad Peller <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2014-07-15wl18xx: fix last tx rate calculationEliad Peller1-2/+5
The last tx rate calculation didn't take into account the different indices of 11a and 11g rates tables. Add the required alignment (count only from the first 11a rate in case of 11a) Signed-off-by: Eliad Peller <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2014-07-15wlcore: user smaller sqn padding for GEMEliad Peller3-4/+13
On recovery, we increase the current seq num by WL1271_TX_SQN_POST_RECOVERY_PADDING in order to compensate for packets we might have missed during recovery. It seems that some GEM APs have issues when the gap is too big, so use a smaller padding in this case. Signed-off-by: Eliad Peller <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2014-07-15wlcore: save seq num only between recoveriesEliad Peller3-31/+68
We want seq num (freed_pkts) to be initialized on each new connection, but keep persistent between recoveries/suspends. Save the freed_pkts in the private block of the sta struct (we already do a similar thing for AP's stations). However, keep the old wlvif->total_freed_pkts in order to avoid too intrusive change. Signed-off-by: Eliad Peller <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2014-07-15b43: don't warn about no 5 GHz support on 2.4 GHz devicesRafał Miłecki1-8/+10
This could be a bit confusing to see warning about lacking support for 5 GHz band if your device supports 2.4 GHz only. Signed-off-by: Rafał Miłecki <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2014-07-15b43: enable radio 0x2057 rev 9 (AKA BCM43228) supportRafał Miłecki1-2/+22
Support for N-PHY rev 8 with 0x2057 rev 5 is almost ready, but we still need to figure out how to handle rev 9 first. Signed-off-by: Rafał Miłecki <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2014-07-15b43: N-PHY: implement channel switching of radio 0x2057 rev 5Rafał Miłecki1-0/+129
Signed-off-by: Rafał Miłecki <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2014-07-15b43: N-PHY: init and channel switching of radio 0x2057 rev 9Rafał Miłecki2-1/+234
Signed-off-by: Rafał Miłecki <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2014-07-15b43; N-PHY: write most of the missing code for revs 7+Rafał Miłecki4-39/+290
Signed-off-by: Rafał Miłecki <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2014-07-15b43: N-PHY: add placeholders for new devices supportRafał Miłecki1-54/+231
Signed-off-by: Rafał Miłecki <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2014-07-15b43: N-PHY: add TX gain tables for devices with specific EPARafał Miłecki1-2/+72
Signed-off-by: Rafał Miłecki <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2014-07-15b43: N-PHY: drop reg 0x1 access restriction on new PHY revsRafał Miłecki1-2/+2
Initialization of N-PHY radio revs 5 and 7 requires writing to 0x1. Signed-off-by: Rafał Miłecki <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2014-07-15b43: always print info about radio (manuf, id, revision)Rafał Miłecki1-4/+4
Type of radio has a major meaning for the driver. There is quite some code that does initialization/calibration depending on the radio rev. Knowing radio params is quite important to provide help to users, so print it even with debugging disabled. Signed-off-by: Rafał Miłecki <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2014-07-15ath10k: sanitize tx ring index access properlyMichal Kazior1-4/+7
The tx ring index was immediately trimmed with a bitmask. This discarded the 0xFFFFFFFF error case (which theoretically can happen when a device is abruptly disconnected) and led to using an invalid tx ring index. This could lead to memory corruption. Signed-off-by: Michal Kazior <[email protected]> Signed-off-by: Kalle Valo <[email protected]>
2014-07-15ath10k: fix bmi exchange tx/rx raceMichal Kazior2-9/+5
It was possible for tx completion not to be processed. In that case an old stack pointer was left on copy engine tx ring. Next bmi exchange would immediately pop it and use complete() on the completion struct there causing corruption. Make sure to wait for both tx and rx completions properly. Signed-off-by: Michal Kazior <[email protected]> Signed-off-by: Kalle Valo <[email protected]>
2014-07-14ath10k: fix unregister deadlock when fw probe failsMichal Kazior1-1/+3
If firmware probing worker failed it called device_release_driver() which synchronously called remove() pci callback. The callback in turn waited for the worker that called it to finish resulting in a deadlock. Waiting for a completion instead of a worker, like some other drivers do, doesn't seem like the best idea either: Syscall Worker probe_fw() rmmod dev_lock() pci->remove() wait_for_completion() complete_all() device_release_driver() dev_lock() [sleep] free(ar) dev_unlock() [resume] There's no guarantee that Worker upon resuming can still access any data/code of the module. Leaving device bound to a driver is not as harmful as deadlocking so remove the call to device_release_driver() while a proper solution is figured out. Signed-off-by: Michal Kazior <[email protected]> Signed-off-by: Kalle Valo <[email protected]>
2014-07-14ath6kl: add support for ar6004 hw3.0Jessica Wu4-7/+73
This change enables ath6kl driver to support ar6004 hw3.0. At the same time do some fixes in firmware initialisation which applies to ar6004 hw1.3 as well. Signed-off-by: Jessica Wu <[email protected]> Signed-off-by: Kalle Valo <[email protected]>
2014-07-14ath6kl: add support wmi rate tables with mcs15Jessica Wu5-9/+77
Some of the firmware versions support rate tables up to mcs15, add support for that. Signed-off-by: Jessica Wu <[email protected]> Signed-off-by: Kalle Valo <[email protected]>
2014-07-14ath6kl: don't set hi_refclk_hz if hardware version doesn't need itKalle Valo1-3/+6
Needed for ar6004 hw3.0 support. Signed-off-by: Kalle Valo <[email protected]>
2014-07-14ath6kl: implement rx flush for htc pipeJessica Wu1-3/+29
rx flush was not implemented for htc pipe, add that now. Doesn't fix any known issues. Also free the skb if htc control messages get canceled. Signed-off-by: Jessica Wu <[email protected]> Signed-off-by: Kalle Valo <[email protected]>
2014-07-14ath6kl: convert ar6004 hardware flags to firmware feature flagsKalle Valo6-17/+42
The functionality defined through these flags were actually firmware features which can change between firmware versions. To make it possible to support different firmware versions with the same driver, convert the flags to firmware feature flags. For backwards compatibility support for old ar6004 firmware FW API 3 or smaller images we forcefully set the feature bits in the driver. Starting from FW API 5 the firmware image needs to set them. Signed-off-by: Kalle Valo <[email protected]>
2014-07-14ath6kl: Fix ath6kl_bmi_read_hi32 macroFrederic Danis2-3/+12
tmp may be used uninitialized if ath6kl_bmi_read() returns an error. Signed-off-by: Frederic Danis <[email protected]> Signed-off-by: Kalle Valo <[email protected]>
2014-07-14ath10k: add implementation for configure max amsdu, ampduJanusz Dziedzic4-8/+127
Allow to setup maximum subframes for AMSDU and AMPDU aggregation via debugfs htt_max_amsdu_ampdu file. Eg. echo "2 64" > htt_max_amsdu_ampdu will setup maximum amsdu subframes equal 2 and maximum ampdu subframes equal to 64. Signed-off-by: Janusz Dziedzic <[email protected]> Signed-off-by: Kalle Valo <[email protected]>
2014-07-13rtlwifi: remove unnecessary break after gotoFabian Frederick1-1/+0
Signed-off-by: Fabian Frederick <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2014-07-13wcn36xx: remove unnecessary break after gotoFabian Frederick1-1/+0
Signed-off-by: Fabian Frederick <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2014-07-13orinoco_usb: remove unnecessary break after gotoFabian Frederick1-1/+0
Signed-off-by: Fabian Frederick <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2014-07-10Merge branch 'master' of ↵John W. Linville22-44/+144
git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless
2014-07-08iwlwifi: mvm: BT Coex - fix TLC with old APIEmmanuel Grumbach1-1/+1
A copy paste issue broke the rate control when a firmware with the old API is used. Signed-off-by: Emmanuel Grumbach <[email protected]>
2014-07-07b43: fix reading info about radio for new devices (cores 40 & 42)Rafał Miłecki1-1/+10
This changes b43-phy0: Found Radio: Manuf 0x17F, Version 0x7769, Revision 4 to the b43-phy0: Found Radio: Manuf 0x17F, Version 0x2069, Revision 4 which matches what closed source driver reports: $ wl revinfo radiorev 0x42069000 Signed-off-by: Rafał Miłecki <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2014-07-07b43: N-PHY: add TX gains tables for radio 0x2057 rev 9Rafał Miłecki1-0/+78
Signed-off-by: Rafał Miłecki <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2014-07-07b43: N-PHY: rework names & picking of TX gain tablesRafał Miłecki2-30/+84
This allows adding more revisions support, spotting lacking tables and unifies naming schema. Signed-off-by: Rafał Miłecki <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2014-07-07b43: N-PHY: initialize hardware tables on new devicesRafał Miłecki2-11/+281
Signed-off-by: Rafał Miłecki <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2014-07-07rt2800usb: Don't perform DMA from stackAndrea Merello1-6/+22
Function rt2800usb_autorun_detect() passes the address of a variable allocated onto the stack to be used for DMA by the USB layer. This has been caught by my debugging-enabled kernel. This patch change things in order to allocate that variable via kmalloc, and it adjusts things to handle the kmalloc failure case, propagating the error. [ 7363.238852] ------------[ cut here ]------------ [ 7363.243529] WARNING: CPU: 1 PID: 5235 at lib/dma-debug.c:1153 check_for_stack+0xa4/0xf0() [ 7363.251759] ehci-pci 0000:00:04.1: DMA-API: device driver maps memory fromstack [addr=ffff88006b81bad4] [ 7363.261210] Modules linked in: rt2800usb(O+) rt2800lib(O) rt2x00usb(O) rt2x00lib(O) rtl818x_pci(O) rtl8187 led_class eeprom_93cx6 mac80211 cfg80211 [last unloaded: rt2x00lib] [ 7363.277143] CPU: 1 PID: 5235 Comm: systemd-udevd Tainted: G O 3.16.0-rc3-wl+ #31 [ 7363.285546] Hardware name: System manufacturer System Product Name/M3N78 PRO, BIOS ASUS M3N78 PRO ACPI BIOS Revision 1402 12/04/2009 [ 7363.297511] 0000000000000009 ffff88006b81b710 ffffffff8175dcad ffff88006b81b758 [ 7363.305062] ffff88006b81b748 ffffffff8106d372 ffff88006cf10098 ffff88006cead6a0 [ 7363.312622] ffff88006b81bad4 ffffffff81c1e7c0 ffff88006cf10098 ffff88006b81b7a8 [ 7363.320161] Call Trace: [ 7363.322661] [<ffffffff8175dcad>] dump_stack+0x4d/0x6f [ 7363.327847] [<ffffffff8106d372>] warn_slowpath_common+0x82/0xb0 [ 7363.333893] [<ffffffff8106d3e7>] warn_slowpath_fmt+0x47/0x50 [ 7363.339686] [<ffffffff813a93b4>] check_for_stack+0xa4/0xf0 [ 7363.345298] [<ffffffff813a995c>] debug_dma_map_page+0x10c/0x150 [ 7363.351367] [<ffffffff81521bd9>] usb_hcd_map_urb_for_dma+0x229/0x720 [ 7363.357890] [<ffffffff8152256d>] usb_hcd_submit_urb+0x2fd/0x930 [ 7363.363929] [<ffffffff810eac31>] ? irq_work_queue+0x71/0xd0 [ 7363.369617] [<ffffffff810ab5a7>] ? wake_up_klogd+0x37/0x50 [ 7363.375219] [<ffffffff810ab7a5>] ? console_unlock+0x1e5/0x420 [ 7363.381081] [<ffffffff810abc25>] ? vprintk_emit+0x245/0x530 [ 7363.386773] [<ffffffff81523d3c>] usb_submit_urb+0x30c/0x580 [ 7363.392462] [<ffffffff81524295>] usb_start_wait_urb+0x65/0xf0 [ 7363.398325] [<ffffffff815243ed>] usb_control_msg+0xcd/0x110 [ 7363.404014] [<ffffffffa005514d>] rt2x00usb_vendor_request+0xbd/0x170 [rt2x00usb] [ 7363.411544] [<ffffffffa0074292>] rt2800usb_autorun_detect+0x32/0x50 [rt2800usb] [ 7363.418986] [<ffffffffa0074aa1>] rt2800usb_read_eeprom+0x11/0x70 [rt2800usb] [ 7363.426168] [<ffffffffa0063ffd>] rt2800_probe_hw+0x11d/0xf90 [rt2800lib] [ 7363.432989] [<ffffffffa0074b7d>] rt2800usb_probe_hw+0xd/0x50 [rt2800usb] [ 7363.439808] [<ffffffffa00453d8>] rt2x00lib_probe_dev+0x238/0x7c0 [rt2x00lib] [ 7363.446992] [<ffffffffa00bfa48>] ? ieee80211_led_names+0xb8/0x100 [mac80211] [ 7363.454156] [<ffffffffa0056116>] rt2x00usb_probe+0x156/0x1f0 [rt2x00usb] [ 7363.460971] [<ffffffffa0074250>] rt2800usb_probe+0x10/0x20 [rt2800usb] [ 7363.467616] [<ffffffff8152799e>] usb_probe_interface+0xce/0x1c0 [ 7363.473651] [<ffffffff81480c20>] really_probe+0x70/0x240 [ 7363.479079] [<ffffffff81480f01>] __driver_attach+0xa1/0xb0 [ 7363.484682] [<ffffffff81480e60>] ? __device_attach+0x70/0x70 [ 7363.490461] [<ffffffff8147eef3>] bus_for_each_dev+0x63/0xa0 [ 7363.496146] [<ffffffff814807c9>] driver_attach+0x19/0x20 [ 7363.501570] [<ffffffff81480468>] bus_add_driver+0x178/0x220 [ 7363.507270] [<ffffffff8148151b>] driver_register+0x5b/0xe0 [ 7363.512874] [<ffffffff815271b0>] usb_register_driver+0xa0/0x170 [ 7363.518905] [<ffffffffa007a000>] ? 0xffffffffa0079fff [ 7363.524074] [<ffffffffa007a01e>] rt2800usb_driver_init+0x1e/0x20 [rt2800usb] [ 7363.531247] [<ffffffff810002d4>] do_one_initcall+0x84/0x1b0 [ 7363.536932] [<ffffffff8113aa60>] ? kfree+0xd0/0x110 [ 7363.541931] [<ffffffff8112730a>] ? __vunmap+0xaa/0xf0 [ 7363.547538] [<ffffffff810ca07e>] load_module+0x1aee/0x2040 [ 7363.553141] [<ffffffff810c6f10>] ? store_uevent+0x50/0x50 [ 7363.558676] [<ffffffff810ca66e>] SyS_init_module+0x9e/0xc0 [ 7363.564285] [<ffffffff81764012>] system_call_fastpath+0x16/0x1b [ 7363.570338] ---[ end trace 01ef5f822bea9882 ]--- Signed-off-by: Andrea Merello <[email protected]> Acked-by: Helmut Schaa <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2014-07-07Merge branch 'for-john' of ↵John W. Linville3-21/+8
git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-fixes
2014-07-07iwlwifi: mvm: minor fix in commentEmmanuel Grumbach1-1/+1
The comment was not accurate, we are talking about the frames *for* the station and not from the station. Reviewed-by: Johannes Berg <[email protected]> Signed-off-by: Emmanuel Grumbach <[email protected]>
2014-07-07iwlwifi: mvm: remove 8000 HW family setting of adc sampling on nic configLiad Kaufman1-2/+9
This patch removes the setting of the ADC sampling bits in the mvm nic configuration. This setting is not required by the firmware, and furthermore - it interferes with the DBGC when it is running in DRAM mode on PCIe. Signed-off-by: Liad Kaufman <[email protected]> Reviewed-by: Dor Shaish <[email protected]> Signed-off-by: Emmanuel Grumbach <[email protected]>
2014-07-07iwlwifi: mvm: teardown TDLS peers when initiating DCMArik Nemtsov1-0/+27
The FW currently doesn't optimally support TDLS in DCM mode. Teardown all TDLS peers when we have more than a single phy context. Signed-off-by: Arik Nemtsov <[email protected]> Reviewed-by: Johannes Berg <[email protected]> Signed-off-by: Emmanuel Grumbach <[email protected]>
2014-07-07iwlwifi: disable PSM on vifs with associated TDLS peersArik Nemtsov3-5/+46
The FW does not support PSM on a vif with associated TDLS peers. Disable PSM when the first peer joins and re-enable it when the last leaves. Signed-off-by: Arik Nemtsov <[email protected]> Reviewed-by: Johannes Berg <[email protected]> Signed-off-by: Emmanuel Grumbach <[email protected]>
2014-07-07iwlwifi: mvm: protect TDLS discovery sessionArik Nemtsov1-0/+13
Use the new mac80211 callback to protect a TDLS discovery session so we can hear the discovery-response packet. Signed-off-by: Arik Nemtsov <[email protected]> Reviewed-by: Ilan Peer <[email protected]> Reviewed-by: Johannes Berg <[email protected]> Signed-off-by: Emmanuel Grumbach <[email protected]>
2014-07-07iwlwifi: mvm: disallow new TDLS stations when appropriateArik Nemtsov5-21/+60
HW/FW constraints dictate that TDLS should only be used when a single phy ctx is active. We also support at most 4 TDLS peers. We don't support TDLS on a P2P vif. Unify and move a phy-ctx counting implementation from the power-mgmt code in order to simplify implementation. Signed-off-by: Arik Nemtsov <[email protected]> Reviewed-by: Johannes Berg <[email protected]> Signed-off-by: Emmanuel Grumbach <[email protected]>