All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/5] mt76x02: bssid setup corrections for STA
@ 2018-11-09 10:20 Stanislaw Gruszka
  2018-11-09 10:20 ` [PATCH 1/5] mt76x02: correct set bssid " Stanislaw Gruszka
                   ` (4 more replies)
  0 siblings, 5 replies; 22+ messages in thread
From: Stanislaw Gruszka @ 2018-11-09 10:20 UTC (permalink / raw)
  To: Felix Fietkau; +Cc: linux-wireless, Lorenzo Bianconi

Minor MBSS and beaconing fixups. On top of:
"mt76x2u: init: remove mt76x2u_init_beacon_offsets routine"

Stanislaw Gruszka (5):
  mt76x02: correct set bssid for STA
  mt76x02: initalize mutli bss mode by default
  mt76x2u: use common mt76x02_add_interface
  mt76x02: minor beaconing init changes
  mt76x02: remove no longer actuall comment

 drivers/net/wireless/mediatek/mt76/mt76x0/eeprom.c |  2 +-
 drivers/net/wireless/mediatek/mt76/mt76x0/pci.c    |  7 ++++
 drivers/net/wireless/mediatek/mt76/mt76x02.h       |  2 --
 drivers/net/wireless/mediatek/mt76/mt76x02_mac.c   | 29 +++++++++++++---
 drivers/net/wireless/mediatek/mt76/mt76x02_mac.h   |  2 +-
 drivers/net/wireless/mediatek/mt76/mt76x02_util.c  | 39 ++++++----------------
 .../net/wireless/mediatek/mt76/mt76x2/pci_init.c   | 12 +++++--
 .../net/wireless/mediatek/mt76/mt76x2/usb_init.c   |  2 +-
 .../net/wireless/mediatek/mt76/mt76x2/usb_main.c   | 15 +--------
 9 files changed, 54 insertions(+), 56 deletions(-)

-- 
1.9.3


^ permalink raw reply	[flat|nested] 22+ messages in thread

* [PATCH 1/5] mt76x02: correct set bssid for STA
  2018-11-09 10:20 [PATCH 0/5] mt76x02: bssid setup corrections for STA Stanislaw Gruszka
@ 2018-11-09 10:20 ` Stanislaw Gruszka
  2018-11-09 11:09   ` Lorenzo Bianconi
  2018-11-09 10:20 ` [PATCH 2/5] mt76x02: initalize mutli bss mode by default Stanislaw Gruszka
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 22+ messages in thread
From: Stanislaw Gruszka @ 2018-11-09 10:20 UTC (permalink / raw)
  To: Felix Fietkau; +Cc: linux-wireless, Lorenzo Bianconi

Use MT_MAC_APC_BSSID0_H_EN bit to indicatate we are
setting BSSID for STA.

Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
---
 drivers/net/wireless/mediatek/mt76/mt76x02_mac.c | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/drivers/net/wireless/mediatek/mt76/mt76x02_mac.c b/drivers/net/wireless/mediatek/mt76/mt76x02_mac.c
index 59b336e34cb5..cfeae5586897 100644
--- a/drivers/net/wireless/mediatek/mt76/mt76x02_mac.c
+++ b/drivers/net/wireless/mediatek/mt76/mt76x02_mac.c
@@ -826,10 +826,16 @@ void mt76x02_mac_work(struct work_struct *work)
 
 void mt76x02_mac_set_bssid(struct mt76x02_dev *dev, u8 idx, const u8 *addr)
 {
+	u32 bssid_h = FIELD_PREP(MT_MAC_APC_BSSID_H_ADDR,
+				 get_unaligned_le16(addr + 4));
+	u32 bssid_l = get_unaligned_le32(addr);
+
+	if (idx > 7)
+		bssid_h |= MT_MAC_APC_BSSID0_H_EN;
+
 	idx &= 7;
-	mt76_wr(dev, MT_MAC_APC_BSSID_L(idx), get_unaligned_le32(addr));
-	mt76_rmw_field(dev, MT_MAC_APC_BSSID_H(idx), MT_MAC_APC_BSSID_H_ADDR,
-		       get_unaligned_le16(addr + 4));
+	mt76_wr(dev, MT_MAC_APC_BSSID_L(idx), bssid_l);
+	mt76_wr(dev, MT_MAC_APC_BSSID_H(idx), bssid_h);
 }
 
 static int
-- 
1.9.3


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 2/5] mt76x02: initalize mutli bss mode by default
  2018-11-09 10:20 [PATCH 0/5] mt76x02: bssid setup corrections for STA Stanislaw Gruszka
  2018-11-09 10:20 ` [PATCH 1/5] mt76x02: correct set bssid " Stanislaw Gruszka
