mirror of
https://github.com/torvalds/linux.git
synced 2026-05-28 17:13:52 +02:00
mt76: schedule status timeout at dma completion
Reduce MT_TX_STATUS_SKB_TIMEOUT to 250ms Tested-by: mrkiko.rs@gmail.com Co-developed-by: Ben Greear <greearb@candelatech.com> Signed-off-by: Ben Greear <greearb@candelatech.com> Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> Signed-off-by: Felix Fietkau <nbd@nbd.name>
This commit is contained in:
parent
c34f100590
commit
c4a784e34b
|
|
@ -308,8 +308,13 @@ struct mt76_rx_tid {
|
|||
#define MT_PACKET_ID_NO_SKB 1
|
||||
#define MT_PACKET_ID_FIRST 2
|
||||
#define MT_PACKET_ID_HAS_RATE BIT(7)
|
||||
|
||||
#define MT_TX_STATUS_SKB_TIMEOUT HZ
|
||||
/* This is timer for when to give up when waiting for TXS callback,
|
||||
* with starting time being the time at which the DMA_DONE callback
|
||||
* was seen (so, we know packet was processed then, it should not take
|
||||
* long after that for firmware to send the TXS callback if it is going
|
||||
* to do so.)
|
||||
*/
|
||||
#define MT_TX_STATUS_SKB_TIMEOUT (HZ / 4)
|
||||
|
||||
struct mt76_tx_cb {
|
||||
unsigned long jiffies;
|
||||
|
|
|
|||
|
|
@ -141,7 +141,6 @@ mt76_tx_status_skb_add(struct mt76_dev *dev, struct mt76_wcid *wcid,
|
|||
|
||||
cb->wcid = wcid->idx;
|
||||
cb->pktid = pid;
|
||||
cb->jiffies = jiffies;
|
||||
|
||||
if (list_empty(&wcid->list))
|
||||
list_add_tail(&wcid->list, &dev->wcid_list);
|
||||
|
|
@ -179,6 +178,9 @@ mt76_tx_status_skb_get(struct mt76_dev *dev, struct mt76_wcid *wcid, int pktid,
|
|||
continue;
|
||||
}
|
||||
|
||||
/* It has been too long since DMA_DONE, time out this packet
|
||||
* and stop waiting for TXS callback.
|
||||
*/
|
||||
idr_remove(&wcid->pktid, cb->pktid);
|
||||
__mt76_tx_status_skb_done(dev, skb, MT_TX_CB_TXS_FAILED |
|
||||
MT_TX_CB_TXS_DONE, list);
|
||||
|
|
@ -261,6 +263,7 @@ void __mt76_tx_complete_skb(struct mt76_dev *dev, u16 wcid_idx, struct sk_buff *
|
|||
}
|
||||
|
||||
mt76_tx_status_lock(dev, &list);
|
||||
cb->jiffies = jiffies;
|
||||
__mt76_tx_status_skb_done(dev, skb, MT_TX_CB_DMA_DONE, &list);
|
||||
mt76_tx_status_unlock(dev, &list);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user