mt76

From TechInfoDepot
Jump to navigationJump to search

Basic information

  • Module name(s): mt76
  • Authorship tag: community
  • License governing driver source code: GPL
  • Status: in-kernel

Function

  • MAC architecture / mode: SoftMAC
  • Driver framework(s): mac80211
  • Firmware status tags: required
  • Firmware license tags: redistribution allowed, closed source

Limitations / unimplemented functionality NOS

  • Currently missing functionality:
  • Notable limitations:

Supported modes

  • STA (Station) mode: supported
  • IBSS (Ad-Hoc) mode: supported
  • AP (Master) mode: supported
  • Mesh (802.11s) mode: supported
  • P2P mode: unsupported
  • Monitor mode: supported
  • Packet injection: supported

Hardware covered

Supported chips

  • MT7603E, MT7603EN, MT7610E, MT7610EN, MT7610U, MT7610UN, MT7612E, MT7612EN, MT7612U, MT7612UN, MT7615, MT7615E, MT7615N, MT7630E, MT7662E, MT7662EN, MT7662U, MT7662TU, MT7663BEN, MT7628A, MT7628K, MT7628N, MT7915, MT7915A, MT7915D, MT7915N, MT7916, MT7921A, MT7921K, MT7921L, MT7921P, MT7921T, MT7921LEN, MT7921S, MT7921SN, MT7922A, MT7922AN, MT7925, MT7996

Supported (probably) devices

 InterfaceFCC IDManuf.Vendor IDDevice IDChip1_modelPHY modesMIMO configOUIFCC_date
