mt76: remove empty flag in mt76_txq_schedule_list

Remove empty flag in mt76_txq_schedule_list and mt76_txq_send_burst
since we just need retry_q length to notify mac80211 to reschedule the
current tx queue

Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
This commit is contained in:
Lorenzo Bianconi 2019-08-22 11:49:10 +02:00 committed by Felix Fietkau
parent b0b2373db7
commit a670111131
1 changed files with 7 additions and 16 deletions

View File

@ -378,7 +378,7 @@ EXPORT_SYMBOL_GPL(mt76_release_buffered_frames);
static int static int
mt76_txq_send_burst(struct mt76_dev *dev, struct mt76_sw_queue *sq, mt76_txq_send_burst(struct mt76_dev *dev, struct mt76_sw_queue *sq,
struct mt76_txq *mtxq, bool *empty) struct mt76_txq *mtxq)
{ {
struct ieee80211_txq *txq = mtxq_to_txq(mtxq); struct ieee80211_txq *txq = mtxq_to_txq(mtxq);
enum mt76_txq_id qid = mt76_txq_get_qid(txq); enum mt76_txq_id qid = mt76_txq_get_qid(txq);
@ -392,16 +392,12 @@ mt76_txq_send_burst(struct mt76_dev *dev, struct mt76_sw_queue *sq,
bool probe; bool probe;
int idx; int idx;
if (test_bit(MT_WCID_FLAG_PS, &wcid->flags)) { if (test_bit(MT_WCID_FLAG_PS, &wcid->flags))
*empty = true;
return 0; return 0;
}
skb = mt76_txq_dequeue(dev, mtxq, false); skb = mt76_txq_dequeue(dev, mtxq, false);
if (!skb) { if (!skb)
*empty = true;
return 0; return 0;
}
info = IEEE80211_SKB_CB(skb); info = IEEE80211_SKB_CB(skb);
if (!(wcid->tx_info & MT_WCID_TX_INFO_SET)) if (!(wcid->tx_info & MT_WCID_TX_INFO_SET))
@ -431,10 +427,8 @@ mt76_txq_send_burst(struct mt76_dev *dev, struct mt76_sw_queue *sq,
return -EBUSY; return -EBUSY;
skb = mt76_txq_dequeue(dev, mtxq, false); skb = mt76_txq_dequeue(dev, mtxq, false);
if (!skb) { if (!skb)
*empty = true;
break; break;
}
info = IEEE80211_SKB_CB(skb); info = IEEE80211_SKB_CB(skb);
cur_ampdu = info->flags & IEEE80211_TX_CTL_AMPDU; cur_ampdu = info->flags & IEEE80211_TX_CTL_AMPDU;
@ -481,8 +475,6 @@ mt76_txq_schedule_list(struct mt76_dev *dev, enum mt76_txq_id qid)
spin_lock_bh(&hwq->lock); spin_lock_bh(&hwq->lock);
while (1) { while (1) {
bool empty = false;
if (sq->swq_queued >= 4) if (sq->swq_queued >= 4)
break; break;
@ -513,10 +505,9 @@ mt76_txq_schedule_list(struct mt76_dev *dev, enum mt76_txq_id qid)
spin_lock_bh(&hwq->lock); spin_lock_bh(&hwq->lock);
} }
ret += mt76_txq_send_burst(dev, sq, mtxq, &empty); ret += mt76_txq_send_burst(dev, sq, mtxq);
if (skb_queue_empty(&mtxq->retry_q)) ieee80211_return_txq(dev->hw, txq,
empty = true; !skb_queue_empty(&mtxq->retry_q));
ieee80211_return_txq(dev->hw, txq, !empty);
} }
spin_unlock_bh(&hwq->lock); spin_unlock_bh(&hwq->lock);