From 55545e3f75b94bdb4febf77731ae4349a9e6951e Mon Sep 17 00:00:00 2001 From: Nikita Travkin Date: Fri, 13 Jan 2023 17:21:29 +0500 Subject: [PATCH] mac80211: Add wcn36xx support https://github.com/immortalwrt/immortalwrt/commit/55545e3f75b94bdb4febf77731ae4349a9e6951e.patch Signed-off-by: Nikita Travkin --- package/kernel/mac80211/Makefile | 397 ------------------------------- package/kernel/mac80211/ath.mk | 22 +- 2 files changed, 19 insertions(+), 400 deletions(-) delete mode 100644 package/kernel/mac80211/Makefile diff --git a/package/kernel/mac80211/Makefile b/package/kernel/mac80211/Makefile deleted file mode 100644 index a7472ee7794..00000000000 --- a/package/kernel/mac80211/Makefile +++ /dev/null @@ -1,397 +0,0 @@ -# -# Copyright (C) 2007-2015 OpenWrt.org -# -# This is free software, licensed under the GNU General Public License v2. -# See /LICENSE for more information. -# - -include $(TOPDIR)/rules.mk -include $(INCLUDE_DIR)/kernel.mk - -PKG_NAME:=mac80211 - -PKG_VERSION:=6.1.24 -PKG_RELEASE:=4 -# PKG_SOURCE_URL:=@KERNEL/linux/kernel/projects/backports/stable/v5.15.58/ -PKG_SOURCE_URL:=http://mirror2.openwrt.org/sources/ -PKG_HASH:=5d39aca7e34c33cb9b3e366117b2e86841b7bdd37933679d6b1e61be6b150648 - -PKG_SOURCE:=backports-$(PKG_VERSION).tar.xz -PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/backports-$(PKG_VERSION) -PKG_BUILD_PARALLEL:=1 - -PKG_MAINTAINER:=Felix Fietkau - -PKG_DRIVERS = \ - mac80211-hwsim \ - mt7601u \ - rsi91x rsi91x-usb rsi91x-sdio\ - wlcore wl12xx wl18xx - -PKG_CONFIG_DEPENDS:= \ - CONFIG_PACKAGE_kmod-mac80211 \ - CONFIG_PACKAGE_CFG80211_TESTMODE \ - CONFIG_PACKAGE_MAC80211_DEBUGFS \ - CONFIG_PACKAGE_MAC80211_MESH \ - CONFIG_PACKAGE_MAC80211_TRACING \ - CONFIG_PACKAGE_IWLWIFI_DEBUG \ - CONFIG_PACKAGE_IWLWIFI_DEBUGFS \ - CONFIG_PACKAGE_RTLWIFI_DEBUG \ - -include $(INCLUDE_DIR)/package.mk - -WMENU:=Wireless Drivers - -define KernelPackage/mac80211/Default - SUBMENU:=$(WMENU) - URL:=https://wireless.wiki.kernel.org/ - MAINTAINER:=Felix Fietkau -endef - -config_package=$(if $(CONFIG_PACKAGE_kmod-$(1)),m) - -config-y:= \ - WLAN \ - CFG80211_CERTIFICATION_ONUS \ - MAC80211_RC_MINSTREL \ - MAC80211_RC_MINSTREL_HT \ - MAC80211_RC_MINSTREL_VHT \ - MAC80211_RC_DEFAULT_MINSTREL \ - WLAN_VENDOR_ADMTEK \ - WLAN_VENDOR_ATH \ - WLAN_VENDOR_ATMEL \ - WLAN_VENDOR_BROADCOM \ - WLAN_VENDOR_CISCO \ - WLAN_VENDOR_INTEL \ - WLAN_VENDOR_INTERSIL \ - WLAN_VENDOR_MARVELL \ - WLAN_VENDOR_MEDIATEK \ - WLAN_VENDOR_RALINK \ - WLAN_VENDOR_REALTEK \ - WLAN_VENDOR_RSI \ - WLAN_VENDOR_ST \ - WLAN_VENDOR_TI \ - WLAN_VENDOR_ZYDAS \ - -config-$(call config_package,cfg80211) += CFG80211 -config-$(CONFIG_PACKAGE_CFG80211_TESTMODE) += NL80211_TESTMODE - -config-$(call config_package,mac80211) += MAC80211 -config-$(CONFIG_PACKAGE_MAC80211_MESH) += MAC80211_MESH - -include ath.mk -include broadcom.mk -include intel.mk -include marvell.mk -include ralink.mk -include realtek.mk - -PKG_CONFIG_DEPENDS += \ - $(patsubst %,CONFIG_PACKAGE_kmod-%,$(PKG_DRIVERS)) - -define KernelPackage/cfg80211 - $(call KernelPackage/mac80211/Default) - TITLE:=cfg80211 - wireless configuration API - DEPENDS+= +iw +iwinfo +wireless-regdb +USE_RFKILL:kmod-rfkill - ABI_VERSION:=$(PKG_VERSION)-$(PKG_RELEASE) - FILES:= \ - $(PKG_BUILD_DIR)/compat/compat.ko \ - $(PKG_BUILD_DIR)/net/wireless/cfg80211.ko -endef - -define KernelPackage/cfg80211/description -cfg80211 is the Linux wireless LAN (802.11) configuration API. -endef - -define KernelPackage/cfg80211/config - if PACKAGE_kmod-cfg80211 - - config PACKAGE_CFG80211_TESTMODE - bool "Enable testmode command support" - default n - help - This is typically used for tests and calibration during - manufacturing, or vendor specific debugging features - - endif -endef - - -define KernelPackage/mac80211 - $(call KernelPackage/mac80211/Default) - TITLE:=Linux 802.11 Wireless Networking Stack - # +kmod-crypto-cmac is a runtime only dependency of net/mac80211/aes_cmac.c - DEPENDS+= +kmod-cfg80211 +kmod-crypto-cmac +kmod-crypto-ccm +kmod-crypto-gcm +hostapd-common - KCONFIG:=\ - CONFIG_AVERAGE=y - FILES:= $(PKG_BUILD_DIR)/net/mac80211/mac80211.ko - ABI_VERSION:=$(PKG_VERSION)-$(PKG_RELEASE) - MENU:=1 -endef - -define KernelPackage/mac80211/config - if PACKAGE_kmod-mac80211 - - config PACKAGE_MAC80211_DEBUGFS - bool "Export mac80211 internals in DebugFS" - select KERNEL_DEBUG_FS - default y - help - Select this to see extensive information about - the internal state of mac80211 in debugfs. - - config PACKAGE_MAC80211_TRACING - bool "Enable tracing (mac80211 and supported drivers)" - select KERNEL_FTRACE - select KERNEL_ENABLE_DEFAULT_TRACERS - default n - help - Select this to enable tracing of mac80211 and - related wifi drivers (using trace-cmd). - - config PACKAGE_MAC80211_MESH - bool "Enable 802.11s mesh support" - default y - - endif -endef - -define KernelPackage/mac80211/description -Generic IEEE 802.11 Networking Stack (mac80211) -endef - -define KernelPackage/mac80211-hwsim - $(call KernelPackage/mac80211/Default) - TITLE:=mac80211 HW simulation device - DEPENDS+= +kmod-mac80211 +@DRIVER_11AX_SUPPORT +@DRIVER_11AC_SUPPORT - FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/mac80211_hwsim.ko - AUTOLOAD:=$(call AutoProbe,mac80211_hwsim) -endef - - -define KernelPackage/mt7601u - $(call KernelPackage/mac80211/Default) - TITLE:=MT7601U-based USB dongles Wireless Driver - DEPENDS+= +kmod-mac80211 @USB_SUPPORT +kmod-usb-core +mt7601u-firmware - FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/mediatek/mt7601u/mt7601u.ko - AUTOLOAD:=$(call AutoProbe,mt7601u) -endef - -define KernelPackage/rsi91x - $(call KernelPackage/mac80211/Default) - TITLE:=Redpine Signals Inc 91x WLAN driver support - DEPENDS+= +kmod-mac80211 +rs9113-firmware - FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rsi/rsi_91x.ko -endef - -define KernelPackage/rsi91x-usb - $(call KernelPackage/mac80211/Default) - TITLE:=Redpine Signals USB bus support - DEPENDS+=@USB_SUPPORT +kmod-usb-core +kmod-mac80211 +kmod-rsi91x +rs9113-firmware - FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rsi/rsi_usb.ko - AUTOLOAD:=$(call AutoProbe,rsi_usb) -endef - -define KernelPackage/rsi91x-sdio - $(call KernelPackage/mac80211/Default) - TITLE:=Redpine Signals SDIO bus support - DEPENDS+= +kmod-mac80211 +kmod-mmc +kmod-rsi91x +rs9113-firmware - FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rsi/rsi_sdio.ko - AUTOLOAD:=$(call AutoProbe,rsi_sdio) -endef - - -define KernelPackage/wlcore - $(call KernelPackage/mac80211/Default) - TITLE:=TI common driver part - DEPENDS+= +kmod-mmc +kmod-mac80211 - FILES:= \ - $(PKG_BUILD_DIR)/drivers/net/wireless/ti/wlcore/wlcore.ko \ - $(PKG_BUILD_DIR)/drivers/net/wireless/ti/wlcore/wlcore_sdio.ko - AUTOLOAD:=$(call AutoProbe,wlcore wlcore_sdio) -endef - -define KernelPackage/wlcore/description - This module contains some common parts needed by TI Wireless drivers. -endef - -define KernelPackage/wl12xx - $(call KernelPackage/mac80211/Default) - TITLE:=Driver for TI WL12xx - URL:=https://wireless.wiki.kernel.org/en/users/drivers/wl12xx - DEPENDS+= +kmod-wlcore +wl12xx-firmware - FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ti/wl12xx/wl12xx.ko - AUTOLOAD:=$(call AutoProbe,wl12xx) -endef - -define KernelPackage/wl12xx/description - Kernel modules for TI WL12xx -endef - -define KernelPackage/wl18xx - $(call KernelPackage/mac80211/Default) - TITLE:=Driver for TI WL18xx - URL:=https://wireless.wiki.kernel.org/en/users/drivers/wl18xx - DEPENDS+= +kmod-wlcore +wl18xx-firmware - FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ti/wl18xx/wl18xx.ko - AUTOLOAD:=$(call AutoProbe,wl18xx) -endef - -define KernelPackage/wl18xx/description - Kernel modules for TI WL18xx -endef - - -ifdef CONFIG_PACKAGE_MAC80211_DEBUGFS - config-y += \ - CFG80211_DEBUGFS \ - MAC80211_DEBUGFS -endif - -ifdef CONFIG_PACKAGE_MAC80211_TRACING - config-y += \ - IWLWIFI_DEVICE_TRACING -endif - -config-$(call config_package,mac80211-hwsim) += MAC80211_HWSIM -config-$(call config_package,mt7601u) += MT7601U -config-y += WL_MEDIATEK - -config-$(call config_package,wlcore) += WLCORE WLCORE_SDIO -config-$(call config_package,wl12xx) += WL12XX -config-$(call config_package,wl18xx) += WL18XX -config-y += WL_TI WILINK_PLATFORM_DATA -config-$(call config_package,rsi91x) += RSI_91X -config-$(call config_package,rsi91x-usb) += RSI_USB -config-$(call config_package,rsi91x-sdio) += RSI_SDIO - -config-$(CONFIG_LEDS_TRIGGERS) += MAC80211_LEDS - -C_DEFINES= - -ifeq ($(BUILD_VARIANT),smallbuffers) - C_DEFINES+= -DCONFIG_ATH10K_SMALLBUFFERS -endif - -MAKE_OPTS:= \ - $(subst -C $(LINUX_DIR),-C "$(PKG_BUILD_DIR)",$(KERNEL_MAKEOPTS)) \ - EXTRA_CFLAGS="-I$(PKG_BUILD_DIR)/include $(IREMAP_CFLAGS) $(C_DEFINES)" \ - KLIB_BUILD="$(LINUX_DIR)" \ - MODPROBE=true \ - KLIB=$(TARGET_MODULES_DIR) \ - KERNEL_SUBLEVEL=$(lastword $(subst ., ,$(KERNEL_PATCHVER))) \ - KBUILD_LDFLAGS_MODULE_PREREQ= - -define ConfigVars -$(subst $(space),,$(foreach opt,$(config-$(1)),CPTCFG_$(opt)=$(1) -)) -endef - -define mac80211_config -$(call ConfigVars,m)$(call ConfigVars,y) -endef -$(eval $(call shexport,mac80211_config)) - -define Build/Prepare - rm -rf $(PKG_BUILD_DIR) - mkdir -p $(PKG_BUILD_DIR) - $(PKG_UNPACK) - $(Build/Patch) - rm -rf \ - $(PKG_BUILD_DIR)/include/linux/ssb \ - $(PKG_BUILD_DIR)/include/linux/bcma \ - $(PKG_BUILD_DIR)/include/net/bluetooth - - rm -f \ - $(PKG_BUILD_DIR)/include/linux/cordic.h \ - $(PKG_BUILD_DIR)/include/linux/crc8.h \ - $(PKG_BUILD_DIR)/include/linux/eeprom_93cx6.h \ - $(PKG_BUILD_DIR)/include/linux/wl12xx.h \ - $(PKG_BUILD_DIR)/include/linux/mhi.h \ - $(PKG_BUILD_DIR)/include/net/ieee80211.h \ - $(PKG_BUILD_DIR)/backport-include/linux/bcm47xx_nvram.h - - echo 'compat-wireless-$(PKG_VERSION)-$(PKG_RELEASE)-$(REVISION)' > $(PKG_BUILD_DIR)/compat_version -endef - -ifneq ($(CONFIG_PACKAGE_kmod-cfg80211),) - define Build/Compile/kmod - rm -rf $(PKG_BUILD_DIR)/modules - +$(MAKE) $(PKG_JOBS) $(MAKE_OPTS) modules - endef -endif - -#do not Build/Configure for EXTERNAL KERNEL -ifeq ($(strip $(CONFIG_EXTERNAL_KERNEL_TREE)),"") - ifeq ($(strip $(CONFIG_KERNEL_GIT_CLONE_URI)),"") - define Build/Configure - cmp $(PKG_BUILD_DIR)/include/linux/ath9k_platform.h $(LINUX_DIR)/include/linux/ath9k_platform.h - cmp $(PKG_BUILD_DIR)/include/linux/ath5k_platform.h $(LINUX_DIR)/include/linux/ath5k_platform.h - cmp $(PKG_BUILD_DIR)/include/linux/rt2x00_platform.h $(LINUX_DIR)/include/linux/rt2x00_platform.h - endef - endif -endif - -define Build/Patch - $(if $(QUILT),rm -rf $(PKG_BUILD_DIR)/patches; mkdir -p $(PKG_BUILD_DIR)/patches) - $(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/build,build/) - $(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/subsys,subsys/) - $(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/ath,ath/) - $(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/ath5k,ath5k/) - $(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/ath9k,ath9k/) - $(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/ath10k,ath10k/) - $(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/ath11k,ath11k/) - $(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/rt2x00,rt2x00/) - $(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/mt7601u,mt7601u/) - $(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/mwl,mwl/) - $(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/brcm,brcm/) - $(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/rtl,rtl/) - $(if $(QUILT),touch $(PKG_BUILD_DIR)/.quilt_used) -endef - -define Quilt/Refresh/Package - $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/build,build/) - $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/subsys,subsys/) - $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/ath,ath/) - $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/ath5k,ath5k/) - $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/ath9k,ath9k/) - $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/ath10k,ath10k/) - $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/ath11k,ath11k/) - $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/rt2x00,rt2x00/) - $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/mt7601u,mt7601u/) - $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/mwl,mwl/) - $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/brcm,brcm/) - $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/rtl,rtl/) -endef - -define Build/Compile - $(SH_FUNC) var2file "$(call shvar,mac80211_config)" $(PKG_BUILD_DIR)/.config - $(MAKE) $(MAKE_OPTS) allnoconfig - $(call Build/Compile/kmod) -endef - -define Build/InstallDev - mkdir -p \ - $(1)/usr/include/mac80211 \ - $(1)/usr/include/mac80211-backport \ - $(1)/usr/include/mac80211/ath \ - $(1)/usr/include/net/mac80211 - $(CP) $(PKG_BUILD_DIR)/net/mac80211/*.h $(PKG_BUILD_DIR)/include/* $(1)/usr/include/mac80211/ - $(CP) $(PKG_BUILD_DIR)/backport-include/* $(1)/usr/include/mac80211-backport/ - $(CP) $(PKG_BUILD_DIR)/net/mac80211/rate.h $(1)/usr/include/net/mac80211/ - $(CP) $(PKG_BUILD_DIR)/drivers/net/wireless/ath/*.h $(1)/usr/include/mac80211/ath/ - rm -f $(1)/usr/include/mac80211-backport/linux/module.h -endef - - -define KernelPackage/cfg80211/install - $(INSTALL_DIR) $(1)/lib/wifi $(1)/lib/netifd/wireless - $(INSTALL_DATA) ./files/lib/wifi/mac80211.sh $(1)/lib/wifi - $(INSTALL_BIN) ./files/lib/netifd/wireless/mac80211.sh $(1)/lib/netifd/wireless - $(INSTALL_DIR) $(1)/etc/hotplug.d/ieee80211 - $(INSTALL_DATA) ./files/mac80211.hotplug $(1)/etc/hotplug.d/ieee80211/10-wifi-detect -endef - -$(eval $(foreach drv,$(PKG_DRIVERS),$(call KernelPackage,$(drv)))) -$(eval $(call KernelPackage,cfg80211)) -$(eval $(call KernelPackage,mac80211)) diff --git a/package/kernel/mac80211/ath.mk b/package/kernel/mac80211/ath.mk index a4225554427..6db65edee82 100644 --- a/package/kernel/mac80211/ath.mk +++ b/package/kernel/mac80211/ath.mk @@ -1,6 +1,6 @@ PKG_DRIVERS += \ ath ath5k ath6kl ath6kl-sdio ath6kl-usb ath9k ath9k-common ath9k-htc ath10k ath10k-smallbuffers \ - ath11k ath11k-ahb ath11k-pci carl9170 owl-loader ar5523 wil6210 + ath11k ath11k-ahb ath11k-pci carl9170 owl-loader ar5523 wil6210 wcn36xx PKG_CONFIG_DEPENDS += \ CONFIG_PACKAGE_ATH_DEBUG \ @@ -24,7 +24,8 @@ ifdef CONFIG_PACKAGE_MAC80211_DEBUGFS CARL9170_DEBUGFS \ ATH5K_DEBUG \ ATH6KL_DEBUG \ - WIL6210_DEBUGFS + WIL6210_DEBUGFS \ + WCN36XX_DEBUGFS endif ifdef CONFIG_PACKAGE_MAC80211_TRACING @@ -47,6 +48,7 @@ config-$(call config_package,ath9k-common) += ATH9K_COMMON config-$(call config_package,owl-loader) += ATH9K_PCI_NO_EEPROM config-$(CONFIG_TARGET_ath79) += ATH9K_AHB config-$(CONFIG_TARGET_ipq40xx) += ATH10K_AHB +config-$(CONFIG_TARGET_msm89xx) += WCN36XX config-$(CONFIG_PCI) += ATH9K_PCI config-$(CONFIG_ATH_USER_REGD) += ATH_USER_REGD ATH_REG_DYNAMIC_USER_REG_HINTS config-$(CONFIG_ATH9K_HWRNG) += ATH9K_HWRNG @@ -133,7 +135,7 @@ endef define KernelPackage/ath $(call KernelPackage/mac80211/Default) TITLE:=Atheros common driver part - DEPENDS+= @PCI_SUPPORT||USB_SUPPORT||TARGET_ath79||TARGET_ath25 +kmod-mac80211 + DEPENDS+= @PCI_SUPPORT||USB_SUPPORT||TARGET_ath79||TARGET_ath25||TARGET_msm89xx +kmod-mac80211 FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath.ko MENU:=1 endef @@ -350,6 +352,20 @@ This module adds support for Qualcomm Technologies 802.11ax family of chipsets with PCI bus. endef +define KernelPackage/wcn36xx + $(call KernelPackage/mac80211/Default) + TITLE:=Qualcomm Atheros WCN3660/3680 support + URL:=https://wireless.wiki.kernel.org/en/users/drivers/wcn36xx + DEPENDS+= @TARGET_msm89xx +kmod-ath +kmod-qcom-rproc-wcnss + FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ath/wcn36xx/wcn36xx.ko + AUTOLOAD:=$(call AutoProbe,wcn36xx) +endef + +define KernelPackage/wcn36xx/description +This module adds support for Qualcomm Atheros WCN3660/3680 Wireless +blocks in some Qualcomm SoCs +endef + define KernelPackage/carl9170 $(call KernelPackage/mac80211/Default) TITLE:=Driver for Atheros AR9170 USB sticks