Luciano Coelho <luca@xxxxxxxxx> wrote: > From: Sara Sharon <sara.sharon@xxxxxxxxx> > > 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@xxxxxxxxx> > Reported-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> > Signed-off-by: Sara Sharon <sara.sharon@xxxxxxxxx> > Signed-off-by: Luca Coelho <luciano.coelho@xxxxxxxxx> Patch applied to wireless-drivers.git, thanks. 9a3fcf912ef7 iwlwifi: mvm: cleanup pending frames in DQA mode -- https://patchwork.kernel.org/patch/9622617/ Documentation about submitting wireless patches and checking status from patchwork: https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches