| From 5c98aa22412e70461ebc2e0cf0db53beb8653a20 Mon Sep 17 00:00:00 2001 |
| From: Henry Yen <henry.yen@mediatek.com> |
| Date: Thu, 22 Feb 2024 11:24:46 +0800 |
| Subject: [PATCH 14/15] wifi: mt76: mt7915: fix unusual Tx/Rx airtime duration |
| values |
| |
| Fix unusual Tx/Rx airtime duration values when running |
| "iw dev <devname> station dump". |
| |
| Signed-off-by: Henry.Yen <henry.yen@mediatek.com> |
| --- |
| mt7915/mac.c | 11 +++++++++-- |
| 1 file changed, 9 insertions(+), 2 deletions(-) |
| |
| diff --git a/mt7915/mac.c b/mt7915/mac.c |
| index e819815a..faa5ed36 100644 |
| --- a/mt7915/mac.c |
| +++ b/mt7915/mac.c |
| @@ -140,8 +140,15 @@ static void mt7915_mac_sta_poll(struct mt7915_dev *dev) |
| msta->airtime_ac[i] = mt76_rr(dev, addr); |
| msta->airtime_ac[i + 4] = mt76_rr(dev, addr + 4); |
| |
| - tx_time[i] = msta->airtime_ac[i] - tx_last; |
| - rx_time[i] = msta->airtime_ac[i + 4] - rx_last; |
| + if (msta->airtime_ac[i] <= tx_last) |
| + tx_time[i] = 0; |
| + else |
| + tx_time[i] = msta->airtime_ac[i] - tx_last; |
| + |
| + if (msta->airtime_ac[i + 4] <= rx_last) |
| + rx_time[i] = 0; |
| + else |
| + rx_time[i] = msta->airtime_ac[i + 4] - rx_last; |
| |
| if ((tx_last | rx_last) & BIT(30)) |
| clear = true; |
| -- |
| 2.18.0 |
| |