@ 2018-11-09 10:20 ` Stanislaw Gruszka
  2018-11-09 11:26   ` Lorenzo Bianconi
  2018-11-09 10:20 ` [PATCH 3/5] mt76x2u: use common mt76x02_add_interface Stanislaw Gruszka
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 22+ messages in thread
From: Stanislaw Gruszka @ 2018-11-09 10:20 UTC (permalink / raw)
  To: Felix Fietkau; +Cc: linux-wireless, Lorenzo Bianconi

Configure multi bss mode by default on all devices. That mean we
use MAC address for MT_MAC_BSSID_DW and use MT_MAC_APC_BSSID
for configuree bssid for each vif.

This is separe from beaconing as we can have for example 2 STA vifs,
so do not mix bssid init and beacon init.

Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
---
 drivers/net/wireless/mediatek/mt76/mt76x0/eeprom.c   |  2 +-
 drivers/net/wireless/mediatek/mt76/mt76x02_mac.c     | 17 +++++++++++++++--
 drivers/net/wireless/mediatek/mt76/mt76x02_mac.h     |  2 +-
 drivers/net/wireless/mediatek/mt76/mt76x02_util.c    | 13 ++-----------
 drivers/net/wireless/mediatek/mt76/mt76x2/pci_init.c |  4 +---
 drivers/net/wireless/mediatek/mt76/mt76x2/usb_init.c |  2 +-
 drivers/net/wireless/mediatek/mt76/mt76x2/usb_main.c |  3 ---
 7 files changed, 21 insertions(+), 22 deletions(-)

diff --git a/drivers/net/wireless/mediatek/mt76/mt76x0/eeprom.c b/drivers/net/wireless/mediatek/mt76/mt76x0/eeprom.c
index 497e762978cc..5036b61b66f9 100644
--- a/drivers/net/wireless/mediatek/mt76/mt76x0/eeprom.c
+++ b/drivers/net/wireless/mediatek/mt76/mt76x0/eeprom.c
@@ -347,7 +347,7 @@ int mt76x0_eeprom_init(struct mt76x02_dev *dev)
 	dev_info(dev->mt76.dev, "EEPROM ver:%02hhx fae:%02hhx\n",
 		 version, fae);
 
-	mt76x02_mac_setaddr(dev, dev->mt76.eeprom.data + MT_EE_MAC_ADDR);
+	mt76x02_mac_init_mbss(dev, dev->mt76.eeprom.data + MT_EE_MAC_ADDR);
 	mt76x0_set_chip_cap(dev);
 	mt76x0_set_freq_offset(dev);
 	mt76x0_set_temp_offset(dev);
diff --git a/drivers/net/wireless/mediatek/mt76/mt76x02_mac.c b/drivers/net/wireless/mediatek/mt76/mt76x02_mac.c
index cfeae5586897..b19f9f5b8b89 100644
--- a/drivers/net/wireless/mediatek/mt76/mt76x02_mac.c
+++ b/drivers/net/wireless/mediatek/mt76/mt76x02_mac.c
@@ -566,8 +566,11 @@ void mt76x02_send_tx_status(struct mt76x02_dev *dev,
 	return 0;
 }
 
-void mt76x02_mac_setaddr(struct mt76x02_dev *dev, u8 *addr)
+void mt76x02_mac_init_mbss(struct mt76x02_dev *dev, const u8 *addr)
 {
+	static const u8 null_addr[ETH_ALEN] = {};
+	int i;
+
 	ether_addr_copy(dev->mt76.macaddr, addr);
 
 	if (!is_valid_ether_addr(dev->mt76.macaddr)) {
@@ -581,8 +584,18 @@ void mt76x02_mac_setaddr(struct mt76x02_dev *dev, u8 *addr)
 	mt76_wr(dev, MT_MAC_ADDR_DW1,
 		get_unaligned_le16(dev->mt76.macaddr + 4) |
 		FIELD_PREP(MT_MAC_ADDR_DW1_U2ME_MASK, 0xff));
+
+	mt76_wr(dev, MT_MAC_BSSID_DW0,
+		get_unaligned_le32(dev->mt76.macaddr));
+	mt76_wr(dev, MT_MAC_BSSID_DW1,
+		get_unaligned_le16(dev->mt76.macaddr + 4) |
+		FIELD_PREP(MT_MAC_BSSID_DW1_MBSS_MODE, 3) | /* 8 APs + 8 STAs */
+		MT_MAC_BSSID_DW1_MBSS_LOCAL_BIT);
+
+	for (i = 0; i < 16; i++)
+		mt76x02_mac_set_bssid(dev, i, null_addr);
 }
-EXPORT_SYMBOL_GPL(mt76x02_mac_setaddr);
+EXPORT_SYMBOL_GPL(mt76x02_mac_init_mbss);
 
 static int
 mt76x02_mac_get_rssi(struct mt76x02_dev *dev, s8 rssi, int chain)
diff --git a/drivers/net/wireless/mediatek/mt76/mt76x02_mac.h b/drivers/net/wireless/mediatek/mt76/mt76x02_mac.h
index b076c4305585..c09181f2da2e 100644
--- a/drivers/net/wireless/mediatek/mt76/mt76x02_mac.h
+++ b/drivers/net/wireless/mediatek/mt76/mt76x02_mac.h
@@ -198,7 +198,7 @@ void mt76x02_send_tx_status(struct mt76x02_dev *dev,
 int mt76x02_mac_process_rx(struct mt76x02_dev *dev, struct sk_buff *skb,
 			   void *rxi);
 void mt76x02_mac_set_tx_protection(struct mt76x02_dev *dev, u32 val);
-void mt76x02_mac_setaddr(struct mt76x02_dev *dev, u8 *addr);
+void mt76x02_mac_init_mbss(struct mt76x02_dev *dev, const u8 *addr);
 void mt76x02_mac_write_txwi(struct mt76x02_dev *dev, struct mt76x02_txwi *txwi,
 			    struct sk_buff *skb, struct mt76_wcid *wcid,
 			    struct ieee80211_sta *sta, int len);
diff --git a/drivers/net/wireless/mediatek/mt76/mt76x02_util.c b/drivers/net/wireless/mediatek/mt76/mt76x02_util.c
index 87ce6a51fb05..2aa3f4b15fd9 100644
--- a/drivers/net/wireless/mediatek/mt76/mt76x02_util.c
+++ b/drivers/net/wireless/mediatek/mt76/mt76x02_util.c
@@ -631,16 +631,8 @@ static void mt76x02_set_beacon_offsets(struct mt76x02_dev *dev)
 
 void mt76x02_init_beacon_config(struct mt76x02_dev *dev)
 {
-	static const u8 null_addr[ETH_ALEN] = {};
 	int i;
 
-	mt76_wr(dev, MT_MAC_BSSID_DW0,
-		get_unaligned_le32(dev->mt76.macaddr));
-	mt76_wr(dev, MT_MAC_BSSID_DW1,
-		get_unaligned_le16(dev->mt76.macaddr + 4) |
-		FIELD_PREP(MT_MAC_BSSID_DW1_MBSS_MODE, 3) | /* 8 beacons */
-		MT_MAC_BSSID_DW1_MBSS_LOCAL_BIT);
-
 	/* Fire a pre-TBTT interrupt 8 ms before TBTT */
 	mt76_rmw_field(dev, MT_INT_TIMER_CFG, MT_INT_TIMER_CFG_PRE_TBTT,
 		       8 << 4);
@@ -650,10 +642,9 @@ void mt76x02_init_beacon_config(struct mt76x02_dev *dev)
 
 	mt76_wr(dev, MT_BCN_BYPASS_MASK, 0xffff);
 
-	for (i = 0; i < 8; i++) {
-		mt76x02_mac_set_bssid(dev, i, null_addr);
+	for (i = 0; i < 8; i++)
 		mt76x02_mac_set_beacon(dev, i, NULL);
-	}
+
 	mt76x02_set_beacon_offsets(dev);
 }
 EXPORT_SYMBOL_GPL(mt76x02_init_beacon_config);
diff --git a/drivers/net/wireless/mediatek/mt76/mt76x2/pci_init.c b/drivers/net/wireless/mediatek/mt76/mt76x2/pci_init.c
index 076b7479ba99..d2ef68c48ea5 100644
--- a/drivers/net/wireless/mediatek/mt76/mt76x2/pci_init.c
+++ b/drivers/net/wireless/mediatek/mt76/mt76x2/pci_init.c
@@ -119,9 +119,7 @@ static int mt76x2_mac_reset(struct mt76x02_dev *dev, bool hard)
 	mt76_wr(dev, MT_MCU_CLOCK_CTL, 0x1401);
 	mt76_clear(dev, MT_FCE_L2_STUFF, MT_FCE_L2_STUFF_WR_MPDU_LEN_EN);
 
-	mt76_wr(dev, MT_MAC_ADDR_DW0, get_unaligned_le32(macaddr));
-	mt76_wr(dev, MT_MAC_ADDR_DW1, get_unaligned_le16(macaddr + 4));
-
+	mt76x02_mac_init_mbss(dev, macaddr);
 	mt76x02_init_beacon_config(dev);
 	if (!hard)
 		return 0;
diff --git a/drivers/net/wireless/mediatek/mt76/mt76x2/usb_init.c b/drivers/net/wireless/mediatek/mt76/mt76x2/usb_init.c
index de0fbdb02c4d..4fb87deff261 100644
--- a/drivers/net/wireless/mediatek/mt76/mt76x2/usb_init.c
+++ b/drivers/net/wireless/mediatek/mt76/mt76x2/usb_init.c
@@ -189,7 +189,7 @@ int mt76x2u_init_hardware(struct mt76x02_dev *dev)
 	if (err < 0)
 		return err;
 
-	mt76x02_mac_setaddr(dev, dev->mt76.eeprom.data + MT_EE_MAC_ADDR);
+	mt76x02_mac_init_mbss(dev, dev->mt76.eeprom.data + MT_EE_MAC_ADDR);
 	dev->mt76.rxfilter = mt76_rr(dev, MT_RX_FILTR_CFG);
 
 	if (!mt76x02_wait_for_txrx_idle(&dev->mt76))
diff --git a/drivers/net/wireless/mediatek/mt76/mt76x2/usb_main.c b/drivers/net/wireless/mediatek/mt76/mt76x2/usb_main.c
index a9ecc92875ae..977e74091a27 100644
--- a/drivers/net/wireless/mediatek/mt76/mt76x2/usb_main.c
+++ b/drivers/net/wireless/mediatek/mt76/mt76x2/usb_main.c
@@ -52,9 +52,6 @@ static int mt76x2u_add_interface(struct ieee80211_hw *hw,
 	struct mt76x02_dev *dev = hw->priv;
 	unsigned int idx = 8;
 
-	if (!ether_addr_equal(dev->mt76.macaddr, vif->addr))
-		mt76x02_mac_setaddr(dev, vif->addr);
-
 	mt76x02_vif_init(dev, vif, idx);
 	return 0;
 }
-- 
1.9.3


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 3/5] mt76x2u: use common mt76x02_add_interface
  2018-11-09 10:20 [PATCH 0/5] mt76x02: bssid setup corrections for STA Stanislaw Gruszka
  2018-11-09 10:20 ` [PATCH 1/5] mt76x02: correct set bssid " Stanislaw Gruszka
  2018-11-09 10:20 ` [PATCH 2/5] mt76x02: initalize mutli bss mode by default Stanislaw Gruszka
@ 2018-11-09 10:20 ` Stanislaw Gruszka
  2018-11-09 11:18   ` Lorenzo Bianconi
  2018-11-09 10:20 ` [PATCH 4/5] mt76x02: minor beaconing init changes Stanislaw Gruszka
  2018-11-09 10:20 ` [PATCH 5/5] mt76x02: remove no longer actual comment Stanislaw Gruszka
  4 siblings, 1 reply; 22+ messages in thread
From: Stanislaw Gruszka @ 2018-11-09 10:20 UTC (permalink / raw)
  To: Felix Fietkau; +Cc: linux-wireless, Lorenzo Bianconi

There is no need anymore to use custom add interface function
for mt76x02u.

Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
---
 drivers/net/wireless/mediatek/mt76/mt76x02.h         |  2 --
 drivers/net/wireless/mediatek/mt76/mt76x02_util.c    |  6 +++---
 drivers/net/wireless/mediatek/mt76/mt76x2/usb_main.c | 12 +-----------
 3 files changed, 4 insertions(+), 16 deletions(-)

diff --git a/drivers/net/wireless/mediatek/mt76/mt76x02.h b/drivers/net/wireless/mediatek/mt76/mt76x02.h
index a8c5fdd903b9..f8e998ef8716 100644
--- a/drivers/net/wireless/mediatek/mt76/mt76x02.h
+++ b/drivers/net/wireless/mediatek/mt76/mt76x02.h
@@ -115,8 +115,6 @@ int mt76x02_sta_add(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
 int mt76x02_sta_remove(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
 		      struct ieee80211_sta *sta);
 
-void mt76x02_vif_init(struct mt76x02_dev *dev, struct ieee80211_vif *vif,
-		      unsigned int idx);
 int mt76x02_add_interface(struct ieee80211_hw *hw,
 			 struct ieee80211_vif *vif);
 void mt76x02_remove_interface(struct ieee80211_hw *hw,
diff --git a/drivers/net/wireless/mediatek/mt76/mt76x02_util.c b/drivers/net/wireless/mediatek/mt76/mt76x02_util.c
index 2aa3f4b15fd9..dbf9d89dd328 100644
--- a/drivers/net/wireless/mediatek/mt76/mt76x02_util.c
+++ b/drivers/net/wireless/mediatek/mt76/mt76x02_util.c
@@ -228,8 +228,9 @@ int mt76x02_sta_remove(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
 }
 EXPORT_SYMBOL_GPL(mt76x02_sta_remove);
 
-void mt76x02_vif_init(struct mt76x02_dev *dev, struct ieee80211_vif *vif,
-		      unsigned int idx)
+static void
+mt76x02_vif_init(struct mt76x02_dev *dev, struct ieee80211_vif *vif,
+		 unsigned int idx)
 {
 	struct mt76x02_vif *mvif = (struct mt76x02_vif *)vif->drv_priv;
 
@@ -238,7 +239,6 @@ void mt76x02_vif_init(struct mt76x02_dev *dev, struct ieee80211_vif *vif,
 	mvif->group_wcid.hw_key_idx = -1;
 	mt76x02_txq_init(dev, vif->txq);
 }
-EXPORT_SYMBOL_GPL(mt76x02_vif_init);
 
 int
 mt76x02_add_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif)
diff --git a/drivers/net/wireless/mediatek/mt76/mt76x2/usb_main.c b/drivers/net/wireless/mediatek/mt76/mt76x2/usb_main.c
index 977e74091a27..6b51dd749491 100644
--- a/drivers/net/wireless/mediatek/mt76/mt76x2/usb_main.c
+++ b/drivers/net/wireless/mediatek/mt76/mt76x2/usb_main.c
@@ -46,16 +46,6 @@ static void mt76x2u_stop(struct ieee80211_hw *hw)
 	mutex_unlock(&dev->mt76.mutex);
 }
 
-static int mt76x2u_add_interface(struct ieee80211_hw *hw,
-				 struct ieee80211_vif *vif)
-{
-	struct mt76x02_dev *dev = hw->priv;
-	unsigned int idx = 8;
-
-	mt76x02_vif_init(dev, vif, idx);
-	return 0;
-}
-
 static int
 mt76x2u_set_channel(struct mt76x02_dev *dev,
 		    struct cfg80211_chan_def *chandef)
@@ -122,7 +112,7 @@ static int mt76x2u_add_interface(struct ieee80211_hw *hw,
 	.tx = mt76x02_tx,
 	.start = mt76x2u_start,
 	.stop = mt76x2u_stop,
-	.add_interface = mt76x2u_add_interface,
+	.add_interface = mt76x02_add_interface,
 	.remove_interface = mt76x02_remove_interface,
 	.sta_add = mt76x02_sta_add,
 	.sta_remove = mt76x02_sta_remove,
-- 
1.9.3


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 4/5] mt76x02: minor beaconing init changes
  2018-11-09 10:20 [PATCH 0/5] mt76x02: bssid setup corrections for STA Stanislaw Gruszka
                   ` (2 preceding siblings ...)
  2018-11-09 10:20 ` [PATCH 3/5] mt76x2u: use common mt76x02_add_interface Stanislaw Gruszka
@ 2018-11-09 10:20 ` Stanislaw Gruszka
  2018-11-09 11:33   ` Lorenzo Bianconi
  2018-11-09 10:20 ` [PATCH 5/5] mt76x02: remove no longer actual comment Stanislaw Gruszka
  4 siblings, 1 reply; 22+ messages in thread
