linux/drivers/net/wireless/intel/iwlwifi
Sara Sharon 9a3fcf912e iwlwifi: mvm: cleanup pending frames in DQA mode
When a station is asleep, the fw will set it as "asleep".
All queues that are used only by one station will be stopped by
the fw.

In pre-DQA mode this was relevant for aggregation queues. However,
in DQA mode a queue is owned by one station only, so all queues
will be stopped.
As a result, we don't expect to get filtered frames back to
mac80211 and don't have to maintain the entire pending_frames
state logic, the same way as we do in aggregations.

The correct behavior is to align DQA behavior with the aggregation
queue behaviour pre-DQA:
- Don't count pending frames.
- Let mac80211 know we have frames in these queues so that it can
properly handle trigger frames.

When a trigger frame is received, mac80211 tells the driver to send
frames from the queues using release_buffered_frames.
The driver will tell the fw to let frames out even if the station
is asleep. This is done by iwl_mvm_sta_modify_sleep_tx_count.

Reported-and-tested-by: Jens Axboe <axboe@kernel.dk>
Reported-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Sara Sharon <sara.sharon@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2017-03-16 09:53:39 +02:00
..
dvm iwlwifi: dvm: don't call << operator with a negative value 2017-02-08 17:54:20 +02:00
mvm iwlwifi: mvm: cleanup pending frames in DQA mode 2017-03-16 09:53:39 +02:00
pcie iwlwifi: pcie: set STATUS_RFKILL immediately after interrupt 2017-02-08 17:54:21 +02:00
iwl-1000.c
iwl-2000.c
iwl-5000.c
iwl-6000.c iwlwifi: fix MODULE_FIRMWARE for 6030 2017-01-26 09:38:58 +02:00
iwl-7000.c iwlwifi: mvm: bump max API to 28 2017-01-26 09:38:55 +02:00
iwl-8000.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-02-02 16:54:00 -05:00
iwl-9000.c iwlwifi: mvm: bump max API to 28 2017-01-26 09:38:55 +02:00
iwl-a000.c iwlwifi: support two phys for a000 devices 2017-02-06 19:19:26 +02:00
iwl-agn-hw.h
iwl-config.h iwlwifi: support two phys for a000 devices 2017-02-06 19:19:26 +02:00
iwl-csr.h iwlwifi: support two phys for a000 devices 2017-02-06 19:19:26 +02:00
iwl-debug.c
iwl-debug.h iwlwifi: add missing type declaration 2016-07-12 14:51:57 +03:00
iwl-devtrace-data.h
iwl-devtrace-io.h iwlwifi: centralize 64 bit HW registers write 2016-07-06 10:22:08 +03:00
iwl-devtrace-iwlwifi.h
iwl-devtrace-msg.h
iwl-devtrace-ucode.h
iwl-devtrace.c iwlwifi: don't export trace points that are used in iwlwifi only 2016-09-19 10:09:41 +03:00
iwl-devtrace.h iwlwifi: tracing: decouple from mac80211 2016-07-06 10:08:56 +03:00
iwl-drv.c lib/vsprintf.c: remove %Z support 2017-02-27 18:43:47 -08:00
iwl-drv.h iwlwifi: remove unnecessary argument to iwl_drv_start() 2017-02-06 19:19:25 +02:00
iwl-eeprom-parse.c
iwl-eeprom-parse.h iwlwifi: decouple PCIe transport from mac80211 2016-07-06 10:09:56 +03:00
iwl-eeprom-read.c
iwl-eeprom-read.h
iwl-fh.h iwlwifi: change byte count table for a000 devices 2016-09-16 09:10:22 +03:00
iwl-fw-error-dump.h
iwl-fw-file.h iwlwifi: enlarge number of ucode sections 2017-01-26 09:38:57 +02:00
iwl-fw.h iwlwifi: enlarge number of ucode sections 2017-01-26 09:38:57 +02:00
iwl-io.c iwlwifi: fix semicolon.cocci warnings 2016-09-15 19:32:59 +03:00
iwl-io.h iwlwifi: centralize 64 bit HW registers write 2016-07-06 10:22:08 +03:00
iwl-modparams.h iwlwifi: decouple PCIe transport from mac80211 2016-07-06 10:09:56 +03:00
iwl-notif-wait.c iwlwifi: move to wide ID for all commands 2016-09-19 10:09:39 +03:00
iwl-notif-wait.h
iwl-nvm-parse.c iwlwifi: move BIOS MCC retrieval to common code 2016-09-19 10:09:37 +03:00
iwl-nvm-parse.h iwlwifi: move BIOS MCC retrieval to common code 2016-09-19 10:09:37 +03:00
iwl-op-mode.h
iwl-phy-db.c iwlwifi: mvm: set HCMD_NAME for PHY_DB as well 2016-09-19 11:29:33 +03:00
iwl-phy-db.h
iwl-prph.h iwlwifi: pcie: remove dead code 2016-08-30 14:16:43 +03:00
iwl-scd.h
iwl-trans.c iwlwifi: migrate to devm_* API 2016-09-19 10:09:42 +03:00
iwl-trans.h iwlwifi: move to wide ID for all commands 2016-09-19 10:09:39 +03:00
Kconfig iwlwifi: make RTPM depend on EXPERT 2017-02-08 17:54:20 +02:00
Makefile Makefile: drop -D__CHECK_ENDIAN__ from cflags 2016-12-16 00:13:43 +02:00