Skip to contentSkip to conversation

introduce mt7921e support

PATCH Superseded [email protected] 1 participant 9 messages Dec 17, 2020

Subsystems (2)

v3 of 8 Superseded Latest is v8 →

lore
Share & tools
lore
author reviewer
#1 lore raw

PATCH v3 1/8 mt76: mt7921: add module support

In reply to [email protected]

From: Sean Wang <[email protected]>

Add mt7921 as the pci driver module.

The purpose of the patch is to check about if the following patches are able to compile properly.

---
 drivers/net/wireless/mediatek/mt76/Kconfig    |  1 +
 drivers/net/wireless/mediatek/mt76/Makefile   |  1 +
 .../net/wireless/mediatek/mt76/mt7921/Kconfig | 10 +++
 .../wireless/mediatek/mt76/mt7921/Makefile    |  5 ++
 .../net/wireless/mediatek/mt76/mt7921/pci.c   | 63 +++++++++++++++++++
 5 files changed, 80 insertions(+)
 create mode 100644 drivers/net/wireless/mediatek/mt76/mt7921/Kconfig
 create mode 100644 drivers/net/wireless/mediatek/mt76/mt7921/Makefile
 create mode 100644 drivers/net/wireless/mediatek/mt76/mt7921/pci.c
drivers/net/wireless/mediatek/mt76/Kconfig +1 -0
index 31015d2a8e7d..5f42ce3267cb 100644
@@ -29,3 +29,4 @@ source "drivers/net/wireless/mediatek/mt76/mt76x2/Kconfig"
 source "drivers/net/wireless/mediatek/mt76/mt7603/Kconfig"
 source "drivers/net/wireless/mediatek/mt76/mt7615/Kconfig"
 source "drivers/net/wireless/mediatek/mt76/mt7915/Kconfig"
+source "drivers/net/wireless/mediatek/mt76/mt7921/Kconfig"
drivers/net/wireless/mediatek/mt76/Makefile +1 -0
index e53584db0756..1d72093b61a3 100644
@@ -31,3 +31,4 @@ obj-$(CONFIG_MT76x2_COMMON) += mt76x2/
 obj-$(CONFIG_MT7603E) += mt7603/
 obj-$(CONFIG_MT7615_COMMON) += mt7615/
 obj-$(CONFIG_MT7915E) += mt7915/
+obj-$(CONFIG_MT7921E) += mt7921/
drivers/net/wireless/mediatek/mt76/mt7921/Kconfig new file +10 -0
new file mode 100644
index 000000000000..24932d2e8dee
@@ -0,0 +1,10 @@
+# SPDX-License-Identifier: ISC
+config MT7921E
+	tristate "MediaTek MT7921E (PCIe) support"
+	select MT76_CORE
+	depends on MAC80211
+	depends on PCI
+	help
+	  This adds support for MT7921E 802.11ax 2x2:2SS wireless devices.
+
+	  To compile this driver as a module, choose M here.
drivers/net/wireless/mediatek/mt76/mt7921/Makefile new file +5 -0
new file mode 100644
index 000000000000..fa7b42721631
@@ -0,0 +1,5 @@
+#SPDX-License-Identifier: ISC
+
+obj-$(CONFIG_MT7921E) += mt7921e.o
+
+mt7921e-y := pci.o
drivers/net/wireless/mediatek/mt76/mt7921/pci.c new file +63 -0

63 lines not on this page · raw message

Signature · 5 lines
2.25.1
_______________________________________________
Linux-mediatek mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/linux-mediatek
author reviewer
#5 lore raw

PATCH v3 5/8 mt76: mt7921: add EEPROM support

In reply to [email protected]

From: Sean Wang <[email protected]>

Add EEPROM support to MT7921 to determine the capability the card has such as indentificaiton, MAC address, the band and antenna number the card able to support.

---
 .../wireless/mediatek/mt76/mt7921/Makefile    |   2 +-
 .../wireless/mediatek/mt76/mt7921/eeprom.c    | 101 ++++++++++++++++++
 .../wireless/mediatek/mt76/mt7921/eeprom.h    |  27 +++++
 3 files changed, 129 insertions(+), 1 deletion(-)
 create mode 100644 drivers/net/wireless/mediatek/mt76/mt7921/eeprom.c
 create mode 100644 drivers/net/wireless/mediatek/mt76/mt7921/eeprom.h
