Thread (41 messages) 41 messages, 3 authors, 2018-09-27
STALE2818d
Revisions (2)
  1. v1 current
  2. v3 [diff vs current]

[PATCH 15/26] mt76x0: init: reset beacon offset during bootstrap

From: Lorenzo Bianconi <hidden>
Date: 2018-09-27 09:02:20
Subsystem: mediatek mt76 wireless lan driver, the rest · Maintainers: Felix Fietkau, Lorenzo Bianconi, Ryder Lee, Linus Torvalds

Add beacon offset reset in mt76x0e_init_hardware routine

Signed-off-by: Lorenzo Bianconi <redacted>
---
 drivers/net/wireless/mediatek/mt76/mt76x0/init.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/drivers/net/wireless/mediatek/mt76/mt76x0/init.c b/drivers/net/wireless/mediatek/mt76/mt76x0/init.c
index 03211fd0db33..6600ee046800 100644
--- a/drivers/net/wireless/mediatek/mt76/mt76x0/init.c
+++ b/drivers/net/wireless/mediatek/mt76/mt76x0/init.c
@@ -345,7 +345,7 @@ EXPORT_SYMBOL_GPL(mt76x0_mac_stop);
 
 int mt76x0_init_hardware(struct mt76x0_dev *dev)
 {
-	int ret;
+	int ret, i, j, beacon_len;
 
 	if (!mt76x02_wait_for_wpdma(&dev->mt76, 1000))
 		return -EIO;
@@ -385,6 +385,12 @@ int mt76x0_init_hardware(struct mt76x0_dev *dev)
 					     MT_BEACON_TIME_CFG_TBTT_EN |
 					     MT_BEACON_TIME_CFG_BEACON_TX));
 
+	beacon_len = mt76x02_beacon_offsets[1] - mt76x02_beacon_offsets[0];
+	for (i = 0; i < 8; i++) {
+		for (j = 0; j < beacon_len; j += 4)
+			mt76_wr(dev, mt76x02_beacon_offsets[i] + j, 0);
+	}
+
 	mt76x0_reset_counters(dev);
 
 	mt76_rmw(dev, MT_US_CYC_CFG, MT_US_CYC_CNT, 0x1e);
-- 
2.17.1
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help