From: Stanislaw Gruszka @ 2018-11-09 10:20 UTC (permalink / raw)
  To: Felix Fietkau; +Cc: linux-wireless, Lorenzo Bianconi

Disable BEACON timer during init and remove interrupt registers
initalization form generic conde since they are PCIe specific.

Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
---
 drivers/net/wireless/mediatek/mt76/mt76x0/pci.c      |  7 +++++++
 drivers/net/wireless/mediatek/mt76/mt76x02_util.c    | 11 ++++-------
 drivers/net/wireless/mediatek/mt76/mt76x2/pci_init.c |  8 ++++++++
 3 files changed, 19 insertions(+), 7 deletions(-)

diff --git a/drivers/net/wireless/mediatek/mt76/mt76x0/pci.c b/drivers/net/wireless/mediatek/mt76/mt76x0/pci.c
index 757816d2b1ab..d1d3c5706c4d 100644
--- a/drivers/net/wireless/mediatek/mt76/mt76x0/pci.c
+++ b/drivers/net/wireless/mediatek/mt76/mt76x0/pci.c
@@ -129,6 +129,13 @@ static int mt76x0e_register_device(struct mt76x02_dev *dev)
 	if (err < 0)
 		return err;
 
+	/* Beaconing: fire a pre-TBTT interrupt 8 ms before TBTT */
+	mt76_rmw_field(dev, MT_INT_TIMER_CFG, MT_INT_TIMER_CFG_PRE_TBTT,
+		       8 << 4);
+	mt76_rmw_field(dev, MT_INT_TIMER_CFG, MT_INT_TIMER_CFG_GP_TIMER,
+		       MT_DFS_GP_INTERVAL);
+	mt76_wr(dev, MT_INT_TIMER_EN, 0);
+
 	if (mt76_chip(&dev->mt76) == 0x7610) {
 		u16 val;
 
diff --git a/drivers/net/wireless/mediatek/mt76/mt76x02_util.c b/drivers/net/wireless/mediatek/mt76/mt76x02_util.c
index dbf9d89dd328..2bb79c6eb54b 100644
--- a/drivers/net/wireless/mediatek/mt76/mt76x02_util.c
+++ b/drivers/net/wireless/mediatek/mt76/mt76x02_util.c
@@ -633,13 +633,10 @@ void mt76x02_init_beacon_config(struct mt76x02_dev *dev)
 {
 	int i;
 
-	/* Fire a pre-TBTT interrupt 8 ms before TBTT */
-	mt76_rmw_field(dev, MT_INT_TIMER_CFG, MT_INT_TIMER_CFG_PRE_TBTT,
-		       8 << 4);
-	mt76_rmw_field(dev, MT_INT_TIMER_CFG, MT_INT_TIMER_CFG_GP_TIMER,
-		       MT_DFS_GP_INTERVAL);
-	mt76_wr(dev, MT_INT_TIMER_EN, 0);
-
+	mt76_clear(dev, MT_BEACON_TIME_CFG, (MT_BEACON_TIME_CFG_TIMER_EN |
+					     MT_BEACON_TIME_CFG_SYNC_MODE |
+					     MT_BEACON_TIME_CFG_TBTT_EN |
+					     MT_BEACON_TIME_CFG_BEACON_TX));
 	mt76_wr(dev, MT_BCN_BYPASS_MASK, 0xffff);
 
 	for (i = 0; i < 8; i++)
diff --git a/drivers/net/wireless/mediatek/mt76/mt76x2/pci_init.c b/drivers/net/wireless/mediatek/mt76/mt76x2/pci_init.c
index d2ef68c48ea5..89941aea8a88 100644
--- a/drivers/net/wireless/mediatek/mt76/mt76x2/pci_init.c
+++ b/drivers/net/wireless/mediatek/mt76/mt76x2/pci_init.c
@@ -121,6 +121,14 @@ static int mt76x2_mac_reset(struct mt76x02_dev *dev, bool hard)
 
 	mt76x02_mac_init_mbss(dev, macaddr);
 	mt76x02_init_beacon_config(dev);
+
+	/* Fire a pre-TBTT interrupt 8 ms before TBTT */
+	mt76_rmw_field(dev, MT_INT_TIMER_CFG, MT_INT_TIMER_CFG_PRE_TBTT,
+		       8 << 4);
+	mt76_rmw_field(dev, MT_INT_TIMER_CFG, MT_INT_TIMER_CFG_GP_TIMER,
+		       MT_DFS_GP_INTERVAL);
+	mt76_wr(dev, MT_INT_TIMER_EN, 0);
+
 	if (!hard)
 		return 0;
 
-- 
1.9.3


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 5/5] mt76x02: remove no longer actual comment
  2018-11-09 10:20 [PATCH 0/5] mt76x02: bssid setup corrections for STA Stanislaw Gruszka
                   ` (3 preceding siblings ...)
  2018-11-09 10:20 ` [PATCH 4/5] mt76x02: minor beaconing init changes Stanislaw Gruszka
@ 2018-11-09 10:20 ` Stanislaw Gruszka
  4 siblings, 0 replies; 22+ messages in thread
From: Stanislaw Gruszka @ 2018-11-09 10:20 UTC (permalink / raw)
  To: Felix Fietkau; +Cc: linux-wireless, Lorenzo Bianconi

Remove comment about one configurable BSSID registers since
we utilize AP-Client feature now.

Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
---
 drivers/net/wireless/mediatek/mt76/mt76x02_util.c | 9 +--------
 1 file changed, 1 insertion(+), 8 deletions(-)

diff --git a/drivers/net/wireless/mediatek/mt76/mt76x02_util.c b/drivers/net/wireless/mediatek/mt76/mt76x02_util.c
index 2bb79c6eb54b..9fd9b5f9d3f5 100644
--- a/drivers/net/wireless/mediatek/mt76/mt76x02_util.c
+++ b/drivers/net/wireless/mediatek/mt76/mt76x02_util.c
@@ -250,17 +250,10 @@ int mt76x02_sta_remove(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
 		idx = 1 + (((dev->mt76.macaddr[0] ^ vif->addr[0]) >> 2) & 7);
 
 	/*
-	 * Client mode typically only has one configurable BSSID register,
-	 * which is used for bssidx=0. This is linked to the MAC address.
-	 * Since mac80211 allows changing interface types, and we cannot
-	 * force the use of the primary MAC address for a station mode
-	 * interface, we need some other way of configuring a per-interface
-	 * remote BSSID.
 	 * The hardware provides an AP-Client feature, where bssidx 0-7 are
 	 * used for AP mode and bssidx 8-15 for client mode.
 	 * We shift the station interface bss index by 8 to force the
-	 * hardware to recognize the BSSID.
-	 * The resulting bssidx mismatch for unicast frames is ignored by hw.
+	 * hardware to recognize the BSSID as STA.
 	 */
 	if (vif->type == NL80211_IFTYPE_STATION)
 		idx += 8;
-- 
1.9.3


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* Re: [PATCH 1/5] mt76x02: correct set bssid for STA
  2018-11-09 10:20 ` [PATCH 1/5] mt76x02: correct set bssid " Stanislaw Gruszka
@ 2018-11-09 11:09   ` Lorenzo Bianconi
  2018-11-09 11:49     ` Stanislaw Gruszka
  2018-11-09 11:52     ` Felix Fietkau
  0 siblings, 2 replies; 22+ messages in thread
From: Lorenzo Bianconi @ 2018-11-09 11:09 UTC (permalink / raw)
  To: Stanislaw Gruszka; +Cc: Felix Fietkau, linux-wireless

> Use MT_MAC_APC_BSSID0_H_EN bit to indicatate we are
> setting BSSID for STA.
> 
> Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
> ---
>  drivers/net/wireless/mediatek/mt76/mt76x02_mac.c | 12 +++++++++---
>  1 file changed, 9 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/net/wireless/mediatek/mt76/mt76x02_mac.c b/drivers/net/wireless/mediatek/mt76/mt76x02_mac.c
> index 59b336e34cb5..cfeae5586897 100644
> --- a/drivers/net/wireless/mediatek/mt76/mt76x02_mac.c
> +++ b/drivers/net/wireless/mediatek/mt76/mt76x02_mac.c
> @@ -826,10 +826,16 @@ void mt76x02_mac_work(struct work_struct *work)
>  
>  void mt76x02_mac_set_bssid(struct mt76x02_dev *dev, u8 idx, const u8 *addr)
>  {
> +	u32 bssid_h = FIELD_PREP(MT_MAC_APC_BSSID_H_ADDR,
> +				 get_unaligned_le16(addr + 4));
> +	u32 bssid_l = get_unaligned_le32(addr);
> +
> +	if (idx > 7)
> +		bssid_h |= MT_MAC_APC_BSSID0_H_EN;

This bit is to enable APClient mode and it is valid just for register 0x1094
(MT_MAC_APC_BSSID_{L,h}(0)). Moreover IIRC APClient has been disabled because
it causes a performance degradation.

> +
>  	idx &= 7;
> -	mt76_wr(dev, MT_MAC_APC_BSSID_L(idx), get_unaligned_le32(addr));
> -	mt76_rmw_field(dev, MT_MAC_APC_BSSID_H(idx), MT_MAC_APC_BSSID_H_ADDR,
> -		       get_unaligned_le16(addr + 4));
> +	mt76_wr(dev, MT_MAC_APC_BSSID_L(idx), bssid_l);
> +	mt76_wr(dev, MT_MAC_APC_BSSID_H(idx), bssid_h);
>  }
>  
>  static int
> -- 
> 1.9.3
> 

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 3/5] mt76x2u: use common mt76x02_add_interface
  2018-11-09 10:20 ` [PATCH 3/5] mt76x2u: use common mt76x02_add_interface Stanislaw Gruszka
@ 2018-11-09 11:18   ` Lorenzo Bianconi
  0 siblings, 0 replies; 22+ messages in thread
From: Lorenzo Bianconi @ 2018-11-09 11:18 UTC (permalink / raw)
  To: Stanislaw Gruszka; +Cc: Felix Fietkau, linux-wireless

> There is no need anymore to use custom add interface function
> for mt76x02u.
> 
> Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
> ---
>  drivers/net/wireless/mediatek/mt76/mt76x02.h         |  2 --
>  drivers/net/wireless/mediatek/mt76/mt76x02_util.c    |  6 +++---
>  drivers/net/wireless/mediatek/mt76/mt76x2/usb_main.c | 12 +-----------
>  3 files changed, 4 insertions(+), 16 deletions(-)
> 
> diff --git a/drivers/net/wireless/mediatek/mt76/mt76x02.h b/drivers/net/wireless/mediatek/mt76/mt76x02.h
> index a8c5fdd903b9..f8e998ef8716 100644
> --- a/drivers/net/wireless/mediatek/mt76/mt76x02.h
> +++ b/drivers/net/wireless/mediatek/mt76/mt76x02.h
> @@ -115,8 +115,6 @@ int mt76x02_sta_add(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
>  int mt76x02_sta_remove(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
>  		      struct ieee80211_sta *sta);
>  
> -void mt76x02_vif_init(struct mt76x02_dev *dev, struct ieee80211_vif *vif,
> -		      unsigned int idx);
>  int mt76x02_add_interface(struct ieee80211_hw *hw,
>  			 struct ieee80211_vif *vif);
>  void mt76x02_remove_interface(struct ieee80211_hw *hw,
> diff --git a/drivers/net/wireless/mediatek/mt76/mt76x02_util.c b/drivers/net/wireless/mediatek/mt76/mt76x02_util.c
> index 2aa3f4b15fd9..dbf9d89dd328 100644
> --- a/drivers/net/wireless/mediatek/mt76/mt76x02_util.c
> +++ b/drivers/net/wireless/mediatek/mt76/mt76x02_util.c
> @@ -228,8 +228,9 @@ int mt76x02_sta_remove(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
>  }
>  EXPORT_SYMBOL_GPL(mt76x02_sta_remove);
>  
> -void mt76x02_vif_init(struct mt76x02_dev *dev, struct ieee80211_vif *vif,
> -		      unsigned int idx)
> +static void
> +mt76x02_vif_init(struct mt76x02_dev *dev, struct ieee80211_vif *vif,
> +		 unsigned int idx)
>  {
>  	struct mt76x02_vif *mvif = (struct mt76x02_vif *)vif->drv_priv;
>  
> @@ -238,7 +239,6 @@ void mt76x02_vif_init(struct mt76x02_dev *dev, struct ieee80211_vif *vif,
>  	mvif->group_wcid.hw_key_idx = -1;
>  	mt76x02_txq_init(dev, vif->txq);
>  }
> -EXPORT_SYMBOL_GPL(mt76x02_vif_init);
>  
>  int
>  mt76x02_add_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif)
> diff --git a/drivers/net/wireless/mediatek/mt76/mt76x2/usb_main.c b/drivers/net/wireless/mediatek/mt76/mt76x2/usb_main.c
> index 977e74091a27..6b51dd749491 100644
> --- a/drivers/net/wireless/mediatek/mt76/mt76x2/usb_main.c
> +++ b/drivers/net/wireless/mediatek/mt76/mt76x2/usb_main.c
> @@ -46,16 +46,6 @@ static void mt76x2u_stop(struct ieee80211_hw *hw)
>  	mutex_unlock(&dev->mt76.mutex);
>  }
>  
> -static int mt76x2u_add_interface(struct ieee80211_hw *hw,
> -				 struct ieee80211_vif *vif)
> -{
> -	struct mt76x02_dev *dev = hw->priv;
> -	unsigned int idx = 8;
> -
> -	mt76x02_vif_init(dev, vif, idx);
> -	return 0;
> -}

This routines seems wrong since here we should have the possibility to change
the device mac address:
https://github.com/nbd168/wireless/blob/mt76/drivers/net/wireless/mediatek/mt76/mt76x2/usb_main.c#L54

and IIRC I have not removed it in:
https://patchwork.kernel.org/patch/10670853/

Regards,
Lorenzo

> -
>  static int
>  mt76x2u_set_channel(struct mt76x02_dev *dev,
>  		    struct cfg80211_chan_def *chandef)
> @@ -122,7 +112,7 @@ static int mt76x2u_add_interface(struct ieee80211_hw *hw,
>  	.tx = mt76x02_tx,
>  	.start = mt76x2u_start,
>  	.stop = mt76x2u_stop,
> -	.add_interface = mt76x2u_add_interface,
> +	.add_interface = mt76x02_add_interface,
>  	.remove_interface = mt76x02_remove_interface,
>  	.sta_add = mt76x02_sta_add,
>  	.sta_remove = mt76x02_sta_remove,
> -- 
> 1.9.3
> 

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 2/5] mt76x02: initalize mutli bss mode by default
  2018-11-09 10:20 ` [PATCH 2/5] mt76x02: initalize mutli bss mode by default Stanislaw Gruszka
@ 2018-11-09 11:26   ` Lorenzo Bianconi
  2018-11-09 13:10     ` Stanislaw Gruszka
  0 siblings, 1 reply; 22+ messages in thread
From: Lorenzo Bianconi @ 2018-11-09 11:26 UTC (permalink / raw)
  To: Stanislaw Gruszka; +Cc: Felix Fietkau, linux-wireless

> Configure multi bss mode by default on all devices. That mean we
> use MAC address for MT_MAC_BSSID_DW and use MT_MAC_APC_BSSID
> for configuree bssid for each vif.
> 
> This is separe from beaconing as we can have for example 2 STA vifs,
> so do not mix bssid init and beacon init.
> 
> Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
> ---
>  drivers/net/wireless/mediatek/mt76/mt76x0/eeprom.c   |  2 +-
>  drivers/net/wireless/mediatek/mt76/mt76x02_mac.c     | 17 +++++++++++++++--
>  drivers/net/wireless/mediatek/mt76/mt76x02_mac.h     |  2 +-
>  drivers/net/wireless/mediatek/mt76/mt76x02_util.c    | 13 ++-----------
>  drivers/net/wireless/mediatek/mt76/mt76x2/pci_init.c |  4 +---
>  drivers/net/wireless/mediatek/mt76/mt76x2/usb_init.c |  2 +-
>  drivers/net/wireless/mediatek/mt76/mt76x2/usb_main.c |  3 ---
>  7 files changed, 21 insertions(+), 22 deletions(-)
> 
> diff --git a/drivers/net/wireless/mediatek/mt76/mt76x0/eeprom.c b/drivers/net/wireless/mediatek/mt76/mt76x0/eeprom.c
> index 497e762978cc..5036b61b66f9 100644
> --- a/drivers/net/wireless/mediatek/mt76/mt76x0/eeprom.c
> +++ b/drivers/net/wireless/mediatek/mt76/mt76x0/eeprom.c

[snip]

> diff --git a/drivers/net/wireless/mediatek/mt76/mt76x2/usb_init.c b/drivers/net/wireless/mediatek/mt76/mt76x2/usb_init.c
> index de0fbdb02c4d..4fb87deff261 100644
> --- a/drivers/net/wireless/mediatek/mt76/mt76x2/usb_init.c
> +++ b/drivers/net/wireless/mediatek/mt76/mt76x2/usb_init.c
> @@ -189,7 +189,7 @@ int mt76x2u_init_hardware(struct mt76x02_dev *dev)
>  	if (err < 0)
>  		return err;
>  
> -	mt76x02_mac_setaddr(dev, dev->mt76.eeprom.data + MT_EE_MAC_ADDR);
> +	mt76x02_mac_init_mbss(dev, dev->mt76.eeprom.data + MT_EE_MAC_ADDR);
>  	dev->mt76.rxfilter = mt76_rr(dev, MT_RX_FILTR_CFG);
>  
>  	if (!mt76x02_wait_for_txrx_idle(&dev->mt76))
> diff --git a/drivers/net/wireless/mediatek/mt76/mt76x2/usb_main.c b/drivers/net/wireless/mediatek/mt76/mt76x2/usb_main.c
> index a9ecc92875ae..977e74091a27 100644
> --- a/drivers/net/wireless/mediatek/mt76/mt76x2/usb_main.c
> +++ b/drivers/net/wireless/mediatek/mt76/mt76x2/usb_main.c
> @@ -52,9 +52,6 @@ static int mt76x2u_add_interface(struct ieee80211_hw *hw,
>  	struct mt76x02_dev *dev = hw->priv;
>  	unsigned int idx = 8;
>  
> -	if (!ether_addr_equal(dev->mt76.macaddr, vif->addr))
> -		mt76x02_mac_setaddr(dev, vif->addr);
> -

I think this is a regression since you will able to change device mac address
in this way. Do you agree?

>  	mt76x02_vif_init(dev, vif, idx);
>  	return 0;
>  }
> -- 
> 1.9.3
> 

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 4/5] mt76x02: minor beaconing init changes
  2018-11-09 10:20 ` [PATCH 4/5] mt76x02: minor beaconing init changes Stanislaw Gruszka
@ 2018-11-09 11:33   ` Lorenzo Bianconi
  2018-11-09 13:16     ` Stanislaw Gruszka
  0 siblings, 1 reply; 22+ messages in thread
From: Lorenzo Bianconi @ 2018-11-09 11:33 UTC (permalink / raw)
  To: Stanislaw Gruszka; +Cc: Felix Fietkau, linux-wireless

> Disable BEACON timer during init and remove interrupt registers
> initalization form generic conde since they are PCIe specific.
> 

Since the timer is actually disabled (MT_INT_TIMER_EN set to 0) and
we just set the timer timeout here, does it worth to copy/paste
the same code?

Regards,
Lorenzo

> Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
> ---
>  drivers/net/wireless/mediatek/mt76/mt76x0/pci.c      |  7 +++++++
>  drivers/net/wireless/mediatek/mt76/mt76x02_util.c    | 11 ++++-------
>  drivers/net/wireless/mediatek/mt76/mt76x2/pci_init.c |  8 ++++++++
>  3 files changed, 19 insertions(+), 7 deletions(-)
> 

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 1/5] mt76x02: correct set bssid for STA
  2018-11-09 11:09   ` Lorenzo Bianconi
