mirror of
https://github.com/outbackdingo/mt76.git
synced 2026-10-24 13:26:48 +00:00
mt76: only stop tx queues on offchannel, not during the entire scan
During scans, mac80211 frequently switches back to the home channel to minimize interruption of ongoing traffic. Keep regular tx queues active during that time. Signed-off-by: Felix Fietkau <[email protected]>
This commit is contained in:
@@ -366,6 +366,11 @@ void mt76_set_channel(struct mt76_dev *dev)
|
||||
struct mt76_channel_state *state;
|
||||
bool offchannel = hw->conf.flags & IEEE80211_CONF_OFFCHANNEL;
|
||||
|
||||
if (offchannel)
|
||||
set_bit(MT76_OFFCHANNEL, &dev->state);
|
||||
else
|
||||
clear_bit(MT76_OFFCHANNEL, &dev->state);
|
||||
|
||||
if (dev->drv->update_survey)
|
||||
dev->drv->update_survey(dev);
|
||||
|
||||
|
||||
@@ -189,6 +189,7 @@ enum {
|
||||
MT76_STATE_RUNNING,
|
||||
MT76_SCANNING,
|
||||
MT76_RESET,
|
||||
MT76_OFFCHANNEL,
|
||||
};
|
||||
|
||||
struct mt76_hw_cap {
|
||||
|
||||
@@ -332,7 +332,7 @@ mt76_txq_send_burst(struct mt76_dev *dev, struct mt76_queue *hwq,
|
||||
if (probe)
|
||||
break;
|
||||
|
||||
if (test_bit(MT76_SCANNING, &dev->state) ||
|
||||
if (test_bit(MT76_OFFCHANNEL, &dev->state) ||
|
||||
test_bit(MT76_RESET, &dev->state))
|
||||
return -EBUSY;
|
||||
|
||||
@@ -385,7 +385,7 @@ restart:
|
||||
bool empty = false;
|
||||
int cur;
|
||||
|
||||
if (test_bit(MT76_SCANNING, &dev->state) ||
|
||||
if (test_bit(MT76_OFFCHANNEL, &dev->state) ||
|
||||
test_bit(MT76_RESET, &dev->state))
|
||||
return -EBUSY;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user