aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi/mvm
Commit message (Collapse)AuthorAge
...
* | iwlwifi: mvm: clear tt values when entering CT-killLuciano Coelho2014-12-28
| | | | | | | | | | | | | | | | | | | | | | | | Clear the thermal throttling values when entering CT-kill, since everything will be reinitialized anyway when we exit CT-kill. Additionally, clear the dynamic_smps value in the initialization funciton, for consistency. 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>
* | iwlwifi: mvm: Set the HW step in the core dumpIdo Yariv2014-12-28
| | | | | | | | | | | | | | | | The HW step member was left out of the core dump information. Fix this. 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>
* | iwlwifi: mvm: allow RSSI compensationEmmanuel Grumbach2014-12-28
| | | | | | | | | | | | | | | | The firmware is able to compensate the rssi when we hear the frame on a different channel. This is true for an offset up to 3 channels. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
* | iwlwifi: mvm: add debugfs to trigger fw debug logs collectionEmmanuel Grumbach2014-12-28
| | | | | | | | | | | | | | | | This allows to collect the logs even if the firmware hasn't crashed. Of course, crashing the firmware is an option, but this is easier and nicer. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
* | iwlwifi: mvm: support LnP 1x1 antenna configurationMoshe Harel2014-12-28
| | | | | | | | | | | | | | | | | | | | The antenna configuration has to be read also from OTP Currently read only from FW image Guideline: An antenna exists only if appears both in FW image & NVM Signed-off-by: Moshe Harel <moshe.harel@intel.com> Reviewed-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
* | iwlwifi: mvm: add fw runtime stack to dump dataLiad Kaufman2014-12-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The allocation of the DCCM between the data and the stack can theoretically change without notice to the driver, but the total size is HW-fixed. Since the stack CCM (runtime stack) has also data important to the FW - this patch allows pulling the whole DCCM in one piece and adds it to the dump data. If the size isn't known - just use the data part of the DCCM as it appears in the FW TLVs. 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>
* | iwlwifi: remove MODULE_VERSIONJohannes Berg2014-12-28
|/ | | | | | | | | | | The module version "in-tree:" or "in-tree:d" is useless; there should be better (functional) ways to detect whether debugging is enabled and other than that the version says nothing. Therefore remove the driver version completely. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
* iwlwifi: mvm: Ability to work with packed usniffer imageEran Harary2014-12-02
| | | | | | | | | | | The new ucode package format holds also the usniffer images (in addition to the operational images and the TLVs). The driver can load the usniffer image if debug configuration tells it to. Signed-off-by: Eran Harary <eran.harary@intel.com> Reviewed-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
* iwlwifi: pcie: config regs according to fw tlvLiad Kaufman2014-12-02
| | | | | | | | | | | Sometimes there is a need to configure some registers for setting some FW properties, such as the FW monitor mode (internal/external). This patch supports setting this for PCIe mode. 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>
* iwlwifi: mvm: send dbg config hcmds to fw if set in tlvLiad Kaufman2014-12-02
| | | | | | | | | | Send all debug-configuration HCMDs that are set in the TLVs to the FW. This may include HCMDs to configure the FW monitor and FW log level, for example. 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>
* iwlwifi: mvm: update values for Smart FifoEmmanuel Grumbach2014-12-02
| | | | | | | | | | | Interoperability issues were identified and root caused to the Smart Fifo watermarks. These issues arose with NetGear R7000. Fix this. Cc: <stable@vger.kernel.org> [3.14+] Fixes: 1f3b0ff8ecce ("iwlwifi: mvm: Add Smart FIFO support") Reviewed-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
* iwlwifi: mvm: remove a dangling line of documentationDavid Spinadel2014-12-01
| | | | | | Signed-off-by: David Spinadel <david.spinadel@intel.com> Reviewed-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
* iwlwifi: mvm: support NVM file with headerIdan Kahlon2014-12-01
| | | | | | | | | Handle NVM file header. When NVM header detected, skip the header and reading only the sections data. Signed-off-by: Idan Kahlon <idanx.kahlon@intel.com> Reviewed-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
* iwlwifi: mvm: add channel information to the netdetect notificationsLuciano Coelho2014-12-01
| | | | | | | | | | | | Add the channels on which there was a match for every match reported by the firmware. The firmware reports the channels as indices to the array of channels that was passed in the scheduled scan request, so we need to save the array when entering D3 to make sure it is available when we resume. 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>
* iwlwifi: mvm: add SSID match information for net-detectLuciano Coelho2014-12-01
| | | | | | | | | | | | | | | Add SSID information to the net-detect indication to userspace. Fetch the matched profiles from the firmware in order to find the correct SSIDs in the profiles that matched. Since the net-detect information is stored in cfg80211, and in theory it could change while we are waking up and reading the matched profiles, we need to save it when we enter D3 so it is available during resume. 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>
* iwlwifi: mvm: add missing mvm ref debug printEliad Peller2014-12-01
| | | | | | | | | | IWL_MVM_REF_PROTECT_CSA is missing from the ref strings used by debugfs. Signed-off-by: Eliad Peller <eliadx.peller@intel.com> Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Reviewed-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
* iwlwifi: mvm: BT Coex - change the MPLUT registers' valueEmmanuel Grumbach2014-12-01
| | | | | | This impacts the partition between BT and Wifi. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
* iwlwifi: mvm: remove IWL_UCODE_TLV_API_CSA_FLOWEmmanuel Grumbach2014-12-01
| | | | | | | All the supported firmwares have this TLV flag set. Reviewed-by: Luciano Coelho <luciano.coelho@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
* iwlwifi: mvm: remove IWL_UCODE_TLV_API_WOWLAN_CONFIG_TIDEmmanuel Grumbach2014-12-01
| | | | | | | All the supported firmwares have this TLV flag set. Reviewed-by: Luciano Coelho <luciano.coelho@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
* iwlwifi: mvm: remove IWL_UCODE_TLV_CAPA_EXTENDED_BEACONEmmanuel Grumbach2014-12-01
| | | | | | This TLV flag is set for all the supported firmwares. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
* iwlwifi: deprecate -8.ucode for 3160 / 7260 / 7265Emmanuel Grumbach2014-12-01
| | | | | | | | | This firmware is not supported anymore. Stop loading this firmware - and remove the code that handled older versions. Reviewed-by: Luciano Coelho <luciano.coelho@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
* iwlwifi: mvm: check and report if wake up was due to net detectLuciano Coelho2014-12-01
| | | | | | | | | | | Query the firmware for scan offload matches when waking up in order to report net detect as the reason for the wake up. This requires a new command API to be implemented. Additionally, remove some net detect command entries that are not valid anymore. Signed-off-by: Luciano Coelho <luciano.coelho@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
* Merge remote-tracking branch 'iwlwifi-fixes/master' into iwlwifi-nextEmmanuel Grumbach2014-11-25
|\ | | | | | | | | | | | | Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Conflicts: drivers/net/wireless/iwlwifi/iwl-fw.h
| * iwlwifi: mvm: check TLV flag before trying to use hotspot firmware commandsLuciano Coelho2014-11-23
| | | | | | | | | | | | | | | | | | | | | | Older firmwares do not provide support for the HOT_SPOT_CMD command. Check for the appropriate TLV flag that declares hotspot support in the firmware to prevent a firmware assertion failure that can be triggered from the userspace, Cc: stable@vger.kernel.org [3.17+] Signed-off-by: Luciano Coelho <luciano.coelho@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
* | iwlwifi: mvm: disconnect TDLS peers before channel switchArik Nemtsov2014-11-24
| | | | | | | | | | | | | | In case of channel switch, we need to teardown the TDLS peers. Signed-off-by: Arik Nemtsov <arikx.nemtsov@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
* | iwlwifi: mvm: declare support for VHT BF info in radiotapEyal Shapira2014-11-24
| | | | | | | | | | | | | | | | | | | | | | The driver knows whether an rx frame was beamformed and marks it in the radiotap VHT flags. However it should also declare that it knows to extract this info otherwise this gets discarded by sniffers like Wireshark. 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>
* | iwlwifi: mvm: add support to MFUART loading notificationChaya Rachel Ivgy2014-11-24
| | | | | | | | | | | | | | | | | | Add support to MFUART loading notification (print notification data with IWL_DEBUG_INFO) Signed-off-by: Chaya Rachel Ivgy <chaya.rachel.ivgi@intel.com> Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
* | iwlwifi: mvm: call iwl_trans_suspend/resumeEliad Peller2014-11-24
| | | | | | | | | | | | | | | | | | call the appropriate iwl_trans_suspend/resume ops on iwl_mvm_suspend/resume calls. Signed-off-by: Eliad Peller <eliadx.peller@intel.com> Reviewed-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
* | iwlwifi: mvm: treat netdetect wake up separatelyLuciano Coelho2014-11-24
| | | | | | | | | | | | | | | | | | | | | | When the device wakes up due to netdetect, we need to query different things from the firmware than when it wakes up with a normal WoWLAN. To make this easier, separate the netdetect wake up handling from the rest. For now, we don't send netdetect as a wake up reason, treating it as a non-wireless wake up. Signed-off-by: Luciano Coelho <luciano.coelho@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
* | iwlwifi: mvm: refactor iwl_mvm_query_wakeup_reasons()Luciano Coelho2014-11-24
| | | | | | | | | | | | | | | | | | | | Refactor the iwl_mvm_query_wakeup_reasons() function to split the part that gets the firmware status from the part that sets up the WoWLAN status. This will allow netdetect to reuse the 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>
* | iwlwifi: mvm: refactor wowlan and netdetect configuration when suspendingLuciano Coelho2014-11-24
| | | | | | | | | | | | | | | | | | | | | | We need to send a WOWLAN_CONFIGURATION command also for netdetect and configure the rfkill release trigger if needed. To do so, refactor the code that configures wowlan and netdetect when suspending and send the WOWLAN_CONFIGURATION command also for net_detect. 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>
* | iwlwifi: mvm: add support for net detectLuciano Coelho2014-11-24
| | | | | | | | | | | | | | | | | | | | | | Add the net detect WoWLAN flag to indicate support and use the nd_config from the WoWLAN configuration to start net detect, if it is set. The WoWLAN configuration takes precedence over the debugfs configuration. 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>
* | iwlwifi: mvm: protect session during CSALuciano Coelho2014-11-24
| | | | | | | | | | | | | | | | | | | | | | | | | | When another vif is also running during a channel switch, we need to use a session protection when we move to the new channel, so that we don't miss the beacons. Without this, sometimes the other vif repeatedly gets time exactly when we should be hearing the beacons, preventing channel switch from completing. Adding a session protection that lasts from the moment the channel changes until 2 TBTTs later, ensures that we will hear the beacons on the destination channel. Signed-off-by: Luciano Coelho <luciano.coelho@intel.com>
* | iwlwifi: mvm: clear TE data if CSA time event fails to startLuciano Coelho2014-11-24
| | | | | | | | | | | | | | | | If setting the CSA time event fails, we must clear the TE data, otherwise we'll try to remove it when, for instance, a disconnection occurs, causing a SYSASSERT. Signed-off-by: Luciano Coelho <luciano.coelho@intel.com>
* | iwlwifi: mvm: disable beacon filtering during CSALuciano Coelho2014-11-24
| | | | | | | | | | | | | | | | | | After a channel switch, transmission on the new channel is only started once we see a beacon on it. Thus, beacon filtering needs to be disabled during channel switch so that mac80211 receives this beacon and finishes the process. Signed-off-by: Luciano Coelho <luciano.coelho@intel.com>
* | iwlwifi: mvm: add a channel_switch op to bypass mac80211 timerLuciano Coelho2014-11-24
| | | | | | | | | | | | | | | | | | | | We need to call ieee80211_chswitch_done() ourselves just when the absence TE started, so we perform the actual context switch early enough. To do so, add a dummy channel_switch op, which will cause mac80211 to skip the countdown timer and allow us to call ieee80211_chswitch_done() to complete the operation. Signed-off-by: Luciano Coelho <luciano.coelho@intel.com>
* | iwlwifi: mvm: finalize on post_switch instead of unassignLuciano Coelho2014-11-24
| | | | | | | | | | | | | | | | | | Now that mac80211 waits for the first beacon on the new channel before calling post_channel_switch, the reconfiguration of the firmware should be done in the post_channel_switch operation instead of when assigning the vif to the new context. Signed-off-by: Luciano Coelho <luciano.coelho@intel.com>
* | iwlwifi: mvm: schedule CSA time event a bit before beacon 1Luciano Coelho2014-11-24
| | | | | | | | | | | | | | | | | | | | Instead of using a hardcoded number of TUs before beacon 0 as the time to start the absence and actual channel switch, calculate it in relation to the beacon interval. We use 10 TUs + beacon interval before beacon 0 to target a bit before beacon 1. This gives us enough time to switch to the new channel before the AP/GO switches. Signed-off-by: Luciano Coelho <luciano.coelho@intel.com>
* | iwlwifi: mvm: add CSA absent time event for clientsLuciano Coelho2014-11-24
| | | | | | | | | | | | | | | | | | | | Add an absent time event when pre_channel_switch is called and use the time event started indication to set the disable_tx bit instead of doing it in unassign_vif(). This is done so that the firmware queues are stopped before the actual switch takes place to avoid losing packets while the AP/GO is performing its actual switch. Signed-off-by: Luciano Coelho <luciano.coelho@intel.com>
* | iwlwifi: mvm: use switching_chanctx argument instead of csa_activeLuciano Coelho2014-11-24
| | | | | | | | | | | | | | | | | | | | | | Now that all CSA flows are using the switch_vif_chanctx op, we can rely on the switching_chanctx boolean that is passed to the __iwl_mvm_assign_vif_chanctx() and __iwl_mvm_unassign_vif_chanctx() functions to decide whether the context switch flows need to be executed. In this way we make the chanctx switch flow more generic, without having to rely on the csa_active flag being set. Signed-off-by: Luciano Coelho <luciano.coelho@intel.com>
* | iwlwifi: mvm: disable PS during channel switchLuciano Coelho2014-11-24
| | | | | | | | | | | | | | | | Disable PS when pre_channel_switch is called and add the post_channel_switch operation to re-enable PS when the channel switch is completed. Signed-off-by: Luciano Coelho <luciano.coelho@intel.com>
* | iwlwifi: mvm: Handle failed beacon transmissions during CSAAndrei Otcheretianski2014-11-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The spec requires to decrement the CSA counters based on TBTT, regardless if the beacon was actually transmitted. Previously, the fw would send beacon notifications only for successfully transmitted beacons. This behavior resulted in inaccurate CSA countdown. In order to address this issue, the fw was changed to send beacon notifications also for not transmitted beacons. Such notifications have TX_STATUS_INTERNAL_ABORT (0x92). Don't start the CSA countdown before first successfully transmitted beacon, in order to guarantee that the CSA is announced for a required period. Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com>
* | iwlwifi: mvm: return the actual error code when switch_vif_chanctx failsLuciano Coelho2014-11-24
| | | | | | | | | | | | | | | | | | | | We have code to recover and go back to the original channel context if something fails in the middle of switch_vif_chanctx, but we return the error code of the recover calls instead of the original code, so if the recovery succeeds, we will return 0 (success). Fix this by not assigning the return value of the recovery calls to ret. Signed-off-by: Luciano Coelho <luciano.coelho@intel.com>
* | iwlwifi: mvm: add support for CHANCTX_SWMODE_REASSIGN_VIFLuciano Coelho2014-11-24
| | | | | | | | | | | | | | | | | | Add support to reassign vif in switch_vif_chanctx. This is similar to the existing CHANCTX_SWMODE_SWAP_CONTEXTS mode, but doesn't delete the old context nor creates a new one, doing to switch between two existing contexts. Signed-off-by: Luciano Coelho <luciano.coelho@intel.com>
* | iwlwifi: mvm: refactor iwl_mvm_switch_vif_chanctx to support other modesLuciano Coelho2014-11-24
| | | | | | | | | | | | | | | | Currently we only support the CHANCTX_SWMODE_SWAP_CONTEXTS mode, but we need to support other modes as well. Spin a new function off in order to make it easier to support other modes. Signed-off-by: Luciano Coelho <luciano.coelho@intel.com>
* | iwlwifi: mvm: only save csa_vif in AP/GO modeLuciano Coelho2014-11-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | We only need the csa_vif in AP/GO modes, and assigning for other interfaces may cause problems, because csa_vif is never cleared. To prevent this, only assign the value if the iftype is NL80211_IFTYPE_AP. Use a switch to do this, even though, for now, only the AP interface type is handled, because soon other interface types will be added as well. Additionally, convert the WARN() in the error case when a channel-switch is already running to WARN_ONCE(). Signed-off-by: Luciano Coelho <luciano.coelho@intel.com>
* | iwlwifi: mvm: use new pre_channel_switch op instead of channel_switch_beaconLuciano Coelho2014-11-24
| | | | | | | | | | | | | | | | | | | | | | A new callback has been added to prepare the device for a channel switch. Use the new callback instead of the old channel_switch_beacon operation. This makes it possible to remove the channel_switch_beacon operation from mac80211. Signed-off-by: Luciano Coelho <luciano.coelho@intel.com>
* | iwlwifi: mvm: implement mac80211 TDLS channel-switch APIsArik Nemtsov2014-11-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Maintain a TDLS channel-switch state and update it according to notifications from FW and timeouts. Explicitly check all state transitions are valid. When switching is initiated by mac80211, use a delayed work to periodically reschedule it from iwlwifi. Give the FW mac80211 generated TDLS channel-switch request/response templates. It will change appropriate values (switch timings) and Tx them at appropriate times. Enable the channel switch wiphy capability bit when the FW supports it. Signed-off-by: Arik Nemtsov <arikx.nemtsov@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
* | iwlwifi: mvm: block TID when using TDLSLiad Kaufman2014-11-24
| | | | | | | | | | | | | | | | | | | | Block TID 4 (VI) on a vif when using TDLS. This TID will be used by FW for TDLS channel-switch requests and PTI requests. Signed-off-by: Liad Kaufman <liad.kaufman@intel.com> 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>
* | iwlwifi: mvm: use private TFD queues for TDLS stationsArik Nemtsov2014-11-24
| | | | | | | | | | | | | | | | | | | | | | | | | | When adding a TDLS station, allocate 4 new queues for it. Configure them to FW and enable them. On station removal, drain the queues if needed and disable them when empty. Make sure to flush all packets in the private queues of TDLS stations in the mac80211 flush() callback. 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>