@ 2018-11-09 11:49     ` Stanislaw Gruszka
  2018-11-09 11:52     ` Felix Fietkau
  1 sibling, 0 replies; 22+ messages in thread
From: Stanislaw Gruszka @ 2018-11-09 11:49 UTC (permalink / raw)
  To: Lorenzo Bianconi; +Cc: Felix Fietkau, linux-wireless

On Fri, Nov 09, 2018 at 12:09:50PM +0100, Lorenzo Bianconi wrote:
> > Use MT_MAC_APC_BSSID0_H_EN bit to indicatate we are
> > setting BSSID for STA.
> > 
> > Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
> > ---
> >  drivers/net/wireless/mediatek/mt76/mt76x02_mac.c | 12 +++++++++---
> >  1 file changed, 9 insertions(+), 3 deletions(-)
> > 
> > diff --git a/drivers/net/wireless/mediatek/mt76/mt76x02_mac.c b/drivers/net/wireless/mediatek/mt76/mt76x02_mac.c
> > index 59b336e34cb5..cfeae5586897 100644
> > --- a/drivers/net/wireless/mediatek/mt76/mt76x02_mac.c
> > +++ b/drivers/net/wireless/mediatek/mt76/mt76x02_mac.c
> > @@ -826,10 +826,16 @@ void mt76x02_mac_work(struct work_struct *work)
> >  
> >  void mt76x02_mac_set_bssid(struct mt76x02_dev *dev, u8 idx, const u8 *addr)
> >  {
> > +	u32 bssid_h = FIELD_PREP(MT_MAC_APC_BSSID_H_ADDR,
> > +				 get_unaligned_le16(addr + 4));
> > +	u32 bssid_l = get_unaligned_le32(addr);
> > +
> > +	if (idx > 7)
> > +		bssid_h |= MT_MAC_APC_BSSID0_H_EN;
> 
> This bit is to enable APClient mode and it is valid just for register 0x1094
> (MT_MAC_APC_BSSID_{L,h}(0)). Moreover IIRC APClient has been disabled because
> it causes a performance degradation.

IIRC MT_MAC_APC_BSSID0_H_EN bit enable BSSID8-15 for STA usage, how we then
can program to device those BSSIDs ?

And if this bit is disabled, shouldn't we use MAC_BSSID_DW for setting BSSID
in STA mode ?

Thanks
Stanislaw

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 1/5] mt76x02: correct set bssid for STA
  2018-11-09 11:09   ` Lorenzo Bianconi
  2018-11-09 11:49     ` Stanislaw Gruszka
