mirror of
https://github.com/outbackdingo/mt76.git
synced 2026-10-24 13:26:48 +00:00
mt7603: check wtbl busy status and stop/start tx queues when clearing sta entry
Signed-off-by: Felix Fietkau <[email protected]>
This commit is contained in:
@@ -107,15 +107,20 @@ void mt7603_wtbl_init(struct mt7603_dev *dev, int idx, const u8 *mac_addr)
|
||||
u32 addr = mt7603_wtbl1_addr(idx);
|
||||
int i;
|
||||
|
||||
mt76_poll(dev, MT_WTBL_UPDATE, MT_WTBL_UPDATE_BUSY, 0, 5000);
|
||||
|
||||
mt76_set(dev, addr + 0 * 4,
|
||||
FIELD_PREP(MT_WTBL1_W0_ADDR_HI, get_unaligned_le16(_mac + 4)));
|
||||
mt76_set(dev, addr + 1 * 4,
|
||||
FIELD_PREP(MT_WTBL1_W1_ADDR_LO, get_unaligned_le32(_mac)));
|
||||
mt76_set(dev, addr + 2 * 4, MT_WTBL1_W2_ADMISSION_CONTROL);
|
||||
|
||||
mt76_stop_tx_ac(dev, GENMASK(3, 0));
|
||||
addr = mt7603_wtbl2_addr(idx);
|
||||
for (i = 0; i < MT_WTBL2_SIZE; i += 4)
|
||||
mt76_wr(dev, addr + i, 0);
|
||||
mt7603_wtbl_update(dev, idx, MT_WTBL_UPDATE_WTBL2);
|
||||
mt76_start_tx_ac(dev, GENMASK(3, 0));
|
||||
|
||||
addr = mt7603_wtbl3_addr(idx);
|
||||
for (i = 0; i < MT_WTBL3_SIZE; i += 4)
|
||||
|
||||
Reference in New Issue
Block a user