mt76: mt7915: clean up station stats polling and rate control update
authorFelix Fietkau <nbd@nbd.name>
Sun, 26 Jul 2020 18:45:58 +0000 (20:45 +0200)
committerFelix Fietkau <nbd@nbd.name>
Thu, 24 Sep 2020 16:10:14 +0000 (18:10 +0200)
commit1daf2522fa160466899cdcb87698daaa5f86fd55
treea7b92df7576ff5e6716e6c70d699bf4fcfb90aa1
parent38b04398c532e9bb9aa90fc07846ad0b0845fe94
mt76: mt7915: clean up station stats polling and rate control update

Queueing a per-sta work item from the tx free path can become very expensive
under load. This work is only supposed to pull rate control stats every
second and deal with rate control changes.

Additionally, the rate control update code was wrong, because it was
confusing bit masks and bit numbers in test_bit.

Fix this by introducing a dedicated device work item for rate control
updates, and by polling station stats from the phy mac work.
Stations requiring polling or rate control updates are added to lists
protected by dev->sta_poll_lock.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/mt7915/debugfs.c
drivers/net/wireless/mediatek/mt76/mt7915/init.c
drivers/net/wireless/mediatek/mt76/mt7915/mac.c
drivers/net/wireless/mediatek/mt76/mt7915/main.c
drivers/net/wireless/mediatek/mt76/mt7915/mt7915.h