@ 2018-11-09 11:52     ` Felix Fietkau
  2018-11-09 12:50       ` Lorenzo Bianconi
  1 sibling, 1 reply; 22+ messages in thread
From: Felix Fietkau @ 2018-11-09 11:52 UTC (permalink / raw)
  To: Lorenzo Bianconi, Stanislaw Gruszka; +Cc: linux-wireless

On 2018-11-09 12:09, Lorenzo Bianconi wrote:
>> Use MT_MAC_APC_BSSID0_H_EN bit to indicatate we are
>> setting BSSID for STA.
>> 
>> Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
>> ---
>>  drivers/net/wireless/mediatek/mt76/mt76x02_mac.c | 12 +++++++++---
>>  1 file changed, 9 insertions(+), 3 deletions(-)
>> 
>> diff --git a/drivers/net/wireless/mediatek/mt76/mt76x02_mac.c b/drivers/net/wireless/mediatek/mt76/mt76x02_mac.c
>> index 59b336e34cb5..cfeae5586897 100644
>> --- a/drivers/net/wireless/mediatek/mt76/mt76x02_mac.c
>> +++ b/drivers/net/wireless/mediatek/mt76/mt76x02_mac.c
>> @@ -826,10 +826,16 @@ void mt76x02_mac_work(struct work_struct *work)
>>  
>>  void mt76x02_mac_set_bssid(struct mt76x02_dev *dev, u8 idx, const u8 *addr)
>>  {
>> +	u32 bssid_h = FIELD_PREP(MT_MAC_APC_BSSID_H_ADDR,
>> +				 get_unaligned_le16(addr + 4));
>> +	u32 bssid_l = get_unaligned_le32(addr);
>> +
>> +	if (idx > 7)
>> +		bssid_h |= MT_MAC_APC_BSSID0_H_EN;
> 
> This bit is to enable APClient mode and it is valid just for register 0x1094
> (MT_MAC_APC_BSSID_{L,h}(0)). Moreover IIRC APClient has been disabled because
> it causes a performance degradation.
The performance degradation was with MAC_ADDR_EXT, not AP-Client.
This patch should be fine.

- Felix

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 1/5] mt76x02: correct set bssid for STA
  2018-11-09 11:52     ` Felix Fietkau
@ 2018-11-09 12:50       ` Lorenzo Bianconi
  2018-11-09 13:26         ` Stanislaw Gruszka
  0 siblings, 1 reply; 22+ messages in thread
From: Lorenzo Bianconi @ 2018-11-09 12:50 UTC (permalink / raw)
  To: Felix Fietkau; +Cc: Stanislaw Gruszka, linux-wireless

> On 2018-11-09 12:09, Lorenzo Bianconi wrote:
> >> Use MT_MAC_APC_BSSID0_H_EN bit to indicatate we are
> >> setting BSSID for STA.
> >> 
> >> Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
> >> ---
> >>  drivers/net/wireless/mediatek/mt76/mt76x02_mac.c | 12 +++++++++---
> >>  1 file changed, 9 insertions(+), 3 deletions(-)
> >> 
> >> diff --git a/drivers/net/wireless/mediatek/mt76/mt76x02_mac.c b/drivers/net/wireless/mediatek/mt76/mt76x02_mac.c
> >> index 59b336e34cb5..cfeae5586897 100644
> >> --- a/drivers/net/wireless/mediatek/mt76/mt76x02_mac.c
> >> +++ b/drivers/net/wireless/mediatek/mt76/mt76x02_mac.c
> >> @@ -826,10 +826,16 @@ void mt76x02_mac_work(struct work_struct *work)
> >>  
> >>  void mt76x02_mac_set_bssid(struct mt76x02_dev *dev, u8 idx, const u8 *addr)
> >>  {
> >> +	u32 bssid_h = FIELD_PREP(MT_MAC_APC_BSSID_H_ADDR,
> >> +				 get_unaligned_le16(addr + 4));
> >> +	u32 bssid_l = get_unaligned_le32(addr);
> >> +
> >> +	if (idx > 7)
> >> +		bssid_h |= MT_MAC_APC_BSSID0_H_EN;
> > 
> > This bit is to enable APClient mode and it is valid just for register 0x1094
> > (MT_MAC_APC_BSSID_{L,h}(0)). Moreover IIRC APClient has been disabled because
> > it causes a performance degradation.
> The performance degradation was with MAC_ADDR_EXT, not AP-Client.
> This patch should be fine.

Ah, now I remember sorry, you are right :)
Anyway IIRC MT_MAC_APC_BSSID0_H_EN is just for AP_CLIENT_BSSID0 (at least for
76x2), for others we need to use BIT(31) but just if APClient is disabled, right?
Moreover BSSID filter is currently disabled (BIT(3) in RX_FILTER_CFG).

# echo 0x1400 > /sys/kernel/debug/ieee80211/phy0/mt76/regidx
# cat /sys/kernel/debug/ieee80211/phy0/mt76/regval
0x00017f97

Have you tried to enabled it?

Regards,
Lorenzo

> 
> - Felix

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 2/5] mt76x02: initalize mutli bss mode by default
  2018-11-09 11:26   ` Lorenzo Bianconi
