summaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi
AgeCommit message (Collapse)Author
2015-02-03iwlwifi: mvm: reduce quota thresholdJohannes Berg
The quota threshold should be reduced to 4 to update the firmware more frequently. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
2015-02-02iwlwifi: mvm: don't send a command the firmware doesn't knowEmmanuel Grumbach
-9.ucode doesn't know the command SHARED_MEM_CFG yet. Fixes: 04fd2c28226f ("iwlwifi: mvm: add rxf and txf to dump data") Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
2015-02-01iwlwifi: mvm: Fix building channels in scan_config_cmdIlan Peer
Use the chanel hw_value and not the center frequency when building channel array for scan_config_cmd. Signed-off-by: Ilan Peer <ilan.peer@intel.com> Reviewed-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
2015-02-01iwlwifi: mvm: Enable EBS also in single scan on umac interfaceHaim Dreyfuss
Enable EBS on one shot scans if supported by FW. Signed-off-by: Haim Dreyfuss <haim.dreyfuss@intel.com> Reviewed-by: Alexander Bondar <alexander.bondar@intel.com> Reviewed-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
2015-02-01iwlwifi: mvm: fix failure path when power_update fails in add_interfaceLuciano Coelho
When iwl_mvm_power_update_mac() is called, we have already added the mac context, so if this call fails we should remove the mac. CC: <stable@vger.kernel.org> [3.15+] Fixes: commit e5e7aa8e2561 ('iwlwifi: mvm: refactor power code') Signed-off-by: Luciano Coelho <luciano.coelho@intel.com> Reviewed-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
2015-02-01iwlwifi: mvm: Fix a few EBS error handling bugsHaim Dreyfuss
Last EBS status wasn't set to success in the initialization, which caused the first scan to be without EBS. Fix that. When EBS is not enabled by the driver, the FW still sends ebs_status success, which can override EBS failure state. Consider only EBS failures, to avoid such override. Last_ebs_success is set back to true upon disconnection. Last_ebs_success wasn't set in umac scan abort flow, fix that too. Signed-off-by: Haim Dreyfuss <haim.dreyfuss@intel.com> Signed-off-by: David Spinadel <david.spinadel@intel.com> Reviewed-by: Alexander Bondar <alexander.bondar@intel.com> Reviewed-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
2015-02-01iwlwifi: allow to define the stuck queue timer per queueEmmanuel Grumbach
Different queue can have different behavior. While it can be unacceptable for a certain queue to be stuck for 2 seconds (e.g. the command queue), it can happen that another queue will stay stuck for even longer (a queue servicing a power saving client in GO). The op_mode can even make the timeout be a function of the listen interval. Reviewed-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
2015-02-01iwlwifi: mvm: enable watchdog on Tx queues for mvmEmmanuel Grumbach
This watchdog allows to monitor the transmit queues. When a queue doesn't progress for a too long time, a timer fires and then, debug data can be collected. This watchdog has never been enabled on dvm controlled devices, so don't enable it there. In order to have it running on mvm controlled devices, we need to fix a small issue in the transport layer: mvm controlled devices use the shadow registers optimization. In this case, the watchdog wasn't running at all, even if enabled by the module parameter. Fix that on the way. Reviewed-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
2015-02-01iwlwifi: mvm: ignore stale TDLS ch-switch responsesArik Nemtsov
During out-of-channel activities (e.g. scan) TDLS ch-switch responses from a peer are kept in FW. These packets arrive only after the out-of-channel activity is complete, which can be in the order of several seconds. Since TDLS ch-sw has no dialog-token-like mechanism for distinguishing sessions, use the GP2 time of the incoming ch-switch response to discern validity. For this purpose record the GP2 time of an outgoing TDLS ch-sw request and compare to the Rx time of the ch-sw response. The methods works in practice since the GP2 time of FW-deferred Rx is accurate and contains the real Rx timestamp. Signed-off-by: Arik Nemtsov <arikx.nemtsov@intel.com> Reviewed-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
2015-02-01iwlwifi: mvm: improve TDLS ch-sw state machineArik Nemtsov
Add a response-received state and add more limits on allowed requests in each state of the connection. Previously ch-switch requests from other peers could interrupt an outgoing active ch-switch. Also stale packets from the current peer could disrupt the channel switch state. Signed-off-by: Arik Nemtsov <arikx.nemtsov@intel.com> Reviewed-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
2015-02-01iwlwifi: pcie: disable the SCD_BASE_ADDR when we resume from WoWLANEmmanuel Grumbach
The base address of the scheduler in the device's memory (SRAM) comes from two different sources. The periphery register and the alive notification from the firmware. We have a check in iwl_pcie_tx_start that ensures that they are the same. When we resume from WoWLAN, the firmware may have crashed for whatever reason. In that case, the whole device may be reset which means that the periphery register will hold a meaningless value. When we come to compare trans_pcie->scd_base_addr (which really holds the value we had when we loaded the WoWLAN firmware upon suspend) and the current value of the register, we don't see a match unsurprisingly. Trick the check to avoid a loud yet harmless WARN. Note that when the WoWLAN has crashed, we will see that in iwl_trans_pcie_d3_resume which will let the op_mode know. Once the op_mode is informed that the WowLAN firmware has crashed, it can't do much besides resetting the whole device. CC: <stable@vger.kernel.org> Reviewed-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
2015-02-01iwlwifi: pcie: prepare the enablement of 31 TFD queuesEmmanuel Grumbach
Some devices have 31 TFD queues. Don't enable it yet since there are still issues with it, but at least prepare the code for it. There was a bug in the read pointer assignment, fix that. Also, move the inline functions to iwl-scd.h which is the right place. Reviewed-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
2015-02-01iwlwifi: mvm: rs: enable forcing single stream Tx decisionEyal Shapira
In certain testing scenarios we'd like to force a decision between STBC/BFER/SISO. In the normal scenario this decision is done by the FW. Enable this option vis debugfs. Signed-off-by: Eyal Shapira <eyalx.shapira@intel.com> Reviewed-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
2015-02-01iwlwifi: mvm: add beamformer supportEyal Shapira
VHT Beamformer (BFER) will be used if the peer supports it and there's a benefit to use it vs. STBC or SISO. The driver now tells the FW whether BFER and/or STBC are allowed but the FW will make the decision to use either or stick to SISO on its own. BFER is limited to a single remote peer. The driver takes care of ensuring this to the FW and prioritizes with which peer BFER will be used. Signed-off-by: Eyal Shapira <eyalx.shapira@intel.com> Reviewed-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
2015-02-01iwlwifi: pcie: don't dump useless data when a TFD queue hangsEmmanuel Grumbach
Printing all the scratch data of the TFDs of that queue is useless and stuffed the kernel log with data. Remove that. Reviewed-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
2015-02-01iwlwifi: mvm: always use mac color zeroLuciano Coelho
We don't really need to use different mac colors when adding mac contexts, because they're not used anywhere. In fact, the firmware doesn't accept 255 as a valid color, so we get into a SYSASSERT 0x3401 when we reach that. Remove the color increment to use always zero and avoid reaching 255. CC: <stable@vger.kernel.org> [3.10+] Signed-off-by: Luciano Coelho <luciano.coelho@intel.com> Reviewed-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
2015-02-01iwlwifi: mvm: remove space padding after sysassert descriptionJohannes Berg
There's really no reason to pad out the field with spaces at the end of the line - they're practically invisible there anyway. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
2015-02-01iwlwifi: mvm: don't reprobe if we fail during reconfig and fw_restart is falseLuciano Coelho
If we don't want to restart the firmware, don't reprobe either in case of a failure during reconfiguration. This allows us to debug failures in the reconfig flow as well. Signed-off-by: Luciano Coelho <luciano.coelho@intel.com> Reviewed-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
2015-01-25iwlwifi: mvm: check IWL_UCODE_TLV_API_SCD_CFG in API and not in capaEmmanuel Grumbach
IWL_UCODE_TLV_API_SCD_CFG is a new API and hence, check if enabled in the correct field. Fixes: 0294d9eece86 ("iwlwifi: mvm: let the firmware configure the scheduler") Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
2015-01-22iwlwifi: mvm: fix rx chains configuration in phy ctxt cmdLiad Kaufman
In the PHY_CTXT command sent to the FW the TX chains were indeed configured by the values of both FW TLVs and of NVM, but the RX chains were left out and configured only by FW TLV. This causes problems in 4165 HW, where there are 1x1 antennas, and the wrong configuration denies the driver from connecting to the AP. Signed-off-by: Liad Kaufman <liad.kaufman@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
2015-01-22iwlwifi: pcie: support secured boot flow for family 8000 B stepEran Harary
The driver loads the 2 CPU sections, then it needs to let the firmware know to start the authentication of the sections. This is done by writing the relevants bits to FH_UCODE_LOAD_STATUS. For CPU1, the driver sets the lower 16 bits. For both CPUs, the driver sets all the 32 bits. Signed-off-by: Eran Harary <eran.harary@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
2015-01-22iwlwifi: mvm: rs: remove stats argument from functionsJohannes Berg
The stats argument is always only passed as &mvm->drv_rx_stats, so there's no point in passing it when the mvm pointer is passed. Remove the argument entirely. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Reviewed-by: Eyal Shapira <eyal@wizery.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
2015-01-22iwlwifi: mvm: use a new API for enabling STBCEyal Shapira
The new API tells the FW that it's allowed to use STBC but the FW will decide on its own whether to use STBC or SISO (and in the future Beamformer). Keep support for the old API which sets STBC explicitly in the rates in the LQ table while we still support old FW revisions. Signed-off-by: Eyal Shapira <eyalx.shapira@intel.com> Reviewed-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
2015-01-22iwlwifi: mvm: rs: refactor ht/vht initEyal Shapira
Prepare to add some more code there so refactor to separate functions. Signed-off-by: Eyal Shapira <eyalx.shapira@intel.com> Reviewed-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
2015-01-22iwlwifi: mvm: really disable TDLS queuesEmmanuel Grumbach
for_each_set_bit expect the size in number of bits and not in bytes. Fixes: a0f6bf2a5b01 ("iwlwifi: mvm: use private TFD queues for TDLS stations") Reviewed-by: Arik Nemtsov <arik@wizery.com> Reviewed-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
2015-01-22iwlwifi: mvm: Do not consider invalid HW queues in queue maskIlan Peer
The iwl_mvm_mac_get_queues_mask() added vif->hw_queue[ac] to the queue mask although it might be set to IEEE80211_INVAL_HW_QUEUE. Fix it. Signed-off-by: Ilan Peer <ilan.peer@intel.com> Reviewed-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
2015-01-22iwlwifi: mvm: BT Coex - set all the co-running values to 0Emmanuel Grumbach
With this value, we de-facto disable the feature. Since it is not working yet, disable it completely. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
2015-01-22iwlwifi: mvm: support family 8000 C stepEran Harary
C step functionality in the driver is exactly the same as B step besides the ucode name that present as iwlwifi-8000C-xx.ucode instead of iwlwifi-8000B-xx.ucode Signed-off-by: Eran Harary <eran.harary@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
2015-01-22iwlwifi: pcie: init ref_lockJohannes Berg
The ref_lock that was recently added is missing initialization which makes lockdep unhappy and is generally a bad idea. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
2015-01-22iwlwifi: mvm: document switch case fall-through in iwl_mvm_send_sta_keyJohn W. Linville
Add a comment indicating that the WLAN_CIPHER_SUITE_WEP104 case falls through to the WLAN_CIPHER_SUITE_WEP40 case in iwl_mvm_send_sta_key. This will document that the lack of a break is intentional. Coverity: CID 1260023 Signed-off-by: John W. Linville <linville@tuxdriver.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
2015-01-22iwlwifi: mvm: rs: use STBC regardless of power save modeEyal Shapira
Tx STBC was used only when in CAM mode or if powersave is disabled. Effectively this meant we never used STBC as these modes aren't used on most platforms by default. Change that. Signed-off-by: Eyal Shapira <eyalx.shapira@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
2015-01-22Revert "iwlwifi: mvm: drop non VO frames when flushing"Emmanuel Grumbach
This is now implemented by mac80211 (commit below). mac80211 will flush/drop the frames on the queues before suspending / disconnecting. It will then send the deauth and wait until the queues are empty. commit 3b24f4c65386dc0f2efb41027bc6e410ea2c0049 Author: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Date: Wed Jan 7 15:42:39 2015 +0200 mac80211: let flush() drop packets when possible This reverts commit 4e6c48e0984e28d064ee8fbc292aee7b7920c507.
2015-01-22iwlwifi: mvm: add support for new LTR commandEmmanuel Grumbach
This new command will give finer granularity to configure the platform. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
2015-01-22iwlwifi: mvm: BT Coex - fine tune the MPLUT registerEmmanuel Grumbach
This allow to better preserve the BT performance while WiFi is running. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
2015-01-22Merge remote-tracking branch 'iwlwifi-fixes/master' into iwlwifi-nextEmmanuel Grumbach
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Conflicts: drivers/net/wireless/iwlwifi/iwl-fw-file.h drivers/net/wireless/iwlwifi/mvm/scan.c
2015-01-22iwlwifi: mvm: move U-APSD decision to authenticationJohannes Berg
In order to change the usage of U-APSD on the fly later, move the enabling condition into a new function that is called when authenticated. This allows the module parameter to become writable, it won't take effect immediately but at least on the next association the new value will be used. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
2015-01-22Merge tag 'tags/mac80211-next-for-davem-2015-01-19' into iwlwifi-nextEmmanuel Grumbach
Some further updates for net-next: * fix network-manager which was broken by the previous changes * fix delete-station events, which were broken by me making the genlmsg_end() mistake * fix a timer left running during suspend in some race conditions that would cause an annoying (but harmless) warning * (less important, but in the tree already) remove 80+80 MHz rate reporting since the spec doesn't distinguish it from 160 MHz; as the bitrate they're both 160 MHz bandwidth
2015-01-22iwlwifi: mvm: ignore temperature updates in the RX statistics notificationLuciano Coelho
If the firmware sends spontaneous DTS notfications with the temperature (indicated in a TLV), we can ignore the temperature we get in the RX statistics notifications. This prevents potentially handling the same temperature change twice. It also ignores notifications with temperature equal to 0 that happens from time to time. Signed-off-by: Luciano Coelho <luciano.coelho@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
2015-01-22iwlwifi: mvm: rs: cleanup unuseful and overflowing tracesEyal Shapira
These aren't useful and overflowing so drop them and also fix a minor typo. Signed-off-by: Eyal Shapira <eyalx.shapira@intel.com> Reviewed-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
2015-01-22iwlwifi: mvm: generate statistics debugfs codeJohannes Berg
There's no need to duplicate the structure field name in the string, just generate the string in the macro that's there anyway. To keep the debugfs output the same, rename one (otherwise unused) field. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
2015-01-22iwlwifi: mvm: move statistics API to new header fileJohannes Berg
Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
2015-01-22iwlwifi: mvm: sync statistics firmware APIJohannes Berg
The firmware API structs are split differently, synchronize the struct splits with the current firmware definitions. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
2015-01-22iwlwifi: correctly set the NMI registerEmmanuel Grumbach
When we want to trigger an NMI in the device, we need to set bit 7 and not bit 0. However, older firmwares don't register to the interrupt issued by bit 7. Use bit 7 first so that the correct interrupt will be issued hoping that the firmware will react. To be on the safe side, set bit 0 in case the firmware didn't register to the proper interrupt. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
2015-01-22iwlwifi: mvm: add rxf and txf to dump dataLiad Kaufman
When the FW is in error status - try to read the RXF and TXF (all of them) and add them to the dump data. This shouldn't happen in non-error statuses, as we don't want to stop the RXF/TXF while they are running. Signed-off-by: Liad Kaufman <liad.kaufman@intel.com> Reviewed-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
2015-01-22iwlwifi: mvm: add support for dumping a secondary SRAMIdo Yariv
Some HW modules have two SRAMs. In such cases add the secondary SRAM to the list of dumped segments. Signed-off-by: Ido Yariv <idox.yariv@intel.com> Reviewed-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
2015-01-22iwlwifi: mvm: add debugfs file for misbehaving U-APSD APJohannes Berg
As this functionality relies on getting a firmware notification it is difficult to test. Allow accessing the data for it from debugfs to be able to trigger all kinds of scenarios to test. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
2015-01-22iwlwifi: mvm: let the firmware configure the schedulerEmmanuel Grumbach
A new host command can be used to configure the scheduler instead of accessing the scheduler's registers from the driver. This is easier and less error prone since accessing the hardware at certain moments can lead to races with the firmware. Prefer to use the host command whenever it is available. Reviewed-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
2015-01-22iwlwifi: mvm: scan dwell time correctionsDavid Spinadel
Use only basic dwell time (10 ms for active scan and 110 for passive), regardless of the number of the probes and the band, if it is supported by the FW. The FW will add 3 ms for each probe sent and 10 ms for low band channels. Add a TLV flag to indicate such support in FW. This fix is needed to fix few bugs regarding scans that take too much time. Signed-off-by: David Spinadel <david.spinadel@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
2015-01-22iwlwifi: remove unused TLV capability flagsEmmanuel Grumbach
The driver doesn't support the firmwares that don't have these capabilities. The code that actually used these flags has been removed already, but the flags were left for an unclear reason. Remove them. Reviewed-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
2015-01-22iwlwifi: mvm: add print of he nvm versionEran Harary
Print the nvm version in the log for debugging purposes. Signed-off-by: Eran Harary <eran.harary@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>