From: Felix Fietkau Date: Sat, 22 Sep 2018 10:56:32 +0000 (+0200) Subject: mt76: update to latest, adds mt76x0u and mt76x2u support, fixes a mt7603 powersave... X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=273594b37cc13b92ebf3ebd196012a0a83844c18;p=openwrt%2Fstaging%2Fzorun.git mt76: update to latest, adds mt76x0u and mt76x2u support, fixes a mt7603 powersave issue d220f43 Revert "mt76x2: reset HW before probe" 0853d79 Revert "mt76x2: add functions for setting extended MAC address registers" 8ba17b1 Revert "mt76: use a per rx queue page fragment cache" 3f0ac35 mt76x2: init: disable APCLI by default 38014de mt76x2: remove unnecessary break in mt76x2_mac_process_tx_rate() fbf4791 mt76x2: fix TXD_INFO bitmask definition d00c616 mt76x2: fix mrr idx/count estimation in mt76x2_mac_fill_tx_status() 0d42d22 mt76: introduce mt76_{incr,decr} utility routines 0f6379a mt76x2: dfs: add sw event ring buffer df8071f mt76x2: dfs: add sw pattern detector 016df9c mt76x2: debugfs: add sw pulse statistics to dfs debugfs a6915cb mt76: move MT_TXD_INFO, MT_MCU_MSG and MT_RX_FCE_INFO defs in dma.h 911e6aa mt76x2: move mt76x2_fw_header and mt76x2_patch_header definitions in mcu.h c55d29b mt76x2: move utility routines in mt76x2.h d08ea82 mt76x2: introduce mt76x2_init_device routine 6a1e809 mt76x2: move interface_modes definition in mt76x2_init 5aa0972 mt76x2: introduce mt76x2_mac_load_tx_status routine 730b86c mt76x2: add napi struct to mt76_rx_poll_complete/mt76_rx_complete signatures 1ab6cea mt76x2: add buffer len to mt76x2_mac_write_txwi signature 7ac6dac mt76: rename mt76_tx_queue_skb in mt76_dma_tx_queue_skb 66f3949 mt76: introduce tx_queue_skb function pointer in mt76_bus_ops d099694 mt76: introduce mt76x2-common module 9bf1aa1 mt76: add mt76x2_tx_common to mt76x2-common module 29f960a mt76: add mt76x2_mac_common to mt76x2-common module 8f568ce mt76: add mt76x2_init_common to mt76x2-common module 61c4c61 mt76: add mt76x2_common to mt76x2-common module 264edbe mt76: add mt76x2_phy_common to mt76x2-common module 7625508 mt76: move mt76x2_debugfs in mt76-common module 99a3afa mt76: add usb support to mt76 layer 25b4598 mt76: add driver code for MT76x2u based devices 253c443 mt76x0: core files 6ed7bc2 mt76x0: mac files a2c1068 mt76x0: usb files c332481 mt76x0: mcu files 0d7d9ed mt76x0: phy files 5d50834 mt76x0: init files c633654 mt76x0: eeprom files 18a9d4e mt76x0: trace and debugfs files 7395bba mt76x0: dma and tx files 08dec4c mt76x0: main file 5892efd mt76: add more states e176af8 mt76: Kconfig and Makefile for mt76x0 driver 5c38d48 mt76x0: disable HW before probe 2f37f60 mt76x0: load firmware from mediatek subdir 1388140 mt76x0: rename mt76_* functions 1cb65d5 mt76x0: rename trace symbols 4fe2b16 mt76x0: correct type for eeprom gain value 560b643 mt76x0: perform mt76x0_mac_set_ampdu_factor d1645aa mt76x0: Remove VLA usage f8a0da4 mt76: Fix comparisons with invalid hardware key index 884eca5 mt76: unify wait_for_mac fc636f0 mt76: rename mt76x2_regs.h 493feb9 mt76: merge mt76x0/regs.h into mt76x02_regs.h a238099 mt76: create new mt76x02-lib module for common mt76x{0,2} code 55bceee mt76: unify mac_get_key_info f6c19cf mt76: add helpers for register access with mt76_dev struct 34a95b8 mt76: unify mac_shared_key_setup 4286255 mt76: unify mt76x02_mac_wcid_set_key 732535e mt76: unify mac_wcid_setup 51b74ac mt76: use mac_wcid_set_drop in mt76x0 1b4a98f mt76x0: use mt76_wcid_free in mt76x0 fcf2130 mt76: unify mt76x02_vif struct 1f35eb5 mt76: unify sta structure part 1 086ea9f mt76: unify sta structure part 2 caff9a2 mt76x0: initalize custom tx queues 7362da7 mt76x0: use mt76x02_sta and mt76x02_tx_status 3a03aa1 mt76: move mt76_reg_pair definition in mt76.h a853831 mt76: split __mt76u_mcu_send_msg and mt76u_mcu_send_msg routines a80564f mt76: move mt76x2u_mcu_deinit routine in mt76-usb module ac92496 mt76: add multiple regs read support to usb_mcu layer 8b0e08f mt76x0: use mt76u_init for bus initialization ef32115 mt76x0: remove mt76x0_vendor_reset routine 949858f mt76x0: remove mt76x0_vendor_single_wr routine 21ecb9b mt76x0: remove mt76x0_mcu_msg_alloc routine 4cfeebb mt76x0: use shared mt76 usb mcu completion 2600712 mt76x0: remove mt76x0_complete_urb routine 0bd0fe8 mt76x0: remove mt76x0_vendor_request routine f88bde2 mt76x0: remove unused mt76x0_wait_asic_ready routine 7eca333 mt76x0: use mt76u_mcu_send_msg utility routine to send fw cmds 8fedb79 mt76x0: remove unused mt76x0_mcu structure e8fe4f3 mt76x0: use mt76u_mcu_fw_send_data for fw uploading b9c46a8 mt76x0: remove unused routines for usb_buff alloc/free ed3366d mt76: Enable NL80211_EXT_FEATURE_CQM_RSSI_LIST 9867146 mt76: verify evt type in usb mcu response 82a8c8a mt76: move wcid fields to common mt76_dev struct f409c6b mt76: unify sta_add / sta_remove d972ddd mt76: pratially unify add_interface f8f5788 mt76x0: fix wrong usage of wcid_mask in remove_interface 380f89c mt76: unify ampdu_action 8c7098e mt76: unify set_key 2a20cfc mt76x0: remove empty sta_notify a690333 mt76: unify AC to hw queue mapping 4453308 mt76: unify conf_tx d9352cb mt76x0: remove vif_mask 196720e mt76: unify remove_interface 57c3e89 mt76: unify add_interface 91fce2f mt76: unify sta_rate_tbl_update and related helpers 3977f48 mt76: unify txwi and rxwi structures 41e0403 mt76: unify load_tx_status 4674502 mt76: unify send_tx_status and related helpers 02816b0 mt76: use mt76_rx_status in mt76x0 0a17b1e mt76: unify mac_process_rate 8aac175 mt76x0: reserve enough space in mac80211 81a655a mt76: unify {insert/remove}_hdr_pad d8f7d2e mt76: partially unify filling txwi fields 3533718 mt76x2: change mt76x2_tx_complete routine signature 469aeb1 mt76: move mt76x2_tx_complete routine in mt76x02-lib module 87f138b mt76: move mt76x2u_remove_dma_hdr in mt76x02-lib module c87a7e8 mt76: move mt76x2u_tx_complete_skb in mt76x02-lib moudule b85e072 mt76: move mt76_qsel definition in dma.h 53b3c5a mt76: move mt76x2u_set_txinfo in mt76x02-lib module 34cec25 mt76x0: introduce mt76x0_tx_prepare_skb routine 6c5ac15 mt76: move mt76x2u_tx_status_data in mt76x02-lib module 0ba8261 mt76x0: init mt76_driver_ops callbacks 2615090 mt76x0: use mt76_alloc_device for device allocation 3c40eaf mt76x0: disable usb rx bulk aggregation 746edd7 mt76x0: mark device as running in mt76x0_start dd77785 mt76x0: simplify mt76_mac_process_rx signature 3739601 mt76x0: add mt76x0_queue_rx_skb routine 062aaa8 mt76x0: unify tx/rx datapath with mt76x2u driver 85f171f mt76x0: stop stat workqueue at hw stop 8c68115 mt76x0: set max fragments size ac02f5c mt76x0: remove unused dma.c source file 964df72 mt76x0: remove unused stat work_queue afb34b8 mt76x0: remove unused {tx/rx}_queue definitions a4fd791 mt76x0: remove unused mt76x0_tx_status routine 0e92ff6 mt76x0: remove unused endpoint definitions 8340e19 mt76x0: remove unused stat_work bfbbf05 mt76x0: enable per-sta tx queueing a8fcaa3 mt76x0: init hw capabilities 6a9b73c mt76x0: trim rx skb to proper length aa0c279 mt76: remove unused MT76_MORE_STATS state 873d792 mt76x0: remove mt76x0_stop_hardware routine 246a216 mt76: move mt76 rate definitions in mt76x02-lib module aae3fb8 mt76x0: alloc mcu buffers first in mt76x0_mcu_cmd_init 3c693a1 mt76x0: fix memory leak during hw probe 98faee1 mt76x0: move stop related routines in mt76x0_mac_stop d07c02a mt76x0: move mt76x0_init_hardware in mt76x0_register_device 12c01f4 mt76x0: do not free/alloc buffers during suspend/resume 297cc34 mt76x0: remove has_{2,5}ghz fields of mt76x0_eeprom_params 2d77a9a mt76x0: use mt76_register_device for device registration bb57912 mt76x0: inital split between pci and usb 3e241f3 mt76x0: remove unused mt76x0_wcid a8c61c2 mt76x0: remove some usb specific code from mt76x0_register_device e4a7387 mt76x0: make device allocation bus neutral 6da4642 mt76x0: run vco calibration for each channel configuration 1ac35da mt76: move mt76x0 and mt76x2 mcu shared defs in mt76x02_mcu.h 4d43674 mt76: add mt76_mcu_ops data structure for mcu related pointers 479b153 mt76: add usb implementation of {wr,rd}_rp e525b01 mt76: add rd_rp and wr_rp to bus_ops/mcu_ops f5590b0 mt76: usb: use common helpers for mcu_alloc_msg()/mcu_send_msg() d2773ce mt76: usb: move mt76x02 mcu code in mt76x02-usb module 6337ffb mt76: usb: move mt76u_skb_dma_info in mt76x02_usb_core.c 5a79f17 mt76x02: move TXD/RXD/MCU definitions in mt76x02_dma.h 88ece32 mt76x02: add static qualifier to mt76x02_remove_dma_hdr d63b72f mt76x0: remove unused mt76x0_burst_read_regs 0aef244 mt76x0: remove mt76x0_burst_write_regs() 14aaf87 mt76: usb: remove skb check in mt76x{0,2}u mcu routines 46ba81c mt76x2: use mt76_dev instead of mt76x2_dev in mt76x2_tx_queue_mcu dbc4442 mt76x2: remove leftover mt76u_buf data structure in mt76x2_mcu 26909cd mt76: introduce mmio data structure in mt76_dev 425e7e0 mt76: move __iomem regs in mt76_mmio 28cfe61 mt76x2: use mt76_dev instead of mt76x2_dev in mt76x2_mcu_msg_send a1e27de mt76x2: use common helpers for mcu_alloc_msg()/mcu_send_msg() 90b1eac mt76: unify firmware header between mt76x0 and mt76x2 a0cbd4b mt76: move mt76{0,2} mcu shared code in mt76x02_mcu.c a633c61 mt76x2: move mt76x2 mcu shared code in mt76x2_mcu_common.c ce91108 mt76: move shared mcu_calibrate routine in mt76x02-lib module 2b3b4df mt76x2: move mt76x2_phy_tssi_compensate in mt76x2-common module 39a380a mt76: use a per rx queue page fragment cache b4a2141 mt76x2u: run device cleanup routine if resume fails df11092 treewide: Use struct_size() for kmalloc()-family 788becd treewide: devm_kzalloc() -> devm_kcalloc() 971005a mt76x2u: Add support for Alfa AWUS036ACM 878b0bd mt76: fix debugfs_simple_attr.cocci warnings 44ed12d wireless: Use octal not symbolic permissions a6f80ef build: make building 76x2e and 7603e optional 1047913 mt76x0: usb: move firmware loading to usb.c 26b20f8 mt76x0: remove mcu source file 44145f3 mt76x0: remove unused usb header file d56be99 mt76x0: usb: remove mt76_fw definition 3733445 mt76x2: fix tx power configuration for VHT mcs 9 0aced80 mt76x0: pci: add mt7650 PCI ID 35e88c0 mt76x0: pci: add fw uploading routine 3991afa mt76: move seq_put_array in mt76-core module 6cf6fba mt76: add stbc entries to mt76_rate_power 4451f99 mt76: move common eeprom definitions in mt76x02-lib module c9100cb mt76: move eeprom utility routines in mt76x02_eeprom.h 611b8c7 mt76: move mt76x2_eeprom_get in mt76x02_eeprom.h b59ed56 mt76: move mt76x02_mac_setaddr in mt76x02-lib module 844daeb mt76: move mt76x2_get_efuse_data in mt76x02-lib module 7556cb9 mt76: move mt76x2_ext_pa_enabled routine in mt76x02_eeprom.c 19d7853 mt76x0: remove mt76x0_set_country_reg routine ba7a3da mt76: add mt76x02_get_rx_gain and mt76x02_get_lna_gain utility routines 35b0a2a mt76x0: unify lna_gain parsing 2a470db mt76x0: unify rssi_offset parsing fe89537 mt76x0: unify temperature offset parsing 76bc22f mt76x0: unify freq offset parsing bedeb3d mt76: move mt76x02_eeprom_parse_hw_cap in mt76x02-lib module 1adcd39 mt76x0: unify parse hw capabilities df23620 mt76: move mt76x2_tssi_enabled in mt76x02_eeprom.h ebca136 mt76: usb: remove WARN_ON in mt76u_get_rx_entry_len cf8f750 mt76: fix return value of mt76x02_wait_for_mac f802bd5 mt76: move mt76_rate_power in mt76_dev 4b6093c mt76: add mt76x02_phy_set_txpower utility routine c206b8c mt76: move rate_txpower handler in mt76 debugfs 4da6fd3 mt76: move mt76x02_rate_power_val in mt76x02-lib module fb3806d mt76x0: remove mt76x0_phy_set_tx_power and mt76x0_extra_power_over_mac 730db56 mt76x0: remove eeprom dependency from mt76x0_set_tx_power_per_rate 212fa2c mt76x0: remove eeprom dependency from mt76x0_get_power_info 280e452 mt76x0: use shared debugfs implementation 21fddc3 mt76x0: phy: introduce mt76x0_phy_set_txpower routine b0d85d4 mt76: include linux/module.h in files using MODULE_* a47083b mt76: report firmware version using ethtool dc66f7c mt76: usb: make rx page_frag_cache access atomic 09d696b mt76: use skb_pad() instead of __skb_pad() e8d7890 mt76x0: add quirk to disable 2.4GHz band for Archer T1U e76fe15 mt76x2: disable WLAN core before probe 41c552f mt76x0: work around cflags issue in compat layer for trace.h b95bc8a mt76x0: use mt76_poll in mt76x0_set_wlan_state 3a3554a mt76: move wait_for_wpdma in mt76x02_dma.h 0527feb mt76: add mt76x02_dma_enable/mt76x02_dma_disable utility routines a8fda4b mt76: move mt76x02_set_irq_mask in mt76x02_mmio.c 11e3028 mt76: move queue initialization in mt76x02_mmio.c 5a29094 mt76: move mt76x02_beacon_offset in mt76x02_util.c 5f1d0ff mt76: mmio: add implementation of wr_rp and rd_rp 47eee35 mt76: move mt76x2_wait_for_bbp in mt76x02-lib module 7cc4be7 mt76x0: update initvals to latest version of vendor driver e1a2179 mt76x0: pci: move mcu code in pci_mcu.c 886f6fc mt76x0: usb: move mcu code in usb_mcu.c c7b28f4 mt76x0: use mt76x02 utility routines in mt76x0 init code 005d40a mt76x0: init: remove duplicated initialization 94776fe mt76x0: init: remove MT_PBF_SYS_CTRL configuration in mt76x0_reset_csr_bbp 5bb8339 mt76x0: init rx filter in mt76x0_init_hardware fe1379a mt76: add mt76x02_mac_start routine da982d3 mt76x0: usb: move initialization code in usb.c 22be43e mt76x0: pci: add hw initialization at bootstrap 15a50e1 mt76x0: phy: set antenna parameter according to wireless band 5d2a331 mt76: move set_{tx,rx}_path routines in mt76x02-lib module 8050d71 mt76x0: add ieee80211_ops ops pointer to mt76x0_alloc_device signature c240904 mt76x0: pci: add mt76x0e_{start/stop} callbacks b50f38a mt76x0: eeprom: load eeprom data from mtd by default fb5bae0 mt76x0: usb: move mt76x0u_tx_prepare_skb in usb.c 4047e1f move mt7603 source files to mt7603/ 14f70f4 mt7603: fix wcid for frames sent via drv_tx 542f17e mt76: fix handling ps-poll frames 7464cc9 mt76: check aggregation sequence number for frames sent via drv_tx Signed-off-by: Felix Fietkau --- diff --git a/package/kernel/mt76/Makefile b/package/kernel/mt76/Makefile index 4f32799eb4..249698ba42 100644 --- a/package/kernel/mt76/Makefile +++ b/package/kernel/mt76/Makefile @@ -8,13 +8,23 @@ PKG_LICENSE_FILES:= PKG_SOURCE_URL:=https://github.com/openwrt/mt76 PKG_SOURCE_PROTO:=git -PKG_SOURCE_DATE:=2018-09-21 -PKG_SOURCE_VERSION:=6e1898d60a780c9d89dff9cbb3569f267db13e21 -PKG_MIRROR_HASH:=f2d8a17fa58f6f2ddd284922faeec9dd09c6727dde91caec54f4fdb280f4df1c +PKG_SOURCE_DATE:=2018-09-29 +PKG_SOURCE_VERSION:=7464cc9710df1f10590d2e3bdd7339861b92f46c +PKG_MIRROR_HASH:=9ee9ba2a49f9fc00804b62a086f02e872ac45937640c5b70d2d52e461dca023b PKG_MAINTAINER:=Felix Fietkau PKG_BUILD_PARALLEL:=1 +PKG_CONFIG_DEPENDS += \ + CONFIG_PACKAGE_kmod-mt76-usb \ + CONFIG_PACKAGE_kmod-mt76x02-common \ + CONFIG_PACKAGE_kmod-mt76x0-common \ + CONFIG_PACKAGE_kmod-mt76x0u \ + CONFIG_PACKAGE_kmod-mt76x2-common \ + CONFIG_PACKAGE_kmod-mt76x2 \ + CONFIG_PACKAGE_kmod-mt76x2u \ + CONFIG_PACKAGE_kmod-mt7603 + STAMP_CONFIGURED_DEPENDS := $(STAGING_DIR)/usr/include/mac80211-backport/backport/autoconf.h include $(INCLUDE_DIR)/kernel.mk @@ -41,10 +51,69 @@ define KernelPackage/mt76-core $(PKG_BUILD_DIR)/mt76.ko endef +define KernelPackage/mt76-usb + $(KernelPackage/mt76-default) + TITLE:=MediaTek MT76xx wireless driver USB support + DEPENDS += kmod-usb-core kmod-mt76-core + HIDDEN:=1 + FILES:=\ + $(PKG_BUILD_DIR)/mt76-usb.ko +endef + +define KernelPackage/mt76x02-usb + $(KernelPackage/mt76-default) + TITLE:=MediaTek MT76x0/MT76x2 USB wireless driver common code + DEPENDS+=+kmod-mt76-usb + HIDDEN:=1 + FILES:=$(PKG_BUILD_DIR)/mt76x02-usb.ko +endef + +define KernelPackage/mt76x02-common + $(KernelPackage/mt76-default) + TITLE:=MediaTek MT76x0/MT76x2 wireless driver common code + DEPENDS+=+kmod-mt76-core + HIDDEN:=1 + FILES:=$(PKG_BUILD_DIR)/mt76x02-lib.ko +endef + +define KernelPackage/mt76x0-common + $(KernelPackage/mt76-default) + TITLE:=MediaTek MT76x0 wireless driver common code + DEPENDS+=+kmod-mt76x02-common +kmod-mt76x02-usb + HIDDEN:=1 + FILES:=$(PKG_BUILD_DIR)/mt76x0/mt76x0-common.ko +endef + +define KernelPackage/mt76x0u + $(KernelPackage/mt76-default) + TITLE:=MediaTek MT76x2U wireless driver + DEPENDS+=+kmod-mt76x0-common +kmod-mt76x02-usb + FILES:=\ + $(PKG_BUILD_DIR)/mt76x0/mt76x0u.ko + AUTOLOAD:=$(call AutoProbe,mt76x0u) +endef + +define KernelPackage/mt76x2-common + $(KernelPackage/mt76-default) + TITLE:=MediaTek MT76x2 wireless driver common code + DEPENDS+=+kmod-mt76-core +kmod-mt76x02-common + HIDDEN:=1 + FILES:=$(PKG_BUILD_DIR)/mt76x2-common.ko +endef + +define KernelPackage/mt76x2u + $(KernelPackage/mt76-default) + TITLE:=MediaTek MT76x2U wireless driver + DEPENDS+=+kmod-mt76x2-common +kmod-mt76x02-usb + FILES:=\ + $(PKG_BUILD_DIR)/mt76x2u.ko + AUTOLOAD:=$(call AutoProbe,mt76x2u) +endef + define KernelPackage/mt76x2 $(KernelPackage/mt76-default) TITLE:=MediaTek MT76x2 wireless driver - DEPENDS+=+kmod-mt76-core + DEPENDS+=+kmod-mt76x2-common FILES:=\ $(PKG_BUILD_DIR)/mt76x2e.ko AUTOLOAD:=$(call AutoProbe,mt76x2e) @@ -55,7 +124,7 @@ define KernelPackage/mt7603 TITLE:=MediaTek MT7603 wireless driver DEPENDS+=+kmod-mt76-core FILES:=\ - $(PKG_BUILD_DIR)/mt7603e.ko + $(PKG_BUILD_DIR)/mt7603/mt7603e.ko AUTOLOAD:=$(call AutoProbe,mt7603e) endef @@ -72,9 +141,38 @@ ifdef CONFIG_PACKAGE_MAC80211_MESH NOSTDINC_FLAGS += -DCONFIG_MAC80211_MESH endif +ifdef CONFIG_PACKAGE_kmod-mt76-usb + PKG_MAKE_FLAGS += CONFIG_MT76_USB=m +endif +ifdef CONFIG_PACKAGE_kmod-mt76x02-common + PKG_MAKE_FLAGS += CONFIG_MT76x02_LIB=m +endif +ifdef CONFIG_PACKAGE_kmod-mt76x02-usb + PKG_MAKE_FLAGS += CONFIG_MT76x02_USB=m +endif +ifdef CONFIG_PACKAGE_kmod-mt76x0-common + PKG_MAKE_FLAGS += CONFIG_MT76x0_COMMON=m +endif +ifdef CONFIG_PACKAGE_kmod-mt76x0u + PKG_MAKE_FLAGS += CONFIG_MT76x0U=m +endif +ifdef CONFIG_PACKAGE_kmod-mt76x2-common + PKG_MAKE_FLAGS += CONFIG_MT76x2_COMMON=m +endif +ifdef CONFIG_PACKAGE_kmod-mt76x2 + PKG_MAKE_FLAGS += CONFIG_MT76X2E=m +endif +ifdef CONFIG_PACKAGE_kmod-mt76x2u + PKG_MAKE_FLAGS += CONFIG_MT76X2U=m +endif +ifdef CONFIG_PACKAGE_kmod-mt7603 + PKG_MAKE_FLAGS += CONFIG_MT7603E=m +endif + define Build/Compile +$(MAKE) $(PKG_JOBS) -C "$(LINUX_DIR)" \ $(KERNEL_MAKE_FLAGS) \ + $(PKG_MAKE_FLAGS) \ SUBDIRS="$(PKG_BUILD_DIR)" \ NOSTDINC_FLAGS="$(NOSTDINC_FLAGS)" \ modules @@ -105,6 +203,13 @@ define KernelPackage/mt7603/install endef $(eval $(call KernelPackage,mt76-core)) +$(eval $(call KernelPackage,mt76-usb)) +$(eval $(call KernelPackage,mt76x02-usb)) +$(eval $(call KernelPackage,mt76x02-common)) +$(eval $(call KernelPackage,mt76x0-common)) +$(eval $(call KernelPackage,mt76x0u)) +$(eval $(call KernelPackage,mt76x2-common)) +$(eval $(call KernelPackage,mt76x2u)) $(eval $(call KernelPackage,mt76x2)) $(eval $(call KernelPackage,mt7603)) $(eval $(call KernelPackage,mt76))