ALFA Network AWUS036ACMUSB0e8d7612MT7612Uabgn+ac2x2:2
ASUS USB-AC50USBMSQ-USBAC50
NDD9577111306
Edimax0b0517dbMT7610Uan+ac1x1:1AC:22:0B2014-02-11
ASUS USB-AC51USBMSQUSBAC51Edimax0b0517d1MT7610Uabgn+ac1x1:12013-12-19
ASUS USB-AC54USBMSQ-USBAC550b051833MT7612Uabgn+ac2x2:22014-11-14
ASUS USB-AC55USBMSQ-USBAC550b0517ebMT7612Uabgn+ac2x2:22014-11-14
ASUS USB-N53 B1USBMSQ-USBN53B10b05180bMT7612Uabgn2x2:2
AVM FRITZ!WLAN USB Stick AC 430USB057c8502MT7610Uabgn+ac1x1:108:96:D7
AboCom AU7212USBMQ4AU7212AboCom07b87610MT7610Uabgn+ac1x1:12013-10-18
AsiaRF AW2405-AC1USBTKZAW2405AC1AsiaRFMT7612Uabgn+ac1x1:12018-04-03
AsiaRF AW7915-AE1M.2AsiaRF14c37915MT7915ANabgn+ac+ax4x4:400:0A:52
AsiaRF AW7915-AEDM.2TKZAW7915NP1AsiaRF14c37915MT7915DANabgn+ac+ax2x2:200:0A:522021-11-12
AsiaRF AW7915-BMDM.2AsiaRF14c37915MT7915DANabgn+ac+ax2x2:200:0A:52
AsiaRF AW7916-AEDM.2AsiaRF14c37916MT7916ANabgn+ac+ax3x3:200:0A:52
AsiaRF AW7916-NPDMini PCIeTKZAW7916-NPDAsiaRF14c37916MT7916ANabgn+ac+ax2x2:2
3x3:2
00:0A:522023-11-10
AsiaRF M27612USBAsiaRFMT7612Uabgn+ac2x2:2
AsiaRF WS2433Mini PCIeMT7612ENabgn+ac2x2:2
AsiaRF WS2433-HMini PCIeAsiaRFMT7612ENan+ac2x2:2
Aukey WF-R13USBMT7612UNabgn+ac2x2:2
Aukey WF-R3USB0e8d7610MT7610Uabgn+ac1x1:1
Aukey WF-R5USB0e8d7610MT7610Uabgn+ac1x1:1
Comcast Xfinity KXW02AAAUSBH8N-5250Askey293c5702MT7610Uabgn+ac1x1:12013-11-18
D-Link DWA-171 rev B1USBKA2WA171B1Alpha Networks20013d02MT7610Uabgn+ac1x1:12013-08-06
EDUP EP-AC1601 (2015)USBZPHEP-AC1601MTN0e8d7612MT7612UNabgn+ac2x2:2
EDUP EP-AC1605USBZPHEP-AC16050e8d7612MT7612UNabgn+ac2x2:2
Edimax EW-7711MACUSBNDD9577111306MT7610Uan+ac1x1:12013-12-10
Edimax EW-7711ULCUSBNDD9577111306Edimax7392a711MT7610Uan+ac1x1:12013-12-10
Edimax EW-7722UACUSBNDD9577221420EdimaxMT7612Uabgn+ac2x2:274:DA:382015-04-28
Elecom WDC-433SU2MUSBNDD9577111306Edimax7392b711MT7610Uan+ac1x1:12013-12-10
GGNet U7612E-F1Mini PCIeMT7612Eabgn+ac2x2:2
GGNet U7612E-H1Mini PCIeMT7612Eabgn+ac2x2:2
I-O DATA WN-AC433UKUSBEdimax04bb0951MT7610Uabgn+ac1x1:1
LB-LINK BL-WDN600USBS8J-WDN6000e8d7610MT7610Uabgn+ac1x1:12015-04-01
Linksys AE6000USBQ87-AE6000Wistron NeWeb13b1003eMT7610Uabgn+ac1x1:1C8:D7:192013-02-19
MediaTek MT7630E Reference DesignMini PCIeRAS-MT7630E14c37630MT7630Ebgn1x1:12013-01-07
Microsoft 1802USBC3K1802
PPQ-WN3502R
Lite-OnMT7612UNabgn+ac2x2:22017-07-21
NET-DYN AC600PNPUSBMT7610Uabgn+ac1x1:1
Netgear A6210USBPY31340024908469053MT7612Uabgn+ac2x2:26C:B0:CE2014-06-25
Netgear N600 5G Wireless CardMini PCIePY31430028414c37662MT7612Ean+ac2x2:22014-09-09
Panda Wireless PAU0AUSB2ADUTLGPAU0AMT7610Uabgn+ac1x1:12017-05-22
Panda Wireless PAU0BUSB2ADUTLGPAU0BMT7610Uabgn+ac1x1:12018-07-11
Planex GW-450DUSB2019ab31MT7610Uabgn+ac1x1:1
Planex GW-450D-KATANAUSB2019ab31MT7610Uabgn+ac1x1:1
Sitecom WLA-3100USB0df60075MT7610Uabgn+ac1x1:1
SparkLAN WPER-176ACMini PCIeSparkLAN14c37610MT7610Ean+ac1x1:1
SparkLAN WUBM-273ACNUSBRYK-WUBM273ACNSparkLANMT7612Uabgn+ac2x2:22015-02-08
SparkLAN WUBR-175ACNUSBMT7610Uabgn+ac1x1:1
TOTOLINK A1000UAUSBX7D-WL0273ZioncomMT7610Uabgn+ac1x1:12014-11-24
TP-LINK Archer T1UUSBTE7T1U
TE7T1UV1
TP-LINK23570105MT7610Uan+ac1x1:12016-08-23
TP-LINK Archer T2UUSBTE7T2UTP-LINK148f761aMT7610Uabgn+ac1x1:12014-08-12
TP-LINK Archer T2UHUSBTE7T2UHTP-LINK148f761aMT7610Uabgn+ac1x1:184:16:F92014-11-21
TP-LINK Archer T2UHPUSBTE7T2UHPProware2357010bMT7610Uabgn+ac1x1:12016-12-22
TP-LINK TL-WDN5200USBTP-LINK148f761aMT7610Uabgn+ac1x1:1
TRENDnet TEW-806UBHUSBXU8TEW806UBHAboCom20f4806bMT7610Uabgn+ac1x1:12014-05-30
USI unk. model MT7630E (HP)Mini PCIeRAS-MT7630E14c37630MT7630Ebgn1x1:1CC:52:AF2013-01-07
Winstars WS-WN680A1USBNZ3WS-WN680
QLE-GWU635
MT7610Uabgn+ac1x1:12015-04-29
Winstars WS-WN680AEUSBNZ3WS-WN680
QLE-GWU635
MT7610Uabgn+ac1x1:12015-04-29
ZBT WN2522Mini PCIe14c37662MT7612Ean+ac2x2:2
ZyXEL NWD6505USBI88NWD6505
MQ4NWD6505F
AboCom05863425MT7610Uabgn+ac1x1:1FC:F5:282013-07-11

External links

Introduction

mac80211 wireless driver for MediaTek MT7xxx series

mt7601u driver handles:

  • MT7601U - 802.11b/g/n 1T1R 2.4GHz USB Chip (4.2+)