drivers/net/wireless/mediatek/mt76/mt7921/Makefile +1 -1
index 13721f4cdd43..622749311fc6 100644
@@ -2,4 +2,4 @@
 
 obj-$(CONFIG_MT7921E) += mt7921e.o
 
-mt7921e-y := pci.o mcu.o mac.o dma.o
+mt7921e-y := pci.o mcu.o mac.o dma.o eeprom.o
drivers/net/wireless/mediatek/mt76/mt7921/eeprom.c new file +101 -0

101 lines not on this page · raw message

drivers/net/wireless/mediatek/mt76/mt7921/eeprom.h new file +27 -0
new file mode 100644
index 000000000000..54f30401343c
@@ -0,0 +1,27 @@
+/* SPDX-License-Identifier: ISC */
+/* Copyright (C) 2020 MediaTek Inc. */
+
+#ifndef __MT7921_EEPROM_H
+#define __MT7921_EEPROM_H
+
+#include "mt7921.h"
+
+enum mt7921_eeprom_field {
+	MT_EE_CHIP_ID =		0x000,
+	MT_EE_VERSION =		0x002,
+	MT_EE_MAC_ADDR =	0x004,
+	MT_EE_WIFI_CONF =	0x07c,
+	__MT_EE_MAX =		0x3bf
+};
+
+#define MT_EE_WIFI_CONF_TX_MASK			BIT(0)
+#define MT_EE_WIFI_CONF_BAND_SEL		GENMASK(3, 2)
+
+enum mt7921_eeprom_band {
+	MT_EE_NA,
+	MT_EE_5GHZ,
+	MT_EE_2GHZ,
+	MT_EE_DUAL_BAND,
+};
+
+#endif
Signature · 5 lines
2.25.1
_______________________________________________
Linux-mediatek mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/linux-mediatek
author reviewer
#8 lore raw

PATCH v3 8/8 mt76: mt7921: add debugfs support

In reply to [email protected]

From: Sean Wang <[email protected]>

Add debugfs support to dump driver statistics and hardware details.

---
 .../wireless/mediatek/mt76/mt7921/Makefile    |   2 +-
 .../wireless/mediatek/mt76/mt7921/debugfs.c   | 178 ++++++++++++++++++
 .../net/wireless/mediatek/mt76/mt7921/init.c  |   2 +-
 3 files changed, 180 insertions(+), 2 deletions(-)
 create mode 100644 drivers/net/wireless/mediatek/mt76/mt7921/debugfs.c
drivers/net/wireless/mediatek/mt76/mt7921/Makefile +1 -1
index dc3c05c389f2..daac64fc2cc0 100644
@@ -2,4 +2,4 @@
 
 obj-$(CONFIG_MT7921E) += mt7921e.o
 
-mt7921e-y := pci.o mcu.o mac.o dma.o eeprom.o main.o init.o
+mt7921e-y := pci.o mcu.o mac.o dma.o eeprom.o main.o init.o debugfs.o
drivers/net/wireless/mediatek/mt76/mt7921/debugfs.c new file +178 -0

178 lines not on this page · raw message

drivers/net/wireless/mediatek/mt76/mt7921/init.c +1 -1
index e5ba2591a61d..446f76bbfd21 100644
@@ -231,7 +231,7 @@ int mt7921_register_device(struct mt7921_dev *dev)
 
 	ieee80211_queue_work(mt76_hw(dev), &dev->init_work);
 
-	return 0;
+	return mt7921_init_debugfs(dev);
 }
 
 void mt7921_unregister_device(struct mt7921_dev *dev)
Signature · 5 lines
2.25.1
_______________________________________________
Linux-mediatek mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/linux-mediatek
author reviewer
#4 lore raw

PATCH v3 4/8 mt76: mt7921: add DMA support

In reply to [email protected]

From: Sean Wang <[email protected]>

