From 7e47a257520acdf33b88c6a112573ec6b18a8575 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Fri, 4 Mar 2016 15:15:53 +0100 Subject: [PATCH] mt7603: wait for the WTBL to become available before updating it Signed-off-by: Felix Fietkau --- mt7603_mac.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/mt7603_mac.c b/mt7603_mac.c index 576e9a02..88995efd 100644 --- a/mt7603_mac.c +++ b/mt7603_mac.c @@ -159,6 +159,8 @@ void mt7603_wtbl_clear(struct mt7603_dev *dev, int idx) u32 addr = MT_WTBL1_BASE + idx * MT_WTBL1_SIZE; int i; + mt76_poll(dev, MT_WTBL_UPDATE, MT_WTBL_UPDATE_BUSY, 0, 5000); + mt76_wr(dev, addr + 0 * 4, MT_WTBL1_W0_RX_CHECK_A1 | MT_WTBL1_W0_RX_CHECK_A2 | @@ -253,6 +255,7 @@ void mt7603_mac_tx_ba_reset(struct mt7603_dev *dev, int wcid, int tid, int ssn, mt76_clear(dev, addr + (15 * 4), tid_mask); return; } + mt76_poll(dev, MT_WTBL_UPDATE, MT_WTBL_UPDATE_BUSY, 0, 5000); mt7603_mac_stop(dev); switch (tid) { @@ -482,6 +485,8 @@ void mt7603_wtbl_set_rates(struct mt7603_dev *dev, struct mt7603_sta *sta) u16 val[4]; int i; + mt76_poll(dev, MT_WTBL_UPDATE, MT_WTBL_UPDATE_BUSY, 0, 5000); + for (i = n_rates; i < 4; i++) rates[i] = rates[n_rates - 1];