summaryrefslogtreecommitdiff
path: root/drivers/net/wireless/iwlwifi
AgeCommit message (Collapse)AuthorFilesLines
2013-10-02iwlwifi: mvm: remove GF support in rsEyal Shapira2-72/+19
mvm doesn't support HT GF so drop all relevant code in rs. Signed-off-by: Eyal Shapira <eyal@wizery.com> Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2013-10-02iwlwifi: mvm: support VHT in rsEyal Shapira5-246/+431
Enable rs algorithm to use VHT rates and use 80Mhz. This enables reaching VHT rates which wasn't possible. Signed-off-by: Eyal Shapira <eyal@wizery.com> Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2013-10-02iwlwifi: mvm: BT Coex - use data from firmwareEmmanuel Grumbach2-27/+53
The data in MailBox comes direclty from the BT core. We should use the data processed by the WiFi fw that is appended to the MailBox in the BT Coex notification. Also decide on whether the Coex type based on the input from the the firmware and not hard coded. Also fix the SMPS SISO threshold to 2 (it was 3). Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2013-10-02iwlwifi: mvm: BT Coex - no need to send envelopesEmmanuel Grumbach2-41/+0
This was due to a fw remainder of old implementation. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2013-10-02iwlwifi: mvm: new BT Coex APIEmmanuel Grumbach7-146/+388
This is the new API for BT Coex. The full functionality will be implemented in further patches. Note: this disables BT Coex for the currently existing fw (-7 version). There is also a new command - the channel inhibition command. This command tells BT what channels to avoid in order to minimise the interaction between BT and WiFi. We can tell BT about 2 channels, primary and secondary. BT will not tune to primary at all and will avoid secondary as much as possible. This also means that we need to track vifs that AP / GO. So rename iwl_mvm_bt_coex_vif_assoc to iwl_mvm_bt_coex_vif_change to better reflect its real meaning. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2013-10-02iwlwifi: mvm: support sched scan if supported by the fwDavid Spinadel7-4/+538
Add support for scheduled scan according to firmware support. Signed-off-by: David Spinadel <david.spinadel@intel.com> Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2013-10-02iwlwifi: mvm: add no_basic_ssid optionDavid Spinadel3-14/+34
New FW doesn't use the SSID from scan request template. Adding a TLV flag to indicate the change, and fixing the flows to send the first SSID in SSID list if the flag is on. Signed-off-by: David Spinadel <david.spinadel@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2013-10-02iwlwifi: mvm: don't sleep while allocating in atomic contextEmmanuel Grumbach1-1/+1
We want to dump the SRAM when we have an error interrupt from the device. This happens in non-sleepable context, hence the change. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2013-10-02iwlwifi: mvm: update expected tpt tables for VHTEyal Shapira2-26/+42
VHT introduces MCS8 and MCS9. Update the expected tpt tables to include these. Previous expected values for 20/40 MHz are incorrect in certain cases so fix these as well. Signed-off-by: Eyal Shapira <eyal@wizery.com> Tested-by: Efi Tubul <efi.tubul@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2013-10-02iwlwifi: mvm: fix switch from shared antenna in case of BT loadEyal Shapira1-7/+8
Current code didn't handle well the case where we're in SISO using ANT B and there's a BT load. Switch to ANT A in this case. Signed-off-by: Eyal Shapira <eyal@wizery.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2013-10-02iwlwifi: pcie: clean RFKILL interrupt in AMPGEmmanuel Grumbach2-0/+5
Newer firmware don't clean the RFKILL interrupt in APMG, do it in driver instead. If we forget to do so, we can't send HCMD to firmware while the NIC is in RFKILL state. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2013-10-02iwlwifi: mvm: split ADD_STA and ADD_STA_KEY in firmware APIMax Stepanov5-45/+200
Add support for new station management firmware API. The old ADD_MODIFY_STA command has been replaced with two: a modified ADD_MODIFY_STA and a new ADD_MODIFY_STA_KEY command. Signed-off-by: Max Stepanov <Max.Stepanov@intel.com> Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2013-10-02iwlwifi: mvm: Adjust some power management constantsAlexander Bondar3-11/+29
Adjust the following: - RX/TX AP-to-PSM timeout in case of uAPSD and PBW snoozing - PSM-to-AM TX/RX heavy traffic thresholds - Beacon abort escape timer for D3/D0i3 Signed-off-by: Alexander Bondar <alexander.bondar@intel.com> Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2013-10-02iwlwifi: mvm: fix locking in iwl_mvm_bt_rssi_event()Johannes Berg1-6/+3
This will deadlock due to commit 9f34783863bea806 ("iwlwifi: mvm: Implement BT coex notifications"): ============================================= [ INFO: possible recursive locking detected ] 3.5.0 #10 Tainted: G W O --------------------------------------------- kworker/2:1/5214 is trying to acquire lock: (&mvm->mutex){+.+.+.}, at: [<ffffffffa03be23e>] iwl_mvm_bt_rssi_event+0x5e/0x210 [iwlmvm] but task is already holding lock: (&mvm->mutex){+.+.+.}, at: [<ffffffffa03ab2d9>] iwl_mvm_async_handlers_wk+0x49/0x120 [iwlmvm] other info that might help us debug this: Possible unsafe locking scenario: CPU0 ---- lock(&mvm->mutex); lock(&mvm->mutex); *** DEADLOCK *** Change-Id: I9104f252b34676e2f7ffcd51166f95367e08a4d9 Signed-off-by: Johannes Berg <johannes.berg@intel.com> Reviewed-on: https://gerrit.rds.intel.com/21887 Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Tested-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com> Conflicts: drivers/net/wireless/iwlwifi/mvm/bt-coex.c
2013-10-02iwlwifi: mvm: Implement BT coex notificationsAndrei Otcheretianski4-15/+39
Use beacon statistics notification handler to notify bt coex about rssi changes. Mac80211's mechanism is not used anymore. Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com> Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2013-10-02iwlwifi: mvm: give client MACs time to synchronise during restartJohannes Berg3-4/+28
When firmware restart happens, the timers are obviously reset and the new firmware has no synchronisation with the AP as we program timings to the pre-restart values. The firmware should attempt to synchronise by itself, but in multi-channel scenarios this isn't easy, particularly since it has to try to keep service quality up for other MACs. To make it more reliable, give each client MAC some time to catch beacons when restarting or resuming. Service quality was impacted anyway (or in resume doesn't really matter much.) Reviewed-by: Moshe Island <moshe.island@intel.com> Reviewed-by: Ilan Peer <ilan.peer@intel.com> Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2013-10-02iwlwifi: mvm: remove rs FSM actions relevant only for 3 antennasEyal Shapira2-67/+48
The XXX_SWITCH_ANTENNA1/2 actions keep track of switching between 3 single antennas or between 3 pairs in case of MIMO2 on a MIMO3 device. As current and future chips will have at most 2 antennas drop these. While at it also convert the actions into enums and cleanup the code a bit. Signed-off-by: Eyal Shapira <eyal@wizery.com> Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2013-10-02iwlwifi: mvm: use CTS to Self if firmware allows itEmmanuel Grumbach1-1/+5
Newer firmware fixed a bug that prevented to use CTS to self. Firmwares with API greater than 8 have this bug fixed. Enable the feature for these firmwares only. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2013-10-02iwlwifi: mvm: debugfs: add an option to set antennas for scan commandOren Givon3-1/+65
Add an option to set rx antennas for the scan command from debugfs. Create a file called ant_rxchain in the mvm debugfs directory. To choose antennas, write a number between 1-7 to ant_rxchain. Write 1 for A, 2 for B, 3 for AB and so on. Signed-off-by: Oren Givon <oren.givon@intel.com> Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2013-10-02iwlwifi: mvm: query firmware for non-QoS seqnoJohannes Berg5-26/+43
Instead of keeping track of the non-QoS seqno for each station, query the firmware when suspending, that's more efficient. As this can fail, move the station ID mangling later in the code. Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2013-10-02iwlwifi: mvm: implement beacon filtering testmode commandJohannes Berg2-0/+15
Add a testmode command to (manually) disable (and re-enable) beacon filtering for testing purposes. Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2013-10-02iwlwifi: mvm: implement NoA testing using testmode cmdDavid Spinadel4-0/+195
For testing, implement setting continuous NoA duration using a new MVM-specific testmode command. Signed-off-by: David Spinadel <david.spinadel@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2013-10-02iwlwifi: pcie: fix merge damageJohannes Berg1-4/+4
The merge b35c8097 seems to have lost commit eabc4ac5d, put the code back. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2013-10-02iwlwifi: mvm: call ieee80211_scan_completed when neededEmmanuel Grumbach1-1/+11
When RFKill cuts short a scan, mac80211 cancels the scan. This is done by sending a host command to the firmware, but this command was dropped because of RFKill. Flag this command as "SEND_IN_RFKILL" to make sure it is sent to the firmware. The firmware will send SCAN_COMPLETE_NOTIFICATION which will trigger a call to ieee80211_scan_completed. If the scan cannot be aborted, it is because the firmware already finished the scan but we hadn't notified mac80211 at the time mac80211 decided to cancel the scan. By the time we see the scan could not be aborted, mac80211 has been notified already. This patch fixes situations in which we didn't notify mac80211 upon completion of the scan that was cut short by RFkill. Cc: stable@vger.kernel.org [3.10+] Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2013-10-02iwlwifi: pcie: add SKUs for 6000, 6005 and 6235 seriesEmmanuel Grumbach3-0/+17
Add some new PCI IDs to the table for 6000, 6005 and 6235 series. Cc: stable@vger.kernel.org Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2013-10-02iwlwifi: don't WARN on host commands sent when firmware is deadEmmanuel Grumbach1-2/+4
This triggers automatic bug reports and add no valuable information. Print a simple error instead and drop the host command. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2013-10-02iwlwifi: pcie: add new SKUs for 7000 & 3160 NIC seriesMatti Gottlieb1-0/+32
Add some new PCI IDs to the table for 7000 & 3160 series Cc: stable@vger.kernel.org Signed-off-by: Matti Gottlieb <matti.gottlieb@intel.com> Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2013-10-02iwlwifi: pcie: don't reset the TX queue counterEmmanuel Grumbach1-0/+2
A few NICs can get into trouble if we reset the TX queue counters in certain very rare situation. To be on the safe side, simply avoid to reset the TX queue counter. This is relevant for non-AMPDU queues only since on AMPDU we have no choice - we must start the TX queue at the right index. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2013-10-02iwlwifi: mvm: Disable uAPSD for D3 imageAlexander Bondar1-1/+4
The D3 firmware image doesn't support uAPSD, so disable it. Signed-off-by: Alexander Bondar <alexander.bondar@intel.com> Reviewed-by: Guy Cohen <guy.cohen@intel.com> Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2013-09-25iwlwifi: Remove extern from function prototypesJoe Perches4-11/+10
There are a mix of function prototypes with and without extern in the kernel sources. Standardize on not using extern for function prototypes. Function prototypes don't need to be written with extern. extern is assumed by the compiler. Its use is as unnecessary as using auto to declare automatic/local variables in a block. Signed-off-by: Joe Perches <joe@perches.com>
2013-09-06Merge branch 'for-linus' of ↵Linus Torvalds1-1/+1
git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial Pull trivial tree from Jiri Kosina: "The usual trivial updates all over the tree -- mostly typo fixes and documentation updates" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (52 commits) doc: Documentation/cputopology.txt fix typo treewide: Convert retrun typos to return Fix comment typo for init_cma_reserved_pageblock Documentation/trace: Correcting and extending tracepoint documentation mm/hotplug: fix a typo in Documentation/memory-hotplug.txt power: Documentation: Update s2ram link doc: fix a typo in Documentation/00-INDEX Documentation/printk-formats.txt: No casts needed for u64/s64 doc: Fix typo "is is" in Documentations treewide: Fix printks with 0x%# zram: doc fixes Documentation/kmemcheck: update kmemcheck documentation doc: documentation/hwspinlock.txt fix typo PM / Hibernate: add section for resume options doc: filesystems : Fix typo in Documentations/filesystems scsi/megaraid fixed several typos in comments ppc: init_32: Fix error typo "CONFIG_START_KERNEL" treewide: Add __GFP_NOWARN to k.alloc calls with v.alloc fallbacks page_isolation: Fix a comment typo in test_pages_isolated() doc: fix a typo about irq affinity ...
2013-08-28Merge branch 'master' of ↵John W. Linville4-21/+27
git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless Conflicts: drivers/net/wireless/iwlwifi/pcie/trans.c net/mac80211/ibss.c
2013-08-20treewide: Fix typo in printkMasanari Iida1-1/+1
Correct spelling typo in printk Signed-off-by: Masanari Iida <standby24x7@gmail.com> Acked-by: Randy Dunlap <rdunlap@infradead.org> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2013-08-16Merge branch 'for-john' of ↵John W. Linville20-713/+809
git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-next
2013-08-16Merge branch 'for-john' of ↵John W. Linville4-14/+11
git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next
2013-08-16iwlwifi: mvm: Add PBW snoozing enablementAlexander Bondar5-2/+54
The Performance Based Window snooze mechanism is based on uAPSD and is used in low-medium traffic scenarios, in order to provide better power performance while insuring low latency and jitter for the incoming traffic. This patch enables PBW snoozing in case uAPSD is enabled and all ACs are uAPSD trigger and delivery enabled. Signed-off-by: Alexander Bondar <alexander.bondar@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2013-08-16iwlwifi: mvm: Implement CQM offloadingAndrei Otcheretianski6-11/+133
Use beacon statistics notification to track RSSI. Notify mac80211 when the tresholds are crossed. The roaming treshold is configured to be equal to cqm_thold. If the beacon filtering command is not supported by fw fall back and use mac80211 mechanism. Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2013-08-16iwlwifi: return -ENOMEM instead of NULL when OOM in iwl_drv_start()Luciano Coelho2-4/+6
The callers of iwl_drv_start() are probe functions. If a probe function returns 0, it means it succeeded. So if NULL was returned by iwl_drv_start(), it would be considered as a success. Fix this by returning -ENOMEM if the driver struct allocation fails in iwl_drv_start(). Signed-off-by: Luciano Coelho <luciano.coelho@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2013-08-16iwlwifi: Kconfig: fix help texts wrt 7260 and 3160 devicesLuciano Coelho1-6/+7
Fix the help texts to properly reflect the 7260 and 3160 devices support. Signed-off-by: Luciano Coelho <luciano.coelho@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2013-08-16iwlwifi: use a macro for default probe lengthLuciano Coelho2-1/+4
Instead of assigning the default max probe length to 200 in the main code, create a macro for consistency and clarity. Signed-off-by: Luciano Coelho <luciano.coelho@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2013-08-16iwlwifi: mvm: refactor resume from WoWLAN codeJohannes Berg1-63/+88
To be able to add more logic to the resume code, refactor it a bit, moving some status checking/reporting logic into a new function. The locking becomes a bit odd (one of the new functions now unlocks the mutex) but this will be required to call new mac80211 APIs in there later. Reviewed-by: Luciano Coelho <luciano.coelho@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2013-08-16iwlwifi: mvm: remove unused param of rs_dbgfs_set_mcsEyal Shapira1-6/+6
clean it up Signed-off-by: Eyal Shapira <eyal@wizery.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2013-08-12iwlwifi: mvm: remove MIMO3 from rate scale codeEyal Shapira2-389/+45
Current and future chips supported by mvm will only have a maximum of 2 antennas so all the MIMO3 related code and states can be dropped. Signed-off-by: Eyal Shapira <eyal@wizery.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2013-08-12iwlwifi: mvm: Add basic uAPSD client supportAlexander Bondar6-28/+135
Implement basic uAPSD client support adding the following: - Advertise uAPSD support in HW capabilities - Set all ACs trigger- and delivery-enabled - Set max SP length to 2 buffered frames - Assign QNDP with the highest TID with no mandatory admission control required - Set uAPSD related parameters in Power Table command Signed-off-by: Alexander Bondar <alexander.bondar@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2013-08-12iwlwifi: mvm: don't clear tbl->win mistakenlyEliad Peller1-1/+1
rs_get_tbl_info_from_mcs() mistakenly clears the rate histories window, overriding its initialization values (i.e. filling it with 0, instead of -1). Signed-off-by: Eliad Peller <eliad@wizery.com> Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2013-08-12iwlwifi: mvm: remove unused fields of iwl_rs_rate_infoEyal Shapira2-43/+16
Some more cleanups of unused fields and their initializations. Signed-off-by: Eyal Shapira <eyal@wizery.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2013-08-12iwlwifi: pcie: returning positive instead of negativeDan Carpenter1-1/+1
There is a missing '-' character here so we return positive 'ENOMEM' instead of negative. The caller doesn't care. All non-zero returns are translated to '-ENOMEM' in iwl_pcie_nic_init(). This is just a cleanup. Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2013-08-12iwlwifi: mvm: remove rate_scale_data debugfs entryEyal Shapira2-31/+0
This isn't very informative and can be deduced from rate_scale_table. Remove as a preparation for dropping iwl_rs_rate_info.ieee. Signed-off-by: Eyal Shapira <eyal@wizery.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2013-08-12iwlwifi: pcie: don't swallow error codes in iwl_trans_pcie_alloc()Luciano Coelho2-13/+17
The iwl_trans_pcie_alloc() function doesn't pass up error codes returned from functions it calls, swallowing them and returning NULL in all failure cases. The caller checks if the return value is NULL and returns -ENOMEM. This is not correct, because in certain cases the failure was not due to an OOM situation. To fix this, modify the iwl_trans_pcie_alloc() function to use ERR_PTR() to return error codes and clean up the error handling code a bit. Signed-off-by: Luciano Coelho <luciano.coelho@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2013-08-12iwlwifi: mvm: add support to the new FW time event APIEytan Lifshitz3-73/+251
The time event firmware API will change, add the support for that. Use the new API throughout and convert to the old where needed. Signed-off-by: Eytan Lifshitz <eytan.lifshitz@intel.com> Reviewed-by: Guy Cohen <guy.cohen@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>