Add DMA and register access support to MT7921e driver to set up the link for the data movement between the host and MT7921 MAC, or the host and MT7921 MCU.

---
 .../wireless/mediatek/mt76/mt7921/Makefile    |   2 +-
 .../net/wireless/mediatek/mt76/mt7921/dma.c   | 356 ++++++++++++++++++
 .../net/wireless/mediatek/mt76/mt7921/mac.c   |   3 +
 3 files changed, 360 insertions(+), 1 deletion(-)
 create mode 100644 drivers/net/wireless/mediatek/mt76/mt7921/dma.c
drivers/net/wireless/mediatek/mt76/mt7921/Makefile +1 -1
index c3399166c46d..13721f4cdd43 100644
@@ -2,4 +2,4 @@
 
 obj-$(CONFIG_MT7921E) += mt7921e.o
 
-mt7921e-y := pci.o mcu.o mac.o
+mt7921e-y := pci.o mcu.o mac.o dma.o
drivers/net/wireless/mediatek/mt76/mt7921/dma.c new file +356 -0

356 lines not on this page · raw message

drivers/net/wireless/mediatek/mt76/mt7921/mac.c +3 -0
index be14f397dadc..ef6a094d55ca 100644
@@ -1201,6 +1201,9 @@ mt7921_dma_reset(struct mt7921_phy *phy)
 		mt76_queue_rx_reset(dev, i);
 	}
 
+	/* re-init prefetch settings after reset */
+	mt7921_dma_prefetch(dev);
+
 	mt76_set(dev, MT_WFDMA0_GLO_CFG,
 		 MT_WFDMA0_GLO_CFG_TX_DMA_EN | MT_WFDMA0_GLO_CFG_RX_DMA_EN);
 }
Signature · 5 lines
2.25.1
_______________________________________________
Linux-mediatek mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/linux-mediatek
author reviewer
#6 lore raw

PATCH v3 6/8 mt76: mt7921: add ieee80211_ops

In reply to [email protected]

From: Sean Wang <[email protected]>

Filling ieee80211_ops with the mt7921 operations.

---
 .../wireless/mediatek/mt76/mt7921/Makefile    |   2 +-
 .../net/wireless/mediatek/mt76/mt7921/main.c  | 929 ++++++++++++++++++
 2 files changed, 930 insertions(+), 1 deletion(-)
 create mode 100644 drivers/net/wireless/mediatek/mt76/mt7921/main.c
drivers/net/wireless/mediatek/mt76/mt7921/Makefile +1 -1
index 622749311fc6..47f86f8d020b 100644
@@ -2,4 +2,4 @@
 
 obj-$(CONFIG_MT7921E) += mt7921e.o
 
-mt7921e-y := pci.o mcu.o mac.o dma.o eeprom.o
+mt7921e-y := pci.o mcu.o mac.o dma.o eeprom.o main.o
drivers/net/wireless/mediatek/mt76/mt7921/main.c new file +929 -0

929 lines not on this page · raw message

Signature · 5 lines
2.25.1
_______________________________________________
Linux-mediatek mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/linux-mediatek
author reviewer
#2 lore raw

PATCH v3 2/8 mt76: mt7921: add MCU support

In reply to [email protected]

From: Sean Wang <[email protected]>

MT7921 contains a microprocessor with which the host can use command/event to communicate to implement offload features such as establish connection, hardware scan and so on. The host has to download the ROM patch, RAM firmware and finally activate the MCU to complete the MT7921 initialization.

---
 .../wireless/mediatek/mt76/mt7921/Makefile    |    2 +-
 .../net/wireless/mediatek/mt76/mt7921/mac.h   |  333 +++
 .../net/wireless/mediatek/mt76/mt7921/mcu.c   | 2391 +++++++++++++++++
 .../net/wireless/mediatek/mt76/mt7921/mcu.h   | 1075 ++++++++
 .../wireless/mediatek/mt76/mt7921/mt7921.h    |  352 +++
 .../net/wireless/mediatek/mt76/mt7921/regs.h  |  413 +++
 6 files changed, 4565 insertions(+), 1 deletion(-)
 create mode 100644 drivers/net/wireless/mediatek/mt76/mt7921/mac.h
 create mode 100644 drivers/net/wireless/mediatek/mt76/mt7921/mcu.c
 create mode 100644 drivers/net/wireless/mediatek/mt76/mt7921/mcu.h
 create mode 100644 drivers/net/wireless/mediatek/mt76/mt7921/mt7921.h
 create mode 100644 drivers/net/wireless/mediatek/mt76/mt7921/regs.h