@ 2018-11-09 13:10     ` Stanislaw Gruszka
  2018-11-09 13:31       ` Lorenzo Bianconi
  0 siblings, 1 reply; 22+ messages in thread
From: Stanislaw Gruszka @ 2018-11-09 13:10 UTC (permalink / raw)
  To: Lorenzo Bianconi; +Cc: Felix Fietkau, linux-wireless

On Fri, Nov 09, 2018 at 12:26:51PM +0100, Lorenzo Bianconi wrote:
> > @@ -52,9 +52,6 @@ static int mt76x2u_add_interface(struct ieee80211_hw *hw,
> >  	struct mt76x02_dev *dev = hw->priv;
> >  	unsigned int idx = 8;
> >  
> > -	if (!ether_addr_equal(dev->mt76.macaddr, vif->addr))
> > -		mt76x02_mac_setaddr(dev, vif->addr);
> > -
> 
> I think this is a regression since you will able to change device mac address
> in this way. Do you agree?

I don't think it works currently, because we have already created
vif interface when set mac address via ieee80211_change_mac().

The only thing, I suppose could work is set MAC, del vif and
add vif. But this does not seems to work either , below is
example from unpached kernel:

[root@dhcp-27-155 ~]# iw dev
phy#1
	Interface wlan1
		ifindex 10
		wdev 0x100000001
		addr 2c:4d:54:cb:d8:04
		type managed
[root@dhcp-27-155 ~]# ip link set addres  b0:6e:bf:a5:31:90  wlan1
[root@dhcp-27-155 ~]# iw dev wlan1 del
[root@dhcp-27-155 ~]# iw phy phy0 interface  add wlan0 type station
command failed: No such file or directory (-2)
[root@dhcp-27-155 ~]# iw phy phy1 interface  add wlan0 type station
[root@dhcp-27-155 ~]# iw dev 
phy#1
	Interface wlan0
		ifindex 11
		wdev 0x100000002
		addr 2c:4d:54:cb:d8:04
		type managed
[root@dhcp-27-155 ~]# ethtool -i wlan0
driver: mt76x2u
version: 4.20.0-rc1+
firmware-version: 0.0.00-b1
bus-info: 1-1.2:1.0
supports-statistics: yes
supports-test: no
supports-eeprom-access: no
supports-register-dump: no
supports-priv-flags: no

Anyway I think, to support MAC address change, we should not filter
based on MAC address, but maybe only on BSSID ? 

Thanks
Stanislaw

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 4/5] mt76x02: minor beaconing init changes
  2018-11-09 11:33   ` Lorenzo Bianconi
@ 2018-11-09 13:16     ` Stanislaw Gruszka
  2018-11-09 13:59       ` Lorenzo Bianconi
  0 siblings, 1 reply; 22+ messages in thread
From: Stanislaw Gruszka @ 2018-11-09 13:16 UTC (permalink / raw)
  To: Lorenzo Bianconi; +Cc: Felix Fietkau, linux-wireless

On Fri, Nov 09, 2018 at 12:33:32PM +0100, Lorenzo Bianconi wrote:
> > Disable BEACON timer during init and remove interrupt registers
> > initalization form generic conde since they are PCIe specific.
> > 
> 
> Since the timer is actually disabled (MT_INT_TIMER_EN set to 0) and
> we just set the timer timeout here, does it worth to copy/paste
> the same code?

As I pointed somwhere else I have some random, not easy to reproduce
performance drops on MT7610U sta mode, starting when AP mode support
was added. I'm can not be sure if this is by this setting this
timer, but I would rather accept slight code duplication, than 
do something that (even with very low probability) can cause
troubles and for sure is not necessary.

Thanks
Stanislaw

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 1/5] mt76x02: correct set bssid for STA
  2018-11-09 12:50       ` Lorenzo Bianconi
@ 2018-11-09 13:26         ` Stanislaw Gruszka
  2018-11-09 13:42           ` Lorenzo Bianconi
  0 siblings, 1 reply; 22+ messages in thread
From: Stanislaw Gruszka @ 2018-11-09 13:26 UTC (permalink / raw)
  To: Lorenzo Bianconi; +Cc: Felix Fietkau, linux-wireless

