summaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/intel/iwlwifi
Commit message (Collapse)AuthorAgeFilesLines
...
| * iwlwifi: pcie: fix TVQM queue ID range checkJohannes Berg2017-06-231-1/+1
| | | | | | | | | | | | | | | | | | The queue ID should never be 512 either, so correct the check to be >= instead of just >. Fixes: 310181ec34e2 ("iwlwifi: move to TVQM mode") Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
| * iwlwifi: mvm: remove pointless num_stored conditionJohannes Berg2017-06-231-1/+1
| | | | | | | | | | | | | | | | Since we exit if buf->num_stored is 0, there's no need to check it again later. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
| * iwlwifi: mvm: avoid unnecessary cache trashing in Tx pathEmmanuel Grumbach2017-06-231-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When sending a Tx Command with a Tx packet, we allocate the Tx command separately from the payload of the packet. The WiFi MAC header is then copied into the buffer that was allocated for the Tx Command. This means that this buffer needs to be big enough to contain both. This is why it is allocated with iwl_trans_alloc_tx_cmd which returns a pointer to a newly allocated not zeroed struct iwl_device_cmd. The Tx command has a few bit fields and hence it needs to be zeroed, but all the rest of the buffer doesn't need to be zeroed since it will either be memcopy'ed with the MAC header, or not even sent to the device. This means that we don't need to zero all the iwl_device_cmd structure, but rather only the size of the iwl_tx_cmd structure. Since sizeof(iwl_tx_cmd) - sizeof(iwl_tx_cmd) is about 260 bytes, this can avoid touching 4 cache lines for each packet. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
| * iwlwifi: mvm: Enable security on new TX APIDavid Spinadel2017-06-232-40/+80
| | | | | | | | | | | | | | | | | | | | | | Install GTKs on AP side for new TX API. Don't add IV space, it's added by the HW. While at that fix GCMP abnd GCMP-256 GTK installation which work similarly to the new TX API. Signed-off-by: David Spinadel <david.spinadel@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
| * iwlwifi: mvm: disable dbg data collect when fw isn't aliveLiad Kaufman2017-06-231-0/+4
| | | | | | | | | | | | | | | | | | | | If FW isn't alive, trying to collect debug data will result in errors both in driver and in the collected data, so just warn and leave the collecting function in this case. Signed-off-by: Liad Kaufman <liad.kaufman@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
| * iwlwifi: remove resp_pkt NULL checksJohannes Berg2017-06-235-24/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Contrary to what some of the comments say, if rfkill was asserted the transport will return -ERFKILL instead of success, if CMD_WANT_SKB was set, so it's not necessary to check cmd.resp_pkt for being NULL if the return code was success. Validate that this is true in iwl_trans_send_cmd(). Most of the other code modifications were done with the following spatch: @@ struct iwl_host_cmd cmd; identifier pkt; @@ <... ( pkt = cmd.resp_pkt; ... -if (!pkt) { ... } | pkt = cmd.resp_pkt; ... -if (WARN_ON(!pkt)) { ... } | -if (!cmd.resp_pkt) { ... } ) ...> Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
| * iwlwifi: mvm: remove txq EMPTYING_DELBA state for DQALiad Kaufman2017-06-231-2/+7
| | | | | | | | | | | | | | | | | | In DQA mode, there is no need to wait for the TXQ to clear out after getting a DELBA, since traffic can continue running on the queue. Signed-off-by: Liad Kaufman <liad.kaufman@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
* | Merge tag 'wireless-drivers-next-for-davem-2017-06-25' of ↵David S. Miller2017-06-2552-641/+1744
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next Kalle Valo says: ==================== wireless-drivers-next patches for 4.13 New features and bug fixes to quite a few different drivers, but nothing really special standing out. What makes me happy that we have now more vendors actively contributing to upstream drivers. In this pull request we have patches from Broadcom, Intel, Qualcomm, Realtek and Redpine Signals, and I still have patches from Marvell and Quantenna pending in patchwork. Now that's something comparing to how things looked 11 years ago in Jeff Garzik's "State of the Union: Wireless" email: https://lkml.org/lkml/2006/1/5/671 Major changes: wil6210 * add low level RF sector interface via nl80211 vendor commands * add module parameter ftm_mode to load separate firmware for factory testing * support devices with different PCIe bar size * add support for PCIe D3hot in system suspend * remove ioctl interface which should not be in a wireless driver ath10k * go back to using dma_alloc_coherent() for firmware scratch memory * add per chain RSSI reporting brcmfmac * add support multi-scheduled scan * add scheduled scan support for specified BSSIDs * add support for brcm43430 revision 0 wlcore * add wil1285 compatible rsi * add RS9113 USB support iwlwifi * FW API documentation improvements (for tools and htmldoc) * continuing work for the new A000 family * bump the maximum supported FW API to 31 * improve the differentiation between 8000, 9000 and A000 families ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
| * Merge tag 'iwlwifi-next-for-kalle-2017-06-06' of ↵Kalle Valo2017-06-1252-641/+1744
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-next First batch of iwlwifi driver patches 4.13 * Loads of FW API documentation improvements (for tools and htmldoc); * Continued work for the new A000 family; * Bumped the maximum supported FW API to 31; * Improve the differentiation between 8000, 9000 and A000 families; * A lot of fixes and cleanups here and there; kvalo: There were conflicts iwl_mvm_stop_device() and iwl_mvm_tcool_set_cur_state(). The former was easy but latter needed more thought. Apparently the mutex was taken too late, so I fixed so that the mutex is taken first and then check for iwl_mvm_firmware_running().
| | * iwlwifi: remove unnecessary code in iwl_trans_alloc_tx_cmdLuca Coelho2017-06-051-7/+1
| | | | | | | | | | | | | | | | | | | | | | | | When we removed dev_cmd_headroom, the check for dev_cmd_ptr == NULL became unnecessary, since we just return dev_cmd_ptr anyway. Cleanup the function to avoid useless code. Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
| | * iwlwifi: bump max FW API to 31Luca Coelho2017-06-053-4/+4
| | | | | | | | | | | | | | | | | | | | | Bump the maximum accepted firmware API number for devices in the 8000, 9000 and A000 families. Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
| | * iwlwifi: fw-api: cleanup cycle includesMordechai Goodstein2017-06-052-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | The include in the deleted file are included in the fw-api.h file. Which caused a cycle include in the dependencies. Signed-off-by: Mordechai Goodstein <mordechay.goodstein@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
| | * iwlwifi: mvm: remove SCAN_GROUPJohannes Berg2017-06-051-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | The firmware no longer uses this command group, so remove it from the driver as well. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
| | * iwlwifi: mvm: link to TX commands in documentationJohannes Berg2017-06-051-1/+3
| | | | | | | | | | | | | | | | | | | | | Link from the TX_CMD enum value to the TX command structs. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
| | * iwlwifi: mvm: document structures used for BEACON_TEMPLATE_CMDJohannes Berg2017-06-051-0/+6
| | | | | | | | | | | | | | | Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
| | * iwlwifi: mvm: link queue cmd docs to A000 command structsJohannes Berg2017-06-051-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | Document which structures are used with the command for the A000 hardware flavour. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
| | * iwlwifi: split firmware API from iwl-trans.hJohannes Berg2017-06-052-136/+206
| | | | | | | | | | | | | | | | | | | | | | | | | | | In order to more clearly document which parts of this file are firmware API and which are something else, split the firmware API into a separate file to include here. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
| | * iwlwifi: fix a kernel-doc tagJohannes Berg2017-06-051-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | The kernel-doc here is on an enum, so don't tag it as struct but correctly as enum instead, preventing an error. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
| | * iwlwifi: mvm: clear firmware running bit earlierJohannes Berg2017-06-051-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Clear the firmware running bit before flushing the FW (error) dump work, because otherwise debugfs isn't blocked (previous patch) and can cause a new work to be scheduled, which will then run after we actually shut down the device, wreaking havoc. Clearing it ensures that debugfs can't interfere anymore, and we can safely cancel or flush the work struct. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
| | * iwlwifi: mvm: convert ucode_loaded to a status bitJohannes Berg2017-06-052-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Convert ucode_loaded to a status bit called FIRMWARE_RUNNING. This will make it easier to clear this earlier, to avoid any spurious accesses while shutting down, for example through debugfs. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
| | * iwlwifi: mvm: add and use iwl_mvm_device_running()Johannes Berg2017-06-054-15/+30
| | | | | | | | | | | | | | | | | | | | | This will help refactor this later. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
| | * iwlwifi: mvm: use schedule_delayed_work()Johannes Berg2017-06-054-8/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There's no need to refer to system_wq directly, use the provided wrapper schedule_delayed_work(). Made with the following spatch: @@ expression E,F; @@ -queue_delayed_work(system_wq, E, F); +schedule_delayed_work(E, F); Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
| | * iwlwifi: mvm: check firmware is up in debugfsJohannes Berg2017-06-051-6/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Protect various debugfs files that need to communicate with the firmware from being used when the firmware isn't running. Some will just reject getting written to, while others that store some state will simply store it and not apply it immediately. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
| | * iwlwifi: mvm: disable prph collection in a000 hwLiad Kaufman2017-06-051-10/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Apart from the current list of PRPH that can't be collected in A000 HW, the rest of the debug dump data the driver collects is valid, so there is no need to disable collection only because of this. Disable PRPH collecting in A000 HW, and allow collecting the rest of the debug data. Signed-off-by: Liad Kaufman <liad.kaufman@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
| | * iwlwifi: pcie: support dumping FH in a000 hwLiad Kaufman2017-06-052-3/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | FH in A000 HW are placed in a different location, and need to be read as prph, rather than direct. Support A000 dumping as well as legacy. Signed-off-by: Liad Kaufman <liad.kaufman@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
| | * iwlwifi: add 9000 and A000 device familiesSara Sharon2017-06-0511-25/+29
| | | | | | | | | | | | | | | | | | | | | Add two new device families to differentiate them from 8000. Signed-off-by: Sara Sharon <sara.sharon@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
| | * iwlwifi: mvm: support init flow debuggingLiad Kaufman2017-06-057-6/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In case an assert happens on init flow, the current driver powers down the NIC, except if iwlmvm modparam init_dbg=1, and only on very specific flows. Extend this capability to cover most failure cases by keeping track of what init configurations have been completed. This way, we can allow NOT powering down the NIC, while making sure that when the driver is removed we don't try to free resources that haven't been allocated. (This can result in a kernel panic.) Signed-off-by: Liad Kaufman <liad.kaufman@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
| | * iwlwifi: mvm: add TLV for NAN API differentiationBeni Lev2017-06-051-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | Due to NAN FW API change, add TLV in order to distiguish between the 2 API versions Signed-off-by: Beni Lev <beni.lev@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
| | * iwlwifi: add dbgc_supported to transport configurationSara Sharon2017-06-054-4/+8
| | | | | | | | | | | | | | | | | | | | | | | | Use transport configuration to determine DBGC support instead of relying on device family. Signed-off-by: Sara Sharon <sara.sharon@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
| | * iwlwifi: remove references to 8000 B-step devicesSara Sharon2017-06-054-36/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We don't have any 8000 B-step right now, and there is no firmware loading code for them anyway. Further more, 9000 B-step devices will hit those code paths. Remove code that was introduced only for 8000 B-step. Signed-off-by: Sara Sharon <sara.sharon@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
| | * iwlwifi: cleanup references to 8000 family in NVM codeSara Sharon2017-06-058-74/+70
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | NVM code is tightly coupled with 8000 family, while it really refers to extended NVM format introduced back then. Separate it to a configuration dependent boolean, and rename defines accordingly. Signed-off-by: Sara Sharon <sara.sharon@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
| | * iwlwifi: pcie: add AMSDU to gen2Sara Sharon2017-06-053-6/+172
| | | | | | | | | | | | | | | | | | | | | | | | This is essentially the same code as gen1, except that it uses gen2 functions and SW checksum is not included. Signed-off-by: Sara Sharon <sara.sharon@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
| | * iwlwifi: mvm: document RX structuresJohannes Berg2017-06-052-5/+84
| | | | | | | | | | | | | | | | | | | | | Document the structures used in RX and link them to the command ID. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
| | * iwlwifi: mvm: add AMSDU flag to offload assistSara Sharon2017-06-051-1/+7
| | | | | | | | | | | | | | | | | | | | | | | | Enable offload assist for AMSDU when the AMSDU present flag is set. Fixes: a830baba9c2e ("iwlwifi: mvm: support new TX API") Signed-off-by: Sara Sharon <sara.sharon@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
| | * iwlwifi: add wait for tx queue emptySara Sharon2017-06-026-34/+107
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Now that we have 512 queues, add a wait for single TX queue to gen2. This replaces gen1 wait_tx_queues_empty, which was limited to 32 queues. Signed-off-by: Sara Sharon <sara.sharon@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
| | * iwlwifi: mvm: fix many kernel-doc warningsJohannes Berg2017-06-023-20/+46
| | | | | | | | | | | | | | | | | | | | | | | | Fix many kernel-doc warnings. In one case, this required adding a new enum value to be able to document things properly. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
| | * iwlwifi: mvm: remove unused REPLY_MAXJohannes Berg2017-06-021-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | This value is unused, and there's no reason we'd ever use it. Just remove it. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
| | * iwlwifi: kernel-doc: make proper linksJohannes Berg2017-06-024-12/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | Using %enum instead of &enum (and in one case, %struct) results in the wrong parsing. Fix that so that if documentation is generated, the result is clickable links. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
| | * iwlwifi: mvm: remove unused TX_CMD_NEXT_FRAME_*Johannes Berg2017-06-021-24/+1
| | | | | | | | | | | | | | | Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
| | * iwlwifi: Add fw_name_pre_rf_next_step to support different rf stepsHaim Dreyfuss2017-06-024-0/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Integrated chip may have different HW and RF steps. Currently, the driver supports only different HW steps. Add logic to support different RF steps enables combining different HW and RF steps. Signed-off-by: Haim Dreyfuss <haim.dreyfuss@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
| | * iwlwifi: pcie: support page dumping in wrt in gen2Liad Kaufman2017-06-021-0/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | In gen2, page dumping needs to be done in the trans layer, as it is the one with access to the paging pointers. Signed-off-by: Liad Kaufman <liad.kaufman@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
| | * iwlwifi: mvm: remove wrt support of page dumps in gen2Liad Kaufman2017-06-021-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | In gen2, page dumping should be done in transport layer, since the addresses needed for the paging mechanism reside there. Signed-off-by: Liad Kaufman <liad.kaufman@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
| | * iwlwifi: mvm: document structures used by commandsJohannes Berg2017-06-022-12/+209
| | | | | | | | | | | | | | | | | | | | | | | | | | | Add documentation to a lot of command IDs that links to the appropriate structure(s) used with those IDs. In one case, actually add and use a new struct for that purpose. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
| | * iwlwifi: mvm: create/name various enumsJohannes Berg2017-06-023-19/+77
| | | | | | | | | | | | | | | | | | | | | | | | Some values should be in enums so documentation can refer to them, some values should be named for the same reason. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
| | * iwlwifi: mvm: disentangle binding command versionsJohannes Berg2017-06-021-2/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | The comments/size of the different binding commands get lost in documentation, so introduce two different command structs that can be used there. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
| | * iwlwifi: update device ID for a000 familySara Sharon2017-06-022-6/+9
| | | | | | | | | | | | | | | | | | | | | | | | Three configurations will share device ID 2720, and will be differentiated by RF ID. Signed-off-by: Sara Sharon <sara.sharon@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
| | * iwlwifi: mvm: add documentation links to various fieldsJohannes Berg2017-06-027-32/+45
| | | | | | | | | | | | | | | | | | | | | | | | Link various fields to the documentation of the enums that define their values. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
| | * iwlwifi: mvm: fix some kernel-docJohannes Berg2017-06-027-68/+78
| | | | | | | | | | | | | | | | | | | | | | | | This mostly fixes missing tags/struct names, but also some other things. Lots of issues remain though. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
| | * iwlwifi: mvm: wait for the flushed queue onlySara Sharon2017-06-021-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The function flushed only agg queue and no more traffic is queued on it. However, it waits for all queues to empty, which is not necessary and may take more time. Signed-off-by: Sara Sharon <sara.sharon@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
| | * iwlwifi: mvm: add documentation to some WoWLAN commandsJohannes Berg2017-06-021-1/+28
| | | | | | | | | | | | | | | | | | | | | | | | Add some documentation for the WoWLAN commands, also linking the correct enums used. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
OpenPOWER on IntegriCloud