mt76 driver handles:

  • MT7603E - 802.11b/g/n 2T2R 2.4GHz PCIe chip (4.7+)
  • MT7610E - 802.11a/b/g/n/ac 1T1R 2.4/5GHz PCIe Chip (4.20+)
  • MT7610U - 802.11a/b/g/n/ac 1T1R 2.4/5GHz USB Chip (4.19+)
  • MT7612E - 802.11a/b/g/n/ac 2T2R 2.4/5GHz PCIe Chip (4.20+)
  • MT7612U - 802.11a/b/g/n/ac 2T2R 2.4/5GHz USB Chip (4.19+)
  • MT7615 - 802.11a/b/g/n/ac 4T4R 2.4/5GHz PCIe Chip (5.2+)
  • MT7622 - 802.11b/g/n 4T4R 2.4GHz SoC Device (5.7+)
  • MT7628 - 802.11b/g/n 2T2R 2.4GHz SoC Device (4.7+)
  • MT7630E - 802.11a/b/g/n 1T1R 2.4/5GHz PCIe Chip (4.20+)
  • MT7662E - 802.11a/b/g/n/ac 2T2R 2.4/5GHz PCIe Chip (4.20+)
  • MT7662U - 802.11a/b/g/n/ac 2T2R 2.4/5GHz USB Chip (4.20+)
  • MT7663 - 802.11a/b/g/n/ac 2T2R 2.4/5GHz PCIe/USB/SDIO Chip (5.8+)
  • MT7915 - 802.11a/b/g/n/ac/ax 4T4R 2.4/5GHz PCIe Chip (5.9+)
  • MT7916 - 802.11a/b/g/n/ac/ax 4T4R 2.4/5GHz PCIe Chip (5.9+)
  • MT7921 - 802.11a/b/g/n/ac/ax 2T2R 2.4/5GHz/6Hz PCIe/USB/SDIO Chip
MT7921K/L (P/T) - PCIe is supported since (5.12+), 6GHz band is supported by MT7921K
MT7921S - SDIO is supported since (5.16+)
MT7921AU - USB is supported since (5.18+)
  • MT7922 - 802.11a/b/g/n/ac/ax 2T2R 2.4/5G/6GHz PCIe Chip (5.16+)
  • MT7925 - 802.11a/b/g/n/ac/ax/be 2T2R 2.4/5G/6GHz PCIe/USB Chip (6.7+)
  • MT7981 - 802.11a/b/g/n/ac/ax 4T4R 2.4/5GHz SoC Device (5.18+)
  • MT7986 - 802.11a/b/g/n/ac/ax 4T4R 2.4/5GHz SoC Device (5.18+)
  • MT7996 - 802.11a/b/g/n/ac/ax/be 4T4R 2.4/5G/6GHz PCIe Chip (6.2+)

mediatek/mt76/mt76x0/usb.c
	{ USB_DEVICE(0x148f, 0x7610) },	/* MT7610U */
	{ USB_DEVICE(0x0e8d, 0x7610) },	/* Sabrent NTWLAC */
	{ USB_DEVICE(0x148f, 0x760a) },	/* TP-LINK unknown */
	{ USB_DEVICE(0x148f, 0x761a) },	/* TP-LINK TL-WDN5200 */
	{ USB_DEVICE(0x04bb, 0x0951) },	/* I-O DATA WN-AC433UK */
	{ USB_DEVICE(0x057c, 0x8502) },	/* AVM FRITZ!WLAN USB Stick AC 430 */
	{ USB_DEVICE(0x0586, 0x3425) },	/* ZyXEL NWD6505 */
	{ USB_DEVICE(0x07b8, 0x7610) },	/* AboCom AU7212 */
	{ USB_DEVICE(0x0b05, 0x17d1) },	/* ASUS USB-AC51 */
	{ USB_DEVICE(0x0b05, 0x17db) },	/* ASUS USB-AC50 */
	{ USB_DEVICE(0x0df6, 0x0075) },	/* Sitecom WLA-3100 */
	{ USB_DEVICE(0x0df6, 0x0079) }, /* Sitecom Europe B.V. ac  Stick */
	{ USB_DEVICE(0x13b1, 0x003e) },	/* Linksys AE6000 */
	{ USB_DEVICE(0x2001, 0x3d02) },	/* D-LINK DWA-171 rev B1 */
	{ USB_DEVICE(0x2019, 0xab31) },	/* Planex GW-450D */
	{ USB_DEVICE(0x20f4, 0x806b) },	/* TRENDnet TEW-806UBH  */
	{ USB_DEVICE(0x2357, 0x0105) }, /* TP-LINK Archer T1U */
	{ USB_DEVICE(0x2357, 0x010b) }, /* TP-LINK T2UHP (UN) v1 */
	{ USB_DEVICE(0x2357, 0x0123) }, /* TP-LINK T2UHP (US) v1 */
	{ USB_DEVICE(0x293c, 0x5702) },	/* Comcast Xfinity KXW02AAA */
	{ USB_DEVICE(0x7392, 0xa711) },	/* Edimax 7711MAC */
	{ USB_DEVICE(0x7392, 0xb711) },	/* Edimax / Elecom */
	{ USB_DEVICE(0x7392, 0xc711) }, /* Devolo WiFi ac Stick */
	/* TP-LINK Archer T1U */
	{ USB_DEVICE(0x2357, 0x0105), .driver_info = 1, },
	/* MT7630U */
	{ USB_DEVICE_AND_INTERFACE_INFO(0x0e8d, 0x7630, 0xff, 0x2, 0xff)},
	/* MT7650U */
	{ USB_DEVICE_AND_INTERFACE_INFO(0x0e8d, 0x7650, 0xff, 0x2, 0xff)},
