diff options
author | Sara Sharon <sara.sharon@intel.com> | 2017-03-14 10:50:35 +0300 |
---|---|---|
committer | Kalle Valo <kvalo@codeaurora.org> | 2017-03-16 10:53:39 +0300 |
commit | 9a3fcf912ef7f5c6e18f9af6875dd13f7311f7aa (patch) | |
tree | 6202776b7699c3e862d0b2323936993662875315 /drivers/cpufreq/unicore2-cpufreq.c | |
parent | 22a0e18eac7a9e986fec76c60fa4a2926d1291e2 (diff) | |
download | linux-9a3fcf912ef7f5c6e18f9af6875dd13f7311f7aa.tar.xz |
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>
Diffstat (limited to 'drivers/cpufreq/unicore2-cpufreq.c')
0 files changed, 0 insertions, 0 deletions