提交 89bc67e3 编写于 作者: F Felix Fietkau 提交者: Kalle Valo

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: NFelix Fietkau <nbd@nbd.name>
Signed-off-by: NKalle Valo <kvalo@codeaurora.org>
上级 66a77cbe
......@@ -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 @@ mt76_txq_schedule_list(struct mt76_dev *dev, struct mt76_queue *hwq)
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;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册