From 90773b94ca5b423c5786dbf0f607f793684e172a Mon Sep 17 00:00:00 2001 From: coolsnowwolf Date: Thu, 5 Jun 2025 14:09:06 +0800 Subject: [PATCH] mac80211: add ath12k PCI support --- package/kernel/mac80211/Makefile | 2 ++ package/kernel/mac80211/ath.mk | 23 +++++++++++++++++-- ...0-ath12k-prevent-ltssm-startup-crash.patch | 17 ++++++++++++++ 3 files changed, 40 insertions(+), 2 deletions(-) create mode 100644 package/kernel/mac80211/patches/ath12k/100-ath12k-prevent-ltssm-startup-crash.patch diff --git a/package/kernel/mac80211/Makefile b/package/kernel/mac80211/Makefile index d32efc734..cc7538faa 100644 --- a/package/kernel/mac80211/Makefile +++ b/package/kernel/mac80211/Makefile @@ -343,6 +343,7 @@ define Build/Patch $(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)/ath12k,ath12k/) $(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/) @@ -359,6 +360,7 @@ define Quilt/Refresh/Package $(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)/ath12k,ath12k/) $(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/) diff --git a/package/kernel/mac80211/ath.mk b/package/kernel/mac80211/ath.mk index c8051ea53..0ffed56e4 100644 --- a/package/kernel/mac80211/ath.mk +++ b/package/kernel/mac80211/ath.mk @@ -1,7 +1,7 @@ PKG_DRIVERS += \ ath ath5k ath6kl ath6kl-sdio ath6kl-usb ath9k ath9k-common ath9k-htc \ ath10k ath10k-pci ath10k-sdio ath10k-smallbuffers ath11k ath11k-ahb \ - ath11k-pci ar5523 carl9170 owl-loader wil6210 qcom-qmi-helpers + ath11k-pci ath12k ar5523 carl9170 owl-loader wil6210 qcom-qmi-helpers PKG_CONFIG_DEPENDS += \ CONFIG_PACKAGE_ATH_DEBUG \ @@ -22,6 +22,7 @@ ifdef CONFIG_PACKAGE_MAC80211_DEBUGFS ATH9K_HTC_DEBUGFS \ ATH10K_DEBUGFS \ ATH11K_DEBUGFS \ + ATH12K_DEBUGFS \ CARL9170_DEBUGFS \ ATH5K_DEBUG \ ATH6KL_DEBUG \ @@ -32,6 +33,7 @@ ifdef CONFIG_PACKAGE_MAC80211_TRACING config-y += \ ATH10K_TRACING \ ATH11K_TRACING \ + ATH12K_TRACING \ ATH6KL_TRACING \ ATH_TRACEPOINTS \ ATH5K_TRACER \ @@ -40,7 +42,7 @@ endif config-$(call config_package,qcom-qmi-helpers) += QCOM_QMI_HELPERS config-$(call config_package,ath) += ATH_CARDS ATH_COMMON -config-$(CONFIG_PACKAGE_ATH_DEBUG) += ATH_DEBUG ATH10K_DEBUG ATH11K_DEBUG ATH9K_STATION_STATISTICS +config-$(CONFIG_PACKAGE_ATH_DEBUG) += ATH_DEBUG ATH10K_DEBUG ATH11K_DEBUG ATH12K_DEBUG ATH9K_STATION_STATISTICS config-$(CONFIG_PACKAGE_ATH_DFS) += ATH9K_DFS_CERTIFIED ATH10K_DFS_CERTIFIED config-$(CONFIG_PACKAGE_ATH_SPECTRAL) += ATH9K_COMMON_SPECTRAL ATH10K_SPECTRAL ATH11K_SPECTRAL config-$(CONFIG_PACKAGE_ATH_DYNACK) += ATH9K_DYNACK @@ -68,6 +70,7 @@ config-$(call config_package,ath10k-smallbuffers) += ATH10K ATH10K_PCI ATH10K_SM config-$(call config_package,ath11k) += ATH11K config-$(call config_package,ath11k-ahb) += ATH11K_AHB config-$(call config_package,ath11k-pci) += ATH11K_PCI +config-$(call config_package,ath12k) += ATH12K config-$(call config_package,ath5k) += ATH5K ATH5K_PCI @@ -385,6 +388,22 @@ This module adds support for Qualcomm Technologies 802.11ax family of chipsets with PCI bus. endef +define KernelPackage/ath12k + $(call KernelPackage/mac80211/Default) + TITLE:=Qualcomm 802.11be wireless chipset support + URL:=https://wireless.wiki.kernel.org/en/users/drivers/ath12k + DEPENDS+= @PCI_SUPPORT +kmod-ath +@DRIVER_11AC_SUPPORT +@DRIVER_11AX_SUPPORT \ + +kmod-crypto-michael-mic +kmod-qrtr-mhi \ + +kmod-qcom-qmi-helpers + FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath12k/ath12k.ko + AUTOLOAD:=$(call AutoProbe,ath12k) +endef + +define KernelPackage/ath12k/description +This module adds support for Qualcomm Technologies 802.11be family of +chipsets with PCI bus. +endef + define KernelPackage/carl9170 $(call KernelPackage/mac80211/Default) TITLE:=Driver for Atheros AR9170 USB sticks diff --git a/package/kernel/mac80211/patches/ath12k/100-ath12k-prevent-ltssm-startup-crash.patch b/package/kernel/mac80211/patches/ath12k/100-ath12k-prevent-ltssm-startup-crash.patch new file mode 100644 index 000000000..cd85a0f6a --- /dev/null +++ b/package/kernel/mac80211/patches/ath12k/100-ath12k-prevent-ltssm-startup-crash.patch @@ -0,0 +1,17 @@ +Fix ltssm crashes on BPI-Rx boards. +Seems read32/write32 using wrong address which +is not a problem on x86/64 PCI controllers. +But have issues on BPI-Rx boards. + +--- a/drivers/net/wireless/ath/ath12k/pci.c ++++ b/drivers/net/wireless/ath/ath12k/pci.c +@@ -277,6 +277,9 @@ static void ath12k_pci_enable_ltssm(stru + u32 val; + int i; + ++ /* Prevent startup crash on BPI-Rx */ ++ return; ++ + val = ath12k_pci_read32(ab, PCIE_PCIE_PARF_LTSSM); + + /* PCIE link seems very unstable after the Hot Reset*/