On Fri, Nov 09, 2018 at 01:50:51PM +0100, Lorenzo Bianconi wrote:
> > On 2018-11-09 12:09, Lorenzo Bianconi wrote:
> > >> Use MT_MAC_APC_BSSID0_H_EN bit to indicatate we are
> > >> setting BSSID for STA.
> > >> 
> > >> Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
> > >> ---
> > >>  drivers/net/wireless/mediatek/mt76/mt76x02_mac.c | 12 +++++++++---
> > >>  1 file changed, 9 insertions(+), 3 deletions(-)
> > >> 
> > >> diff --git a/drivers/net/wireless/mediatek/mt76/mt76x02_mac.c b/drivers/net/wireless/mediatek/mt76/mt76x02_mac.c
> > >> index 59b336e34cb5..cfeae5586897 100644
> > >> --- a/drivers/net/wireless/mediatek/mt76/mt76x02_mac.c
> > >> +++ b/drivers/net/wireless/mediatek/mt76/mt76x02_mac.c
> > >> @@ -826,10 +826,16 @@ void mt76x02_mac_work(struct work_struct *work)
> > >>  
> > >>  void mt76x02_mac_set_bssid(struct mt76x02_dev *dev, u8 idx, const u8 *addr)
> > >>  {
> > >> +	u32 bssid_h = FIELD_PREP(MT_MAC_APC_BSSID_H_ADDR,
> > >> +				 get_unaligned_le16(addr + 4));
> > >> +	u32 bssid_l = get_unaligned_le32(addr);
> > >> +
> > >> +	if (idx > 7)
> > >> +		bssid_h |= MT_MAC_APC_BSSID0_H_EN;
> > > 
> > > This bit is to enable APClient mode and it is valid just for register 0x1094
> > > (MT_MAC_APC_BSSID_{L,h}(0)). Moreover IIRC APClient has been disabled because
> > > it causes a performance degradation.
> > The performance degradation was with MAC_ADDR_EXT, not AP-Client.
> > This patch should be fine.
> 
> Ah, now I remember sorry, you are right :)
> Anyway IIRC MT_MAC_APC_BSSID0_H_EN is just for AP_CLIENT_BSSID0 (at least for
> 76x2), for others we need to use BIT(31) but just if APClient is disabled, right?
> Moreover BSSID filter is currently disabled (BIT(3) in RX_FILTER_CFG).
> 
> # echo 0x1400 > /sys/kernel/debug/ieee80211/phy0/mt76/regidx
> # cat /sys/kernel/debug/ieee80211/phy0/mt76/regval
> 0x00017f97
> 
> Have you tried to enabled it?

I didn't try this yet, but I think it should be enabled to support
mulit BSS and MAC address change. 

However I still don't know how to set multiple bssid for STA,
Use BIT(31) or BIT(16) as indicator or maybe 
just write BSSID to MT_MAC_APC_BSSID_{H,L} and hardware will
recognize this is not AP BSSID ?

Thanks
Stanislaw

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 2/5] mt76x02: initalize mutli bss mode by default
  2018-11-09 13:10     ` Stanislaw Gruszka
@ 2018-11-09 13:31       ` Lorenzo Bianconi
  2018-11-09 16:25         ` Stanislaw Gruszka
  0 siblings, 1 reply; 22+ messages in thread
From: Lorenzo Bianconi @ 2018-11-09 13:31 UTC (permalink / raw)
  To: Stanislaw Gruszka; +Cc: Felix Fietkau, linux-wireless

> [root@dhcp-27-155 ~]# iw dev
> phy#1
> 	Interface wlan1
> 		ifindex 10
> 		wdev 0x100000001
> 		addr 2c:4d:54:cb:d8:04
> 		type managed
> [root@dhcp-27-155 ~]# ip link set addres  b0:6e:bf:a5:31:90  wlan1
> [root@dhcp-27-155 ~]# iw dev wlan1 del
> [root@dhcp-27-155 ~]# iw phy phy0 interface  add wlan0 type station
> command failed: No such file or directory (-2)
> [root@dhcp-27-155 ~]# iw phy phy1 interface  add wlan0 type station
> [root@dhcp-27-155 ~]# iw dev 
> phy#1
> 	Interface wlan0
> 		ifindex 11
> 		wdev 0x100000002
> 		addr 2c:4d:54:cb:d8:04
> 		type managed
> [root@dhcp-27-155 ~]# ethtool -i wlan0
> driver: mt76x2u
> version: 4.20.0-rc1+
> firmware-version: 0.0.00-b1
> bus-info: 1-1.2:1.0
> supports-statistics: yes
> supports-test: no
> supports-eeprom-access: no
> supports-register-dump: no
> supports-priv-flags: no
> 
> Anyway I think, to support MAC address change, we should not filter
> based on MAC address, but maybe only on BSSID ? 
> 
> Thanks
> Stanislaw

You can create the interface with a given mac address

# iw phy phy0 interface add wlp0s4u1 type managed addr 00:11:22:33:44:55
# iw dev
phy#0
        Interface wlp0s4u1
                ifindex 9
                wdev 0x2
                addr 00:11:22:33:44:55
                type managed
                txpower 3.00 dBm

# ip link show dev wlp0s4u1
9: wlp0s4u1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DORMANT group default qlen 1000
    link/ether 00:11:22:33:44:55 brd ff:ff:ff:ff:ff:ff

Regards,
Lorenzo


^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 1/5] mt76x02: correct set bssid for STA
  2018-11-09 13:26         ` Stanislaw Gruszka
@ 2018-11-09 13:42           ` Lorenzo Bianconi
  2018-11-09 13:47             ` Felix Fietkau
  0 siblings, 1 reply; 22+ messages in thread
From: Lorenzo Bianconi @ 2018-11-09 13:42 UTC (permalink / raw)
  To: Stanislaw Gruszka; +Cc: Felix Fietkau, linux-wireless

> On Fri, Nov 09, 2018 at 01:50:51PM +0100, Lorenzo Bianconi wrote:
> > > On 2018-11-09 12:09, Lorenzo Bianconi wrote:
> > > >> Use MT_MAC_APC_BSSID0_H_EN bit to indicatate we are
> > > >> setting BSSID for STA.
> > > >> 
> > > >> Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
> > > >> ---
> > > >>  drivers/net/wireless/mediatek/mt76/mt76x02_mac.c | 12 +++++++++---
> > > >>  1 file changed, 9 insertions(+), 3 deletions(-)
> > > >> 
> > > >> diff --git a/drivers/net/wireless/mediatek/mt76/mt76x02_mac.c b/drivers/net/wireless/mediatek/mt76/mt76x02_mac.c
> > > >> index 59b336e34cb5..cfeae5586897 100644
> > > >> --- a/drivers/net/wireless/mediatek/mt76/mt76x02_mac.c
> > > >> +++ b/drivers/net/wireless/mediatek/mt76/mt76x02_mac.c
> > > >> @@ -826,10 +826,16 @@ void mt76x02_mac_work(struct work_struct *work)
> > > >>  
> > > >>  void mt76x02_mac_set_bssid(struct mt76x02_dev *dev, u8 idx, const u8 *addr)
> > > >>  {
> > > >> +	u32 bssid_h = FIELD_PREP(MT_MAC_APC_BSSID_H_ADDR,
> > > >> +				 get_unaligned_le16(addr + 4));
> > > >> +	u32 bssid_l = get_unaligned_le32(addr);
> > > >> +
> > > >> +	if (idx > 7)
> > > >> +		bssid_h |= MT_MAC_APC_BSSID0_H_EN;
> > > > 
> > > > This bit is to enable APClient mode and it is valid just for register 0x1094
> > > > (MT_MAC_APC_BSSID_{L,h}(0)). Moreover IIRC APClient has been disabled because
> > > > it causes a performance degradation.
> > > The performance degradation was with MAC_ADDR_EXT, not AP-Client.
> > > This patch should be fine.
> > 
> > Ah, now I remember sorry, you are right :)
> > Anyway IIRC MT_MAC_APC_BSSID0_H_EN is just for AP_CLIENT_BSSID0 (at least for
> > 76x2), for others we need to use BIT(31) but just if APClient is disabled, right?
> > Moreover BSSID filter is currently disabled (BIT(3) in RX_FILTER_CFG).
> > 
> > # echo 0x1400 > /sys/kernel/debug/ieee80211/phy0/mt76/regidx
> > # cat /sys/kernel/debug/ieee80211/phy0/mt76/regval
> > 0x00017f97
> > 
> > Have you tried to enabled it?
> 
> I didn't try this yet, but I think it should be enabled to support
> mulit BSS and MAC address change. 

I agree we can use multi-BSS for mac filtering in AP mode but my gut feeling in
STA the hw uses the value in MT_MAC_ADDR_DW{0,1} for unicast packet filtering
(BIT(2) in RX_FILTER_CFG). Moreover I think there is a relation between
MT_MAC_ADDR_DW and BSSID values in multiAP mode.

Regards,
Lorenzo

> 
> However I still don't know how to set multiple bssid for STA,
> Use BIT(31) or BIT(16) as indicator or maybe 
> just write BSSID to MT_MAC_APC_BSSID_{H,L} and hardware will
> recognize this is not AP BSSID ?
> 
> Thanks
> Stanislaw

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 1/5] mt76x02: correct set bssid for STA
  2018-11-09 13:42           ` Lorenzo Bianconi
@ 2018-11-09 13:47             ` Felix Fietkau
  0 siblings, 0 replies; 22+ messages in thread
From: Felix Fietkau @ 2018-11-09 13:47 UTC (permalink / raw)
  To: Lorenzo Bianconi, Stanislaw Gruszka; +Cc: linux-wireless

