diff options
author | Felix Fietkau | 2018-05-20 07:43:48 +0200 |
---|---|---|
committer | Kalle Valo | 2018-05-23 09:58:14 +0200 |
commit | 26e40d4c0b52c60f13b074d9d6144eb3ac7fb61b (patch) | |
tree | b27792f1af7ec62c2d5917b7c2bcaf6fda723d5a /drivers/net/wireless/mediatek/mt76/dma.c | |
parent | mt76: move ieee80211_hw allocation to common core (diff) | |
download | kernel-qcow2-linux-26e40d4c0b52c60f13b074d9d6144eb3ac7fb61b.tar.gz kernel-qcow2-linux-26e40d4c0b52c60f13b074d9d6144eb3ac7fb61b.tar.xz kernel-qcow2-linux-26e40d4c0b52c60f13b074d9d6144eb3ac7fb61b.zip |
mt76: wait for pending tx to complete before switching channel
Reduces interruption caused by scanning
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Diffstat (limited to 'drivers/net/wireless/mediatek/mt76/dma.c')
-rw-r--r-- | drivers/net/wireless/mediatek/mt76/dma.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/net/wireless/mediatek/mt76/dma.c b/drivers/net/wireless/mediatek/mt76/dma.c index 3518703524e7..3dbedcedc2c4 100644 --- a/drivers/net/wireless/mediatek/mt76/dma.c +++ b/drivers/net/wireless/mediatek/mt76/dma.c @@ -178,6 +178,10 @@ mt76_dma_tx_cleanup(struct mt76_dev *dev, enum mt76_txq_id qid, bool flush) mt76_dma_sync_idx(dev, q); wake = wake && qid < IEEE80211_NUM_ACS && q->queued < q->ndesc - 8; + + if (!q->queued) + wake_up(&dev->tx_wait); + spin_unlock_bh(&q->lock); if (wake) |