mt7603: add stuck beacon detection

Signed-off-by: Felix Fietkau <[email protected]>
This commit is contained in:
Felix Fietkau
2016-03-03 20:47:17 +01:00
parent 654686b96d
commit 0048598580
3 changed files with 6 additions and 1 deletions
+1
View File
@@ -126,6 +126,7 @@ struct mt7603_dev {
u8 beacon_mask;
u8 beacon_check;
u8 tx_check;
u8 txrx_check;
u8 rx_dma_check;
+2
View File
@@ -131,6 +131,8 @@ void mt7603_pre_tbtt_tasklet(unsigned long arg)
out:
mt76_queue_tx_cleanup(dev, MT_TXQ_BEACON, false);
if (dev->mt76.q_tx[MT_TXQ_BEACON].queued > MT7603_MAX_INTERFACES)
dev->beacon_check++;
}
void mt7603_beacon_set_timer(struct mt7603_dev *dev, int idx, int intval)
+3 -1
View File
@@ -1118,7 +1118,9 @@ void mt7603_mac_work(struct work_struct *work)
WARN_ON_ONCE(mt7603_watchdog_check(dev, &dev->txrx_check,
mt7603_tx_rx_dma_busy)) ||
WARN_ON_ONCE(mt7603_watchdog_check(dev, &dev->rx_pse_check,
mt7603_rx_pse_busy))) {
mt7603_rx_pse_busy)) ||
WARN_ON_ONCE(dev->beacon_check > MT7603_WATCHDOG_TIMEOUT)) {
dev->beacon_check = 0;
dev->tx_check = 0;
dev->txrx_check = 0;
dev->rx_dma_check = 0;