On 2018-11-09 14:42, Lorenzo Bianconi wrote:
>> On Fri, Nov 09, 2018 at 01:50:51PM +0100, Lorenzo Bianconi wrote:
>> > > On 2018-11-09 12:09, Lorenzo Bianconi wrote:
>> > > >> Use MT_MAC_APC_BSSID0_H_EN bit to indicatate we are
>> > > >> setting BSSID for STA.
>> > > >> 
>> > > >> Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
>> > > >> ---
>> > > >>  drivers/net/wireless/mediatek/mt76/mt76x02_mac.c | 12 +++++++++---
>> > > >>  1 file changed, 9 insertions(+), 3 deletions(-)
>> > > >> 
>> > > >> diff --git a/drivers/net/wireless/mediatek/mt76/mt76x02_mac.c b/drivers/net/wireless/mediatek/mt76/mt76x02_mac.c
>> > > >> index 59b336e34cb5..cfeae5586897 100644
>> > > >> --- a/drivers/net/wireless/mediatek/mt76/mt76x02_mac.c
>> > > >> +++ b/drivers/net/wireless/mediatek/mt76/mt76x02_mac.c
>> > > >> @@ -826,10 +826,16 @@ void mt76x02_mac_work(struct work_struct *work)
>> > > >>  
>> > > >>  void mt76x02_mac_set_bssid(struct mt76x02_dev *dev, u8 idx, const u8 *addr)
>> > > >>  {
>> > > >> +	u32 bssid_h = FIELD_PREP(MT_MAC_APC_BSSID_H_ADDR,
>> > > >> +				 get_unaligned_le16(addr + 4));
>> > > >> +	u32 bssid_l = get_unaligned_le32(addr);
>> > > >> +
>> > > >> +	if (idx > 7)
>> > > >> +		bssid_h |= MT_MAC_APC_BSSID0_H_EN;
>> > > > 
>> > > > This bit is to enable APClient mode and it is valid just for register 0x1094
>> > > > (MT_MAC_APC_BSSID_{L,h}(0)). Moreover IIRC APClient has been disabled because
>> > > > it causes a performance degradation.
>> > > The performance degradation was with MAC_ADDR_EXT, not AP-Client.
>> > > This patch should be fine.
>> > 
>> > Ah, now I remember sorry, you are right :)
>> > Anyway IIRC MT_MAC_APC_BSSID0_H_EN is just for AP_CLIENT_BSSID0 (at least for
>> > 76x2), for others we need to use BIT(31) but just if APClient is disabled, right?
>> > Moreover BSSID filter is currently disabled (BIT(3) in RX_FILTER_CFG).
>> > 
>> > # echo 0x1400 > /sys/kernel/debug/ieee80211/phy0/mt76/regidx
>> > # cat /sys/kernel/debug/ieee80211/phy0/mt76/regval
>> > 0x00017f97
>> > 
>> > Have you tried to enabled it?
>> 
>> I didn't try this yet, but I think it should be enabled to support
>> mulit BSS and MAC address change. 
> 
> I agree we can use multi-BSS for mac filtering in AP mode but my gut feeling in
> STA the hw uses the value in MT_MAC_ADDR_DW{0,1} for unicast packet filtering
> (BIT(2) in RX_FILTER_CFG). Moreover I think there is a relation between
> MT_MAC_ADDR_DW and BSSID values in multiAP mode.
I'm pretty sure that value also gets used for local ACK/BA filtering. We
definitely need to set it up properly.
In the past, I observed cases where a misconfigured MAC address led to
no tx status being reported anymore.

- Felix

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 4/5] mt76x02: minor beaconing init changes
  2018-11-09 13:16     ` Stanislaw Gruszka
@ 2018-11-09 13:59       ` Lorenzo Bianconi
  0 siblings, 0 replies; 22+ messages in thread
From: Lorenzo Bianconi @ 2018-11-09 13:59 UTC (permalink / raw)
  To: Stanislaw Gruszka; +Cc: Felix Fietkau, linux-wireless

> On Fri, Nov 09, 2018 at 12:33:32PM +0100, Lorenzo Bianconi wrote:
> > > Disable BEACON timer during init and remove interrupt registers
> > > initalization form generic conde since they are PCIe specific.
> > > 
> > 
> > Since the timer is actually disabled (MT_INT_TIMER_EN set to 0) and
> > we just set the timer timeout here, does it worth to copy/paste
> > the same code?
> 
> As I pointed somwhere else I have some random, not easy to reproduce
> performance drops on MT7610U sta mode, starting when AP mode support
> was added. I'm can not be sure if this is by this setting this
> timer, but I would rather accept slight code duplication, than 
> do something that (even with very low probability) can cause
> troubles and for sure is not necessary.

I am fine with this patch but I do not see how original code can cause issues since
MT_INT_TIMER_EN is already set it to 0 (comment mt76_wr(dev, MT_INT_TIMER_EN, 0) out
in the original code)

Regards,
Lorenzo

> 
> Thanks
> Stanislaw

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 2/5] mt76x02: initalize mutli bss mode by default
  2018-11-09 13:31       ` Lorenzo Bianconi
@ 2018-11-09 16:25         ` Stanislaw Gruszka
  2018-11-09 16:51           ` Lorenzo Bianconi
  0 siblings, 1 reply; 22+ messages in thread
From: Stanislaw Gruszka @ 2018-11-09 16:25 UTC (permalink / raw)
  To: Lorenzo Bianconi; +Cc: Felix Fietkau, linux-wireless

On Fri, Nov 09, 2018 at 02:31:31PM +0100, Lorenzo Bianconi wrote:
> > 
> > Anyway I think, to support MAC address change, we should not filter
> > based on MAC address, but maybe only on BSSID ? 
> > 
> > Thanks
> > Stanislaw
> 
> You can create the interface with a given mac address
> 
> # iw phy phy0 interface add wlp0s4u1 type managed addr 00:11:22:33:44:55

I realized I have ancient version of iw :-)

Ok, so to do not break that we can add it to common function like this:

+	if (vif->type == NL80211_IFTYPE_STATION) {
+		if (idx == 0)
+			mt76x02_mac_init_mbss(dev, vif->addr);
 		idx += 8;
+	}

Thanks
Stanislaw
 

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 2/5] mt76x02: initalize mutli bss mode by default
  2018-11-09 16:25         ` Stanislaw Gruszka
@ 2018-11-09 16:51           ` Lorenzo Bianconi
  0 siblings, 0 replies; 22+ messages in thread
From: Lorenzo Bianconi @ 2018-11-09 16:51 UTC (permalink / raw)
  To: Stanislaw Gruszka; +Cc: Felix Fietkau, linux-wireless

> On Fri, Nov 09, 2018 at 02:31:31PM +0100, Lorenzo Bianconi wrote:
> > > 
> > > Anyway I think, to support MAC address change, we should not filter
> > > based on MAC address, but maybe only on BSSID ? 
> > > 
> > > Thanks
> > > Stanislaw
> > 
> > You can create the interface with a given mac address
> > 
> > # iw phy phy0 interface add wlp0s4u1 type managed addr 00:11:22:33:44:55
> 
> I realized I have ancient version of iw :-)
> 
> Ok, so to do not break that we can add it to common function like this:
> 
> +	if (vif->type == NL80211_IFTYPE_STATION) {
> +		if (idx == 0)
> +			mt76x02_mac_init_mbss(dev, vif->addr);
>  		idx += 8;
> +	}
> 
> Thanks
> Stanislaw
>  

Does this patch break AP + STA configuration (since we are changing MT_MAC_ADDR_DW{0,1}
regs with a possible complete different value)? I think (but not 100% sure)
MT_MAC_ADDR_DW is linked to BSSID used.
Maybe it is safer to maintain mt76x2u_add_interface routine since it is just a static
function used in mt76x2u module

Regards,
Lorenzo

^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2018-11-09 16:51 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-11-09 10:20 [PATCH 0/5] mt76x02: bssid setup corrections for STA Stanislaw Gruszka
2018-11-09 10:20 ` [PATCH 1/5] mt76x02: correct set bssid " Stanislaw Gruszka
2018-11-09 11:09   ` Lorenzo Bianconi
2018-11-09 11:49     ` Stanislaw Gruszka
2018-11-09 11:52     ` Felix Fietkau
2018-11-09 12:50       ` Lorenzo Bianconi
2018-11-09 13:26         ` Stanislaw Gruszka
2018-11-09 13:42           ` Lorenzo Bianconi
2018-11-09 13:47             ` Felix Fietkau
2018-11-09 10:20 ` [PATCH 2/5] mt76x02: initalize mutli bss mode by default Stanislaw Gruszka
2018-11-09 11:26   ` Lorenzo Bianconi
2018-11-09 13:10     ` Stanislaw Gruszka
2018-11-09 13:31       ` Lorenzo Bianconi
2018-11-09 16:25         ` Stanislaw Gruszka
2018-11-09 16:51           ` Lorenzo Bianconi
2018-11-09 10:20 ` [PATCH 3/5] mt76x2u: use common mt76x02_add_interface Stanislaw Gruszka
2018-11-09 11:18   ` Lorenzo Bianconi
2018-11-09 10:20 ` [PATCH 4/5] mt76x02: minor beaconing init changes Stanislaw Gruszka
2018-11-09 11:33   ` Lorenzo Bianconi
2018-11-09 13:16     ` Stanislaw Gruszka
2018-11-09 13:59       ` Lorenzo Bianconi
2018-11-09 10:20 ` [PATCH 5/5] mt76x02: remove no longer actual comment Stanislaw Gruszka

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.