drivers/net/wireless/mediatek/mt76/mt7921/Makefile +1 -1
index fa7b42721631..85fd49cd23ca 100644
@@ -2,4 +2,4 @@
 
 obj-$(CONFIG_MT7921E) += mt7921e.o
 
-mt7921e-y := pci.o
+mt7921e-y := pci.o mcu.o
drivers/net/wireless/mediatek/mt76/mt7921/mac.h new file +333 -0

333 lines not on this page · raw message

drivers/net/wireless/mediatek/mt76/mt7921/mcu.c new file +2391 -0

2,391 lines not on this page · raw message

drivers/net/wireless/mediatek/mt76/mt7921/mcu.h new file +1075 -0

271 lines not on this page · raw message

drivers/net/wireless/mediatek/mt76/mt7921/mt7921.h new file +352 -0

352 lines not on this page · raw message

drivers/net/wireless/mediatek/mt76/mt7921/regs.h new file +413 -0

413 lines not on this page · raw message

The rest of this diff is not shown. View the raw message.

Signature · 5 lines
2.25.1
_______________________________________________
Linux-mediatek mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/linux-mediatek

Part of the diff is not shown here. View the raw message.

[email protected]

author reviewer
#0 lore raw

v3 cover introduce mt7921e support

From: Sean Wang <[email protected]>

Introduce support for mt7921e 802.11ax (Wi-Fi 6) 2x2:2SS chipset.

v2:
- Mark the patch as -next

v3:
- Remove sw scan support
- Get rid of dbdc code
- Run mt7921_configure_filter hodling mt76 mutex
- Correct Txp programming in Txd
- Correct fw log to host command
- Correct eeprom offset definition
- Update rate adaption info report
- Remove unused code and fields in struture
- Split the previous driver into several patches for easy review

Sean Wang (8):
mt76: mt7921: add module support
mt76: mt7921: add MCU support
mt76: mt7921: add MAC support
mt76: mt7921: add DMA support
mt76: mt7921: add EEPROM support
mt76: mt7921: add ieee80211_ops
mt76: mt7921: introduce mt7921e support
mt76: mt7921: add debugfs support

 drivers/net/wireless/mediatek/mt76/Kconfig    |    1 +
 drivers/net/wireless/mediatek/mt76/Makefile   |    1 +
 .../net/wireless/mediatek/mt76/mt7921/Kconfig |   10 +
 .../wireless/mediatek/mt76/mt7921/Makefile    |    5 +
 .../wireless/mediatek/mt76/mt7921/debugfs.c   |  178 ++
 .../net/wireless/mediatek/mt76/mt7921/dma.c   |  356 +++
 .../wireless/mediatek/mt76/mt7921/eeprom.c    |  101 +
 .../wireless/mediatek/mt76/mt7921/eeprom.h    |   27 +
 .../net/wireless/mediatek/mt76/mt7921/init.c  |  263 ++
 .../net/wireless/mediatek/mt76/mt7921/mac.c   | 1367 ++++++++++
 .../net/wireless/mediatek/mt76/mt7921/mac.h   |  333 +++
 .../net/wireless/mediatek/mt76/mt7921/main.c  |  929 +++++++
 .../net/wireless/mediatek/mt76/mt7921/mcu.c   | 2391 +++++++++++++++++
 .../net/wireless/mediatek/mt76/mt7921/mcu.h   | 1075 ++++++++
 .../wireless/mediatek/mt76/mt7921/mt7921.h    |  352 +++
 .../net/wireless/mediatek/mt76/mt7921/pci.c   |  184 ++
 .../net/wireless/mediatek/mt76/mt7921/regs.h  |  413 +++
 17 files changed, 7986 insertions(+)
 create mode 100644 drivers/net/wireless/mediatek/mt76/mt7921/Kconfig
 create mode 100644 drivers/net/wireless/mediatek/mt76/mt7921/Makefile
 create mode 100644 drivers/net/wireless/mediatek/mt76/mt7921/debugfs.c
 create mode 100644 drivers/net/wireless/mediatek/mt76/mt7921/dma.c
 create mode 100644 drivers/net/wireless/mediatek/mt76/mt7921/eeprom.c
 create mode 100644 drivers/net/wireless/mediatek/mt76/mt7921/eeprom.h
 create mode 100644 drivers/net/wireless/mediatek/mt76/mt7921/init.c
 create mode 100644 drivers/net/wireless/mediatek/mt76/mt7921/mac.c
 create mode 100644 drivers/net/wireless/mediatek/mt76/mt7921/mac.h
 create mode 100644 drivers/net/wireless/mediatek/mt76/mt7921/main.c
 create mode 100644 drivers/net/wireless/mediatek/mt76/mt7921/mcu.c
 create mode 100644 drivers/net/wireless/mediatek/mt76/mt7921/mcu.h
 create mode 100644 drivers/net/wireless/mediatek/mt76/mt7921/mt7921.h
 create mode 100644 drivers/net/wireless/mediatek/mt76/mt7921/pci.c
 create mode 100644 drivers/net/wireless/mediatek/mt76/mt7921/regs.h

