From ede1c194f64982b5d1f0899cd99f2c70ce721afd Mon Sep 17 00:00:00 2001 From: coolsnowwolf Date: Wed, 14 Dec 2022 05:04:31 +0800 Subject: [PATCH] mac80211: backport ath11k in linux kernel 6.1 --- package/kernel/linux/modules/netsupport.mk | 4 +- package/kernel/mac80211/Makefile | 2 +- package/kernel/mac80211/ath.mk | 4 +- .../ath11k/902-ath11k-linux-6.1-support.patch | 45 +++++++++++++++++++ .../pending-6.1/930-qcom-qmi-helpers.patch | 11 +++++ 5 files changed, 61 insertions(+), 5 deletions(-) create mode 100644 package/kernel/mac80211/patches/ath11k/902-ath11k-linux-6.1-support.patch create mode 100644 target/linux/generic/pending-6.1/930-qcom-qmi-helpers.patch diff --git a/package/kernel/linux/modules/netsupport.mk b/package/kernel/linux/modules/netsupport.mk index b3f34cd9b..7d360bb37 100644 --- a/package/kernel/linux/modules/netsupport.mk +++ b/package/kernel/linux/modules/netsupport.mk @@ -1356,11 +1356,11 @@ define KernelPackage/qrtr SUBMENU:=$(NETWORK_SUPPORT_MENU) TITLE:=Qualcomm IPC Router support HIDDEN:=1 - DEPENDS:=@(LINUX_5_15||LINUX_6_0) + DEPENDS:=@(LINUX_5_15||LINUX_6_0||LINUX_6_1) KCONFIG:=CONFIG_QRTR FILES:= \ $(LINUX_DIR)/net/qrtr/qrtr.ko \ - $(LINUX_DIR)/net/qrtr/ns.ko + $(LINUX_DIR)/net/qrtr/ns.ko@lt6.0 AUTOLOAD:=$(call AutoProbe,qrtr) endef diff --git a/package/kernel/mac80211/Makefile b/package/kernel/mac80211/Makefile index e51208aab..8d667721b 100644 --- a/package/kernel/mac80211/Makefile +++ b/package/kernel/mac80211/Makefile @@ -11,7 +11,7 @@ include $(INCLUDE_DIR)/kernel.mk PKG_NAME:=mac80211 PKG_VERSION:=5.15.33-1 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_SOURCE_URL:=@KERNEL/linux/kernel/projects/backports/stable/v5.15.33/ PKG_HASH:=1b6b3bded4c81814ebebe2d194c2f8966d2399005b85ebb0557285b6e73f5422 diff --git a/package/kernel/mac80211/ath.mk b/package/kernel/mac80211/ath.mk index 9b71f8d21..d9623da14 100644 --- a/package/kernel/mac80211/ath.mk +++ b/package/kernel/mac80211/ath.mk @@ -376,7 +376,7 @@ define KernelPackage/ath11k-ahb $(call KernelPackage/mac80211/Default) TITLE:=Qualcomm 802.11ax AHB wireless chipset support URL:=https://wireless.wiki.kernel.org/en/users/drivers/ath11k - DEPENDS+= @(TARGET_ipq60xx||TARGET_ipq807x) +kmod-ath11k +LINUX_5_15:kmod-qrtr-smd + DEPENDS+= @(TARGET_ipq60xx||TARGET_ipq807x) +kmod-ath11k +(LINUX_5_15||LINUX_6_1):kmod-qrtr-smd FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath11k/ath11k_ahb.ko AUTOLOAD:=$(call AutoProbe,ath11k_ahb) endef @@ -390,7 +390,7 @@ define KernelPackage/ath11k-pci $(call KernelPackage/mac80211/Default) TITLE:=Qualcomm 802.11ax PCI wireless chipset support URL:=https://wireless.wiki.kernel.org/en/users/drivers/ath11k - DEPENDS+= @PCI_SUPPORT +LINUX_5_15:kmod-qrtr-mhi +kmod-ath11k + DEPENDS+= @PCI_SUPPORT +(LINUX_5_15||LINUX_6_1):kmod-qrtr-mhi +kmod-ath11k FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath11k/ath11k_pci.ko AUTOLOAD:=$(call AutoProbe,ath11k_pci) endef diff --git a/package/kernel/mac80211/patches/ath11k/902-ath11k-linux-6.1-support.patch b/package/kernel/mac80211/patches/ath11k/902-ath11k-linux-6.1-support.patch new file mode 100644 index 000000000..94f2ffa92 --- /dev/null +++ b/package/kernel/mac80211/patches/ath11k/902-ath11k-linux-6.1-support.patch @@ -0,0 +1,45 @@ +--- a/drivers/net/wireless/ath/ath11k/pci.c +--- b/drivers/net/wireless/ath/ath11k/pci.c +@@ -427,7 +427,11 @@ + pci_read_config_dword(pci_dev, pci_dev->msi_cap + PCI_MSI_ADDRESS_LO, + &ab->pci.msi.addr_lo); + ++#if LINUX_VERSION_CODE < KERNEL_VERSION(6,1,0) + if (msi_desc->msi_attrib.is_64) { ++#else ++ if (msi_desc->pci.msi_attrib.is_64) { ++#endif + pci_read_config_dword(pci_dev, pci_dev->msi_cap + PCI_MSI_ADDRESS_HI, + &ab->pci.msi.addr_hi); + } else { +--- a/drivers/net/wireless/ath/ath11k/pcic.c ++++ b/drivers/net/wireless/ath/ath11k/pcic.c +@@ -548,8 +548,13 @@ + irq_grp->ab = ab; + irq_grp->grp_id = i; + init_dummy_netdev(&irq_grp->napi_ndev); ++#if LINUX_VERSION_CODE < KERNEL_VERSION(6,1,0) + netif_napi_add(&irq_grp->napi_ndev, &irq_grp->napi, + ath11k_pcic_ext_grp_napi_poll, NAPI_POLL_WEIGHT); ++#else ++ netif_napi_add_weight(&irq_grp->napi_ndev, &irq_grp->napi, ++ ath11k_pcic_ext_grp_napi_poll, NAPI_POLL_WEIGHT); ++#endif + + if (ab->hw_params.ring_mask->tx[i] || + ab->hw_params.ring_mask->rx[i] || +--- a/net/qrtr/qrtr.c ++++ b/net/qrtr/qrtr.c +@@ -1035,8 +1035,12 @@ + return -EADDRNOTAVAIL; + } + ++#if LINUX_VERSION_CODE < KERNEL_VERSION(6,1,0) + skb = skb_recv_datagram(sk, flags & ~MSG_DONTWAIT, + flags & MSG_DONTWAIT, &rc); ++#else ++ skb = skb_recv_datagram(sk, flags, &rc); ++#endif + if (!skb) { + release_sock(sk); + return rc; diff --git a/target/linux/generic/pending-6.1/930-qcom-qmi-helpers.patch b/target/linux/generic/pending-6.1/930-qcom-qmi-helpers.patch new file mode 100644 index 000000000..2f4277420 --- /dev/null +++ b/target/linux/generic/pending-6.1/930-qcom-qmi-helpers.patch @@ -0,0 +1,11 @@ +--- a/drivers/soc/qcom/Kconfig ++++ b/drivers/soc/qcom/Kconfig +@@ -92,7 +92,7 @@ config QCOM_PDR_HELPERS + select QCOM_QMI_HELPERS + + config QCOM_QMI_HELPERS +- tristate ++ tristate "Qualcomm QMI Helpers" + depends on NET + + config QCOM_RMTFS_MEM