mediatek/mt76/mt76x2/usb.c
	{ USB_DEVICE(0x0e8d, 0x7612) },	/* Aukey USB-AC1200 - Alfa AWUS036ACM */
	{ USB_DEVICE(0x0e8d, 0x7632) },	/* HC-M7662BU1 */
	{ USB_DEVICE(0x045e, 0x02e6) },	/* XBox One Wireless Adapter */
	{ USB_DEVICE(0x045e, 0x02fe) },	/* XBox One Wireless Adapter */
	{ USB_DEVICE(0x057c, 0x8503) },	/* AVM FRITZ!WLAN AC860 */
	{ USB_DEVICE(0x0846, 0x9053) },	/* Netgear A6210 */
	{ USB_DEVICE(0x0b05, 0x1833) },	/* ASUS USB-AC54 */
	{ USB_DEVICE(0x0b05, 0x17eb) },	/* ASUS USB-AC55 */
	{ USB_DEVICE(0x0b05, 0x180b) },	/* ASUS USB-N53 B1 */
	{ USB_DEVICE(0x2c4e, 0x0103) },	/* Mercury UD13 */
	{ USB_DEVICE(0x7392, 0xb711) },	/* Edimax EW-7722UAC */
mt7915/mt7921/mt7996
static const struct pci_device_id mt7915_pci_device_table[] = {
	{ PCI_DEVICE(PCI_VENDOR_ID_MEDIATEK, 0x7915) },
	{ PCI_DEVICE(PCI_VENDOR_ID_MEDIATEK, 0x7906) },
static const struct pci_device_id mt7915_hif_device_table[] = {
	{ PCI_DEVICE(PCI_VENDOR_ID_MEDIATEK, 0x7916) },
	{ PCI_DEVICE(PCI_VENDOR_ID_MEDIATEK, 0x790a) },

static const struct usb_device_id mt7921u_device_table[] = {
	{ USB_DEVICE_AND_INTERFACE_INFO(0x0e8d, 0x7961, 0xff, 0xff, 0xff),
		.driver_info = (kernel_ulong_t)MT7921_FIRMWARE_WM },
static const struct pci_device_id mt7921_pci_device_table[] = {
	{ PCI_DEVICE(PCI_VENDOR_ID_MEDIATEK, 0x7961),
		.driver_data = (kernel_ulong_t)MT7921_FIRMWARE_WM },
	{ PCI_DEVICE(PCI_VENDOR_ID_MEDIATEK, 0x7922),
		.driver_data = (kernel_ulong_t)MT7922_FIRMWARE_WM },
	{ PCI_DEVICE(PCI_VENDOR_ID_MEDIATEK, 0x0608),
		.driver_data = (kernel_ulong_t)MT7921_FIRMWARE_WM },
	{ PCI_DEVICE(PCI_VENDOR_ID_MEDIATEK, 0x0616),
		.driver_data = (kernel_ulong_t)MT7921_FIRMWARE_WM },

static const struct pci_device_id mt7996_pci_device_table[] = {
	{ PCI_DEVICE(PCI_VENDOR_ID_MEDIATEK, 0x7990) },
static const struct pci_device_id mt7996_hif_device_table[] = {
	{ PCI_DEVICE(PCI_VENDOR_ID_MEDIATEK, 0x7991) },
static struct mt7996_hif *mt7996_pci_init_hif2(struct pci_dev *pdev)
	hif_idx++;
	if (!pci_get_device(PCI_VENDOR_ID_MEDIATEK, 0x7991, NULL))
		return NULL;