summaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorSara Sharon <sara.sharon@intel.com>2017-03-14 09:50:35 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2017-12-20 10:07:23 +0100
commit8d3a318194ec6a3c52384cbc63894e8dfcc15c9b (patch)
tree4647e35932ca5cf5438a7ed93c3f6b045aff32b2 /kernel
parenta524bb57dd367c299b6c61ff39df6328ae49ed08 (diff)
iwlwifi: mvm: cleanup pending frames in DQA mode
[ Upstream commit 9a3fcf912ef7f5c6e18f9af6875dd13f7311f7aa ] 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> Signed-off-by: Sasha Levin <alexander.levin@verizon.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'kernel')
0 files changed, 0 insertions, 0 deletions