include $(TOPDIR)/rules.mk
PKG_NAME:=mt76
-PKG_RELEASE=4
+PKG_RELEASE=1
PKG_LICENSE:=GPLv2
PKG_LICENSE_FILES:=
PKG_SOURCE_URL:=https://github.com/openwrt/mt76
PKG_SOURCE_PROTO:=git
-PKG_SOURCE_DATE:=2021-01-14
-PKG_SOURCE_VERSION:=4c8a09cc45d03897a473c270fede699a0420a483
-PKG_MIRROR_HASH:=5b708e288484eaf735b9135faf9d45453cef56568032bea53d0238c281e6111c
+PKG_SOURCE_DATE:=2024-07-13
+PKG_SOURCE_VERSION:=3b47d9df427c4833605a172f2a8f0e0012b04c80
+PKG_MIRROR_HASH:=23c3aaa53fb2e088446eb18148a44d3edcd3a0eda1ee41cf5cbf56064ebbee58
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
+PKG_USE_NINJA:=0
PKG_BUILD_PARALLEL:=1
PKG_CONFIG_DEPENDS += \
SUBMENU:=Wireless Drivers
DEPENDS:= \
+kmod-mac80211 \
- +@DRIVER_11AC_SUPPORT +@DRIVER_11N_SUPPORT
+ +@DRIVER_11AC_SUPPORT \
+ +@KERNEL_PAGE_POOL
endef
define KernelPackage/mt76
AUTOLOAD:=$(call AutoProbe,mt7603e)
endef
+define KernelPackage/mt76-connac
+ $(KernelPackage/mt76-default)
+ TITLE:=MediaTek MT7615/MT79xx wireless driver common code
+ HIDDEN:=1
+ DEPENDS+=+kmod-mt76-core
+ FILES:= $(PKG_BUILD_DIR)/mt76-connac-lib.ko
+endef
+
+define KernelPackage/mt76-sdio
+ $(KernelPackage/mt76-default)
+ TITLE:=MediaTek MT7615/MT79xx SDIO driver common code
+ HIDDEN:=1
+ DEPENDS+=+kmod-mt76-core +kmod-mmc
+ FILES:= $(PKG_BUILD_DIR)/mt76-sdio.ko
+endef
+
define KernelPackage/mt7615-common
$(KernelPackage/mt76-default)
TITLE:=MediaTek MT7615 wireless driver common code
HIDDEN:=1
- DEPENDS+=@PCI_SUPPORT +kmod-mt76-core
+ DEPENDS+=@PCI_SUPPORT +kmod-mt76-core +kmod-mt76-connac +kmod-hwmon-core
FILES:= $(PKG_BUILD_DIR)/mt7615/mt7615-common.ko
endef
define KernelPackage/mt7615-firmware
$(KernelPackage/mt76-default)
TITLE:=MediaTek MT7615e firmware
- DEFAULT:=PACKAGE_kmod-mt7615e
+ DEPENDS+=+kmod-mt7615e
endef
define KernelPackage/mt7615e
AUTOLOAD:=$(call AutoProbe,mt7615e)
endef
+define KernelPackage/mt7622-firmware
+ $(KernelPackage/mt76-default)
+ TITLE:=MediaTek MT7622 firmware
+ DEPENDS+=+kmod-mt7615e
+endef
+
define KernelPackage/mt7663-firmware-ap
$(KernelPackage/mt76-default)
TITLE:=MediaTek MT7663e firmware (optimized for AP)
define KernelPackage/mt7663s
$(KernelPackage/mt76-default)
TITLE:=MediaTek MT7663s wireless driver
- DEPENDS+=+kmod-mmc +kmod-mt7615-common +kmod-mt7663-usb-sdio
+ DEPENDS+=+kmod-mt76-sdio +kmod-mt7615-common +kmod-mt7663-usb-sdio
FILES:= \
- $(PKG_BUILD_DIR)/mt76-sdio.ko \
$(PKG_BUILD_DIR)/mt7615/mt7663s.ko
AUTOLOAD:=$(call AutoProbe,mt7663s)
endef
AUTOLOAD:=$(call AutoProbe,mt7663u)
endef
+define KernelPackage/mt7915-firmware
+ $(KernelPackage/mt76-default)
+ TITLE:=MediaTek MT7915 firmware
+ DEPENDS+=+kmod-mt7915e
+endef
+
define KernelPackage/mt7915e
$(KernelPackage/mt76-default)
TITLE:=MediaTek MT7915e wireless driver
- DEPENDS+=@PCI_SUPPORT +kmod-mt7615-common +@DRIVER_11AX_SUPPORT
+ DEPENDS+=@PCI_SUPPORT +kmod-mt76-connac +kmod-hwmon-core +kmod-thermal +@DRIVER_11AX_SUPPORT +@KERNEL_RELAY
FILES:= $(PKG_BUILD_DIR)/mt7915/mt7915e.ko
AUTOLOAD:=$(call AutoProbe,mt7915e)
endef
+define KernelPackage/mt7916-firmware
+ $(KernelPackage/mt76-default)
+ DEPENDS+=+kmod-mt7915e
+ TITLE:=MediaTek MT7916 firmware
+endef
+
+define KernelPackage/mt7981-firmware
+ $(KernelPackage/mt76-default)
+ DEPENDS:=@TARGET_mediatek_filogic
+ TITLE:=MediaTek MT7981 firmware
+endef
+
+define KernelPackage/mt7986-firmware
+ $(KernelPackage/mt76-default)
+ DEPENDS:=@TARGET_mediatek_filogic
+ TITLE:=MediaTek MT7986 firmware
+endef
+
+define KernelPackage/mt7921-firmware
+ $(KernelPackage/mt76-default)
+ TITLE:=MediaTek MT7921 firmware
+endef
+
+define KernelPackage/mt7922-firmware
+ $(KernelPackage/mt76-default)
+ TITLE:=MediaTek MT7922 firmware
+endef
+
+define KernelPackage/mt792x-common
+ $(KernelPackage/mt76-default)
+ TITLE:=MediaTek MT792x wireless driver common code
+ HIDDEN:=1
+ DEPENDS+=+kmod-mt76-connac +@DRIVER_11AX_SUPPORT
+ FILES:= $(PKG_BUILD_DIR)/mt792x-lib.ko
+endef
+
+define KernelPackage/mt792x-usb
+ $(KernelPackage/mt76-default)
+ TITLE:=MediaTek MT792x wireless driver USB code
+ HIDDEN:=1
+ DEPENDS+=+kmod-mt792x-common +kmod-mt76-usb +@DRIVER_11AX_SUPPORT
+ FILES:= $(PKG_BUILD_DIR)/mt792x-usb.ko
+endef
+
+define KernelPackage/mt7921-common
+ $(KernelPackage/mt76-default)
+ TITLE:=MediaTek MT7921 wireless driver common code
+ HIDDEN:=1
+ DEPENDS+=+kmod-mt792x-common +kmod-mt7921-firmware +@DRIVER_11AX_SUPPORT +kmod-hwmon-core
+ FILES:= $(PKG_BUILD_DIR)/mt7921/mt7921-common.ko
+endef
+
+define KernelPackage/mt7921u
+ $(KernelPackage/mt76-default)
+ TITLE:=MediaTek MT7921U wireless driver
+ DEPENDS+=+kmod-mt792x-usb +kmod-mt7921-common
+ FILES:= $(PKG_BUILD_DIR)/mt7921/mt7921u.ko
+ AUTOLOAD:=$(call AutoProbe,mt7921u)
+endef
+
+define KernelPackage/mt7921s
+ $(KernelPackage/mt76-default)
+ TITLE:=MediaTek MT7921S wireless driver
+ DEPENDS+=+kmod-mt76-sdio +kmod-mt7921-common
+ FILES:= $(PKG_BUILD_DIR)/mt7921/mt7921s.ko
+ AUTOLOAD:=$(call AutoProbe,mt7921s)
+endef
+
+define KernelPackage/mt7921e
+ $(KernelPackage/mt76-default)
+ TITLE:=MediaTek MT7921e wireless driver
+ DEPENDS+=@PCI_SUPPORT +kmod-mt7921-common
+ FILES:= $(PKG_BUILD_DIR)/mt7921/mt7921e.ko
+ AUTOLOAD:=$(call AutoProbe,mt7921e)
+endef
+
+define KernelPackage/mt7996e
+ $(KernelPackage/mt76-default)
+ TITLE:=MediaTek MT7996E wireless driver
+ DEPENDS+=@PCI_SUPPORT +kmod-mt76-connac +kmod-hwmon-core +@DRIVER_11AX_SUPPORT +@KERNEL_RELAY
+ FILES:= $(PKG_BUILD_DIR)/mt7996/mt7996e.ko
+ AUTOLOAD:=$(call AutoProbe,mt7996e)
+endef
+
+define KernelPackage/mt7996-firmware
+ $(KernelPackage/mt76-default)
+ TITLE:=MediaTek MT7996 firmware
+ DEPENDS+=+kmod-mt7996e
+endef
+
+define KernelPackage/mt7925-common
+ $(KernelPackage/mt76-default)
+ TITLE:=MediaTek MT7925 wireless driver common code
+ HIDDEN:=1
+ DEPENDS+=+kmod-mt792x-common +@DRIVER_11AX_SUPPORT +kmod-hwmon-core
+ FILES:= $(PKG_BUILD_DIR)/mt7925/mt7925-common.ko
+endef
+
+define KernelPackage/mt7925u
+ $(KernelPackage/mt76-default)
+ TITLE:=MediaTek MT7925U wireless driver
+ DEPENDS+=+kmod-mt792x-usb +kmod-mt7925-common
+ FILES:= $(PKG_BUILD_DIR)/mt7925/mt7925u.ko
+ AUTOLOAD:=$(call AutoProbe,mt7921u)
+endef
+
+define KernelPackage/mt7925e
+ $(KernelPackage/mt76-default)
+ TITLE:=MediaTek MT7925e wireless driver
+ DEPENDS+=@PCI_SUPPORT +kmod-mt7925-common
+ FILES:= $(PKG_BUILD_DIR)/mt7925/mt7925e.ko
+ AUTOLOAD:=$(call AutoProbe,mt7921e)
+endef
+
define Package/mt76-test
SECTION:=devel
CATEGORY:=Development
TARGET_CFLAGS += -I$(STAGING_DIR)/usr/include/libnl-tiny
-NOSTDINC_FLAGS = \
+NOSTDINC_FLAGS := \
+ $(KERNEL_NOSTDINC_FLAGS) \
-I$(PKG_BUILD_DIR) \
-I$(STAGING_DIR)/usr/include/mac80211-backport/uapi \
-I$(STAGING_DIR)/usr/include/mac80211-backport \
ifdef CONFIG_PACKAGE_kmod-mt7603
PKG_MAKE_FLAGS += CONFIG_MT7603E=m
endif
+ifdef CONFIG_PACKAGE_kmod-mt76-connac
+ PKG_MAKE_FLAGS += CONFIG_MT76_CONNAC_LIB=m
+endif
+ifdef CONFIG_PACKAGE_kmod-mt76-sdio
+ PKG_MAKE_FLAGS += CONFIG_MT76_SDIO=m
+endif
ifdef CONFIG_PACKAGE_kmod-mt7615-common
PKG_MAKE_FLAGS += CONFIG_MT7615_COMMON=m
endif
PKG_MAKE_FLAGS += CONFIG_MT7663_USB_SDIO_COMMON=m
endif
ifdef CONFIG_PACKAGE_kmod-mt7663s
- PKG_MAKE_FLAGS += CONFIG_MT76_SDIO=m
PKG_MAKE_FLAGS += CONFIG_MT7663S=m
endif
ifdef CONFIG_PACKAGE_kmod-mt7663u
endif
ifdef CONFIG_PACKAGE_kmod-mt7915e
PKG_MAKE_FLAGS += CONFIG_MT7915E=m
+ ifdef CONFIG_TARGET_mediatek_filogic
+ PKG_MAKE_FLAGS += CONFIG_MT798X_WMAC=y
+ NOSTDINC_FLAGS += -DCONFIG_MT798X_WMAC
+ endif
+endif
+ifdef CONFIG_PACKAGE_kmod-mt792x-common
+ PKG_MAKE_FLAGS += CONFIG_MT792x_LIB=m
+endif
+ifdef CONFIG_PACKAGE_kmod-mt792x-usb
+ PKG_MAKE_FLAGS += CONFIG_MT792x_USB=m
+endif
+ifdef CONFIG_PACKAGE_kmod-mt7921-common
+ PKG_MAKE_FLAGS += CONFIG_MT7921_COMMON=m
+endif
+ifdef CONFIG_PACKAGE_kmod-mt7921u
+ PKG_MAKE_FLAGS += CONFIG_MT7921U=m
+endif
+ifdef CONFIG_PACKAGE_kmod-mt7921s
+ PKG_MAKE_FLAGS += CONFIG_MT7921S=m
+endif
+ifdef CONFIG_PACKAGE_kmod-mt7921e
+ PKG_MAKE_FLAGS += CONFIG_MT7921E=m
+endif
+ifdef CONFIG_PACKAGE_kmod-mt7996e
+ PKG_MAKE_FLAGS += CONFIG_MT7996E=m
+endif
+ifdef CONFIG_PACKAGE_kmod-mt7925-common
+ PKG_MAKE_FLAGS += CONFIG_MT7925_COMMON=m
+endif
+ifdef CONFIG_PACKAGE_kmod-mt7925u
+ PKG_MAKE_FLAGS += CONFIG_MT7925U=m
+endif
+ifdef CONFIG_PACKAGE_kmod-mt7925e
+ PKG_MAKE_FLAGS += CONFIG_MT7925E=m
endif
define Build/Compile
- +$(MAKE) $(PKG_JOBS) -C "$(LINUX_DIR)" \
- $(KERNEL_MAKE_FLAGS) \
+ +$(KERNEL_MAKE) $(PKG_JOBS) \
$(PKG_MAKE_FLAGS) \
M="$(PKG_BUILD_DIR)" \
NOSTDINC_FLAGS="$(NOSTDINC_FLAGS)" \
$(PKG_BUILD_DIR)/firmware/mt7615_cr4.bin \
$(PKG_BUILD_DIR)/firmware/mt7615_n9.bin \
$(PKG_BUILD_DIR)/firmware/mt7615_rom_patch.bin \
- $(if $(CONFIG_TARGET_mediatek_mt7622), \
- $(PKG_BUILD_DIR)/firmware/mt7622_n9.bin \
- $(PKG_BUILD_DIR)/firmware/mt7622_rom_patch.bin) \
+ $(1)/lib/firmware/mediatek
+endef
+
+define KernelPackage/mt7622-firmware/install
+ $(INSTALL_DIR) $(1)/lib/firmware/mediatek
+ cp \
+ $(PKG_BUILD_DIR)/firmware/mt7622_n9.bin \
+ $(PKG_BUILD_DIR)/firmware/mt7622_rom_patch.bin \
$(1)/lib/firmware/mediatek
endef
$(1)/lib/firmware/mediatek
endef
-define KernelPackage/mt7915e/install
+define KernelPackage/mt7915-firmware/install
$(INSTALL_DIR) $(1)/lib/firmware/mediatek
cp \
$(PKG_BUILD_DIR)/firmware/mt7915_wa.bin \
$(1)/lib/firmware/mediatek
endef
+define KernelPackage/mt7916-firmware/install
+ $(INSTALL_DIR) $(1)/lib/firmware/mediatek
+ cp \
+ $(PKG_BUILD_DIR)/firmware/mt7916_wa.bin \
+ $(PKG_BUILD_DIR)/firmware/mt7916_wm.bin \
+ $(PKG_BUILD_DIR)/firmware/mt7916_rom_patch.bin \
+ $(1)/lib/firmware/mediatek
+endef
+
+define KernelPackage/mt7981-firmware/install
+ $(INSTALL_DIR) $(1)/lib/firmware/mediatek
+ cp \
+ $(PKG_BUILD_DIR)/firmware/mt7981_wa.bin \
+ $(PKG_BUILD_DIR)/firmware/mt7981_wm.bin \
+ $(PKG_BUILD_DIR)/firmware/mt7981_rom_patch.bin \
+ $(1)/lib/firmware/mediatek
+endef
+
+define KernelPackage/mt7986-firmware/install
+ $(INSTALL_DIR) $(1)/lib/firmware/mediatek
+ cp \
+ $(PKG_BUILD_DIR)/firmware/mt7986_wa.bin \
+ $(PKG_BUILD_DIR)/firmware/mt7986_wm_mt7975.bin \
+ $(PKG_BUILD_DIR)/firmware/mt7986_wm.bin \
+ $(PKG_BUILD_DIR)/firmware/mt7986_rom_patch_mt7975.bin \
+ $(PKG_BUILD_DIR)/firmware/mt7986_rom_patch.bin \
+ $(1)/lib/firmware/mediatek
+endef
+
+define KernelPackage/mt7921-firmware/install
+ $(INSTALL_DIR) $(1)/lib/firmware/mediatek
+ cp \
+ $(PKG_BUILD_DIR)/firmware/WIFI_MT7961_patch_mcu_1_2_hdr.bin \
+ $(PKG_BUILD_DIR)/firmware/WIFI_RAM_CODE_MT7961_1.bin \
+ $(1)/lib/firmware/mediatek
+endef
+
+define KernelPackage/mt7922-firmware/install
+ $(INSTALL_DIR) $(1)/lib/firmware/mediatek
+ cp \
+ $(PKG_BUILD_DIR)/firmware/WIFI_MT7922_patch_mcu_1_1_hdr.bin \
+ $(PKG_BUILD_DIR)/firmware/WIFI_RAM_CODE_MT7922_1.bin \
+ $(1)/lib/firmware/mediatek
+endef
+
+define KernelPackage/mt7996-firmware/install
+ $(INSTALL_DIR) $(1)/lib/firmware/mediatek/mt7996
+ cp \
+ $(PKG_BUILD_DIR)/firmware/mt7996/mt7996_dsp.bin \
+ $(PKG_BUILD_DIR)/firmware/mt7996/mt7996_eeprom.bin \
+ $(PKG_BUILD_DIR)/firmware/mt7996/mt7996_rom_patch.bin \
+ $(PKG_BUILD_DIR)/firmware/mt7996/mt7996_wa.bin \
+ $(PKG_BUILD_DIR)/firmware/mt7996/mt7996_wm.bin \
+ $(1)/lib/firmware/mediatek/mt7996
+endef
+
define Package/mt76-test/install
mkdir -p $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/tools/mt76-test $(1)/usr/sbin
endef
+define Build/InstallDev
+ mkdir -p $(STAGING_DIR_IMAGE)
+ $(CP) $(PKG_BUILD_DIR)/firmware/mt7981_eeprom_mt7976_dbdc.bin $(STAGING_DIR_IMAGE)/
+endef
+
$(eval $(call KernelPackage,mt76-core))
$(eval $(call KernelPackage,mt76-usb))
$(eval $(call KernelPackage,mt76x02-usb))
$(eval $(call KernelPackage,mt76x2u))
$(eval $(call KernelPackage,mt76x2))
$(eval $(call KernelPackage,mt7603))
+$(eval $(call KernelPackage,mt76-connac))
+$(eval $(call KernelPackage,mt76-sdio))
$(eval $(call KernelPackage,mt7615-common))
$(eval $(call KernelPackage,mt7615-firmware))
+$(eval $(call KernelPackage,mt7622-firmware))
$(eval $(call KernelPackage,mt7615e))
$(eval $(call KernelPackage,mt7663-firmware-ap))
$(eval $(call KernelPackage,mt7663-firmware-sta))
$(eval $(call KernelPackage,mt7663-usb-sdio))
$(eval $(call KernelPackage,mt7663u))
$(eval $(call KernelPackage,mt7663s))
+$(eval $(call KernelPackage,mt7915-firmware))
$(eval $(call KernelPackage,mt7915e))
+$(eval $(call KernelPackage,mt7916-firmware))
+$(eval $(call KernelPackage,mt7981-firmware))
+$(eval $(call KernelPackage,mt7986-firmware))
+$(eval $(call KernelPackage,mt7921-firmware))
+$(eval $(call KernelPackage,mt7922-firmware))
+$(eval $(call KernelPackage,mt792x-common))
+$(eval $(call KernelPackage,mt792x-usb))
+$(eval $(call KernelPackage,mt7921-common))
+$(eval $(call KernelPackage,mt7925-common))
+$(eval $(call KernelPackage,mt7921u))
+$(eval $(call KernelPackage,mt7921s))
+$(eval $(call KernelPackage,mt7921e))
+$(eval $(call KernelPackage,mt7925u))
+$(eval $(call KernelPackage,mt7925e))
+$(eval $(call KernelPackage,mt7996e))
+$(eval $(call KernelPackage,mt7996-firmware))
$(eval $(call KernelPackage,mt76))
$(eval $(call BuildPackage,mt76-test))