linux/drivers/net/wireless/intel/iwlwifi/mvm
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
..
binding.c
coex.c iwlwifi: mvm: fix the channel inhibition table for Channel 14 2016-07-06 09:56:32 +03:00
constants.h iwlwifi: mvm: add a flag to disable checksum 2016-05-10 22:14:46 +03:00
d3.c iwlwifi: mvm: fix D3 replay counter value 2017-02-03 16:26:42 +02:00
debugfs-vif.c Merge branch 'work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2016-10-10 13:04:49 -07:00
debugfs.c iwlwifi: mvm: mark ret as maybe_unused in iwl_dbgfs_fw_restart_write() 2017-01-26 09:39:02 +02:00
debugfs.h
fw-api-coex.h iwlwifi: mvm: cleanup the coex code 2016-07-06 02:19:21 +03:00
fw-api-d3.h iwlwifi: mvm: add firmware API name comment 2016-05-10 22:14:41 +03:00
fw-api-mac.h iwlwifi: mvm: support new statistics APIs 2017-02-03 16:26:39 +02:00
fw-api-power.h iwlwifi: remove support for fw older than -17 and -22 2016-09-26 23:15:14 +03:00
fw-api-rs.h
fw-api-rx.h iwlwifi: mvm: use firmware station PM notification for AP_LINK_PS 2016-10-19 12:46:32 +03:00
fw-api-scan.h iwlwifi: mvm: support new scan API 2017-02-03 16:26:40 +02:00
fw-api-sta.h iwlwifi: mvm: use firmware station PM notification for AP_LINK_PS 2016-10-19 12:46:32 +03:00
fw-api-stats.h iwlwifi: mvm: support new statistics APIs 2017-02-03 16:26:39 +02:00
fw-api-tof.h
fw-api-tx.h iwlwifi: mvm: support new beacon template command 2017-02-06 19:19:27 +02:00
fw-api.h iwlwifi: mvm: support new alive notification 2017-02-03 16:26:41 +02:00
fw-dbg.c iwlwifi: mvm: synchronize firmware DMA paging memory 2017-02-03 16:26:42 +02:00
fw-dbg.h iwlwifi: mvm: consider P2p device type for firmware dump triggers 2016-08-29 22:29:04 +03:00
fw.c iwlwifi: mvm: avoid exceeding the allowed print length 2017-02-08 17:54:23 +02:00
led.c
mac80211.c iwlwifi: mvm: cleanup pending frames in DQA mode 2017-03-16 09:53:39 +02:00
mac-ctxt.c iwlwifi: mvm: support new beacon template command 2017-02-06 19:19:27 +02:00
Makefile Makefile: drop -D__CHECK_ENDIAN__ from cflags 2016-12-16 00:13:43 +02:00
mvm.h iwlwifi: mvm: support new alive notification 2017-02-03 16:26:41 +02:00
nvm.c iwlwifi: move BIOS MCC retrieval to common code 2016-09-19 10:09:37 +03:00
offloading.c
ops.c iwlwifi: mvm: support unification of INIT and RT images 2017-02-03 16:26:38 +02:00
phy-ctxt.c cfg80211: remove enum ieee80211_band 2016-04-12 15:56:15 +02:00
power.c iwlwifi: mvm: cleanup incorrect and redundant define 2017-02-03 16:26:39 +02:00
quota.c iwlwifi: mvm: support setting minimum quota from debugfs 2016-02-01 16:40:23 +02:00
rs.c iwlwifi: mvm: don't call << operator with a negative value 2017-02-08 17:54:21 +02:00
rs.h iwlwifi: mvm: rs: add rate scaling support for 160MHz channels 2016-07-06 01:19:22 +03:00
rx.c Some more updates: 2017-02-10 14:31:51 -05:00
rxmq.c iwlwifi: mvm: fix reorder timer re-arming 2017-02-08 12:55:32 +02:00
scan.c iwlwifi: mvm: support new scan API 2017-02-03 16:26:40 +02:00
sf.c iwlmvm: mvm: set correct state in smart-fifo configuration 2016-07-06 02:09:55 +03:00
sta.c iwlwifi: mvm: cleanup pending frames in DQA mode 2017-03-16 09:53:39 +02:00
sta.h iwlwifi: mvm: cleanup pending frames in DQA mode 2017-03-16 09:53:39 +02:00
tdls.c cfg80211: remove enum ieee80211_band 2016-04-12 15:56:15 +02:00
testmode.h
time-event.c iwlwifi: mvm: ROC: cleanup time event info on FW failure 2016-03-09 20:59:18 +02:00
time-event.h iwlwifi: mvm: extend time event duration 2016-03-07 13:34:16 +02:00
tof.c
tof.h
tt.c iwlwifi: fix kernel crash when unregistering thermal zone 2017-01-21 14:58:37 +02:00
tx.c iwlwifi: mvm: cleanup pending frames in DQA mode 2017-03-16 09:53:39 +02:00
utils.c iwlwifi: mvm: release static queues on bcast release 2017-02-06 19:19:23 +02:00