summaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/mediatek/mt76/dma.c
diff options
context:
space:
mode:
authorFelix Fietkau2018-05-20 07:43:48 +0200
committerKalle Valo2018-05-23 09:58:14 +0200
commit26e40d4c0b52c60f13b074d9d6144eb3ac7fb61b (patch)
treeb27792f1af7ec62c2d5917b7c2bcaf6fda723d5a /drivers/net/wireless/mediatek/mt76/dma.c
parentmt76: move ieee80211_hw allocation to common core (diff)
downloadkernel-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.c4
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)