|
1/310 [
Author: Sara Sharon
Email: sara.sharon@intel.com
Subject: iwlwifi: mvm: support getting nvm data from firmware
Date: Sun, 8 Jan 2017 16:46:14 +0200
commit e9e1ba3dbf00bb2eed4e681ae59f433e45d2e78f upstream.
This API replaces the complex NVM parsing of the iwlwifi module.
Instead, we get all needed data from firmware.
Signed-off-by: Sara Sharon <sara.sharon@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
[adjust patch for dc1cd1d5ac22 ("iwlwifi: fix host command memory leaks") used]
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
2/310 [
Author: Sara Sharon
Email: sara.sharon@intel.com
Subject: iwlwifi: mvm: support old method of NVM parsing
Date: Mon, 6 Mar 2017 11:13:02 +0200
commit d4f3695eccf9481801d42bebc7a282c5a2af7281 upstream.
Add configuration for allowing driver's nvm parsing and
bypassing the new host command, for debugging.
Signed-off-by: Sara Sharon <sara.sharon@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
3/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: mvm: fix endianness in lq_cmd declaration
Date: Mon, 13 Mar 2017 13:40:23 +0100
commit 6909afcade61f760b528118ccb837c8506c23cc1 upstream.
This member doesn't seem to be used, so this doesn't really
fix anything, but it's better to have the right type there.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
4/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: mvm: document which group enums are used with which group ID
Date: Thu, 9 Mar 2017 17:06:45 +0100
commit 72361c3d28cf4102b7b514609d3710707b1a1096 upstream.
Make it explicit which command definition enum is supposed to be
used with which command group, rather than relying on being able
to figure it out by name.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
5/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: mvm: use proper sta_addr in firmware API
Date: Thu, 9 Mar 2017 14:08:51 +0100
commit 3dc6dd9698174b2cf6d078ddfba39ff8640afe47 upstream.
There's no point to declare an address as a __le32/__le16
and then only take a pointer to it anyway, change that to
just a sta_addr[ETH_ALEN].
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
6/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: mvm: fix MCC endianness bug
Date: Mon, 13 Mar 2017 12:07:52 +0100
commit 56c1f3c4bd1ee04f8032345fba97cff616fea22a upstream.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
7/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: mvm: use u8 for reserved fields
Date: Mon, 13 Mar 2017 12:47:37 +0100
commit aed35826d67f31afe010c1d25d204badf7057a25 upstream.
There's no saying what kind of type a reserved field will
get in the future, so use u8 arrays to reserve space.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
8/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: mvm: disentangle paging command structs
Date: Mon, 13 Mar 2017 21:48:39 +0100
commit 3b43fbcac4765ac5f7b92464b7d9685eaa34467b upstream.
Instead of using a union and hard-coding the size difference,
declare both command structs properly, use a union on the
stack to build them and the right sizeof() for the size.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
9/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: mvm: add documentation to some WoWLAN commands
Date: Tue, 14 Mar 2017 10:55:09 +0100
commit 816dc0bc549a34673ef6533b3cb9c135c0b869f6 upstream.
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>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
10/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: mvm: fix some kernel-doc
Date: Thu, 9 Mar 2017 15:56:57 +0100
commit 31a658b2afc7bff8a4d51418677b579d85060b31 upstream.
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>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
11/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: mvm: add documentation links to various fields
Date: Tue, 14 Mar 2017 11:01:27 +0100
commit 676258651742e69cd77460ea62a591be1aaf2f0e upstream.
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>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
12/310 [
Author: Sara Sharon
Email: sara.sharon@intel.com
Subject: iwlwifi: update device ID for a000 family
Date: Sun, 12 Mar 2017 10:34:10 +0200
commit a85281ebdef114bde8fc93fa99c79f1c567f23d8 upstream.
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>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
13/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: mvm: disentangle binding command versions
Date: Tue, 14 Mar 2017 11:04:06 +0100
commit 4d151c2e22532d1167370349ed71125ac2dd5228 upstream.
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>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
14/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: mvm: create/name various enums
Date: Tue, 14 Mar 2017 10:58:16 +0100
commit d69f0a2d88dd7c8e82f027d2d48238426c45e07e upstream.
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>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
15/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: mvm: document structures used by commands
Date: Fri, 10 Mar 2017 14:01:42 +0100
commit 15fc196d6ec388f724093f4950b5927efd31d5b8 upstream.
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>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
16/310 [
Author: Liad Kaufman
Email: liad.kaufman@intel.com
Subject: iwlwifi: mvm: remove wrt support of page dumps in gen2
Date: Sun, 12 Mar 2017 11:00:04 +0200
commit 2ba57c8bf9d4dbeb5d23c0ee94ace119e8ea41c9 upstream.
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>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
17/310 [
Author: Liad Kaufman
Email: liad.kaufman@intel.com
Subject: iwlwifi: pcie: support page dumping in wrt in gen2
Date: Sun, 12 Mar 2017 11:09:58 +0200
commit 5538409ba3935aa1ecaff8255137c3a6a19e0a30 upstream.
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>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
18/310 [
Author: Haim Dreyfuss
Email: haim.dreyfuss@intel.com
Subject: iwlwifi: Add fw_name_pre_rf_next_step to support different rf steps
Date: Thu, 9 Mar 2017 15:18:58 +0200
commit 0705b953eee4fe20b01ff8e13b8f32c7eac78446 upstream.
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>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
19/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: mvm: remove unused TX_CMD_NEXT_FRAME_*
Date: Wed, 15 Mar 2017 09:53:13 +0100
commit b1e06c65fb69c5e3fddcd91987561e225eaa9bfa upstream.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
20/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: kernel-doc: make proper links
Date: Wed, 15 Mar 2017 10:02:23 +0100
commit 69d22e737e07c37def4674ef4e8fe63fef8a654c upstream.
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>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
21/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: mvm: remove unused REPLY_MAX
Date: Wed, 15 Mar 2017 10:22:06 +0100
commit e4eb275ac5cfe71686612d929a9829345b2a4ada upstream.
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>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
22/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: mvm: fix many kernel-doc warnings
Date: Wed, 15 Mar 2017 10:18:20 +0100
commit 3a07d36c2d891b30c25e03146eceaeb6e6375810 upstream.
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>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
23/310 [
Author: Sara Sharon
Email: sara.sharon@intel.com
Subject: iwlwifi: mvm: add AMSDU flag to offload assist
Date: Thu, 16 Mar 2017 10:44:31 +0200
commit f5bd90b72d613ad5a9c3b38dee6ae6b5e3565be4 upstream.
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>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
24/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: mvm: document RX structures
Date: Wed, 15 Mar 2017 14:06:53 +0100
commit 6857df8c10e6986940ee7e14b587352e928589a2 upstream.
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>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
25/310 [
Author: Sara Sharon
Email: sara.sharon@intel.com
Subject: iwlwifi: pcie: add AMSDU to gen2
Date: Thu, 16 Mar 2017 11:06:41 +0200
commit 6ffe5de35b05907faf4edb66cfd8ddf3c47e099f upstream.
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>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
26/310 [
Author: Sara Sharon
Email: sara.sharon@intel.com
Subject: iwlwifi: cleanup references to 8000 family in NVM code
Date: Wed, 22 Mar 2017 12:20:40 +0200
commit 7042678dffa3707dea3feb34f09241d54e40648c upstream.
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>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
27/310 [
Author: Sara Sharon
Email: sara.sharon@intel.com
Subject: iwlwifi: remove references to 8000 B-step devices
Date: Wed, 22 Mar 2017 13:51:12 +0200
commit 8b4d649552ca857d4f6e903d2f51fec8936e65f0 upstream.
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>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
28/310 [
Author: Sara Sharon
Email: sara.sharon@intel.com
Subject: iwlwifi: add dbgc_supported to transport configuration
Date: Wed, 22 Mar 2017 14:06:41 +0200
commit a02797c15dd98434774fa67b323ebee158dc6ecf upstream.
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>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
29/310 [
Author: Beni Lev
Email: beni.lev@intel.com
Subject: iwlwifi: mvm: add TLV for NAN API differentiation
Date: Sun, 19 Mar 2017 19:03:51 +0200
commit 1247070d4763cf0dc8bd7b313d606941c6464e69 upstream.
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>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
30/310 [
Author: Liad Kaufman
Email: liad.kaufman@intel.com
Subject: iwlwifi: mvm: support init flow debugging
Date: Thu, 16 Mar 2017 13:00:59 +0200
commit de8ba41b5e5002e28756963df311246485c330d5 upstream.
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>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
31/310 [
Author: Sara Sharon
Email: sara.sharon@intel.com
Subject: iwlwifi: add 9000 and A000 device families
Date: Wed, 22 Mar 2017 14:07:50 +0200
commit 6e5848732288d93f14bb30ce81f09950988556dd upstream.
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>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
32/310 [
Author: Liad Kaufman
Email: liad.kaufman@intel.com
Subject: iwlwifi: pcie: support dumping FH in a000 hw
Date: Sun, 26 Mar 2017 13:56:28 +0300
commit 723b45e24150f1b9bde5c1f51f1a845982cb4eeb upstream.
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>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
33/310 [
Author: Liad Kaufman
Email: liad.kaufman@intel.com
Subject: iwlwifi: mvm: disable prph collection in a000 hw
Date: Sun, 26 Mar 2017 14:09:46 +0300
commit 9eca702ca1da715199c104363cad041d989aafd1 upstream.
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>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
34/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: mvm: check firmware is up in debugfs
Date: Wed, 22 Mar 2017 22:19:41 +0100
commit 504bd624663cde6141ab025445c93420c387062e upstream.
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>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
35/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: mvm: use schedule_delayed_work()
Date: Wed, 22 Mar 2017 21:44:59 +0100
commit 86bbb1e1e0ba8878b554bbb912d348f3b819f5c4 upstream.
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>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
36/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: mvm: convert ucode_loaded to a status bit
Date: Wed, 22 Mar 2017 22:10:36 +0100
commit 65b280fe9bde124587f9ca290404515d52513b3f upstream.
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>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
37/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: mvm: clear firmware running bit earlier
Date: Wed, 22 Mar 2017 22:26:03 +0100
commit 771147b0676fb545b7fd268277452609bcaf9243 upstream.
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>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
38/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: fix a kernel-doc tag
Date: Thu, 30 Mar 2017 14:21:54 +0200
commit b8aed81cd38151928d7af81f2f2ed98481809f2f upstream.
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>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
39/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: split firmware API from iwl-trans.h
Date: Thu, 30 Mar 2017 14:30:40 +0200
commit 0aaece81114e403315ae01a6cd36044e32922d3b upstream.
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>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
40/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: mvm: link queue cmd docs to A000 command structs
Date: Thu, 30 Mar 2017 14:23:21 +0200
commit e153c1e4c37fcffa26e901251767c1404db83934 upstream.
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>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
41/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: mvm: document structures used for BEACON_TEMPLATE_CMD
Date: Fri, 31 Mar 2017 10:48:17 +0200
commit b7bea642d5e53291aaa1a55adbcaa7e481d11940 upstream.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
42/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: mvm: link to TX commands in documentation
Date: Fri, 31 Mar 2017 11:25:52 +0200
commit e8226a5e4a687cbf9133f47b5d166eb09ddcda1d upstream.
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>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
43/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: mvm: remove SCAN_GROUP
Date: Thu, 30 Mar 2017 14:17:51 +0200
commit 12edae864161c5fe9f7e5d9fad0d599f344e970d upstream.
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>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
44/310 [
Author: Mordechai Goodstein
Email: mordechay.goodstein@intel.com
Subject: iwlwifi: fw-api: cleanup cycle includes
Date: Sun, 2 Apr 2017 18:25:06 +0300
commit fccdbaa849f62a0992f8b77878a13e3c54161b87 upstream.
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>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
45/310 [
Author: Luca Coelho
Email: luciano.coelho@intel.com
Subject: iwlwifi: remove unnecessary code in iwl_trans_alloc_tx_cmd
Date: Wed, 5 Apr 2017 09:42:18 +0300
commit 0ae0bb3f409d48251a9a1730a514b3521d8f6042 upstream.
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>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
46/310 [
Author: Liad Kaufman
Email: liad.kaufman@intel.com
Subject: iwlwifi: mvm: remove txq EMPTYING_DELBA state for DQA
Date: Wed, 5 Apr 2017 10:35:18 +0300
commit 664e968be329352d2ed2566e43965a25421b1646 upstream.
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>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
47/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: remove resp_pkt NULL checks
Date: Mon, 10 Apr 2017 10:32:58 +0200
commit 0ec971fdaddfcab72e5104e35774f489991f1f68 upstream.
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>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
48/310 [
Author: Liad Kaufman
Email: liad.kaufman@intel.com
Subject: iwlwifi: mvm: disable dbg data collect when fw isn't alive
Date: Thu, 23 Mar 2017 11:08:59 +0200
commit f45f979dc208c96bb13a229381be2c1e4bf3afb3 upstream.
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>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
49/310 [
Author: David Spinadel
Email: david.spinadel@intel.com
Subject: iwlwifi: mvm: Enable security on new TX API
Date: Thu, 30 Mar 2017 19:43:53 +0300
commit 85aeb58cec1a7a0395e14b45a7c6c1a9dad209fe upstream.
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>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
50/310 [
Author: Emmanuel Grumbach
Email: emmanuel.grumbach@intel.com
Subject: iwlwifi: mvm: avoid unnecessary cache trashing in Tx path
Date: Thu, 30 Mar 2017 23:08:03 +0300
commit 6f2f019495f637375b6d9dbbfa164b5b1e9d5583 upstream.
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>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
51/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: mvm: remove pointless num_stored condition
Date: Wed, 19 Apr 2017 09:45:18 +0200
commit aeb8012cdfb5dded160295c92e6bfdb6ae5e8aa1 upstream.
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>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
52/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: pcie: fix TVQM queue ID range check
Date: Wed, 19 Apr 2017 10:29:06 +0200
commit f8565f3329d62dab724b43db3f6ed60b608333fa upstream.
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>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
53/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: mvm: use scnprintf() instead of snprintf()
Date: Wed, 19 Apr 2017 09:58:50 +0200
commit 40e86a3619a1e84ad73c716c943f65fc38eb1e28 upstream.
It's safer to use scnprintf() here because the buffer might
be too short for the full format strings. In most cases
this isn't true because of external limits on the values.
In one case, this fixes a stack data leak.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
54/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: use bitfield.h for some registers
Date: Thu, 9 Mar 2017 11:22:54 +0100
commit f3779f476b85701acc3d7ec0eb9b099c2060e7c9 upstream.
Letting the preprocessor/compiler generate the shift/mask by itself
is a win for readability, so use bitfield.h for some registers.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
55/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: mvm: track and report IBSS manager status to mac80211
Date: Thu, 20 Apr 2017 10:29:03 +0200
commit 2f0282db41194c0099a019b2761911d6c69cbdb9 upstream.
Shaul reported that when iwlmvm was sending beacons, it didn't properly
also take ownership of the probe responses. This is because the whole
mac80211 callback (tx_last_beacon) wasn't implemented. Fix that to make
IBSS discovery work better.
Reported-by: Shaul Triebitz <shaul.triebitz@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
56/310 [
Author: Luca Coelho
Email: luciano.coelho@intel.com
Subject: iwlwifi: mvm: make D0I3_END_CMD sync during system resume
Date: Wed, 12 Apr 2017 12:42:12 +0300
commit f28b9361247360b64e0c6cf0bdd72ff5b5815a33 upstream.
There is no need to send D0I3_END_CMD as ASYNC during the system
resume flow. Additionally, the other flags used are meaningless in
this case (they were just copied from the runtime resume flow), so
remove them all.
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
57/310 [
Author: Luca Coelho
Email: luciano.coelho@intel.com
Subject: iwlwifi: mvm: support D0I3_END_CMD at the start of resume
Date: Wed, 12 Apr 2017 16:33:41 +0300
commit fcea37b2cf23f615252c424c217975f08da3c50d upstream.
New FW versions require the D0I3_END_CMD to be sent as the first
command to the FW in the resume flow. If the TLV is set, send that
command first, otherwise keep the original behavior (i.e. send last).
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
58/310 [
Author: Mordechai Goodstein
Email: mordechay.goodstein@intel.com
Subject: iwlwifi: mvm: change the firmware name loading
Date: Thu, 30 Mar 2017 14:43:15 +0300
commit e9eb0fa247cc61858e2b61e7242f870b1bfb67c2 upstream.
The firmware moved the development from a0 MAC to z0.
z0 is using the same RFID and device ID as a0 so we only
need to switch the name.
Signed-off-by: Mordechai Goodstein <mordechay.goodstein@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
59/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: mvm: make iwl_mvm_update_mcc() easier to follow
Date: Wed, 19 Apr 2017 10:17:57 +0200
commit 28269897c6cd668ff093da8a123099659376504b upstream.
Some static checkers (e.g. smatch) complain about the logic, saying that
resp_cp might be leaked. Clearly that isn't true, but making the logic
easier to follow does not result in any significant code changes and makes
the code more readable by moving the NULL check closer to its source.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
60/310 [
Author: Gregory Greenman
Email: gregory.greenman@intel.com
Subject: iwlwifi: mvm: rs: add logs for the wrong antenna case
Date: Mon, 24 Apr 2017 09:24:37 +0300
commit 8f6438f72a5f6f8c49a7d9b4a1e87f56d6faaf2b upstream.
In case that rate's antenna is wrong at the init stage, it's
very hard to say what went wrong. Add debug data to the already
existing WARN_ON_ONCE.
Signed-off-by: Gregory Greenman <gregory.greenman@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
61/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: pcie: pull out common rfkill IRQ handling code
Date: Tue, 25 Apr 2017 09:55:36 +0200
commit 3a6e168baa7097bcd747c1689cff509297c6d612 upstream.
There's no point in duplicating exactly the same code here
for legacy and MSI-X interrupts, so pull it out into a new
function to call in both places.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
62/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: pcie: add fake RF-kill to debugfs
Date: Tue, 25 Apr 2017 09:58:25 +0200
commit fa4de7f7c349d0fca751d1ad331c1fa8f528a47d upstream.
In order to debug "hardware" RF-kill flows, add a low-level hook to
allow changing the "hardware" RF-kill from debugfs.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
63/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: mvm: don't warn in queue sync on RF-kill
Date: Tue, 25 Apr 2017 10:21:18 +0200
commit 6ad0435991482107664f65b7ae3fd588f10149d4 upstream.
If we happen to be in or get into the queue sync when RF-kill
is asserted, we return from there and warn since there are
still queue sync notifications outstanding. These can't ever
come though, because we're in RF-kill, so don't WARN then.
While at it, also move the warning to the appropriate place,
if the request is not synchronous then we shouldn't warn, but
currently always will.
To make it fast, also trigger the waitq when on rfkill assert.
Fixes: 0636b938214c ("iwlwifi: mvm: implement driver RX queues sync command")
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
64/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: pcie: don't report RF-kill enabled while shutting down
Date: Tue, 25 Apr 2017 13:41:20 +0200
commit 326477e4858cd6b1e0e067ecf2d6a8252ef41994 upstream.
When toggling the RF-kill pin quickly in succession, the driver can
get rather confused because it might be in the process of shutting
down, expecting all commands to go through quickly due to rfkill,
but the transport already thinks the device is accessible again,
even though it previously shut it down. This leads to bugs, and I
even observed a kernel panic.
Avoid this by making the PCIe code only report that the radio is
enabled again after the higher layers actually decided to shut it
off.
This also pulls out this common RF-kill checking code into a common
function called by both transport generations and also moves it to
the direct method - in the internal helper we don't really care
about the RF-kill status anymore since we won't report it up until
the stop anyway.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
65/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: pcie: remove pointless debugfs parsing for csr file
Date: Tue, 25 Apr 2017 11:38:29 +0200
commit 302b5e9e7df00938720719d4371263e8e852e5ca upstream.
We don't actually care about the value at all, just making sure
that we can successfully parse a single integer value, but that's
entirely pointless - remove it.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
66/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: mvm: document status bits
Date: Tue, 25 Apr 2017 12:50:32 +0200
commit 87afe9b0f4af44443f88a29458fcebe56385d771 upstream.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
67/310 [
Author: Liad Kaufman
Email: liad.kaufman@intel.com
Subject: iwlwifi: mvm: support aggregations on A000 HW
Date: Wed, 5 Apr 2017 16:25:11 +0300
commit dd32162da4e5b3c9c81adf9a1f6e3a839a35d5f0 upstream.
On A000 HW, the SCD rdptr has only 8 bits allocated
for it, thus when checking if a queue is full, or
when checking if the SSN is equal to the TID's
next_reclaimed, A000 HW should trim the SSN.
Fix this by "normalizing" the SSN to wrap around
0xFF when comparing to the next_reclaimed on A000
HW.
Signed-off-by: Liad Kaufman <liad.kaufman@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
68/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: pcie: use kstrtou32_from_user()
Date: Tue, 25 Apr 2017 11:37:40 +0200
commit 078f11311f40007a836467e7ab0b311978fe4adb upstream.
Use kstrtou32_from_user() in debugfs instead of open-coding it.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
69/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: mvm: better link scan notification results length
Date: Wed, 26 Apr 2017 13:34:29 +0200
commit 550aba9b8dce109725a87cdcc8268f56dfd32af0 upstream.
Show the name of the member (scanned_channels) that provides the
length with some better markup.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
70/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: simplify data tracepoint
Date: Wed, 3 May 2017 12:53:22 +0200
commit 78c1acf35fcd528ff4c76057d5724ac00e0f7fff upstream.
There's no need to calculate the data_len outside of the tracepoint,
since it's always skb->len - hdr_len, which are both available inside.
Simplify the callers and move the calculation in.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
71/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: fix TX tracing for non-linear SKBs
Date: Wed, 3 May 2017 13:04:40 +0200
commit 8790fce4f696ed55195283d26685cc0edaea63a8 upstream.
When sending non-linear SKBs that should be included in the regular
TX tracing completely (and not be pushed into the tx_data tracing),
the (tracing) code didn't correctly take the fact that they were
non-linear into account and added only the skb head portion.
This probably never really triggered, since those frames we want
traced fully are most likely linear anyway, but the code gets easier
to understand and we lose an argument to the tracing function, so
overall fixing this is better.
Fixes: 206eea783385 ("iwlwifi: pcie: support frag SKBs")
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
72/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: pcie: fix command completion name debug
Date: Wed, 3 May 2017 12:16:48 +0200
commit d490e09784a9d0a63f831e5f1104b4826e666b0c upstream.
When the command name is printed on command completion, the wrong
group is used, leading to the wrong name being printed. Fix this
by using the group ID without inappropriately mangling it through
iwl_cmd_groupid() - it's already a u8. Also, while at it, use it
from the same place as the command ID, everything else is just
confusing.
Fixes: ab02165ccec4 ("iwlwifi: add wide firmware command infrastructure for TX")
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
73/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: mvm: docs: fix enum link, provide TX response link
Date: Tue, 2 May 2017 13:01:49 +0200
commit 7b7cab79b8e7f904b22312b83989b2ba785a700c upstream.
Fix the enum link by adding the missing & and provide the link
to the TX response documentation.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
74/310 [
Author: Liad Kaufman
Email: liad.kaufman@intel.com
Subject: iwlwifi: mvm: fix fw monitor 7000 HW recollecting
Date: Wed, 3 May 2017 18:47:46 +0300
commit 3e73148406c67615bbe8d166d2c22efc3995e305 upstream.
To stop and start the FW monitor in the 7000 HW
family we need to use a different bit, otherwise
after stopping it for the first time - it won't
get restarted. Use the correct bitmask.
Note: This fix is only for DRAM collection mode.
For other modes, an additional fix will be
needed.
Signed-off-by: Liad Kaufman <liad.kaufman@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
75/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: mvm: disentangle union in TX status struct
Date: Wed, 3 May 2017 21:56:04 +0200
commit a6a621934e2e041ad4a8b55ef273731794e936ed upstream.
This improves documentation, since kernel-doc can't deal with the
union well.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
76/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: mvm: add documentation for enum iwl_debug_cmds
Date: Thu, 4 May 2017 10:00:03 +0200
commit e6138c9ca59293052bae8d7e2db247ab3d0c3ee1 upstream.
Add kernel-doc documentation for enum iwl_debug_cmds, linking the
structures used by the commands.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
77/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: document transmit buffer bits better
Date: Thu, 4 May 2017 11:01:32 +0200
commit d98d6fb9f167978eea79c7379301963053c5319c upstream.
Properly document the transmit buffer bits using an enum and
kernel-doc documentation.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
78/310 [
Author: Luca Coelho
Email: luciano.coelho@intel.com
Subject: iwlwifi: remove useless iwl_free_nvm_data() function
Date: Wed, 3 May 2017 15:09:52 +0300
commit 1dad3e0a313c42f8ade19f6987aedb857c4d07d0 upstream.
This function just calls kfree(), so it only obscures the code without
bringing any benefits. Remove it.
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
79/310 [
Author: Luca Coelho
Email: luciano.coelho@intel.com
Subject: iwlwifi: mvm: fix nvm_data leak
Date: Wed, 3 May 2017 15:12:09 +0300
commit 946af0079cd260546d3773e7ff5409f49949371d upstream.
We allocate nvm_data in iwl_mvm_nvm_get_from_fw(). If something goes
wrong after the allocation (i.e. if no valid MAC address is valid), we
should free nvm_data before returning an error.
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
80/310 [
Author: Luca Coelho
Email: luciano.coelho@intel.com
Subject: iwlwifi: pcie: don't disable bh when handling FW errors
Date: Fri, 5 May 2017 17:55:24 +0300
commit ffd6fd45616672ee1ba122ea54d47fa8fe1dd8d8 upstream.
When we started using threaded irqs, all the opmode calls were changed
to be called with local_bh disabled. The reason for this was it was
that mac80211 needs that. When we are handling FW errors, mac80211 is
not involved, so we don't need it.
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
81/310 [
Author: Luca Coelho
Email: luciano.coelho@intel.com
Subject: iwlwifi: mvm: reset the HW before dumping if HW error is detected
Date: Fri, 5 May 2017 16:11:24 +0300
commit 6b54ebf73b3e5adc2cab3abc6cb37ca66fa74ae2 upstream.
If the hardware is stuck, we can't read any of the memory we need to
dump it, so we end up printing only 0xa5a5a5a5, which is useless.
To solve this, poke the hardware by triggering a reset and re-enabling
the clocks if we detect a HW error.
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
82/310 [
Author: Emmanuel Grumbach
Email: emmanuel.grumbach@intel.com
Subject: iwlwifi: mvm: don't mark TIDs that are not idle wrt BA as inactive
Date: Sun, 7 May 2017 13:31:55 +0300
commit 59df97f7223636399f425a5e76586218c48d791e upstream.
A TID may not have traffic but still have a BA agreement
active (or being setup / torn down) since a BA agreement
can be triggered by a debugfs hook.
Just avoid to consider such a TID as inactive to make the
logic safer.
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
83/310 [
Author: Emmanuel Grumbach
Email: emmanuel.grumbach@intel.com
Subject: iwlwifi: add a W/A for a scheduler hardware bug
Date: Sun, 7 May 2017 15:00:31 +0300
commit dcfbd67b4b8d5223d5362aac9af267387a32f568 upstream.
In case we need to move the scheduler write pointer by
steps of 0x40, 0x80 or 0xc0, the scheduler gets stuck.
This leads to hardware error interrupts with status:
0x5A5A5A5A or alike.
In order to work around this, detect in the transport
layer that we are going to hit this case and tell iwlmvm
to increment the sequence number of the packets. This
allows to keep the requirement that the WiFi sequence
number is in sync with the index in the scheduler Tx queue
and it also allows to avoid the problematic sequence.
This means that from time to time, we will start a queue
from ssn + 1, but that shouldn't be a problem since we
don't switch to new queues for AMPDU now that we have
DQA which allows to keep the same queue while toggling
the AMPDU state.
This bug has been fixed on 9000 devices and up.
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
84/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: pcie: make iwl_pcie_apm_stop_master() return void
Date: Fri, 5 May 2017 17:24:06 +0200
commit e8c8935efd7d47e8ae18067a898ee1a93dfbc5fc upstream.
Nothing ever checks the return value of iwl_pcie_apm_stop_master(),
so there's no point in it having one - make it return void.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
85/310 [
Author: Avraham Stern
Email: avraham.stern@intel.com
Subject: iwlwifi: mvm: set assoc_beacon_arrive_time
Date: Tue, 9 May 2017 16:40:01 +0300
commit b56697272564ce9d073ad9159d28d123f3dcae8b upstream.
When updating the mac context after association,
assoc_beacon_arrive_time is not being set, which causes the FW to
set a wrong TSF to the MAC.
Fix this by setting the assoc_beacon_arrive_time when updating the
mac context after association.
Signed-off-by: Avraham Stern <avraham.stern@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
86/310 [
Author: Emmanuel Grumbach
Email: emmanuel.grumbach@intel.com
Subject: iwlwifi: mvm: reset the fw_dump_desc pointer after ASSERT
Date: Wed, 10 May 2017 08:49:41 +0300
commit a509a248bb31ea013c4c2b6801297a2d82eecd43 upstream.
When we get an ASSERT, the fw_dump_desc pointer points to
iwl_mvm_dump_desc_assert which can't be freed since it is
a global. We still need to NULL'ify the pointer when we
call iwl_mvm_free_fw_dump_desc otherwise we will hit
int iwl_mvm_fw_dbg_collect_desc(struct iwl_mvm *mvm,
const struct iwl_mvm_dump_desc *desc,
const struct iwl_fw_dbg_trigger_tlv *trigger)
{
<snip>
if (WARN_ON(mvm->fw_dump_desc))
iwl_mvm_free_fw_dump_desc(mvm);
Fixes: b6eaa45aa18b ("iwlwifi: mvm: add the cause of the firmware dump in the dump")
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
87/310 [
Author: Luca Coelho
Email: luciano.coelho@intel.com
Subject: iwlwifi: mvm: document assoc_beacon_arrive_time
Date: Wed, 10 May 2017 11:24:58 +0300
commit a8d011446b4c62f5438b2a9724333c1efedfb26b upstream.
Document the assoc_beacon_arrive_time element in the iwl_mac_data_sta
struct.
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
88/310 [
Author: Luca Coelho
Email: luciano.coelho@intel.com
Subject: iwlwifi: mvm: print base HW address during init
Date: Tue, 9 May 2017 22:46:19 +0300
commit 4409e72b7113c891e4e28d432d4b459c02e88efb upstream.
It's sometimes hard to find out which HW address the iwlwifi device is
using, for instance when reading crouded sniffer logs. To make it
easier, print out an info level message with the HW address as soon as
we know it.
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
89/310 [
Author: Luca Coelho
Email: luciano.coelho@intel.com
Subject: iwlwifi: pcie: reduce unwanted noise in the logs
Date: Tue, 9 May 2017 23:47:18 +0300
commit d74a61fc6bed9698b10427a2424556f1cefb6135 upstream.
The driver prints "L1 Enabled - LTR Enabled" all the time as dev_info,
which is just useless noise in most cases. Convert this to
IWL_DEBUG_POWER() so we don't pollute the log unnecessarily but still
can get this info on demand.
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
90/310 [
Author: Emmanuel Grumbach
Email: emmanuel.grumbach@intel.com
Subject: iwlwifi: pcie: delete the Tx queue timer earlier upon firmware crash
Date: Wed, 10 May 2017 13:03:01 +0300
commit 7d75f32e09c80da8e7ac383e07fb2bbdd8df4d56 upstream.
When the firmware crashes, the transmit queues can't make
any progress. This is why we stop the counter that monitor
the transmit queues' activity.
The call that notifies the error to the op_mode may take
a bit of time, so stop the timer of the transmit queues
earlier.
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
91/310 [
Author: Chaya Rachel Ivgi
Email: chaya.rachel.ivgi@intel.com
Subject: iwlwifi: mvm: fix typo in CTDP_CMD_OPERATION_REPORT description
Date: Mon, 8 May 2017 15:14:01 +0300
commit 3b9449bb1df756cd16bfe50616392fb7caa1211d upstream.
Signed-off-by: Chaya Rachel Ivgi <chaya.rachel.ivgi@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
92/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: pcie: work around suspend/resume issue
Date: Tue, 9 May 2017 15:35:06 +0200
commit c00ee467b3bf73c9505b1ea308a263ae3c5aab5d upstream.
In some platforms, having the device enabled with certain radio
frontends causes the platform to not be able to resume properly
from suspend, regardless of the wakeup cause. This was traced to
a hardware issue with the integrated 9000-series A-step variant.
Set the right hardware bit to disable the problematic state.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
93/310 [
Author: Liad Kaufman
Email: liad.kaufman@intel.com
Subject: iwlwifi: mvm: support TX on MONITOR iface
Date: Mon, 15 May 2017 18:26:33 +0300
commit 6d759b02f4121595bf4212662e73c26573dab61a upstream.
When trying to TX through a monitor interface, the
conditions in iwl_mvm_tx_skb_non_sta() don't match
and the frame tries to go out from an usued TXQ.
Add a check for monitor iface, and use the AUX queue
in such a case.
In non-DQA mode the frame is sent through the
static-allocated queues anyway, so the problem is
in DQA mode only.
Signed-off-by: Liad Kaufman <liad.kaufman@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
94/310 [
Author: Haim Dreyfuss
Email: haim.dreyfuss@intel.com
Subject: iwlwifi: mvm: refactor geo init
Date: Thu, 30 Mar 2017 11:16:17 +0300
commit 7fe90e0e3d603844657e8361aa4686c6ee4a8c9d upstream.
We are going to add debugfs entry to retrieve the current geographic
profile being used in the FW. Currently the driver reads those tables
from the BIOS and passes them to the FW.
To prepare for this retrieving we want to store those
tables in the driver.
Signed-off-by: Haim Dreyfuss <haim.dreyfuss@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
95/310 [
Author: Haim Dreyfuss
Email: haim.dreyfuss@intel.com
Subject: iwlwifi: mvm: Add debugfs entry to retrieve SAR geographic profile
Date: Mon, 15 May 2017 14:27:21 +0300
commit e6ee06575bb71ae96d936b2279fc827b82f98353 upstream.
Add a debugfs entry to get a verbose description of the power settings
used in each band with the currently selected SAR geographic profile.
Signed-off-by: Haim Dreyfuss <haim.dreyfuss@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
96/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: mvm: remove some CamelCase from firmware API
Date: Tue, 16 May 2017 13:21:52 +0200
commit 1644be9189c962cfd064d6b21af16f26f219a146 upstream.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
97/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: mvm: fix various "Excess ... description" kernel-doc warnings
Date: Tue, 16 May 2017 13:28:53 +0200
commit 83b0319abc5c8bfb16c5fe3063a04de1402f9b21 upstream.
Fix various "Excess struct/union/enum/typedef member '...' description
in '...'" warnings from kernel-doc, mostly caused by typos.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
98/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: mvm: remove various unused command IDs/structs
Date: Tue, 16 May 2017 14:33:41 +0200
commit 40e07545d1bb9be2c37140a4d40df1339a4ed51d upstream.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
99/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: mvm: use __le16 even for reserved fields
Date: Tue, 16 May 2017 15:12:14 +0200
commit cecb43c7b5e68924a57e09bba9290907defc2308 upstream.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
100/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: mvm: add documentation for all command IDs
Date: Tue, 16 May 2017 15:14:19 +0200
commit 358631bf444547d476476cb90c8fc78962a81884 upstream.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
101/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: mvm: fix a bunch of kernel-doc warnings
Date: Tue, 16 May 2017 16:15:42 +0200
commit acf91dda3f64bedb4abc46d87b35d41c36a4a28d upstream.
Fix the kernel-doc, and remove some fields even the firmware doesn't
use in ToF, RX, scan, station and generic FW APIS.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
102/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: dvm: use macros for format strings
Date: Wed, 17 May 2017 13:45:29 +0200
commit 779e0513c76e21b62e2ef907f8cfc48f9f41f734 upstream.
Some static checkers (e.g. smatch) complain if a non-constant
format string is used, even if that's a static const variable.
Since there's no impact on code generation, just change those
format strings to be macros.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
103/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: pcie: only apply retention workaround on 9000-series A-step
Date: Wed, 10 May 2017 11:31:06 +0200
commit 565291c60a3592bd1b6683d2c848dd165a6a3e76 upstream.
Due to a hardware issue, certain power saving had to be
disabled. However, this issue was fixed in B-step, so the
workaround only needs to apply to A-step.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
104/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: pcie: fix 9000-series RF-kill interrupt propagation
Date: Thu, 18 May 2017 17:02:05 +0200
commit ae5bb2a62d96e52b138628e0cda4ebb377cbc456 upstream.
A hardware issue on 9000 series devices sometimes causes RF-kill
interrupts to not be propagated to the host properly if ASPM is
enabled. Work around this by setting the right hardware bit to
allow it to interrupt the host for this reason (rfkill).
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
105/310 [
Author: Sharon Dvir
Email: sharon.dvir@intel.com
Subject: iwlwifi: mvm: change sta_id to u8
Date: Sun, 21 May 2017 12:09:49 +0300
commit 806911da64404a6a6348c4840a47218c3bb64a3c upstream.
The sta_id variable is used as an index in an array, should be unsigned.
Found by Klocwork.
Fixes: 9f9af3d7d303 ("iwlwifi: mvm: re-aggregate shared queue after unsharing")
Signed-off-by: Sharon Dvir <sharon.dvir@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
106/310 [
Author: Luca Coelho
Email: luciano.coelho@intel.com
Subject: iwlwifi: mvm: simplify CHECK_MLME_TRIGGER macro
Date: Fri, 19 May 2017 15:06:29 +0300
commit 4c324a51b62079a43a4aa5024785ba542ff83ce3 upstream.
There's no reason to pass mvm and trig as parameters to the macro,
since it will be expanded inside the function itself. Also remove the
bogus buf parameter which doesn't exist and is not used.
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
107/310 [
Author: Tzipi Peres
Email: tzipi.peres@intel.com
Subject: iwlwifi: add the new a000_2ax series
Date: Mon, 22 May 2017 12:36:28 +0300
commit 175b87c692532ece6c4622628c8c9df726773236 upstream.
Add a new config struct for the new a000 2ax series and add
the five PCI ID for it.
Signed-off-by: Tzipi Peres <tzipi.peres@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
108/310 [
Author: Tzipi Peres
Email: tzipi.peres@intel.com
Subject: iwlwifi: add twelve new 9560 series PCI IDs
Date: Mon, 22 May 2017 16:16:52 +0300
commit 4e37b063ad9f902052903c579b6f291ba329104e upstream.
Add twelve new PCI IDs for the 9560 series.
Signed-off-by: Tzipi Peres <tzipi.peres@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
109/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: mvm: use proper CDB check in PHY context modify
Date: Fri, 26 May 2017 13:11:44 +0200
commit 91109f42d0ad0c0c282d1fa1257a1548977aa895 upstream.
When the firmware supports CDB, PHY contexts cannot be modified to
change their band, but need to be added/remove instead. Instead of
relying on iwl_mvm_has_new_tx_api(), check the right FW capa flag
IWL_UCODE_TLV_CAPA_BINDING_CDB_SUPPORT and remove the comment.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
110/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: pcie: improve "invalid queue" warning
Date: Fri, 26 May 2017 11:16:39 +0200
commit a395058eb61c888ac5624cccb40eaedf77c01472 upstream.
Print out both queue IDs to be able to see what went wrong.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
111/310 [
Author: Liad Kaufman
Email: liad.kaufman@intel.com
Subject: iwlwifi: mvm: support aggs of 64 frames in A000 family
Date: Sun, 28 May 2017 14:20:04 +0300
commit a58bb46855a019a204858cefd3e7d56f87f842f4 upstream.
A SCD bug was fixed in the A000 family, allowing to
support aggregations of 64 frames (rather than 63).
Signed-off-by: Liad Kaufman <liad.kaufman@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
112/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: pcie: improve debug in iwl_pcie_rx_handle_rb()
Date: Mon, 29 May 2017 12:15:45 +0200
commit 3bfdee768c09bac3ee3e4b3a6d3b75cdc19e489c upstream.
Print the queue for the existing debug message and add a new
debug message indicating where the RB ended.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
113/310 [
Author: Emmanuel Grumbach
Email: emmanuel.grumbach@intel.com
Subject: iwlwifi: mvm: change when the BT_COEX is sent
Date: Mon, 29 May 2017 14:01:06 +0300
commit b3de3ef48aa3fe066150243f07d1cc4e6fac2c80 upstream.
The BT_COEX command should not be sent to the INIT
firmware image starting from 8000 family.
The firmware team also requested to send the BT_COEX
command after the PHY_DB_CMD and the PHY_CFG_CMD.
While at it:
s/iwl_send_bt_init_conf/iwl_mvm_send_bt_init_conf/
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
114/310 [
Author: Liad Kaufman
Email: liad.kaufman@intel.com
Subject: iwlwifi: mvm: support multi tid ba notif
Date: Thu, 13 Apr 2017 17:10:33 +0300
commit cba46988c0813cd9e74d6625af32f7043780dac3 upstream.
When receiving a BA_NOTIF on new TX API, it can
contain BAs for several TIDs. Go over them and
reclaim TX for every TID.
Note that although the small API change, the API
version still isn't bumped forward, as this NIC
isn't still officially released.
Signed-off-by: Liad Kaufman <liad.kaufman@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
115/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: unify external & internal modparam names
Date: Tue, 30 May 2017 16:45:31 +0200
commit 3b37f4c99c93abf2cdde751a536190bde5a1283a upstream.
Where possible (all except for "11n_disable", which isn't valid in C)
rename the internal names for module parameters to be the same as the
externally visible names, to aid finding their use etc.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
116/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: pcie: make ctxt-info free idempotent
Date: Wed, 31 May 2017 13:15:18 +0200
commit 87fc030231b11a190f16d7162a141e2f162eae36 upstream.
By setting the pointers to NULL at the end, these functions
are made idempotent.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
117/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: pcie: warn if paging is already initialized during init
Date: Wed, 31 May 2017 13:19:10 +0200
commit f0fea2b728af737ec45d96a0279087a558ad9774 upstream.
This appears to happen in some cases, like when iwlmvm is unloaded and
loaded again without also unloading iwlwifi. Warn in this case and free
the paging data to be able to continue without causing corruption and
kernel crashes due to it (otherwise, paging data is overwritten, but
dram->paging_cnt gets to be twice as big as it should be, and then an
eventual free will crash.)
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
118/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: mvm: unconditionally stop device after init
Date: Wed, 31 May 2017 14:14:51 +0200
commit b092c9f25d45972cf401ad8bcfee2429bf189e2b upstream.
In commit b93b1fe3b532 ("iwlwifi: mvm: fix init_dbg flow to work
as expected"), the code was changed to make the stop conditional
on not having failed (and on not having init_dbg), which doesn't
make sense - we should stop the device regardless of failures.
Failure to do so is leading to the device being enabled when it
shouldn't be, and - if it gets re-enabled later - the new context
info code gets confused as paging data wasn't freed.
Remove the invalid error condition again.
Fixes: b93b1fe3b532 ("iwlwifi: mvm: fix init_dbg flow to work as expected")
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
119/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: mvm: fix deduplication start logic
Date: Wed, 7 Jun 2017 10:35:54 +0200
commit 92c4dca6f5fd3d29d8c1daf02e210dd48dc756ac upstream.
If the first frame on a given TID is received with seqno 0 and needed
to be retransmitted, we erroneously drop it because the deduplication
data is initialized to zero, and then comparing
if (unlikely(ieee80211_has_retry(hdr->frame_control) &&
dup_data->last_seq[tid] == hdr->seq_ctrl &&
dup_data->last_sub_frame[tid] >= sub_frame_idx))
return true;
will return in iwl_mvm_is_dup() since last_sub_frame is also set to
zero, and sub_frame_idx is usually zero since this only covers the
relatively rare case of A-MSDU.
Fix this by initializing the last_seq array to 0xffff, which is an
impossible value for hdr->seq_ctrl to have here because the lower
four bits are the fragment number, and fragments aren't handled in
this code but go to mac80211 instead.
Fixes: a571f5f635ef ("iwlwifi: mvm: add duplicate packet detection per rx queue")
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
120/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: mvm: rename iwl_shared_mem_cfg_v1 to the correct _v2
Date: Thu, 1 Jun 2017 09:06:11 +0200
commit b4f489857aba0e066847dfd01b980578bbf921c9 upstream.
This structure represents V2, V1 has the three last fields missing.
Rename it to be more accurate.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
121/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: create new subdirectory for FW interaction
Date: Thu, 1 Jun 2017 10:22:09 +0200
commit d962f9b1013b3209813b7b8038c2b9123a9626c4 upstream.
There's a lot of mvm code that really should be more generic
and part of the iwlwifi module. Start by making a place to
keep such code - in the new "fw" subdirectory - and already
move the firmware related header files there.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
122/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: move notification wait into fw/
Date: Thu, 1 Jun 2017 10:32:17 +0200
commit 9fca9d5c9745a18f65a380dfc61cd07ee874c7e0 upstream.
Move the notification wait code into the new fw interaction directory.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
123/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: move configuration into sub-directory
Date: Thu, 1 Jun 2017 10:38:04 +0200
commit 650aaed3b30158f74c1f051a653da4f6eb3db205 upstream.
Since we now support 8 device families, move their configuration
files into a new subdirectory "cfg".
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
124/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: mvm: remove version 2 of paging command
Date: Thu, 1 Jun 2017 11:37:25 +0200
commit 4f2210ee8498faa3499a927f0a40027ff972ec3a upstream.
Only a000-series devices were going to use this, but actually
initialize using the context info, which includes paging, so
this code is never invoked; remove it.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
125/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: mvm: quietly accept non-sta assoc response frames
Date: Mon, 12 Jun 2017 11:24:06 +0200
commit e6835942a7414ef4fd07b59851ad1fca7560dec1 upstream.
When hostapd adds a station, it does so before sending the association
response frame, so that it can indicate the correct status code in the
response.
However, when this then fails, or the association response already is
a reject for some other reason, then there's no station entry and thus
no per-station management queue to send the response on and it must be
sent on the probe response queue. The code should therefore not warn.
In theory, we could check and warn if the status code is success, but
that seems excessive, so just relax the check to allow any association
response frames.
Fixes: 3ee0f0e23e4f ("iwlwifi: mvm: fix DQA AP mode station assumption")
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
126/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: pcie: add MSI-X interrupt tracing
Date: Tue, 13 Jun 2017 21:19:47 +0200
commit c42ff65da8167fa486bfcb7ea290cbdee8350aa7 upstream.
We have tracing for both pre-ICT and ICT interrupts, including all
the data read there. Extend the tracing to MSI-X interrupts.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
127/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: mvm: properly enable IP header checksumming
Date: Mon, 19 Jun 2017 13:24:49 +0200
commit 275896ab5fbffcbe9d148ec054efe1af3fb4a29d upstream.
The code was intended to enable IP header checksumming on AMSDUs, but
failed to really do so because the A-MSDU bit was set after all the
checksumming bits, and thus checking for A-MSDU could never be true.
Fix this by setting the A-MSDU bit before the offload bits.
Fixes: 5e6a98dc4863 ("iwlwifi: mvm: enable TCP/UDP checksum support for 9000 family")
Reported-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
128/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: mvm: fix mac80211 queue tracking
Date: Mon, 19 Jun 2017 22:31:56 +0200
commit 37e474acc9b6f645d92d8dc35014ff1baed3b1bc upstream.
In the driver, we track which hardware queue is associated with
which mac80211 "hw_queue", in order to be able to stop and wake
it. When moving these bitmaps out of the queue_info structures,
the type of the bitmap was erroneously changed from u32 to u8,
presumably in order to save memory.
Turns out that u32 isn't needed, because the highest queue we
can ever tell mac80211 is always < 16, but a u16 definitely is
needed, queues >=8 do happen.
While at it, throw a BUILD_BUG_ON() into the place where we set
the limit (mvm->first_agg_queue) and a warning when it actually
gets put into the bitmap.
The consequence of this bug is that full HW queues associated
with such a too-high mac80211 number never stop higher layer
queues when full, and thus would simply drop all packets that
couldn't be enqueued to the hardware queue.
Fixes: 34e10860ae8d ("iwlwifi: mvm: remove references to queue_info in new TX path")
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
129/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: mvm: map cab_queue to real one earlier
Date: Mon, 19 Jun 2017 22:48:32 +0200
commit b0129db4f0669eb5d7c79031ac54e746f470e45a upstream.
There may be a difference between the mac80211 vif->cab_queue and
mvmvif->cab_queue, particularly with TVQM. Make the code map this
earlier, instead of first returning the mac80211 one again from
iwl_mvm_get_ctrl_vif_queue().
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
130/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: mvm: fix mac80211's hw_queue in DQA mode
Date: Mon, 19 Jun 2017 23:26:55 +0200
commit 32026e8f709ff29bd00cce58036da8381eaa7592 upstream.
When in non-DQA mode, mac80211 actually gets a pretty much perfect
idea (in vif->hw_queue/cab_queue) of which queues we're using. But
in DQA mode, this isn't true - nonetheless, we were adding all the
queues, even the ones stations are using, to the queue allocation
bitmap.
Fix this, we should only add the queues we really are using in DQA
mode:
* IWL_MVM_OFFCHANNEL_QUEUE, as we use this in both modes
* mvm->aux_queue, as we use this in both modes - mac80211
never really knows about it but we use it as a cookie
internally, so can't reuse it
* possibly the GCAST queue (cab_queue)
* all the "queues" we told mac80211 about we were using on each
interface (vif->hw_queue), these are entirely virtual in this
mode
Also add back the failure now when we can't allocate any more of
these - now virtual - queues; this was skipped in DQA mode and
would lead to having multiple ACs or even interfaces use the same
queue number in mac80211 (10, since that's the limit), which would
stop far too many queues if stopped.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
131/310 [
Author: Emmanuel Grumbach
Email: emmanuel.grumbach@intel.com
Subject: iwlwifi: mvm: don't send fetch the TID from a non-QoS packet in TSO
Date: Tue, 20 Jun 2017 16:05:30 +0300
commit 4f555e602b42826b3d79081c9ef8b8e8fe29fc49 upstream.
Getting the TID of a packet before we know it is a QoS data
packet isn't a good idea. Delay the TID retrieval until
we know the packet is a QoS data packet.
Fixes: bb81bb68f472 ("iwlwifi: mvm: add Tx A-MSDU inside A-MPDU")
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
132/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: pcie: reconfigure MSI-X HW on resume
Date: Tue, 20 Jun 2017 12:51:30 +0200
commit 52848a79b9d2d6773160221e7ea1e1500954de84 upstream.
When going into suspend, the HW configuration for MSI-X will
likely be lost. As a consequence, after waking up, all IRQ
causes will be mapped to interrupt 0, and as a consequence we
don't notice the interrupt because in most cases this is an
interrupt for a queue, and getting it doesn't read the other
cause registers.
Fixes: 2e5d4a8f61dc ("iwlwifi: pcie: Add new configuration to enable MSIX")
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
133/310 [
Author: Emmanuel Grumbach
Email: emmanuel.grumbach@intel.com
Subject: iwlwifi: mvm: don't mess the SNAP header in TSO for non-QoS packets
Date: Wed, 21 Jun 2017 09:40:15 +0300
commit 6344436e9d3f4fb4878c12169477d4beb5b825ea upstream.
When we get large sends on non-QoS association, we had a
bug that mangled the SNAP header. Fix that.
Fixes: a6d5e32f247c ("iwlwifi: mvm: send large SKBs to the transport")
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
134/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: mvm: remove DQA non-STA client mode special case
Date: Thu, 22 Jun 2017 13:06:21 +0200
commit 6e46496302df7e63158fa1476cf9a30d5ee59dee upstream.
When we get a non-STA frame to transmit in client mode, we try to use
the IWL_MVM_DQA_BSS_CLIENT_QUEUE queue (queue #4). However, at this
point, the queue might not be allocated at all, causing warnings. The
scenario on which this happened was a race condition between mac80211
and our queue allocation work:
* mac80211 sends auth
* we stop mac80211 queues to allocate a hw queue
* authentication is aborted
* we allocate HW queue and start mac80211 queues
* mac80211 removes station
* mac80211 hands us the auth frame from the pending queue
At this point, since mac80211 has already removed the station, we try
to transmit the frame through this special non-station case on queue
4 anyway.
In order to really use it properly, we'd have to again go through the
hw queue allocation work, and attach it to a station, etc. In this
case that isn't possible (there's no station anymore), but if this
special case were needed, then we'd have to do it this way.
However, the special case is documented to exist for TDLS, but can't
trigger there because the TDLS setup frames etc. are normal to-DS
frames going to the peer through the AP. Testing also confirms that
this code path isn't triggered in TDLS.
Therefore, remove the code path to avoid using an unused queue. The
erroneous frame described above will still be transmitted on the AUX
queue, but arguably that's a mac80211 problem, which will eventually
be fixed by moving everything there to TXQs.
Fixes: e3118ad74d7e ("iwlwifi: mvm: support tdls in dqa mode")
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
135/310 [
Author: Liad Kaufman
Email: liad.kaufman@intel.com
Subject: iwlwifi: mvm: update rx statistics cmd api
Date: Thu, 18 May 2017 18:00:49 +0300
commit 678d9b6dddea3869e78996a94ade8dc6d1b5fe68 upstream.
The API has changed - update the code.
Signed-off-by: Liad Kaufman <liad.kaufman@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
136/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: mvm: quietly accept non-sta disassoc frames
Date: Mon, 12 Jun 2017 11:24:06 +0200
commit 51da3d8b94485a8397ae7af3bfdb65feaf582202 upstream.
When a station that's not associated sends a data frame (e.g. an NDP)
hostapd will respond with a disassoc frame, telling it that it's not
associated. The station might also not be authenticated, in which case
there will not be a station entry for it, and as a result we need to
accept such frames without a station.
Fixes: 3ee0f0e23e4f ("iwlwifi: mvm: fix DQA AP mode station assumption")
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
137/310 [
Author: Emmanuel Grumbach
Email: emmanuel.grumbach@intel.com
Subject: iwlwifi: pcie: propagate iwl_pcie_apm_init's status
Date: Tue, 27 Jun 2017 12:23:56 +0300
commit 52b6e168ae579483d71621e4d64d6491e8973e91 upstream.
iwl_pcie_apm_init can fail so make sure that the caller
takes the status into account.
Also, ensure that the error that iwl_pcie_apm_init can emit
will appear in the kernel log by default.
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
138/310 [
Author: Emmanuel Grumbach
Email: emmanuel.grumbach@intel.com
Subject: iwlwifi: pcie: wait longer after device reset
Date: Tue, 27 Jun 2017 12:29:26 +0300
commit 099a628bf6d9bb1d66cc0383f97cea19cfa4aacc upstream.
The newest devices need a longer time to reset because of
their more complex hardware. Wait 5ms after device reset.
Consolidate all the places that reset the device in the
PCIe transport to avoid future bugs.
While at it, unify the flow to use set_bit instead of full
write as requested by the hardware designers.
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
139/310 [
Author: Luca Coelho
Email: luciano.coelho@intel.com
Subject: iwlwifi: bump MAX API for 8000/9000/A000 to 33
Date: Fri, 19 May 2017 15:12:07 +0300
commit ba320dd61ec91bbe98730f3407a486facc174d63 upstream.
Bump the maximum API supported by these device families to 33.
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
140/310 [
Author: Mordechai Goodstein
Email: mordechay.goodstein@intel.com
Subject: iwlwifi: pcie: fix unused txq NULL pointer dereference
Date: Sun, 11 Jun 2017 18:00:36 +0300
commit f6eac740a9b6f3737a969bad82931633519a1cc5 upstream.
Before TVQM, all TX queues were allocated straight at init.
With TVQM, queues are allocated on demand and hence we need
to check if a queue exists before dereferencing it.
Fixes: 66128fa08806 ("iwlwifi: move to TVQM mode")
Signed-off-by: Mordechai Goodstein <mordechay.goodstein@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
141/310 [
Author: Emmanuel Grumbach
Email: emmanuel.grumbach@intel.com
Subject: iwlwifi: mvm: fix a NULL pointer dereference of error in recovery
Date: Mon, 12 Jun 2017 15:10:09 +0300
commit 61dd8a8a6a0c3cbfb6b02ab652c4f4efb93f3d79 upstream.
Sometimes, we can have an firmware crash while trying to
recover from a previous firmware problem.
When that happens, lots of things can go wrong. For example
the stations don't get added properly to mvm->fw_id_to_mac_id.
Mac80211 tries to stop A-MPDU upon reconfig but in case of
a firmware crash we will bail out fairly early and in the
end, we won't delete the A-MPDU Rx timeout.
When that timer expired after a double firmware crash,
we end up dereferencing mvm->fw_id_to_mac_id[sta_id]
which is NULL.
Fixes: 10b2b2019d81 ("iwlwifi: mvm: add infrastructure for tracking BA session in driver")
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
142/310 [
Author: Dan Carpenter
Email: dan.carpenter@oracle.com
Subject: iwlwifi: missing error code in iwl_trans_pcie_alloc()
Date: Wed, 14 Jun 2017 13:44:51 +0300
commit 2388bd7b133504fa0991f483db66fad3a0de8694 upstream.
We don't set the error code here so we end up returning ERR_PTR(0) which
is NULL. The caller doesn't expect that so it results in a NULL
dereference.
Fixes: 2e5d4a8f61dc ("iwlwifi: pcie: Add new configuration to enable MSIX")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
143/310 [
Author: Emmanuel Grumbach
Email: emmanuel.grumbach@intel.com
Subject: iwlwifi: fix tracing when tx only is enabled
Date: Wed, 14 Jun 2017 12:21:05 +0300
commit 5462bcd8c9dc7e7ff2dd54c3f1bb5a9a729f7a73 upstream.
iwl_trace_data is somewhat confusing. It returns a bool
that tells if the payload of the skb should be added to
the tx_data event. If it returns false, then the payload
of the skb is added to the tx event.
The purpose is to be able to start tracing with
-e iwlwifi
and record non-data packets only which saves bandwidth.
Since EAPOLs are important, seldom and not real data
packet (despite being WiFi data packets), they are
included in tx event and thus iwl_trace_data returns false
on those. This last part was buggy, and because of that,
all the data packets were included in the tx event.
Fix that.
Fixes: 0c4cb7314d15 ("iwlwifi: tracing: decouple from mac80211")
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
144/310 [
Author: Luca Coelho
Email: luciano.coelho@intel.com
Subject: iwlwifi: mvm: handle IBSS probe_queue in a few missing places
Date: Tue, 20 Jun 2017 13:40:03 +0300
commit 7b758a111819006ba64dd23aa016d42a20ba8557 upstream.
When IBSS was implemented for DQA, we missid a few places where it
should be handled in the same way as AP.
Fixes: ee48b72211f8 ("iwlwifi: mvm: support ibss in dqa mode")
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
145/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: mvm: defer setting IWL_MVM_STATUS_IN_HW_RESTART
Date: Fri, 30 Jun 2017 10:48:28 +0200
commit bf8b286f86fcc66d138fd992acfa37839340218d upstream.
A hardware/firmware error may happen at any point in time. In
particular, it might happen while mac80211 is in the middle of
a flow. We observed the following situation:
* mac80211 is in authentication flow, in ieee80211_prep_connection()
* iwlwifi firmware crashes, but no error can be reported at this
precise point (mostly because the driver method is void, but even
if it wasn't we'd just shift to a race condition)
* mac80211 continues the flow, trying to add the AP station
* iwlwifi has already set its internal restart flag, and so thinks
that adding the station is part of the restart and already set up,
so it uses the information that's supposed to already be in the
struct
This can happen with any flow in mac80211 and with any information
we try to preserve across hardware restarts.
To fix this, only set a new HW_RESTART_REQUESTED flag and translate
that to IN_HW_RESTART once mac80211 actually starts the restart by
calling our start() method. As a consequence, any mac80211 flow in
progress at the time of the restart will properly finish (certainly
with errors), before the restart is attempted.
This fixes https://bugzilla.kernel.org/show_bug.cgi?id=195299.
Reported-by: djagoo <dev@djagoo.io>
Reported-by: Łukasz Siudut <lsiudut@gmail.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
146/310 [
Author: Emmanuel Grumbach
Email: emmanuel.grumbach@intel.com
Subject: iwlwifi: mvm: fix TCP CSUM offload with WEP and A000 series
Date: Wed, 21 Jun 2017 10:35:09 +0300
commit 3f25bb4b7f7718d391321608f947840a79934568 upstream.
When we enabled TCP checksum offload, we need to tell the
firmware where the IP header starts. If we have an IV, then
we need to adapt that value since the IV is placed before
the SNAP header. This is true only for cases where the
driver adds the IV, not the WEP case in which the IV is
added by the firmware itself.
On A000 devices series, the IV is always added by the
device.
Fix this.
Fixes: 5e6a98dc4863 ("iwlwifi: mvm: enable TCP/UDP checksum support for 9000 family")
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
147/310 [
Author: Emmanuel Grumbach
Email: emmanuel.grumbach@intel.com
Subject: iwlwifi: add TLV for MLME offload firmware capability
Date: Thu, 29 Jun 2017 16:18:21 +0300
commit 58877d7428b0747134cb65096d51dfabdc62000d upstream.
The firmware now adds a new DWORD for the MLME offload's
capability even on firmware versions that don't support
it.
Add the TLV bit to avoid getting the print:
capa flags index 3 larger than supported by driver.
This fixes the bugzilla:
https://bugzilla.kernel.org/show_bug.cgi?id=196195
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
148/310 [
Author: Emmanuel Grumbach
Email: emmanuel.grumbach@intel.com
Subject: iwlwifi: split the regulatory rules when the bandwidth flags require it
Date: Mon, 3 Jul 2017 16:25:33 +0300
commit 92b0f7b26b313b23cc9bef0bd406607f4566c0c0 upstream.
When we create a regulatory domain out of an MCC
notification, we need to make sure that all the channels
in the rule have the exact same properties.
The current code mixes channel 36 and 40 although 36 can be
a control channel with HT40+ (36, 40) whereas 40 can't be
a control channel with HT40+ since (40, 44) is invalid.
Because of that, cfg80211 would allow to connect in 40MHz
to APs that are configured to channel 40 HT40+ and that made
our firmware assert.
Fix this by checking the bandwidth flags before taking the
decision if the rule should be split.
This fixes https://bugzilla.kernel.org/show_bug.cgi?id=195299 partly.
Fixes: af45a9003f1f ("iwlwifi: create regdomain from mcc_update_cmd response")
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
149/310 [
Author: Gregory Greenman
Email: gregory.greenman@intel.com
Subject: iwlwifi: mvm: set A-MPDU bit upon empty BA notification from FW
Date: Thu, 6 Jul 2017 05:07:33 +0300
commit 9465c3f8ba67cff697c0529de5a03cc5e1509d41 upstream.
The bit was set only if there was at least one reclaimed frame in an
aggregation. It's important to set it also in the case that the whole
A-MPDU was lost, otherwise rate scaling statistics will not be
updated correctly. Thus, set it always in ba notification handler.
This fixes a throughput degradation of about 20% in certain scenarios
with multiple streams on 11ac.
Signed-off-by: Gregory Greenman <gregory.greenman@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
150/310 [
Author: Gregory Greenman
Email: gregory.greenman@intel.com
Subject: iwlwifi: mvm: rs: fix TLC statistics collection
Date: Thu, 6 Jul 2017 05:27:55 +0300
commit 87f55616f81bf6c82f0e94cf4661151399d2a7b6 upstream.
Statistics should be collected according to the actual rate a
frame/aggregation was transmitted and not according to the initial rate
from the last LQ command (these rates are different if the frames were
retransmitted at a lower rate from the rate scale table).
This is needed to remove throughput degradation.
Signed-off-by: Gregory Greenman <gregory.greenman@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
151/310 [
Author: Haim Dreyfuss
Email: haim.dreyfuss@intel.com
Subject: iwlwifi: fix fw_pre_next_step to apply also for C step
Date: Sun, 9 Jul 2017 15:51:44 +0300
commit e9fb92e13d5e743a6ff13d3206c0f9e5e8cbc1f4 upstream.
C step NICs should use the latest FW (currently B step).
Correct the condition to make C step NICs advanced its default FW name
to the latest one.
Also rename _next_ to b_or_c to avoid confusion.
Fixes: 5da083d1922c ("iwlwifi: add support for 9000 HW B-step NICs")
Signed-off-by: Haim Dreyfuss <haim.dreyfuss@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
152/310 [
Author: Naftali Goldstein
Email: naftali.goldstein@intel.com
Subject: iwlwifi: mvm: set the RTS_MIMO_PROT bit in flag mask when sending sta to fw
Date: Thu, 27 Jul 2017 04:53:55 +0300
commit 8addabf8e6e299f790038fdc92ddceaaf76adab8 upstream.
Set the STA_FLG_RTS_MIMO_PROT bit in station_flags_msk of the add sta
command, so that when smps mode changes, the FW will know about it.
In particular, in AP mode, clients are added upon receival of an auth
request, at which point there's no knowledge of the client's smps mode.
When the assoc request arrives, the add_sta command is resent to modify
the station parameters. At this point the driver knows the smps mode,
but since the corresponding bit in the mask is not set, the fw doesn't
update this field so there's no rts protection for mimo.
Fixes: 5bc5aaad407c ("iwlwifi: mvm: set up initial SMPS/NSS station info")
Signed-off-by: Naftali Goldstein <naftali.goldstein@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
153/310 [
Author: Tzipi Peres
Email: tzipi.peres@intel.com
Subject: iwlwifi: add the new 9000 series PCI IDs
Date: Sun, 30 Jul 2017 13:29:30 +0300
commit 558f479f687aca6a336e13309424a7c3afd32721 upstream.
Add two PCI IDs for the 9160 series.
Add five PCI IDs for the 9260 series.
Add one PCI IDs for the 9270 series.
Add seven PCI IDs for the 9460 series.
Add five PCI IDs for the 9560 series.
Signed-off-by: Tzipi Peres <tzipi.peres@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
154/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: refactor out paging code
Date: Thu, 1 Jun 2017 12:10:32 +0200
commit 235acb1894321f91c771464d90c4010a9bef90bb upstream.
Refactor the paging code from mvm to be used by different opmodes.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
155/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: refactor shared mem parsing
Date: Thu, 1 Jun 2017 14:44:40 +0200
commit d0b813fcdc22d091f8c9eee3a1484dca162667c8 upstream.
Refactor the shared memory command parsing into common code.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
156/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: track current firmware image in common code
Date: Fri, 2 Jun 2017 11:56:58 +0200
commit 702e975d6a60027968423a4fdaaf0831da87b73b upstream.
Track the current firmware image in the common code instead
of in the opmode so that later patches can access it there
in a common way.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
157/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: refactor firmware debug code
Date: Thu, 1 Jun 2017 16:03:19 +0200
commit 7174beb60c53209c6e98c9cee20efdee97ef880f upstream.
Split out the firmware debug code to be more general, so that it
can be used by different subdrivers.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
158/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: reorganize firmware API
Date: Fri, 2 Jun 2017 15:15:53 +0200
commit d172a5eff629127c048272e5d44e8b9f9cd30eac upstream.
Apart from DVM, all firmware uses the same base API, and there's
code outside iwlmvm that needs to interact with it. Reflect this
in the source better and reorganize the firmware API to a new
fw/api/ directory.
While at it, split the already pretty large fw-api.h file into a
number of smaller files, going from almost 3k lines in there to
a maximum number of lines less than 1k.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
159/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: fw api: fix various kernel-doc warnings
Date: Tue, 6 Jun 2017 12:19:22 +0200
commit b37ca87f93e475eb41aa6dfd3675e5bffdf67c0a upstream.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
160/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: mvm: add and use iwl_mvm_has_unified_ucode()
Date: Thu, 8 Jun 2017 09:18:22 +0200
commit 7d6222e27013a18f36e54f40a66e209a859fc1a8 upstream.
This may need to be refined later, but for now using this,
even with the TODO, is better than checking "has new TX API".
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
161/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: mvm: check family instead of new TX API for workarounds
Date: Thu, 8 Jun 2017 09:42:28 +0200
commit c8c017a6ff933ff88f3abf7d924e717284e218af upstream.
There are two workarounds because RSS is currently broken on A000
devices due to firmware issues, but checking for the new TX API
doesn't really make sense. Check the hardware family instead of
the new TX API - there's nothing better to check since it's just
a temporary workaround.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
162/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: mvm: byte-swap constant instead of variable
Date: Wed, 7 Jun 2017 09:31:13 +0200
commit c67a3d05024fad00ac160e868967a1e711073993 upstream.
Convention has it to byte-swap the constant instead of the variable
when doing bit checks. This also generates better code when the swap
is actually needed, since the constant can be swapped at compile-time.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
163/310 [
Author: Seraphime Kirkovski
Email: kirkseraph@gmail.com
Subject: iwlwifi: dvm: remove unused defines
Date: Wed, 7 Jun 2017 01:20:27 +0200
commit 57bcc81d52a264847944f6e2b812588fbab09e5d upstream.
Those constants have been unused for quite some time now.
Signed-off-by: Seraphime Kirkovski <kirkseraph@gmail.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
164/310 [
Author: Luca Coelho
Email: luciano.coelho@intel.com
Subject: iwlwifi: mvm: refactor beacon template command code
Date: Thu, 1 Jun 2017 15:19:45 +0300
commit 09856582bffba3b4a3f6286d53be16c2a569c3ef upstream.
We currently support 3 different versions of the beacon template
command and the code does some tricks in order to reuse what is
possible across these versions. But it is a bit complicated to read
and soon there will be one more variation that the driver needs
implement, which would complicate it even further.
Refactor the way we send beacon template commands, which increases the
code size a bit, but makes it much easier to read.
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
165/310 [
Author: Emmanuel Grumbach
Email: emmanuel.grumbach@intel.com
Subject: iwlwifi: mvm: fix the FIFO numbers in A000 devices
Date: Tue, 13 Jun 2017 13:18:48 +0300
commit cf6c6ea352faadb15d1373d890bf857080b218a4 upstream.
The FIFO numbering is different in A000 devices. This
means that we routed BE packets to BK FIFO. Fix this.
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
166/310 [
Author: Sharon Dvir
Email: sharon.dvir@intel.com
Subject: iwlwifi: mvm: fix uninitialized var while waiting for queues to empty
Date: Mon, 12 Jun 2017 11:40:33 +0300
commit bec9522aa57421984cb4e1e87eee195bae1ccb25 upstream.
While waiting for queues to empty,
If txq_id == IWL_MVM_INVALID_QUEUE for all txq_ids,
ret is used uninitialized.
Found by Klocwork.
Fixes: d6d517b7730c ("iwlwifi: add wait for tx queue empty")
Signed-off-by: Sharon Dvir <sharon.dvir@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
167/310 [
Author: Emmanuel Grumbach
Email: emmanuel.grumbach@intel.com
Subject: iwlwifi: pcie: fix A-MSDU on gen2 devices
Date: Wed, 14 Jun 2017 15:25:39 +0300
commit c1b68c194ed72a5df55e7344b19c50ccb357f690 upstream.
The return status check of iwl_pcie_gen2_build_amsdu
was buggy. Fix it.
Fixes: 6ffe5de35b05 ("iwlwifi: pcie: add AMSDU to gen2")
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
168/310 [
Author: Liad Kaufman
Email: liad.kaufman@intel.com
Subject: iwlwifi: mvm: support fw reading empty OTP
Date: Mon, 5 Jun 2017 16:39:39 +0300
commit f6aa45f67aaa03bd294040508218bc72c5958ad6 upstream.
If the OTP is empty, the NVM_GET_INFO command returns
with flags' bit(0) on. This means the FW returns the
default values for working with. This is allowed, so
use this returned data.
Fixes: e9e1ba3dbf00 ("iwlwifi: mvm: support getting nvm data from firmware")
Signed-off-by: Liad Kaufman <liad.kaufman@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
169/310 [
Author: Mordechai Goodstein
Email: mordechay.goodstein@intel.com
Subject: iwlwifi: implement fseq version mismatch warning
Date: Tue, 13 Jun 2017 17:17:27 +0300
commit f2e66c8df0d0f10c70ed7f5e14a939714e9ee6a9 upstream.
During init, the FW checks whether the FSEQ value matches what it
expects. If it doesn't match, we print a warning to let integrators
clearly know that something is wrong. This can happen if another core
(i.e. not WiFi) has updated the FSEQ version. This notification is
only sent by the FW in production, for development firmwares, an
assertion is triggered instead.
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Mordechai Goodstein <mordechay.goodstein@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
170/310 [
Author: "Zamir, Roee"
Email: roee.zamir@intel.com
Subject: iwlwifi: mvm: add compile-time option to disable EBS
Date: Wed, 14 Jun 2017 13:53:44 +0300
commit 6667e6589a02df8f27f8eebfabd8891c9d74152c upstream.
For testing purposes, we may want to disable EBS scans at compile time.
Signed-off-by: Roee Zamir <roee.zamir@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
171/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: pcie: rename iwl_trans_check_hw_rf_kill() to pcie
Date: Tue, 20 Jun 2017 15:10:31 +0200
commit 9ad8fd0b4a24e64c34130bdfed95bfbf382c8e59 upstream.
Rename this function to the more appropriate iwl_pcie_check_hw_rf_kill()
since it's only a function in the pcie code and cannot be called from
any other place.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
172/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: mvm: require AP_LINK_PS for TVQM
Date: Tue, 20 Jun 2017 15:18:43 +0200
commit 960f864b7b628f67bb57aeb071066fd2fe092bba upstream.
Since the TXQ timer freeze code will not properly handle the
large TVQM queue numbers, warn if we get into that code when
we have TVQM. Also, just to catch this earlier, warn if the
firmware image doesn't support AP_LINK_PS but we're running
on HW using TVQM.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
173/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: mvm: simplify bufferable MMPDU check
Date: Tue, 20 Jun 2017 11:22:07 +0200
commit 7426ee33a29b3215357986378c77bb9949518154 upstream.
There's no need to spell out the cases when we can just
use ieee80211_is_bufferable_mmpdu().
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
174/310 [
Author: Luca Coelho
Email: luciano.coelho@intel.com
Subject: iwlwifi: mvm: rename p2p-specific sta functions to include p2p in the names
Date: Thu, 22 Jun 2017 16:00:25 +0300
commit d197358b755b56bd12c01044b6373986590878f6 upstream.
The iwl_mvm_add_bcast_sta() and the iwl_mvm_rm_bcast_sta() functions
are only called in P2P flows. Add _p2p_ to the function names to make
this explicit.
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
175/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: mvm: remove non-DQA mode
Date: Mon, 19 Jun 2017 23:50:31 +0200
commit c8f54701bdbfcc78ebbc0d10f47a8a1b803f101f upstream.
All the firmware versions the driver supports enable DQA, and thus
the only way to get non-DQA mode is to modify the source. Remove
this mode to simplify the code.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
176/310 [
Author: Emmanuel Grumbach
Email: emmanuel.grumbach@intel.com
Subject: iwlwifi: mvm: don't retake the pointer to skb's CB
Date: Sun, 25 Jun 2017 10:38:12 +0300
commit d20e30af7e65811955af5bc2a268ae75cd14e99e upstream.
We already have a such a pointer.
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
177/310 [
Author: Christophe Jaillet
Email: christophe.jaillet@wanadoo.fr
Subject: iwlwifi: mvm: Fix a memory leak in an error handling path in 'iwl_mvm_sar_get_wgds_table()'
Date: Fri, 14 Jul 2017 12:06:59 +0200
commit aae9d563230f974f2daa7135f911f021b2bba9e6 upstream.
We should free 'wgds.pointer' here as done a few lines above in another
error handling path.
It was allocated within 'acpi_evaluate_object()'.
Fixes: c52030a01ccc ("iwlwifi: mvm: add GEO_TX_POWER_LIMIT cmd for geographic tx power table")
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
178/310 [
Author: Avraham Stern
Email: avraham.stern@intel.com
Subject: iwlwifi: mvm: start mac queues when deferred tx frames are purged
Date: Wed, 26 Jul 2017 15:08:45 +0300
commit 7e39a00d593133ca8fcd3eef0409685e7c895ee6 upstream.
In AP mode, if a station is removed just as it is adding a new stream,
the queue in question will remain stopped and no more TX will happen
in this queue, leading to connection failures and other problems.
This is because under DQA, when tx is deferred because a queue needs
to be allocated, the mac queue for that TID is stopped until the new
stream is added. If at this point the station that this stream
belongs to is removed, all the deferred tx frames are purged, but the
mac queue is not restarted. As a result, all following tx on this
queue will not be transmitted.
Fix this by starting the relevant mac queues when the deferred tx
frames are purged.
Fixes: 24afba7690e4 ("iwlwifi: mvm: support bss dynamic alloc/dealloc of queues")
Signed-off-by: Avraham Stern <avraham.stern@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
179/310 [
Author: Emmanuel Grumbach
Email: emmanuel.grumbach@intel.com
Subject: iwlwifi: mvm: don't WARN when a legit race happens in A-MPDU
Date: Thu, 27 Jul 2017 15:34:12 +0300
commit a600852a9d00be08c539307a42729fd46b0a654e upstream.
When we start an Rx A-MPDU session, we first get the AddBA
request, then we send an ADD_STA command to the firmware
that will reply with a BAID which is a hardware resource
that tracks the BA session.
This BAID will appear on each and every frame that we get
from the firwmare until the A-MPDU session is torn down.
In the Rx path, we look at this BAID to manage the
reordering buffer.
This flow is inherently racy since the hardware will start
to put the BAID in the frames it receives even if the
firmware hasn't sent the response to the ADD_STA command.
This basically means that the driver can get frames with
a valid BAID that it doesn't know yet.
When that happens, the driver used to WARN.
Fix this by simply not WARN in this case. When the driver
will know abou the BAID, it will initialise the relevant
states and the next frame with a valid BAID will refresh
them.
Fixes: b915c10174fb ("iwlwifi: mvm: add reorder buffer per queue")
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
180/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: mvm: remove useless condition in LED code
Date: Thu, 29 Jun 2017 09:14:45 +0200
commit 4aa234eeec0aa9414637bd193f0745cf91bb60ef upstream.
If the module parameter is set to disable the LED, we leave the
initialization routine before setting the LEDS_INIT_COMPLETE
status bit. Therefore, there's no need to check the parameter
again on exit, just the status check is sufficient.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
181/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: mvm: use firmware LED command where applicable
Date: Wed, 28 Jun 2017 16:19:49 +0200
commit 7089ae634c50544b29b31faf1a751e8765c8de3b upstream.
On devices starting from 8000 series, the host can no longer toggle
the LED through the CSR_LED_REG register, but must do it via the
firmware instead. Add support for this. Note that this means that
the LED cannot be turned on while the firmware is off, so using an
arbitrary LED trigger may not work as expected.
Fixes: 503ab8c56ca0 ("iwlwifi: Add 8000 HW family support")
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
182/310 [
Author: Bhumika Goyal
Email: bhumirks@gmail.com
Subject: iwlwifi: mvm: add const to thermal_cooling_device_ops structure
Date: Wed, 21 Jun 2017 14:10:42 +0530
commit b1a1efc57665f7c70e2051e0531837cb1985f11b upstream.
Declare thermal_cooling_device_ops structure as const as it is only passed
as an argument to the function thermal_cooling_device_register and this
argument is of type const. So, declare the structure as const.
Signed-off-by: Bhumika Goyal <bhumirks@gmail.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
183/310 [
Author: Chaya Rachel Ivgi
Email: chaya.rachel.ivgi@intel.com
Subject: iwlwifi: mvm: add debugfs to force CT-kill
Date: Tue, 27 Jun 2017 14:13:02 +0300
commit 61d8c626468a8193a5e890e9f633edc10aa05c1e upstream.
CT-kill is a thermal-based "RF-kill", which disables the NIC
completely if the temperature gets too high, in order to avoid damage.
Add a debugfs entry to simulate high temperatures, in order to test
CT-kill flows in the driver without having to physically heat the
device up.
Signed-off-by: Chaya Rachel Ivgi <chaya.rachel.ivgi@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
184/310 [
Author: Sharon Dvir
Email: sharon.dvir@intel.com
Subject: iwlwifi: change functions that can only return 0 to void
Date: Mon, 12 Jun 2017 11:28:21 +0300
commit a4380b4eb3da772473efb38bfc1aaad8ddad2b84 upstream.
Change iwl_set_ucode_api_flags(), iwl_set_ucode_capabilities() to be void.
No need to check returned values.
Found by Klocwork.
Signed-off-by: Sharon Dvir <sharon.dvir@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
185/310 [
Author: Luca Coelho
Email: luciano.coelho@intel.com
Subject: iwlwifi: fix a few instances of misaligned kerneldoc parameters
Date: Wed, 28 Jun 2017 14:08:53 +0300
commit cbeb58ef36a01f190a1b61e52a60d4264d420c6b upstream.
There are a few places where we don't have a space between the * and
the @ in the parameter description. Also, in one case, the @ had
trailing space before the parameter name.
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
186/310 [
Author: Tzipi Peres
Email: tzipi.peres@intel.com
Subject: iwlwifi: add support of FPGA fw
Date: Wed, 14 Jun 2017 10:02:47 +0300
commit f6586b69b29ef2e4f3c606c3d2da731a5ff4f16c upstream.
Load FW according to NIC type,
taking into account simulation, if exists.
This is determined by a prph register.
Signed-off-by: Tzipi Peres <tzipi.peres@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
187/310 [
Author: Liad Kaufman
Email: liad.kaufman@intel.com
Subject: iwlwifi: fix a000 RF_ID define
Date: Sun, 2 Jul 2017 10:32:34 +0300
commit 36ae4f3aafe7768d00510a18e5ad17a55a4849a5 upstream.
One of the defines has a wrong value.
Fixes: 1afb0ae42174 ("iwlwifi: allow combining different phy images with mac images")
Signed-off-by: Liad Kaufman <liad.kaufman@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
188/310 [
Author: Golan Ben-Ami
Email: golan.ben.ami@intel.com
Subject: iwlwifi: dump smem configuration when firmware crashes
Date: Sun, 25 Jun 2017 17:23:23 +0300
commit ce27f005c9e39f2e4081b0a8f6a5f395fc8eaa61 upstream.
Add the smem configuration to the fw data dump, once
the firmware crashes. This is useful mainly for later
parsing of the smem.
Signed-off-by: Golan Ben-Ami <golan.ben.ami@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
189/310 [
Author: Shaul Triebitz
Email: shaul.triebitz@intel.com
Subject: iwlwifi: mvm: move a000 device NVM retrieval to a common place
Date: Thu, 22 Jun 2017 17:09:08 +0300
commit c135cb564c6d4d7758fa68e5d0b37021398f4057 upstream.
Getting the NVM data in a000 devices should be shared
across operation mode.
Signed-off-by: Shaul Triebitz <shaul.triebitz@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
190/310 [
Author: Chaya Rachel Ivgi
Email: chaya.rachel.ivgi@intel.com
Subject: iwlwifi: mvm: set the default cTDP budget
Date: Sun, 9 Jul 2017 16:35:14 +0300
commit 944eafc255500102b69940f425eb073bfab933db upstream.
In case there is no value received from BIOS
for cTDP budget, the default should be 2000 mWatt.
Signed-off-by: Chaya Rachel Ivgi <chaya.rachel.ivgi@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
191/310 [
Author: Naftali Goldstein
Email: naftali.goldstein@intel.com
Subject: iwlwifi: mvm: send delba upon rx ba session timeout
Date: Tue, 11 Jul 2017 10:07:32 +0300
commit 20fc690f38d17b8f961101a477a9aa0841fb6e20 upstream.
When an RX block-ack session times out, the firmware, which offloads
RX reordering but not the BA session negotiation, stops the session
but doesn't send a DELBA. This causes the the session to remain
active in the remote device, so no more BA sessions will be
established, causing a severe throughput degradation due to the lack
of aggregation.
Use the new ieee80211_rx_ba_timer_expired API when the ba session timer
expires, since this will tear down the ba session and also send a delba.
The previous API used is intended for drivers that offload the
addba/delba negotiation, but not the rx reordering, while our driver
does the opposite.
This patch depends on "mac80211: add api to start ba session timer
expired flow".
Signed-off-by: Naftali Goldstein <naftali.goldstein@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
192/310 [
Author: Haim Dreyfuss
Email: haim.dreyfuss@intel.com
Subject: iwlwifi: mvm: support new beacon template command
Date: Mon, 12 Jun 2017 14:59:02 +0300
commit 6ca33f8bae01bd3f1949287a0339c3e6f9e96aca upstream.
Support a new version of the beacon template command. This replaces v8
of the command, which was missing the rate code. Also, export rate
decision logic to a separate function.
Signed-off-by: Haim Dreyfuss <haim.dreyfuss@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
193/310 [
Author: Matt Chen
Email: matt.chen@intel.com
Subject: iwlwifi: mvm: don't send CTDP commands via debugfs if not supported
Date: Fri, 23 Jun 2017 17:50:18 +0800
commit 0bef1b83d35566e9bc757469c823c126862a65d3 upstream.
Fix this issue if it is not supported by the firmware.
Fixes: 00f481bd895a ("iwlwifi: mvm: add ctdp operations to debugfs")
Signed-off-by: Matt Chen <matt.chen@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
194/310 [
Author: Shaul Triebitz
Email: shaul.triebitz@intel.com
Subject: iwlwifi: mvm: add station before allocating a queue
Date: Mon, 10 Jul 2017 19:58:10 +0300
commit 732d06e9d9cf96c39cd1c0cd16472930a5583bb7 upstream.
One of the queue config params is the associated station id.
Hence the FW must know about the station prior to the queue allocation.
In a000 devices, allocating a queue without a valid station
results with assert 0x2B00.
In FW restart flow the queues are allocated before
adding the station so first add the station.
Signed-off-by: Shaul Triebitz <shaul.triebitz@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
195/310 [
Author: Emmanuel Grumbach
Email: emmanuel.grumbach@intel.com
Subject: iwlwifi: pcie: don't init a Tx queue with an SSN > size of the queue
Date: Thu, 13 Jul 2017 09:49:32 +0300
commit 39fff7599397e1c9fdf54093f1f4c3146066c24b upstream.
The TVQM tells us the initial write pointer for a queue,
but that write pointer is in WiFi sequence number unit
and not in TFD index unit. Which means that the write
pointer in the TVQM's response can be bigger than the
Tx queue ring size.
Fix that by modulo'ing the write pointer from the TVQM
with the Tx queue size.
Fixes: 66128fa08806 ("iwlwifi: move to TVQM mode")
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
196/310 [
Author: Golan Ben-Ami
Email: golan.ben.ami@intel.com
Subject: iwlwifi: fix nmi triggering from host
Date: Wed, 28 Jun 2017 13:03:58 +0300
commit f4ca70ef931fc7191d6de2feedffb81eccec1982 upstream.
Although nmi was triggered fine till now, it appears
that the driver didn't write the exact correct values
to the correct addresses for each HW.
Fix the nmi triggering by setting the correct addresses
and values.
Fixes: 4c9706dc2f29 ("iwlwifi: update nmi register")
Signed-off-by: Golan Ben-Ami <golan.ben.ami@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
197/310 [
Author: Luca Coelho
Email: luciano.coelho@intel.com
Subject: iwlwifi: remove references to unsupported HW
Date: Mon, 17 Jul 2017 09:15:34 +0300
commit fb70d49f2afec87fc570852c2251ffd3117c7373 upstream.
There are still some references to 3945 and 4965 HW, which were never
supported in iwlwifi. These references were inherited from a previous
project and are irrelevant here. Additionally, remove some irrelevant
references to 5100 HW. Remove all these.
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
198/310 [
Author: Emmanuel Grumbach
Email: emmanuel.grumbach@intel.com
Subject: iwlwifi: pcie: free the TSO page when a Tx queue is unmapped on A000 devices
Date: Sun, 16 Jul 2017 12:45:12 +0300
commit 9bb3d5a003b1740a8252c59f6c82dd75b3c0fe83 upstream.
When we unmap a non-empty Tx queue, we need to free the
pages that we allocated for the headers in TSO flows.
This code existed for the 9000 device family, but somehow
it got left out when the new Tx path for the A000 devices
was written.
Fixes: 2b0c5946d9ed ("iwlwifi: pcie: introduce a000 TX queues management")
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
199/310 [
Author: Emmanuel Grumbach
Email: emmanuel.grumbach@intel.com
Subject: iwlwifi: mvm: fix the coex firmware API
Date: Sun, 23 Jul 2017 12:53:46 +0300
commit 88c5f476bac964eb96e751b004f5684c90629eab upstream.
The firmware API defined in the header files didn't match
the structure that are actually passed by the firmware.
The impact could be a decision for MIMO in Tx or Rx in
coex scenarios.
Fixes: 430a3bbafdc7 ("iwlwifi: mvm: BT Coex - new API")
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
200/310 [
Author: Emmanuel Grumbach
Email: emmanuel.grumbach@intel.com
Subject: iwlwifi: mvm: remove the corunning support
Date: Sun, 16 Jul 2017 16:22:08 +0300
commit 64511df45cbeec02670a83b666ff584dd1d767a2 upstream.
The corunning block was supposed to help in coex scenarios.
It required the driver to configure the firmware based on
the coupling between the two antennas of the devices.
This was never in use and the configuration sent by the
driver has always been blank.
Remove all that code.
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
201/310 [
Author: Luca Coelho
Email: luciano.coelho@intel.com
Subject: iwlwifi: mvm: consider RFKILL during INIT as success
Date: Mon, 24 Jul 2017 14:47:52 +0300
commit 00e0c6c8fe8833acfebebf0af53b48a965084fd4 upstream.
There's no need to differentiate an INIT that ended early because of
RFKILL from one that succeded. Additionally, if INIT fails later,
during calibration, due to RFKILL, we can just return success and
continue as if we were already in RFKILL to start with.
Remove this unnecessary differentiation and do some other small
clean-ups while at it.
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
202/310 [
Author: Luca Coelho
Email: luciano.coelho@intel.com
Subject: iwlwifi: call iwl_remove_notification from iwl_wait_notification
Date: Mon, 24 Jul 2017 16:04:47 +0300
commit d98d94952ab8421909159e6a7e4a9c8ad2204753 upstream.
The iwl_wait_notification() function removes the wait entry from the
list. To make it clearer that it's doing the same thing as
iwl_remove_notification(), call the latter instead of having duplicate
code.
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
203/310 [
Author: Emmanuel Grumbach
Email: emmanuel.grumbach@intel.com
Subject: iwlwifi: mvm: support new Coex firmware API
Date: Sun, 23 Jul 2017 13:59:47 +0300
commit fbfe378fe4e86fd3ff5ca491448da78c26a940ea upstream.
The firmware now adds more information about time sharing
with the Bluetooth core.
Adapt the API structures and add the new fields in the
debugfs hooks.
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
204/310 [
Author: Emmanuel Grumbach
Email: emmanuel.grumbach@intel.com
Subject: iwlwifi: pcie: support short Tx queues for A000 device family
Date: Sun, 16 Jul 2017 12:28:05 +0300
commit 4ecab5616023e742b70493cf0e90fc97e828d353 upstream.
This allows to modify TFD_TX_CMD_SLOTS to a power of 2
which is smaller than 256.
Note that we still need to set values to wrap at 256
into the scheduler's write pointer, but all the rest of
the code can use shorter transmit queues.
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
205/310 [
Author: Emmanuel Grumbach
Email: emmanuel.grumbach@intel.com
Subject: iwlwifi: mvm: add command name for FRAME_RELEASE
Date: Thu, 27 Jul 2017 09:40:16 +0300
commit 3e73aa3bf96619b51c80c73f06512f07fb2b5659 upstream.
This name was missing in the list.
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
206/310 [
Author: Luca Coelho
Email: luciano.coelho@intel.com
Subject: iwlwifi: mvm: group all dummy SAR function declarations together
Date: Wed, 26 Jul 2017 15:20:18 +0300
commit 18f1755db781165bcda6b3c8d93b909af96bb5ab upstream.
We have some of the SAR dummy functions when ACPI is not set declared
in mvm.h and some declared in fw.c. Group them all together in fw.c
for consistency and to avoid static/non-static issues.
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
207/310 [
Author: Luca Coelho
Email: luciano.coelho@intel.com
Subject: iwlwifi: mvm: use mvmsta consistently in rs.c
Date: Tue, 1 Aug 2017 09:01:34 +0300
commit 7ccb498ca86c3700f391131b7c5eda9318b3b7db upstream.
We use mvmsta for the sta->drv_priv in mvm, but in rs.c we have a
bunch of instances using sta_priv, which is probably due to it being
copied from dvm. Change all occurrences to mvmsta for consistency
with the rest of the driver
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
208/310 [
Author: Emmanuel Grumbach
Email: emmanuel.grumbach@intel.com
Subject: iwlwifi: mvm: update the firmware API in TX
Date: Wed, 2 Aug 2017 09:29:33 +0300
commit f9cd3e0871b54e70d3ecfa89b76b2e9a7ac172af upstream.
The firmware team is now re-using a bit that hasn't been
used for a few generations. Re-use for TX_ON_AIR drop.
This bit will be set by the firmware to indicate that
a frame in an A-MPDU was dropped but not because of the
already mapped reasons.
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
209/310 [
Author: Avraham Stern
Email: avraham.stern@intel.com
Subject: iwlwifi: mvm: remove session protection to allow channel switch
Date: Wed, 2 Aug 2017 12:13:20 +0300
commit 3edfb5f44b942f04b4fbbddb24d8866bbfb5d1a4 upstream.
If a time event is already scheduled when trying to schedule one for
channel switch, the code assumes the channel switch is already
scheduled and no further action is required.
However, it is possible that the scheduled time event is actually
for session protection (e.g. when the first beacon after association
contains the CSA IE). In this case the channel switch will not be
scheduled which will finally lead to disconnection.
Fix this by removing the old time event and schduling a new one for
the channel switch.
Signed-off-by: Avraham Stern <avraham.stern@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
210/310 [
Author: Emmanuel Grumbach
Email: emmanuel.grumbach@intel.com
Subject: iwlwifi: mvm: don't send BAR on flushed frames
Date: Sun, 6 Aug 2017 13:19:05 +0300
commit 114db230d35442e6d3382adc8ac34c944b5cd0eb upstream.
When we flush a queue, the packets will have a 'failed'
status but we shouldn't send a BAR. This check was missing.
Because of that, when we got an ampdu_action with
IEEE80211_AMPDU_TX_STOP_FLUSH, we started the following
ping pong with the firmware:
1) Set the station as 'draining'
2) Get a failed Tx status (DRAINED)
3) Send a BAR because of the failed Tx status
(loop of 2 and 3)
This loop wasn't endless since the BAR isn't sent on a
queue that would trigger a "nested" BAR.
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
211/310 [
Author: Luca Coelho
Email: luciano.coelho@intel.com
Subject: iwlwifi: move BT_MBOX_PRINT macro to common header
Date: Sun, 6 Aug 2017 11:06:44 +0300
commit d91c3fd0ceba90ed66949fccc856b1e8119a9ccd upstream.
Move the BT_MBOX_PRINT() macro from mvm/debugfs.c to fw/api/coex.h so
it can be reused and remove duplicate definition of BT_MBOX_MSG(),
keeping only the one already in coex.h.
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
212/310 [
Author: João Paulo Rechi Vita
Email: jprvita@gmail.com
Subject: iwlwifi: Demote messages about fw flags size to info
Date: Thu, 3 Aug 2017 07:47:28 -0700
commit 5f5537ac3f0f7bd527d332aa166a009be833dfae upstream.
These messages are not reporting a real error, just the fact that the
firmware knows about more flags than the driver.
Currently these messages are presented to the user during boot if there
is no bootsplash covering the console, even when booting the kernel with
"quiet".
Demoting it to the warn level helps having a clean boot process.
Signed-off-by: João Paulo Rechi Vita <jprvita@endlessm.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
213/310 [
Author: Ilan Peer
Email: ilan.peer@intel.com
Subject: iwlwifi: mvm: Fix channel switch in case of count <= 1
Date: Tue, 8 Aug 2017 14:56:58 +0300
commit f5d8f50f271d1f80c2afd7eada1c91a863c87a06 upstream.
The code did not consider the case that the channel switch counter
is <= 1, which would result with an inaccurate calculation of the
time event apply time.
As the specification states that in case of counter == 0 the switch
occurs at any time after the reception the frame, and for counter == 1
the switch would happens before the next TBTT, schedule the time
event immediately.
Signed-off-by: Ilan Peer <ilan.peer@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
214/310 [
Author: Tzipi Peres
Email: tzipi.peres@intel.com
Subject: iwlwifi: distinguish different RF modules in A000 devices
Date: Tue, 25 Jul 2017 13:04:46 +0300
commit 5f19d6dd811b1bd4ceb0823d22ec00bbc479e379 upstream.
Newer versions of A000 devices come with two diffenent RF modules.
The PCI_ID, the subsystem ID and the RF ID are identical in these two cases,
so we need to differentiate them by using the CSR_HW_RF_ID register-
in order to load the appropriate firmware.
Signed-off-by: Tzipi Peres <tzipi.peres@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
215/310 [
Author: Luca Coelho
Email: luciano.coelho@intel.com
Subject: iwlwifi: update channel flags parser
Date: Wed, 16 Aug 2017 10:46:52 +0300
commit b823cf3bae8111341212e698b94ab7293e7fb9f9 upstream.
There are some new flags in the channel flags that we don't know
about. Also, the "WIDE" flag is very confusing, because it actually
means 20MHz bandwidth, which is not very wide.
Add the new flags and rename the confusing one.
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
216/310 [
Author: Gregory Greenman
Email: gregory.greenman@intel.com
Subject: iwlwifi: mvm: change open and close criteria of a BA session
Date: Tue, 15 Aug 2017 12:27:01 +0300
commit 482e48440a0e0a6260d026b92de99034ac4d7b52 upstream.
Tx BA session should be started according to the current throughput
without any dependence on the internal rate scaling state. The criteria
for opening a BA session will be 10 frames per second.
Sending frequent del BAs can cause inter-op issues with some APs. We'll
not close a BA session until we receive an explicit del BA from the
peer.
Signed-off-by: Gregory Greenman <gregory.greenman@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
217/310 [
Author: Luca Coelho
Email: luciano.coelho@intel.com
Subject: iwlwifi: add workaround to disable wide channels in 5GHz
Date: Tue, 15 Aug 2017 20:48:41 +0300
commit 01a9c948a09348950515bf2abb6113ed83e696d8 upstream.
The OTP in some SKUs have erroneously allowed 40MHz and 80MHz channels
in the 5.2GHz band. The firmware has been modified to not allow this
in those SKUs, so the driver needs to do the same otherwise the
firmware will assert when we try to use it.
Cc: stable@vger.kernel.org
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
218/310 [
Author: Luca Coelho
Email: luciano.coelho@intel.com
Subject: iwlwifi: fw: fix lar_enabled endian problem in iwl_fw_get_nvm
Date: Tue, 15 Aug 2017 23:12:39 +0300
commit 8a0d53ce10053ce39b9512a054ab4c0bef2e2cc3 upstream.
We read the regulatory.lar_enabled field in iwl_fw_get_nvm() and store
it in nvm->lar_enabled, taking care of endianness. But then later we
read it again to pass the value to iwl_init_sbands() without handling
endianness. To solve this, simply reuse nvm->lar_enabled when calling
that function.
Fixes: e9e1ba3dbf00 ("iwlwifi: mvm: support getting nvm data from firmware")
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
219/310 [
Author: Luca Coelho
Email: luciano.coelho@intel.com
Subject: iwlwifi: mvm: remove useless argument in iwl_nvm_init()
Date: Tue, 15 Aug 2017 18:46:44 +0300
commit 5bd1d2c1ea9d0f8ca7ad0457c3a24fb91c9ca756 upstream.
We always call iwl_nvm_init() with read_nvm_from_nic == true, so this
argument is useless. Remove it.
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
220/310 [
Author: Luca Coelho
Email: luciano.coelho@intel.com
Subject: iwlwifi: mvm: remove useless check for mvm->cfg in iwl_parse_nvm_section()
Date: Tue, 15 Aug 2017 19:24:59 +0300
commit ee4fe54024f071976120dce71aefe056dfab4eb7 upstream.
At this point we have already copied the cfg pointer to mvm and we
have been dereferencing this pointer many times before, so it will
never be NULL or we would have crashed. Remove the useless check.
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
221/310 [
Author: Luca Coelho
Email: luciano.coelho@intel.com
Subject: iwlwifi: use big-endian for the hw section of the nvm
Date: Thu, 17 Aug 2017 18:51:56 +0300
commit 8fe34b060a4b11be35ffd9383acdd0bc7bee72e2 upstream.
Unlike the other sections of the NVM, the hw section is in big-endian.
To read a value from it, we had to cast it to __be16. Fix that by
using __be16 * for the entire section.
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
222/310 [
Author: Luca Coelho
Email: luciano.coelho@intel.com
Subject: iwlwifi: pcie: move rx workqueue initialization to iwl_trans_pcie_alloc()
Date: Tue, 22 Aug 2017 10:37:29 +0300
commit 10a54d8196d11f6cc0db2f71249f93854cb9fe55 upstream.
Work queues cannot be allocated when a mutex is held because the mutex
may be in use and that would make it sleep. Doing so generates the
following splat with 4.13+:
[ 19.513298] ======================================================
[ 19.513429] WARNING: possible circular locking dependency detected
[ 19.513557] 4.13.0-rc5+ #6 Not tainted
[ 19.513638] ------------------------------------------------------
[ 19.513767] cpuhp/0/12 is trying to acquire lock:
[ 19.513867] (&tz->lock){+.+.+.}, at: [<ffffffff924afebb>] thermal_zone_get_temp+0x5b/0xb0
[ 19.514047]
[ 19.514047] but task is already holding lock:
[ 19.514166] (cpuhp_state){+.+.+.}, at: [<ffffffff91cc4baa>] cpuhp_thread_fun+0x3a/0x210
[ 19.514338]
[ 19.514338] which lock already depends on the new lock.
This lock dependency already existed with previous kernel versions,
but it was not detected until commit 49dfe2a67797 ("cpuhotplug: Link
lock stacks for hotplug callbacks") was introduced.
Reported-by: David Weinehall <david.weinehall@intel.com>
Reported-by: Jiri Kosina <jikos@kernel.org>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
223/310 [
Author: Liad Kaufman
Email: liad.kaufman@intel.com
Subject: iwlwifi: fix long debug print
Date: Sun, 20 Aug 2017 18:10:12 +0300
commit 075d8a75daedec14f2337c2881186aabd8fa4fda upstream.
There is a debug print that sometimes reaches over
110 chars, thus generating a warning in those cases.
Split the print into two to prevent these cases.
Fixes: 92b0f7b26b31 ("iwlwifi: split the regulatory rules when the bandwidth flags require it")
Signed-off-by: Liad Kaufman <liad.kaufman@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
224/310 [
Author: David Spinadel
Email: david.spinadel@intel.com
Subject: iwlwifi: mvm: Avoid deferring non bufferable frames
Date: Thu, 17 Aug 2017 17:28:22 +0300
commit eb045e6e0389eabfd704dd7a76d8b2a892970e85 upstream.
Use bcast station for all non bufferable frames on AP and AD-HOC.
The host is no longer aware of STAs PS status because of buffer
station offload, so we can't rely on mac80211 to toggle on
IEEE80211_TX_CTL_NO_PS_BUFFER bit.
A possible issue with buffering such frames, beside the obvious spec
violation, is when a station disconnects while in PS but the AP isn't
aware of that. In such scenarios the AP won't be able to send probe
responses or auth frames so the STA won't be able to reconnect and
the AP will have a queue hang.
Fixes: 3e56eadfb6a1 ("iwlwifi: mvm: implement AP/GO uAPSD support")
Signed-off-by: David Spinadel <david.spinadel@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
225/310 [
Author: Emmanuel Grumbach
Email: emmanuel.grumbach@intel.com
Subject: iwlwifi: mvm: bump API to 34 for 8000 and up
Date: Mon, 26 Jun 2017 18:33:59 +0300
commit d7a5b3e9e42ee95190742fef0d617bbde4f74d80 upstream.
These devices support -34.ucode, so load it.
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
226/310 [
Author: Luca Coelho
Email: luciano.coelho@intel.com
Subject: iwlwifi: mvm: only send LEDS_CMD when the FW supports it
Date: Thu, 7 Sep 2017 10:51:52 +0300
commit 2eabc84d2f8e4f36d3719eeb6a330e10c46c8da7 upstream.
The LEDS_CMD command is only supported in some newer FW versions
(e.g. iwlwifi-8000C-31.ucode), so we can't send it to older versions
(such as iwlwifi-8000C-27.ucode).
To fix this, check for a new bit in the FW capabilities TLV that tells
when the command is supported.
Note that the current version of -31.ucode in linux-firmware.git
(31.532993.0) does not have this capability bit set, so the LED won't
work, even though this version should support it. But we will update
this firmware soon, so it won't be a problem anymore.
Fixes: 7089ae634c50 ("iwlwifi: mvm: use firmware LED command where applicable")
Reported-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
227/310 [
Author: Matt Chen
Email: matt.chen@intel.com
Subject: iwlwifi: mvm: fix wowlan resume failed to load INIT ucode
Date: Mon, 28 Aug 2017 14:57:54 +0800
commit 59cd827f26019ac790b2f34cbad478037f51c570 upstream.
If we set disconnect on wowlan and run suspend/resume, will run
into:
...snipped
iwlwifi 0000:01:00.0: Failed to load firmware chunk!
iwlwifi 0000:01:00.0: Could not load the [0] uCode section
iwlwifi 0000:01:00.0: Failed to start INIT ucode: -110
iwlwifi 0000:01:00.0: Failed to run INIT ucode: -110
iwlwifi 0000:01:00.0: Failed to start RT ucode: -110
It is because we still keep IWL_MVM_STATUS_IN_HW_RESTART in
__iwl_mvm_resume. When mac80211 starts the device as
__iwl_mvm_mac_start(), we will miss iwl_mvm_restart_cleanup(mvm).
Signed-off-by: Matt Chen <matt.chen@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
228/310 [
Author: David Spinadel
Email: david.spinadel@intel.com
Subject: iwlwifi: mvm: Flush non STA TX queues
Date: Tue, 29 Aug 2017 13:56:02 +0300
commit 6110d9e5bdd15c4e60fb67f330fbf74681e7daf7 upstream.
When starting wowlan mac80211 requests flush w/o vif
and we ignore this request. As a result some packets
stay stuck in the queue and it may end up with a queue
hang.
Allow the driver to flush queues even if station isn't
specified.
Signed-off-by: David Spinadel <david.spinadel@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
229/310 [
Author: Avraham Stern
Email: avraham.stern@intel.com
Subject: iwlwifi: mvm: send all non-bufferable frames on the probe queue
Date: Thu, 31 Aug 2017 16:27:06 +0300
commit 0fe8bed6e37c259b85d123ef9667f972305c9d6b upstream.
AP interfaces now send all non-bufferable frames using the broadcast
station. Thus allow them to use the probe queue and don't warn about
it.
Fixes: eb045e6e0389 ("iwlwifi: mvm: Avoid deferring non bufferable frames")
Signed-off-by: Avraham Stern <avraham.stern@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
230/310 [
Author: Naftali Goldstein
Email: naftali.goldstein@intel.com
Subject: iwlwifi: mvm: change state when queueing agg start work
Date: Mon, 28 Aug 2017 11:51:05 +0300
commit bd800e41a3de5c7e56b2fd27088bdaf5e228d227 upstream.
Add a new state to enum iwl_mvm_agg_state, which is used between
queueing the work that starts tx aggregations and actually starting that
work (changing to state IWL_AGG_STARTING).
This solves a race where ieee80211_start_tx_ba_session is called a
second time, before the work queued by the first run has a chance to
change the agg_state. In this case the second call to
ieee80211_start_tx_ba_session returns an error, and the fallback is to
abort the ba session start.
Fixes: 482e48440a0e ("iwlwifi: mvm: change open and close criteria of a BA session")
Signed-off-by: Naftali Goldstein <naftali.goldstein@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
231/310 [
Author: Avraham Stern
Email: avraham.stern@intel.com
Subject: iwlwifi: mvm: wake the correct mac80211 queue
Date: Sun, 3 Sep 2017 16:04:38 +0300
commit 8458e48ac7ad86a5ab7f3d1a8cacd9205a9a97ce upstream.
iwl_mvm_start_mac_queues() takes a bitmap of the queues to wake.
When deferred tx is purged, set the bit of the hw_queue so
the correct queue will be waken up.
Fixes: 7e39a00d5931 ("iwlwifi: mvm: start mac queues when deferred tx frames are purged")
Signed-off-by: Avraham Stern <avraham.stern@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
232/310 [
Author: Luca Coelho
Email: luciano.coelho@intel.com
Subject: iwlwifi: mvm: handle FIF_ALLMULTI when setting multicast addresses
Date: Fri, 1 Sep 2017 18:57:35 +0300
commit 61e7d91bcf7725b9fcd9cbfc5fa0e0f84f19e6de upstream.
We were ignoring the FIF_ALLMULTI flag when setting the multicast
addresses with MCAST_FILTER_CMD. Check if this flag is set and enable
pass_all accordingly. We also need to set the count to 0 if pass_all
is enable so we don't pass addresses to the firmware when not needed
(as doing so causes an assert).
This fixes https://bugzilla.kernel.org/show_bug.cgi?id=196741
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
233/310 [
Author: Luca Coelho
Email: luciano.coelho@intel.com
Subject: iwlwifi: mvm: initialize status in iwl_mvm_add_int_sta_common()
Date: Sat, 2 Sep 2017 11:05:22 +0300
commit 3f497de997c7ed34ad8a90b64f1ca53a41d428b4 upstream.
We always need to initialize the status argument to the success case
before calling iwl_mvm_send_cmd_status() or
iwl_mvm_send_cmd_pdu_status() (which calls the former) otherwise we
may get an uninitialized value back. In this case, we use
ADD_STA_SUCCESS as success.
Fixes: 732d06e9d9cf ("iwlwifi: mvm: add station before allocating a queue")
Reported by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
234/310 [
Author: Luca Coelho
Email: luciano.coelho@intel.com
Subject: iwlwifi: mvm: set status before calling iwl_mvm_send_cmd_status()
Date: Sat, 2 Sep 2017 11:25:40 +0300
commit d460f1fb83a44833a09c8eaa34b30ce553cab8c5 upstream.
We always must set the status to what we consider success before
calling iwl_mvm_send_cmd_status() (also iwl_mvm_send_cmd_pdu_status()
which calls it). Fix a few places where initialization is missing.
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
235/310 [
Author: Sara Sharon
Email: sara.sharon@intel.com
Subject: iwlwifi: mvm: fix reorder buffer for 9000 devices
Date: Mon, 4 Sep 2017 20:27:04 +0300
commit 5f90472c00ddf1e64c2865f71cced297bd5f80a2 upstream.
The condition to check if reorder buffer ran out of
space is faulty, as it takes into account only the
NSSN.
In case the head SN was too far behind the reorder
buffer should move forward, regardless of the NSSN
status.
This caused the driver to release packets out of order
in some scenarios.
Fixes: b915c10174fb ("iwlwifi: mvm: add reorder buffer per queue")
Signed-off-by: Sara Sharon <sara.sharon@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
236/310 [
Author: Shaul Triebitz
Email: shaul.triebitz@intel.com
Subject: iwlwifi: mvm: do not print security error in monitor mode
Date: Wed, 13 Sep 2017 16:46:14 +0300
commit baf41bc35f2bdb953da532645fd82009c2d12acf upstream.
In monitor mode we are not expected to decrypt encrypted
packets (not having the keys).
Hence we are expected to get an unknown rx security status.
Keeping the print in monitor mode causes a print for each
captured packet flooding the dmesg.
Signed-off-by: Shaul Triebitz <shaul.triebitz@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
237/310 [
Author: Golan Ben Ami
Email: golan.ben.ami@intel.com
Subject: iwlwifi: stop dbgc recording before stopping DMA
Date: Tue, 12 Sep 2017 12:32:25 +0300
commit 1efc3843a4ee1331bc20df685a79b47fa0f547d2 upstream.
Today we stop the device and the DMA without stopping the dbgc
recording before. This causes host crashes when the DMA
rate is high.
Stop dbgc recording when clearing the fw debug configuration
to fix this.
Signed-off-by: Golan Ben Ami <golan.ben.ami@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
238/310 [
Author: Luca Coelho
Email: luciano.coelho@intel.com
Subject: iwlwifi: mvm: return -ENODATA when reading the temperature with the FW down
Date: Mon, 18 Sep 2017 14:39:26 +0300
commit 1442a9a9f2e441b15393c2d89286303b103a57e8 upstream.
It seems that libsensors treats -EIO as a special non-recoverable
failure when it tries to read the temperature while the firmware is
not running. To solve that, change the error code to a milder
-ENODATA.
This fixes https://bugzilla.kernel.org/show_bug.cgi?id=196941
Fixes: c221daf219b1 ("iwlwifi: mvm: add registration to thermal zone")
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
239/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: nvm-parse: unify channel flags printing
Date: Thu, 21 Sep 2017 11:03:50 +0200
commit d8c73e455d7b973d1346bb5632b4a41819b090c9 upstream.
The current channel flags printing is very strange and messy,
in LAR we sometimes print the channel number and sometimes the
frequency, in both we print a calculated value (whether ad-hoc
is supported or not) etc.
Unify all this to
* print the channel number, not the frequency
* remove the band print (2.4/5.2 GHz, it's obvious)
* remove the calculated Ad-Hoc print
Doing all of this also gets the length of the string to a max
of 101 characters, which is below the max of 110 for tracing,
and thus avoids the warning that came up on certain channels
with certain flag combinations.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
240/310 [
Author: Chaya Rachel Ivgi
Email: chaya.rachel.ivgi@intel.com
Subject: iwlwifi: nvm: set the correct offsets to 3168 series
Date: Mon, 4 Sep 2017 14:40:06 +0300
commit 44fd09dad5d2b78efbabbbbf623774e561e36cca upstream.
The driver currently handles two NVM formats,
one for 7000 family and below, and one for 8000 family and above.
The 3168 series uses something in between,
so currently the driver uses incorrect offsets for it.
Fix the incorrect offsets.
Fixes: c4836b056d83 ("iwlwifi: Add PCI IDs for the new 3168 series")
Signed-off-by: Chaya Rachel Ivgi <chaya.rachel.ivgi@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
241/310 [
Author: Liad Kaufman
Email: liad.kaufman@intel.com
Subject: iwlwifi: mvm: add dbgfs entry for fw info
Date: Wed, 16 Aug 2017 14:15:08 +0300
commit 3669cd31927b8229096622e046bb0f6020328b2b upstream.
Add a dbgfs entry for an easy way during runtime to
check what FW file was loaded, and get some general
FW-related data.
Signed-off-by: Liad Kaufman <liad.kaufman@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
242/310 [
Author: Luca Coelho
Email: luciano.coelho@intel.com
Subject: iwlwifi: trans: move ref/unref code to the common part of the transport
Date: Wed, 30 Mar 2016 22:09:34 +0300
commit d621d3c73391fc49c5bbbf823745f0165981119d upstream.
De-inline iwl_trans_ref/unref and move it to common transport code
in preparation for more common code to come to these functions.
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
243/310 [
Author: Oren Givon
Email: oren.givon@intel.com
Subject: iwlwifi: fix wrong struct for a000 device
Date: Mon, 28 Aug 2017 10:33:38 +0300
commit f7f5873bbd45a67d3097dfb55237ade2ad520184 upstream.
The PCI ID (0x2720, 0x0070) was set with the config struct
iwla000_2ax_cfg_hr instead of iwla000_2ac_cfg_hr_cdb.
Fixes: 175b87c69253 ("iwlwifi: add the new a000_2ax series")
Signed-off-by: Oren Givon <oren.givon@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
244/310 [
Author: Oren Givon
Email: oren.givon@intel.com
Subject: iwlwifi: add a new a000 device
Date: Thu, 31 Aug 2017 13:15:09 +0300
commit d048b36b9654c4e0cf0d3576be2d1ed2a3084c6f upstream.
Add a new a000 device with PCI ID (0x2720, 0x0030).
Signed-off-by: Oren Givon <oren.givon@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
245/310 [
Author: David Spinadel
Email: david.spinadel@intel.com
Subject: iwlwifi: mvm: Add new quota command API
Date: Wed, 30 Aug 2017 16:23:14 +0300
commit 72cbb73e8ad34b2d4409156546678763e91c71b6 upstream.
New quota command adds a field indicating low latency
direction per quota.
A TLV API bit was added to indicate the new API.
Signed-off-by: David Spinadel <david.spinadel@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
246/310 [
Author: Emmanuel Grumbach
Email: emmanuel.grumbach@intel.com
Subject: iwlwifi: mvm: remove support for Link Quality Measurements
Date: Thu, 31 Aug 2017 12:57:33 +0300
commit d7b9bb69c9b3accbd199b51b28d95d08f37049cd upstream.
This was never used by any product. Remove it.
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
247/310 [
Author: Emmanuel Grumbach
Email: emmanuel.grumbach@intel.com
Subject: iwlwifi: mvm: support firmware debug trigger on frame reorder timeout
Date: Thu, 31 Aug 2017 11:52:30 +0300
commit 528a542aa6654a9ec03830cc75142cc94276739e upstream.
The trigger that collects data when a frame is released
because of the timer of the reordering buffer was not
implemented for 9000 devices.
Fix this.
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
248/310 [
Author: Ilan Peer
Email: ilan.peer@intel.com
Subject: iwlwifi: Add few debug prints to the WRT dump flow
Date: Mon, 4 Sep 2017 14:39:22 +0300
commit b88beaf95a6253aa8a5a6424db26ecf8a1e0ea0a upstream.
This would enable to better catch timing issues with
cases that WRT dump takes too much time.
Signed-off-by: Ilan Peer <ilan.peer@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
249/310 [
Author: Shahar S Matityahu
Email: shahar.s.matityahu@intel.com
Subject: iwlwifi: pcie: dynamic Tx command queue size
Date: Sun, 30 Jul 2017 17:33:48 +0300
commit dd05f9aab4426ff178b12d601e50d19d336eba30 upstream.
Devices in the A000 family can use a different size for the command queue.
To allow this, make the command queue size configurable and set the size
for A000 devices to 32.
Signed-off-by: Shahar S Matityahu <shahar.s.matityahu@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
250/310 [
Author: Chaya Rachel Ivgi
Email: chaya.rachel.ivgi@intel.com
Subject: iwlwifi: remove redundant reading from NVM file
Date: Wed, 13 Sep 2017 15:12:16 +0300
commit a2ff48af65ad661a257987fa05973351c595002e upstream.
The driver reads xtal_calib from NVM file, but actually never uses it.
This is only used in dvm driver.
Signed-off-by: Chaya Rachel Ivgi <chaya.rachel.ivgi@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
251/310 [
Author: Emmanuel Grumbach
Email: emmanuel.grumbach@intel.com
Subject: iwlwifi: mvm: don't send identical PHY_CTXT_CMD
Date: Thu, 14 Sep 2017 15:45:44 +0300
commit 7a20bcceeddd7162801bb37d992c5a2bfd5ca3ce upstream.
When we have an AP which supports HT and a single HT
station is connected, we change the min_width from
NL80211_CHAN_WIDTH_20_NOHT to NL80211_CHAN_WIDTH_20. This
of course has no implication on the channel width but still
sends a command to the firmware.
Remember the last width that was sent and refrain from
sending unnecessary commands to the firmware.
Sending a PHY_CTXT_CMD to the firmware has a cost since it
recalculates the presence on the medium and because of that
it closes the transmit queues for a short while.
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
252/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: fw: api: remove excess enum value documentation
Date: Tue, 19 Sep 2017 12:59:03 +0200
commit aed52a88c09d486bb405373e6ad35b5f249093fb upstream.
These enum values don't exist, so remove their documentation as well.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
253/310 [
Author: Mordechay Goodstein
Email: mordechay.goodstein@intel.com
Subject: iwlwifi: mvm: add marker cmd response struct.
Date: Tue, 19 Sep 2017 15:52:13 +0000
commit 5281f5181a3ba23ff9ee0fd8e9cbd7479d58baef upstream.
This helps for documentation and clarifies the code by defining the
exact response struct for the marker command.
Signed-off-by: Mordechay Goodstein <mordechay.goodstein@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
254/310 [
Author: Rajat Jain
Email: rajatja@google.com
Subject: iwlwifi: pcie: dump registers when HW becomes inaccessible
Date: Thu, 17 Aug 2017 12:05:12 -0700
commit a6d24fad00d98e28841b1f39965fda530df637df upstream.
We conclude the HW became inaccessible when we timeout waiting for
a bit to be set in a memory mapped register (CSR_GP_CNTRL). This
conclusion may not be true because the bit may not get set due to:
- a firmware issue
- a driver issue
- a PCI bus issue
- a platform issue
There are a lot of such reports with really no good debug information
beyond this message to help us.
Add some debug information and attempt to dump the different register
spaces at such a failure:
* Dump some configuration space of device - this will tell us if
something very basic is broken in the PCIe bus (so that configuration
accesses are failing). If this works, the PCIe bus seems OK. If this
does not work, it is definitely an PCIe issue.
* Dump some memory mapped registers - if we're reading some sane'ish
values, this will tell us that the PCIe bus is OK, but may be a firmware
/ driver issue. If this does not work, it may be a PCI configuration
issue or a driver/firmware issue.
* Dump parent and device's AER registers, will give us some straws to
chew on.
This is the sample output:
[ 13.082651] ------------[ cut here ]------------
[ 13.086791] iwlwifi 0000:01:00.0: iwlwifi transaction failed, dumping registers
[ 13.086793] iwlwifi 0000:01:00.0: iwlwifi device config registers:
[ 13.086893] iwlwifi 0000:01:00.0: 00000000: 095a8086 00100406 02800059 00000000 00000004 00000000 00000000 00000000
[ 13.086895] iwlwifi 0000:01:00.0: 00000020: 00000000 00000000 00000000 50108086 00000000 000000c8 00000000 00000100
[ 13.086901] iwlwifi 0000:01:00.0: iwlwifi device memory mapped registers:
[ 13.086989] iwlwifi 0000:01:00.0: 00000000: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
[ 13.086991] iwlwifi 0000:01:00.0: 00000020: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
[ 13.086999] iwlwifi 0000:01:00.0: iwlwifi device AER capability structure:
[ 13.087033] iwlwifi 0000:01:00.0: 00000000: 14010001 00100000 00000000 00462031 00002000 00002000 00000014 40000001
[ 13.087034] iwlwifi 0000:01:00.0: 00000020: 0000000f d140000c 00000000
[ 13.087036] iwlwifi 0000:01:00.0: iwlwifi parent port (0000:00:1c.0) config registers:
[ 13.087074] iwlwifi 0000:00:1c.0: 00000000: 9d108086 00100506 060400f1 00810010 00000000 00000000 00010100 200000f0
[ 13.087075] iwlwifi 0000:00:1c.0: 00000020: d140d140 0001fff1 00000000 00000000 00000000 00000040 00000000 0006010b
[ 13.087087] ------------[ cut here ]------------
[ 13.087095] WARNING: CPU: 0 PID: 1759 at drivers/net/wireless/iwl7000/iwlwifi/pcie/trans.c:2082 iwl_trans_pcie_reclaim+0x1ee4/0x2b9a [iwlwifi]()
[ 13.087096] Timeout waiting for hardware access (CSR_GP_CNTRL 0xffffffff)
Signed-off-by: Rajat Jain <rajatja@google.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
255/310 [
Author: Sara Sharon
Email: sara.sharon@intel.com
Subject: iwlwifi: mvm: change warning to warn_once()
Date: Thu, 28 Sep 2017 11:11:51 +0300
commit 417795a3f4d634bb50dbffaf2ab9d7f46750b7e8 upstream.
In case there is a FW bug where the BAID value in the
metadata is not properly initialized we hit the warning for
every RX packet.
Change it to warn once and add elaborate message.
Signed-off-by: Sara Sharon <sara.sharon@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
256/310 [
Author: Luca Coelho
Email: luciano.coelho@intel.com
Subject: iwlwifi: acpi: add common code to read from ACPI
Date: Tue, 19 Sep 2017 12:35:18 +0300
commit 813df5cef3bb119940998f2e70cb9016e4b434f7 upstream.
There are many places where the same process of invoking a method from
ACPI is used, causing a lot of duplicate code. To improve this,
introduce a new function to get an ACPI object by invoking an ACPI
method that can be reused.
Additionally, since this function needs to be called when we only have
the trans, the opmode or the device, introduce a new debug macro that
gets the device as a parameter so it can be used in the new function.
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
257/310 [
Author: Luca Coelho
Email: luciano.coelho@intel.com
Subject: iwlwifi: acpi: move ACPI method definitions to acpi.h
Date: Thu, 21 Sep 2017 11:02:45 +0300
commit 1c73acf58bd63a5dcc38132cd3060efbeae4a9ef upstream.
Instead of defining each method where they are used and re-defining
WIFI_DOMAIN in each one of them, move all the definitions to a central
place and define the domain only a single time.
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
258/310 [
Author: Luca Coelho
Email: luciano.coelho@intel.com
Subject: iwlwifi: acpi: move ACPI-related definitions to acpi.h
Date: Thu, 21 Sep 2017 13:22:59 +0300
commit e7a3b8d87910bbd653908091242263c4e48d588f upstream.
The ACPI table size definitions were spread around the different files
that used them. Move them all to a common place.
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
259/310 [
Author: Luca Coelho
Email: luciano.coelho@intel.com
Subject: iwlwifi: acpi: generalize iwl_mvm_sar_find_wifi_pkg()
Date: Thu, 21 Sep 2017 14:30:53 +0300
commit 2fa388cfeb1af9fa94acc7fd1b250fb863fb5d91 upstream.
Move this function to acpi.c, renaming it to iwl_acpi_get_wifi_pkg(),
because it can also be used with other methods (i.e. SPLC and WRDD).
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
260/310 [
Author: Luca Coelho
Email: luciano.coelho@intel.com
Subject: iwlwifi: acpi: use iwl_acpi_get_wifi_pkg when reading reading SPLC
Date: Thu, 21 Sep 2017 14:45:27 +0300
commit 45a5c6f68b2649ccb71721b95be22720f04b2bc3 upstream.
Instead of finding the wifi package with its own code, we can reuse
the new iwl_acpi_get_wifi_pkg() function when reading the default
power limit from SPLC.
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
261/310 [
Author: Luca Coelho
Email: luciano.coelho@intel.com
Subject: iwlwifi: acpi: make iwl_get_bios_mcc() use the common acpi functions
Date: Tue, 26 Sep 2017 15:33:56 +0300
commit ed1a962db760bfb5e30b8ab284873767790119b9 upstream.
The way iwl_get_bios_mcc() gets the WiFi package and checks for its
integrity is almost identical to the new iwl_acpi_get_wifi_pkg()
function. Instead of having duplicate code, convert it to use the
common code.
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
262/310 [
Author: Luca Coelho
Email: luciano.coelho@intel.com
Subject: iwlwifi: acpi: remove a couple of unnecessary ifdefs
Date: Tue, 26 Sep 2017 16:13:23 +0300
commit d953cdb8ee1ba94f3e64751fe4740c82d09cffa8 upstream.
Some of the #ifdef CONFIG_ACPI are not needed anymore, so they can be
removed.
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
263/310 [
Author: Luca Coelho
Email: luciano.coelho@intel.com
Subject: iwlwifi: acpi: move function to get mcc into acpi code
Date: Tue, 26 Sep 2017 16:31:10 +0300
commit 45f65569e0d968c5fd1e8c3c6d8983b402caaa27 upstream.
The iwl_get_bios_mcc() function was in the iwl-nvm-parse.c file, but
it has nothing to do with the NVM. Move it to fw/acpi.c and rename it
to iwl_acpi_get_mcc().
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
264/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: fix indentation in a000 family configuration
Date: Thu, 28 Sep 2017 12:59:00 +0200
commit e59a00f4884815a2887837b9d34e0ae59c41d3d3 upstream.
Fix the double indentation in the configuration structs
for a000 family devices.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
265/310 [
Author: Luca Coelho
Email: luciano.coelho@intel.com
Subject: iwlwifi: acpi: move code that reads SPLC to acpi
Date: Thu, 28 Sep 2017 15:18:33 +0300
commit 1184611ee88f309fe4a6ca3d50bde762434e386e upstream.
Move most of the set_dflt_pwr_limit() function to acpi.c and make it
return the pwr_limit value instead of setting directly. Also rename
it to iwl_acpi_get_pwr_limit().
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
266/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: mvm: warn on invalid statistics size
Date: Tue, 26 Sep 2017 16:37:12 +0200
commit 42fa5e0e323b2709079d81d90e9a142aa98cd3b3 upstream.
Getting the wrong statistics size is a problem, having a warning
will help us catch it quicker during firmware/driver development.
In released firmware/driver versions, we obviously make sure this
won't happen.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
267/310 [
Author: Luca Coelho
Email: luciano.coelho@intel.com
Subject: iwlwifi: remove dflt_pwr_limit from the transport
Date: Thu, 28 Sep 2017 15:29:27 +0300
commit f2abcfa6c86e503b352846ace9d6ab9b02ade0ab upstream.
The default power limit read from the SPLC method in ACPI doesn't
have anything to do with the transport and is only used in the opmode,
so we can remove it from the trans. Additionally, this value is only
user when the opmode is starting, so we don't need to store it
anywhere.
Remove the dflt_pwr_limit element from the trans and move call to
iwl_acpi_get_pwr_limit() call to mvm.
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
268/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: mvm: allocate reorder buffer according to need
Date: Tue, 26 Sep 2017 12:24:51 +0200
commit dfdddd92a5781bb4bbd176a5c85b7244580a8efe upstream.
Now that we may have up to 256 entries per reorder buffer, and possibly up
to 16 queues, we can use a LOT of memory for this (64k for each station).
Allocate it according to what we need, which is of course much less for HT
stations (only 16k at a max of 16 queues).
However, this comes at the expense of complicating the code a bit to
calculate the right entry structure to use for each frame.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
269/310 [
Author: Sara Sharon
Email: sara.sharon@intel.com
Subject: iwlwifi: mvm: remove duplicated fields in mvm reorder buffer
Date: Mon, 2 Oct 2017 12:07:59 +0300
commit 3f1c4c58068757da94b07e0914321b443501e20f upstream.
The reason station id and tid fields are both in baid data and
in the reorder buffer per queue is that we couldn't access the
baid_data in the reorder timer functions.
Now that we do some pointer math and access it anyway, those
fields can be removed.
This save some space and some code.
Signed-off-by: Sara Sharon <sara.sharon@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
270/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: mvm: pass baid_data to iwl_mvm_release_frames()
Date: Mon, 2 Oct 2017 13:43:27 +0200
commit 76f4a85e1ddd1876d52c226d60dad15f29f6d9d7 upstream.
All callers of iwl_mvm_release_frames() already have the baid_data
pointer, so we don't need to (re)calculate it inside the function.
Just pass it instead.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
271/310 [
Author: Beni Lev
Email: beni.lev@intel.com
Subject: iwlwifi: mvm: allow reading UMAC error data from SMEM in A000 devices
Date: Thu, 28 Sep 2017 12:10:55 +0300
commit 0e1be40a45d767a07c1fb50ebfba273368f57484 upstream.
Currently, UMAC error data reading is restricted to DCCM.
A000 NICs use SMEM for this data.
Signed-off-by: Beni Lev <beni.lev@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
272/310 [
Author: Luca Coelho
Email: luciano.coelho@intel.com
Subject: iwlwifi: mvm: move umac_error_event_table validity check to where it's set
Date: Mon, 2 Oct 2017 15:44:20 +0300
commit fb5b28469d2a5be83aae0c754a9a69bb37fec6ff upstream.
There's no point in checking the validity of the
umac_error_event_table pointer every time we generate a dump. It's
cleaner to do so when we read the value, namely when we receive the
alive data.
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
273/310 [
Author: Luca Coelho
Email: luciano.coelho@intel.com
Subject: iwlwifi: define minimum valid address for umac_error_event_table in cfg
Date: Mon, 2 Oct 2017 16:12:23 +0300
commit 3485e76e73495382f953d3a6dd45c00c7c404e4a upstream.
We now have two different minimum valid values for
umac_error_event_table. To avoid hardcoding the minimum value in the
driver, add a value to cfg where it can be read from.
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
274/310 [
Author: Liad Kaufman
Email: liad.kaufman@intel.com
Subject: iwlwifi: mvm: add missing lq_color
Date: Mon, 9 Oct 2017 11:01:33 +0300
commit 41fd2fec56db2564f02532ed7244e1f69193b4ad upstream.
In the compressed BA notif, the driver didn't parse out
the LQ color, so statistics for the rates tried were
always thrown out. Add it so it gets correctly used.
While at it, fix the name of the relevant field in the
struct.
Fixes: c46e7724bfe9 ("iwlwifi: mvm: support new BA notification response")
Signed-off-by: Liad Kaufman <liad.kaufman@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
275/310 [
Author: Luca Coelho
Email: luciano.coelho@intel.com
Subject: iwlwifi: pcie: sort IDs for the 9000 series for easier comparisons
Date: Thu, 12 Oct 2017 11:20:50 +0300
commit 1105a337375258515ed09b92a83fd7bfd6775958 upstream.
It's hard to find values that are missing in the list, so sorting the
values and comparing them makes it much easier. To simplify this
task, sort the devices in the list.
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
276/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: pcie: remove set but not used variable tcph
Date: Fri, 13 Oct 2017 11:54:03 +0200
commit 3c798a45318e098e9937b0fee1e0cf986174fbbe upstream.
This variable is never used, so remove the code to set it.
After this, the variable 'iph' also has the same fate.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
277/310 [
Author: Sara Sharon
Email: sara.sharon@intel.com
Subject: iwlwifi: mvm: use RS macro instead of duplicating the code
Date: Sun, 15 Oct 2017 13:52:54 +0300
commit b67ce55dbd964f1e80652007bfb83d09c393300d upstream.
There is a macro for converting TX response rate to a
rate scale value, use it.
Signed-off-by: Sara Sharon <sara.sharon@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
278/310 [
Author: Sara Sharon
Email: sara.sharon@intel.com
Subject: iwlwifi: mvm: cleanup references to aggregation count limit
Date: Mon, 16 Oct 2017 09:45:10 +0300
commit 0ec9257b0a2ceb4eeec552684b390b06705bbad7 upstream.
Currently the code is mixing defines and is inconsistent.
When enabling a queue, we usually configure the scheduler
with IWL_FRAME_LIMIT - 64.
When sending to firmware the rate scaling, we limit aggregation
to LINK_QUAL_AGG_FRAME_LIMIT_DEF - 63, due to a scheduler bug.
Given that, clean up the following:
- Fix a stray queue enablement with LINK_QUAL_AGG_FRAME_LIMIT_DEF.
- Change the comparison that tests if queue needs to be reconfigured
to be compared directly to how it was configured.
This also saves the redundant round down of the buffer size just
for the sake of comparing it, making the code more readable.
- Better document gen2 logic
Signed-off-by: Sara Sharon <sara.sharon@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
279/310 [
Author: Liad Kaufman
Email: liad.kaufman@intel.com
Subject: iwlwifi: mvm: reset seq num after restart
Date: Tue, 17 Oct 2017 16:26:00 +0300
commit 5d39051a328c0508b0fb0247227197059edd2da9 upstream.
After a FW reset on A000 NICs, the driver doesn't
set the seq number when re-allocating the queues.
This in turn leads to a mismatch between the seq
number the driver thinks each frame has, and the
actual seq num given by the HW.
This especially causes issues with aggregations,
since the driver could be waiting to start an
aggregation and queue traffic from the mac80211
until then, when actually it shouldn't be waiting.
Fixes: 310181ec34e2 ("iwlwifi: move to TVQM mode")
Signed-off-by: Liad Kaufman <liad.kaufman@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
280/310 [
Author: Emmanuel Grumbach
Email: emmanuel.grumbach@intel.com
Subject: iwlwifi: mvm: rs: remove the ANT C from the toogle antenna logic
Date: Wed, 18 Oct 2017 13:09:38 +0300
commit 82d2b9a62699f3d6a61323774c41cebe920e5dc5 upstream.
We don't plan to have products with 3 antennas in the near
future. All the rest of the code follows the same
assumption as well.
Remove the support for antenna C from rs_toggle_ant.
When trying to toggle from ANT_B, this avoids to go through
ANT_C, discover that it doesn't exist and continue to ANT_A.
In MIMO, this avoids to do ANT_AB -> ANT_BC -> ANT_AC and
back to ANT_AB.
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
281/310 [
Author: Sara Sharon
Email: sara.sharon@intel.com
Subject: iwlwifi: mvm: improve latency when there is a reorder timeout
Date: Tue, 17 Oct 2017 12:06:52 +0300
commit 14a1f85bdc27283898358af09ee506d7f3344d3c upstream.
When there is a reorder timeout, we may get to a situation
where we have the timeout latency for all the next 64 frames.
This happens since NSSN is behind for a while, and the driver
won't release the frames, since it is not allowed by NSSN.
As a result the frame is stored in the reorder buffer although
there is no hole, and released 100 ms later.
Add a direct comparison to the reorder buffer head, and release
immediately if possible.
For example:
Frame 0 is missed. We receive frame 1, and store it in the buffer.
After 100 ms, frame 1 is released and reorder buffer head is 2.
We then receive frame 2, with NSSN 0, and store it instead of
releasing it.
Signed-off-by: Sara Sharon <sara.sharon@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
282/310 [
Author: Emmanuel Grumbach
Email: emmanuel.grumbach@intel.com
Subject: iwlwifi: remove dead code for internal devices only
Date: Tue, 17 Oct 2017 10:30:24 +0300
commit fb7eba711d2169fbd40bc487c191f360332e8b22 upstream.
We had a bunch of code that was relevant for internal
devices only. Those devices are now being depreceated.
Kill all the now unneeded code.
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
283/310 [
Author: Emmanuel Grumbach
Email: emmanuel.grumbach@intel.com
Subject: iwlwifi: remove host assisted paging
Date: Tue, 17 Oct 2017 14:11:16 +0300
commit 4ae827ffc173dc969c67e4f8b35d17a44f76ed40 upstream.
This was used for internal devices that are now deprecated.
All the currently existing devices can do paging without
any help from the host.
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
284/310 [
Author: Kirtika Ruchandani
Email: kirtika@chromium.org
Subject: iwlwifi: Add more call-sites for pcie reg dumper
Date: Sun, 8 Oct 2017 14:20:42 -0700
commit fb12777ab59b4c8319c931970e28a5406d1aa702 upstream.
Commit a6d24fad00d9 ("iwlwifi: pcie: dump registers when HW becomes
inaccessible") added a function to dump pcie config registers and
memory mapped registers on a failure. It is currently only accessible
within trans.c. Add it to struct iwl_trans_ops, so that failure cases
in other files can call it. While there, add a call to this function
from iwl_pcie_load_firmware_chunk in pcie/tx.c, since this is a common
failure case seen on some platforms.
Signed-off-by: Kirtika Ruchandani <kirtika@chromium.org>
[modified the commit message slightly]
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
285/310 [
Author: Sara Sharon
Email: sara.sharon@intel.com
Subject: iwlwifi: fix multi queue notification for a000 devices
Date: Thu, 19 Oct 2017 08:46:50 +0300
commit cb8550e15bd1c90ebce9444769a856b799340320 upstream.
Currently we return early from sync_rx_queues for a000 devices.
This may cause, in case of a non-empty reorder buffer, a warning
later on since the RX queue isn't getting the notification to
empty it.
A better approach would be to send the notification for the default
queue only.
Do this hard coded for now, until we will have the API to enable
multi queue for a000 devices.
Fixes: bc0294696456 ("iwlwifi: mvm: disable RX queue notification for a000 devices")
Signed-off-by: Sara Sharon <sara.sharon@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
286/310 [
Author: Sara Sharon
Email: sara.sharon@intel.com
Subject: iwlwifi: mvm: refactor iwl_mvm_flush_no_vif
Date: Tue, 12 Sep 2017 11:06:24 +0300
commit 435d0827fe1f3eb7c47f3090c51d55f9dc729d94 upstream.
This function is very indented and hard to read.
Refactor it.
Signed-off-by: Sara Sharon <sara.sharon@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
287/310 [
Author: Sara Sharon
Email: sara.sharon@intel.com
Subject: iwlwifi: mvm: add missing implementation of flush for a000 devices
Date: Tue, 12 Sep 2017 10:52:53 +0300
commit 06195639c66d80d21146d0e982f7fc94406ed331 upstream.
In the mac flush flow, we should flush all existing queues.
Since FW API for a000 devices is flush per RA-TID, simply
flush all stations with all tids.
From FW perspective, asking to flush a TID that doesn't have
a queue is valid, so we can just set all bits in the TID mask.
Signed-off-by: Sara Sharon <sara.sharon@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
288/310 [
Author: Luca Coelho
Email: luciano.coelho@intel.com
Subject: iwlwifi: mvm: hold mutex when flushing in iwl_mvm_flush_no_vif()
Date: Tue, 24 Oct 2017 22:04:15 +0300
commit 309c4848c0481f71f4cb20290e6f5bded1e54131 upstream.
The iwl_mvm_flush_tx_path() function sends a synchronous command to
the firmware. When doing that, we must hold the mutex. The
iwl_mvm_flush_no_vif() function was mistakenly not holding the mutex.
Fix it.
Fixes: 6110d9e5bdd1 ("iwlwifi: mvm: Flush non STA TX queues")
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
289/310 [
Author: Kees Cook
Email: keescook@chromium.org
Subject: iwlwifi: mvm: Convert timers to use timer_setup()
Date: Tue, 24 Oct 2017 02:29:37 -0700
commit 8cef5344b5f24883c97180c15e17b35d46fc4f37 upstream.
In preparation for unconditionally passing the struct timer_list pointer to
all timer callbacks, switch to using the new timer_setup() and from_timer()
to pass the timer pointer explicitly.
The RCU lifetime on baid_data is unclear, so this adds a direct copy of the
rcu_ptr passed to the original callback. It may be possible to improve this
to just use baid_data->mvm->baid_map[baid_data->baid] instead.
Cc: Johannes Berg <johannes.berg@intel.com>
Cc: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Cc: Luca Coelho <luciano.coelho@intel.com>
Cc: Intel Linux Wireless <linuxwifi@intel.com>
Cc: Kalle Valo <kvalo@codeaurora.org>
Cc: Sara Sharon <sara.sharon@intel.com>
Cc: linux-wireless@vger.kernel.org
Cc: netdev@vger.kernel.org
Signed-off-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
290/310 [
Author: Shahar S Matityahu
Email: shahar.s.matityahu@intel.com
Subject: iwlwifi: drop RX frames during hardware restart
Date: Wed, 25 Oct 2017 11:40:24 +0300
commit 364a1ab91df160f96da5f8d9f778cfbafd5f6d81 upstream.
In case of a hardware restart the BA session data in HW is lost
so the reorder buffer simply passes the frames to mac80211 as is
as there is no NSSN set. Instead, we will drop these frames
before they reach the reorder buffer. mac80211 drops such frames anyway,
but we shouldn't rely on that. In addition it saves some
processing time
Signed-off-by: Shahar S Matityahu <shahar.s.matityahu@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
291/310 [
Author: Ihab Zhaika
Email: ihab.zhaika@intel.com
Subject: iwlwifi: add new cards for 8260 series
Date: Tue, 24 Oct 2017 17:36:43 +0300
commit d669fc2d42a43ee0abcf2396df6e9c5a124aa984 upstream.
add three new PCI ID'S for 8260 series
Signed-off-by: Ihab Zhaika <ihab.zhaika@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
292/310 [
Author: Ihab Zhaika
Email: ihab.zhaika@intel.com
Subject: iwlwifi: add new cards for 8265 series
Date: Tue, 24 Oct 2017 17:38:12 +0300
commit 7cddbef445631109bd530ce7cdacaa04ff0a62d1 upstream.
add two new PCI ID'S for 8265 series
Signed-off-by: Ihab Zhaika <ihab.zhaika@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
293/310 [
Author: Ihab Zhaika
Email: ihab.zhaika@intel.com
Subject: iwlwifi: add new cards for a000 series
Date: Tue, 24 Oct 2017 17:04:24 +0300
commit 57b36f7fcb39c5eae8c1f463699f747af69643ba upstream.
add four new PCI ID'S for a000 series
Signed-off-by: Ihab Zhaika <ihab.zhaika@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
294/310 [
Author: Luca Coelho
Email: luciano.coelho@intel.com
Subject: iwlwifi: mvm: support version 7 of the SCAN_REQ_UMAC FW command
Date: Fri, 10 Nov 2017 14:03:36 +0200
commit dac4df1c5f2c34903f61b1bc4fc722e31b4199e7 upstream.
Newer firmware versions (such as iwlwifi-8000C-34.ucode) have
introduced an API change in the SCAN_REQ_UMAC command that is not
backwards compatible. The driver needs to detect and use the new API
format when the firmware reports it, otherwise the scan command will
not work properly, causing a command timeout.
Fix this by adding a TLV that tells the driver that the new API is in
use and use the correct structures for it.
This fixes https://bugzilla.kernel.org/show_bug.cgi?id=197591
Fixes: d7a5b3e9e42e ("iwlwifi: mvm: bump API to 34 for 8000 and up")
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
295/310 [
Author: Luca Coelho
Email: luciano.coelho@intel.com
Subject: iwlwifi: fix PCI IDs and configuration mapping for 9000 series
Date: Wed, 15 Nov 2017 18:28:04 +0200
commit dbc89253a7e15f8f031fb1eeb956de91204655e3 upstream.
A lot of PCI IDs were missing and there were some problems with the
configuration and firmware selection for devices on the 9000 series.
Fix the firmware selection by adding files for the B-steps; add
configuration for some integrated devices; and add a bunch of PCI IDs
(mostly for integrated devices) that were missing from the driver's
list.
Without this patch, a lot of devices will not be recognized or will
try to load the wrong firmware file.
Cc: stable@vger.kernel.org # 4.13
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
296/310 [
Author: Kees Cook
Email: keescook@chromium.org
Subject: timer: Prepare to change timer callback argument type
Date: Thu, 28 Sep 2017 06:38:17 -0700
commit 686fef928bba6be13cabe639f154af7d72b63120 upstream.
Modern kernel callback systems pass the structure associated with a
given callback to the callback function. The timer callback remains one
of the legacy cases where an arbitrary unsigned long argument continues
to be passed as the callback argument. This has several problems:
- This bloats the timer_list structure with a normally redundant
.data field.
- No type checking is being performed, forcing callbacks to do
explicit type casts of the unsigned long argument into the object
that was passed, rather than using container_of(), as done in most
of the other callback infrastructure.
- Neighboring buffer overflows can overwrite both the .function and
the .data field, providing attackers with a way to elevate from a buffer
overflow into a simplistic ROP-like mechanism that allows calling
arbitrary functions with a controlled first argument.
- For future Control Flow Integrity work, this creates a unique function
prototype for timer callbacks, instead of allowing them to continue to
be clustered with other void functions that take a single unsigned long
argument.
This adds a new timer initialization API, which will ultimately replace
the existing setup_timer(), setup_{deferrable,pinned,etc}_timer() family,
named timer_setup() (to mirror hrtimer_setup(), making instances of its
use much easier to grep for).
In order to support the migration of existing timers into the new
callback arguments, timer_setup() casts its arguments to the existing
legacy types, and explicitly passes the timer pointer as the legacy
data argument. Once all setup_*timer() callers have been replaced with
timer_setup(), the casts can be removed, and the data argument can be
dropped with the timer expiration code changed to just pass the timer
to the callback directly.
Since the regular pattern of using container_of() during local variable
declaration repeats the need for the variable type declaration
to be included, this adds a helper modeled after other from_*()
helpers that wrap container_of(), named from_timer(). This helper uses
typeof(*variable), removing the type redundancy and minimizing the need
for line wraps in forthcoming conversions from "unsigned data long" to
"struct timer_list *" in the timer callbacks:
-void callback(unsigned long data)
+void callback(struct timer_list *t)
{
- struct some_data_structure *local = (struct some_data_structure *)data;
+ struct some_data_structure *local = from_timer(local, t, timer);
Finally, in order to support the handful of timer users that perform
open-coded assignments of the .function (and .data) fields, provide
cast macros (TIMER_FUNC_TYPE and TIMER_DATA_TYPE) that can be used
temporarily. Once conversion has been completed, these can be globally
trivially removed.
Signed-off-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lkml.kernel.org/r/20170928133817.GA113410@beast
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
297/310 [
Author: Naftali Goldstein
Email: naftali.goldstein@intel.com
Subject: mac80211: add api to start ba session timer expired flow
Date: Tue, 11 Jul 2017 10:07:25 +0300
commit 04c2cf34362f133be09878bd752f8b014318b59a upstream.
Some drivers handle rx buffer reordering internally (and by extension
handle also the rx ba session timer internally), but do not ofload the
addba/delba negotiation.
Add an api for these drivers to properly tear-down the ba session,
including sending a delba.
Signed-off-by: Naftali Goldstein <naftali.goldstein@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
298/310 [
Author: Thomas Backlund
Email: tmb@mageia.org
Subject: iwlwifi: fix firmware names for 9000 and A000 series hw
Date: Tue, 14 Nov 2017 12:37:51 +0200
commit c2c48ddfc8b03b9ecb51d2832b586497b37531bc upstream.
iwlwifi 9000 and a0000 series hw contains an extra dash in firmware
file name as seeen in modinfo output for kernel 4.14:
firmware: iwlwifi-9260-th-b0-jf-b0--34.ucode
firmware: iwlwifi-9260-th-a0-jf-a0--34.ucode
firmware: iwlwifi-9000-pu-a0-jf-b0--34.ucode
firmware: iwlwifi-9000-pu-a0-jf-a0--34.ucode
firmware: iwlwifi-QuQnj-a0-hr-a0--34.ucode
firmware: iwlwifi-QuQnj-a0-jf-b0--34.ucode
firmware: iwlwifi-QuQnj-f0-hr-a0--34.ucode
firmware: iwlwifi-Qu-a0-jf-b0--34.ucode
firmware: iwlwifi-Qu-a0-hr-a0--34.ucode
Fix that by dropping the extra adding of '"-"'.
Signed-off-by: Thomas Backlund <tmb@mageia.org>
Cc: stable@vger.kernel.org # 4.13
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
299/310 [
Author: Shaul Triebitz
Email: shaul.triebitz@intel.com
Subject: iwlwifi: mvm: set correct chains in Rx status
Date: Mon, 30 Oct 2017 17:38:43 +0200
commit c4e45c84270798b1d51ede9a8c6810378ccfe162 upstream.
ieee80211_rx_status::chains was always set to zero.
That caused rate scaling to always start with the
lowest rate possible (rs_get_initial_rate).
Set it correctly according to the MPDU response.
Signed-off-by: Shaul Triebitz <shaul.triebitz@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
300/310 [
Author: Emmanuel Grumbach
Email: emmanuel.grumbach@intel.com
Subject: iwlwifi: mvm: don't use transmit queue hang detection when it is not possible
Date: Mon, 13 Nov 2017 09:50:47 +0200
commit 0b9832b712d6767d6c7b01965fd788d1ca84fc92 upstream.
When we act as an AP, new firmware versions handle
internally the power saving clients and the driver doesn't
know that the peers went to sleep. It is, hence, possible
that a peer goes to sleep for a long time and stop pulling
frames. This will cause its transmit queue to hang which is
a condition that triggers the recovery flow in the driver.
While this client is certainly buggy (it should have pulled
the frame based on the TIM IE in the beacon), we can't blow
up because of a buggy client.
Change the current implementation to not enable the
transmit queue hang detection on queues that serve peers
when we act as an AP / GO.
We can still enable this mechanism using the debug
configuration which can come in handy when we want to
debug why the client doesn't wake up.
Cc: stable@vger.kernel.org # v4.13
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
301/310 [
Author: Emmanuel Grumbach
Email: emmanuel.grumbach@intel.com
Subject: iwlwifi: mvm: fix the TX queue hang timeout for MONITOR vif type
Date: Wed, 15 Nov 2017 14:12:30 +0200
commit d1b275ffec459c5ae12b5c7086c84175696e5a9f upstream.
The MONITOR type is missing in the interface type switch.
Add it.
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
302/310 [
Author: Emmanuel Grumbach
Email: emmanuel.grumbach@intel.com
Subject: iwlwifi: mvm: fix packet injection
Date: Sun, 19 Nov 2017 10:35:14 +0200
commit b13f43a48571f0cd0fda271b5046b65f1f268db5 upstream.
We need to have a station and a queue for the monitor
interface to be able to inject traffic. We used to have
this traffic routed to the auxiliary queue, but this queue
isn't scheduled for the station we had linked to the
monitor vif.
Allocate a new queue, link it to the monitor vif's station
and make that queue use the BE fifo.
This fixes https://bugzilla.kernel.org/show_bug.cgi?id=196715
Cc: stable@vger.kernel.org
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
303/310 [
Author: Sara Sharon
Email: sara.sharon@intel.com
Subject: iwlwifi: pcie: fix erroneous "Read failed message"
Date: Mon, 20 Nov 2017 11:37:18 +0200
commit f3402d6d8eb084f6c2563dee1a09385b7c0ea2d5 upstream.
Current pci dumping code code is always falling to the error
path, resulting with a constant "Read failed" message, also
for the successful reads.
Fixes: a5c932e41fdd ("iwlwifi: pcie: dump registers when HW becomes inaccessible")
Signed-off-by: Sara Sharon <sara.sharon@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
304/310 [
Author: Sara Sharon
Email: sara.sharon@intel.com
Subject: iwlwifi: fix access to prph when transport is stopped
Date: Mon, 20 Nov 2017 13:25:05 +0200
commit 0232d2cd7aa8e1b810fe84fb4059a0bd1eabe2ba upstream.
When getting HW rfkill we get stop_device being called from
two paths.
One path is the IRQ calling stop device, and updating op
mode and stack.
As a result, cfg80211 is running rfkill sync work that shuts
down all devices (second path).
In the second path, we eventually get to iwl_mvm_stop_device
which calls iwl_fw_dump_conf_clear->iwl_fw_dbg_stop_recording,
that access periphery registers.
The device may be stopped at this point from the first path,
which will result with a failure to access those registers.
Simply checking for the trans status is insufficient, since
the race will still exist, only minimized.
Instead, move the stop from iwl_fw_dump_conf_clear (which is
getting called only from stop path) to the transport stop
device function, where the access is always safe.
This has the added value, of actually stopping dbgc before
stopping device even when the stop is initiated from the
transport.
Fixes: 1efc3843a4ee ("iwlwifi: stop dbgc recording before stopping DMA")
Signed-off-by: Sara Sharon <sara.sharon@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
305/310 [
Author: Ihab Zhaika
Email: ihab.zhaika@intel.com
Subject: iwlwifi: add new cards for 9260 and 22000 series
Date: Thu, 16 Nov 2017 09:29:19 +0200
commit 567deca8e72df3ceb6c07c63f8541a4928f64d3b upstream.
add 1 PCI ID for 9260 series and 1 for 22000 series.
Cc: stable@vger.kernel.org
Signed-off-by: Ihab Zhaika <ihab.zhaika@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
306/310 [
Author: Johannes Berg
Email: johannes.berg@intel.com
Subject: iwlwifi: mvm: flush queue before deleting ROC
Date: Mon, 13 Nov 2017 17:26:09 +0100
commit 6c2d49fdc5d947c5fe89935bd52e69f10000f4cb upstream.
Before deleting a time event (remain-on-channel instance), flush
the queue so that frames cannot get stuck on it. We already flush
the AUX STA queues, but a separate station is used for the P2P
Device queue.
Cc: stable@vger.kernel.org
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
307/310 [
Author: David Spinadel
Email: david.spinadel@intel.com
Subject: iwlwifi: mvm: enable RX offloading with TKIP and WEP
Date: Mon, 21 Nov 2016 17:01:25 +0200
commit 9d0fc5a50a0548f8e5d61243e5e5f26d5c405aef upstream.
Set the flag that indicates that ICV was stripped on if
this option was enabled in the HW.
Cc: stable@vger.kernel.org # 4.13+
[this is needed for the 9000-series HW to work properly]
Signed-off-by: David Spinadel <david.spinadel@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
308/310 [
Author: Sara Sharon
Email: sara.sharon@intel.com
Subject: iwlwifi: mvm: mark MIC stripped MPDUs
Date: Mon, 8 Feb 2016 23:30:47 +0200
commit bf19037074e770aad74b3b90f37b8b98db3f3748 upstream.
When RADA is active, the hardware decrypts the packets and strips off
the MIC as it is useless after decryption. Indicate that to mac80211.
Cc: stable@vger.kernel.org # 4.13+
[this is needed for the 9000-series HW to work properly]
Signed-off-by: Sara Sharon <sara.sharon@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
309/310 [
Author: Emmanuel Grumbach
Email: emmanuel.grumbach@intel.com
Subject: iwlwifi: pcie: fix DMA memory mapping / unmapping
Date: Thu, 4 Jan 2018 09:19:13 +0200
commit 943309d4aad6732b905f3f500e6e17e33c211494 upstream.
22000 devices (previously referenced as A000) can support
short transmit queues. This means that we have less DMA
descriptors (TFD) for those shorter queues.
Previous devices must still have 256 TFDs for each queue
even if those 256 TFDs point to fewer buffers.
When I introduced support for the short queues for 22000
I broke older devices by assuming that they can also have
less TFDs in their queues. This led to several problems:
1) the payload of the commands weren't unmapped properly
which caused the SWIOTLB to complain at some point.
2) the hardware could get confused and we get hardware
crashes.
The corresponding bugzilla entries are:
https://bugzilla.kernel.org/show_bug.cgi?id=198201
https://bugzilla.kernel.org/show_bug.cgi?id=198265
Cc: stable@vger.kernel.org # 4.14+
Fixes: 4ecab5616023 ("iwlwifi: pcie: support short Tx queues for A000 device family")
Reviewed-by: Sharon, Sara <sara.sharon@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
310/310 [
Author: Tedd Ho-Jeong An
Email: tedd.an@intel.com
Subject: Bluetooth: Add support for Intel Bluetooth device 9460/9560 [8087:0aaa]
Date: Mon, 1 May 2017 13:35:12 -0700
commit 86a6129ae209156baef04f668a4fd13f2c9590a4 upstream.
This patch adds support for Intel Bluetooth device 9460/9560 also known
as Jefferson Peak (JfP). The firmware downloading mechanism is same as
previous generation. So include the new USB product identifier and
whitelist the hardware variant.
T: Bus=01 Lev=01 Prnt=01 Port=09 Cnt=04 Dev#= 5 Spd=12 MxCh= 0
D: Ver= 2.01 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs= 1
P: Vendor=8087 ProdID=0aaa Rev= 0.02
C:* #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=100mA
I:* If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E: Ad=81(I) Atr=03(Int.) MxPS= 64 Ivl=1ms
E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=82(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
I:* If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E: Ad=03(O) Atr=01(Isoc) MxPS= 0 Ivl=1ms
E: Ad=83(I) Atr=01(Isoc) MxPS= 0 Ivl=1ms
I: If#= 1 Alt= 1 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E: Ad=03(O) Atr=01(Isoc) MxPS= 9 Ivl=1ms
E: Ad=83(I) Atr=01(Isoc) MxPS= 9 Ivl=1ms
I: If#= 1 Alt= 2 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E: Ad=03(O) Atr=01(Isoc) MxPS= 17 Ivl=1ms
E: Ad=83(I) Atr=01(Isoc) MxPS= 17 Ivl=1ms
I: If#= 1 Alt= 3 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E: Ad=03(O) Atr=01(Isoc) MxPS= 25 Ivl=1ms
E: Ad=83(I) Atr=01(Isoc) MxPS= 25 Ivl=1ms
I: If#= 1 Alt= 4 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E: Ad=03(O) Atr=01(Isoc) MxPS= 33 Ivl=1ms
E: Ad=83(I) Atr=01(Isoc) MxPS= 33 Ivl=1ms
I: If#= 1 Alt= 5 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E: Ad=03(O) Atr=01(Isoc) MxPS= 49 Ivl=1ms
E: Ad=83(I) Atr=01(Isoc) MxPS= 49 Ivl=1ms
I: If#= 1 Alt= 6 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E: Ad=03(O) Atr=01(Isoc) MxPS= 63 Ivl=1ms
E: Ad=83(I) Atr=01(Isoc) MxPS= 63 Ivl=1ms
Bootloader version:
< HCI Command: Intel Read Version (0x3f|0x0005) plen 0
> HCI Event: Command Complete (0x0e) plen 13
Intel Read Version (0x3f|0x0005) ncmd 32
Status: Success (0x00)
Hardware platform: 0x37
Hardware variant: 0x11
Hardware revision: 0.0
Firmware variant: 0x06
Firmware revision: 0.1
Firmware build: 42-52.2015
Firmware patch: 0
Signed-off-by: Tedd Ho-Jeong An <tedd.an@intel.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
]
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
|