--
2.25.1

author reviewer
#3 lore raw

PATCH v3 3/8 mt76: mt7921: add MAC support

From: Sean Wang <[email protected]>

Add Rx packet description parsing, Tx packet description compositon, handle packet recycling and provide MAC information mt76 core needs to support mac80211.

---
 .../wireless/mediatek/mt76/mt7921/Makefile    |    2 +-
 .../net/wireless/mediatek/mt76/mt7921/mac.c   | 1364 +++++++++++++++++
 2 files changed, 1365 insertions(+), 1 deletion(-)
 create mode 100644 drivers/net/wireless/mediatek/mt76/mt7921/mac.c
drivers/net/wireless/mediatek/mt76/mt7921/Makefile +1 -1
index 85fd49cd23ca..c3399166c46d 100644
@@ -2,4 +2,4 @@
 
 obj-$(CONFIG_MT7921E) += mt7921e.o
 
-mt7921e-y := pci.o mcu.o
+mt7921e-y := pci.o mcu.o mac.o
drivers/net/wireless/mediatek/mt76/mt7921/mac.c new file +1364 -0

1,364 lines not on this page · raw message

Signature · 1 line
2.25.1
author reviewer
#7 lore raw

PATCH v3 7/8 mt76: mt7921: introduce mt7921e support

In reply to [email protected]

From: Sean Wang <[email protected]>

Introduce support for mt7921e 802.11ax (Wi-Fi 6) 2x2:2SS chipset.

---
 .../wireless/mediatek/mt76/mt7921/Makefile    |   2 +-
 .../net/wireless/mediatek/mt76/mt7921/init.c  | 263 ++++++++++++++++++
 .../net/wireless/mediatek/mt76/mt7921/pci.c   | 121 ++++++++
 3 files changed, 385 insertions(+), 1 deletion(-)
 create mode 100644 drivers/net/wireless/mediatek/mt76/mt7921/init.c
drivers/net/wireless/mediatek/mt76/mt7921/Makefile +1 -1
index 47f86f8d020b..dc3c05c389f2 100644
@@ -2,4 +2,4 @@
 
 obj-$(CONFIG_MT7921E) += mt7921e.o
 
-mt7921e-y := pci.o mcu.o mac.o dma.o eeprom.o main.o
+mt7921e-y := pci.o mcu.o mac.o dma.o eeprom.o main.o init.o
drivers/net/wireless/mediatek/mt76/mt7921/init.c new file +263 -0

263 lines not on this page · raw message

drivers/net/wireless/mediatek/mt76/mt7921/pci.c +121 -0

155 lines not on this page · raw message

Signature · 1 line
2.25.1