linux/drivers/net/wireless/iwlwifi/mvm
Johannes Berg debff6184c iwlwifi: mvm: implement D3 testing
For testing the D3 (WoWLAN) firmware, it is useful to be able
to run the firmware with instrumentation while the host isn't
sleeping and can poke at the firmware debug logging etc.

Implement this by a debugfs file. When the file is opened the
D3 firmware is loaded and all regular commands are blocked.
While the file is being read, poll the firmware's PME status
flag and report EOF once it changes to non-zero. When it is
closed, do (most of) the resume processing. This lets a user
just "cat" the file. Pressing Ctrl-C to kill the cat process
will resume the firwmare as though the platform resumed for
non-wireless reason and when the firmware wants to wake up
reading from the file automatically completes.

Unlike in real suspend, only disable interrupts and don't
reset the TX/RX hardware while in the test mode. This is a
workaround for some interrupt problems that happen only when
the PCIe link isn't fully reset (presumably by changing the
PCI config space registers which the core PCI code does.)

Note that while regular operations are blocked from sending
commands to the firmware, they could still be made and cause
strange mac80211 issues. Therefore, while using this testing
feature you need to be careful to not try to disconnect, roam
or similar, and will see warnings for such attempts.

Als note that this requires an upcoming firmware change to
tell the driver the location of the PME status flag in SRAM.
D3 test will fail if the firmware doesn't report the pointer.

Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2013-05-29 21:56:57 +02:00
..
binding.c iwlwifi: a few fixes in license 2013-03-06 16:46:59 +01:00
bt-coex.c iwlwifi: mvm: add thermal throttling and CT kill 2013-05-29 09:03:18 +02:00
d3.c iwlwifi: mvm: implement D3 testing 2013-05-29 21:56:57 +02:00
debugfs.c iwlwifi: mvm: implement D3 testing 2013-05-29 21:56:57 +02:00
fw-api-bt-coex.h iwlwifi: mvm: add BT Coex FW API 2013-03-06 16:47:57 +01:00
fw-api-d3.h iwlwifi: mvm: adjust firmware D3 configuration API 2013-05-16 23:18:06 +02:00
fw-api-mac.h iwlwifi: a few fixes in license 2013-03-06 16:46:59 +01:00
fw-api-power.h iwlwifi: mvm: Change number of DTIMs to skip semantics 2013-05-29 09:03:23 +02:00
fw-api-rs.h iwlwifi: a few fixes in license 2013-03-06 16:46:59 +01:00
fw-api-scan.h iwlwifi: a few fixes in license 2013-03-06 16:46:59 +01:00
fw-api-sta.h iwlwifi: a few fixes in license 2013-03-06 16:46:59 +01:00
fw-api-tx.h iwlwifi: mvm: add a missing define in firmware API 2013-05-16 23:08:54 +02:00
fw-api.h iwlwifi: mvm: Add support for connection monitor offload 2013-05-29 09:03:24 +02:00
fw.c iwlwifi: mvm: add thermal throttling and CT kill 2013-05-29 09:03:18 +02:00
led.c iwlwifi: a few fixes in license 2013-03-06 16:46:59 +01:00
mac80211.c Merge branch 'for-john' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next 2013-05-29 14:51:50 -04:00
mac-ctxt.c iwlwifi: mvm: Add support for connection monitor offload 2013-05-29 09:03:24 +02:00
Makefile iwlwifi: mvm: add thermal throttling and CT kill 2013-05-29 09:03:18 +02:00
mvm.h iwlwifi: mvm: implement D3 testing 2013-05-29 21:56:57 +02:00
nvm.c iwlwifi: take valid ant for HT caps from TLV 2013-05-29 09:03:23 +02:00
ops.c iwlwifi: mvm: Add support for connection monitor offload 2013-05-29 09:03:24 +02:00
phy-ctxt.c iwlwifi: mvm: implement D3 testing 2013-05-29 21:56:57 +02:00
power.c iwlwifi: mvm: add debugfs for powersave 2013-05-29 09:03:24 +02:00
quota.c iwlwifi: mvm: Fix quota handling for monitor interface 2013-03-20 14:17:08 +01:00
rs.c iwlwifi: mvm: add thermal throttling and CT kill 2013-05-29 09:03:18 +02:00
rs.h iwlwifi: mvm: add thermal throttling and CT kill 2013-05-29 09:03:18 +02:00
rx.c iwlwifi: mvm: add thermal throttling and CT kill 2013-05-29 09:03:18 +02:00
scan.c iwlwifi: mvm: use proper scan type for P2P 2013-05-27 13:30:57 +02:00
sta.c iwlwifi: mvm: add thermal throttling and CT kill 2013-05-29 09:03:18 +02:00
sta.h iwlwifi: mvm: add thermal throttling and CT kill 2013-05-29 09:03:18 +02:00
time-event.c iwlwifi: mvm: Sync FW API time event notification change 2013-04-03 22:49:52 +02:00
time-event.h iwlwifi: mvm: Add support for different ROC types 2013-03-20 14:31:04 +01:00
tt.c iwlwifi: mvm: add thermal throttling and CT kill 2013-05-29 09:03:18 +02:00
tx.c iwlwifi: mvm: fix aggregation drain flow 2013-05-16 22:39:07 +02:00
utils.c iwlwifi: mvm: implement D3 testing 2013-05-29 21:56:57 +02:00