From 70b3f992b81462f5cc5ba24ca41aaadd0186e1a4 Mon Sep 17 00:00:00 2001 From: Shiji Yang Date: Sun, 2 Aug 2026 08:56:26 +0800 Subject: [PATCH] ath10k-ct: update to version 7.2 Update to Git HEAD (2026-07-31) and switch to 7.2 kernel based driver. We also introduced a new patch 204-* to correct the driver version number. Upstream merged patches: - 005-ath10k-ct-fix-missing-prototypes-warnings-on-6.12-ke.patch Tested on QCA9887 and IPQ4019. Signed-off-by: Shiji Yang Link: https://github.com/openwrt/openwrt/pull/24529 Signed-off-by: Hauke Mehrtens --- package/kernel/ath10k-ct/Makefile | 10 +-- ...h10k-6.10-remove-unsupported-feature.patch | 6 +- ...ssing-prototypes-warnings-on-6.12-ke.patch | 79 ------------------- ...02-ath10k-use-tpt-trigger-by-default.patch | 27 +++---- ...ath10k-correct-driver-version-number.patch | 20 +++++ ...e-noisy-log-caused-by-flushing-queue.patch | 8 +- .../300-fix-fortify-checking-error.patch | 6 +- ...0-0010-ath10k-limit-htt-rx-ring-size.patch | 4 +- ...60-0011-ath10k-limit-pci-buffer-size.patch | 12 +-- ...k-always-use-mac80211-loss-detection.patch | 8 +- 10 files changed, 60 insertions(+), 120 deletions(-) delete mode 100644 package/kernel/ath10k-ct/patches/005-ath10k-ct-fix-missing-prototypes-warnings-on-6.12-ke.patch create mode 100644 package/kernel/ath10k-ct/patches/204-ath10k-correct-driver-version-number.patch diff --git a/package/kernel/ath10k-ct/Makefile b/package/kernel/ath10k-ct/Makefile index 48514a6b40a..f5211fb7c68 100644 --- a/package/kernel/ath10k-ct/Makefile +++ b/package/kernel/ath10k-ct/Makefile @@ -8,14 +8,14 @@ PKG_LICENSE_FILES:= PKG_SOURCE_URL:=https://github.com/greearb/ath10k-ct.git PKG_SOURCE_PROTO:=git -PKG_SOURCE_DATE:=2025-12-01 -PKG_SOURCE_VERSION:=bb84e1597474a6db26f7681d6765fd3e69fff37e -PKG_MIRROR_HASH:=76a950c4c5f02128f4225955b1ca0d1d8f6c68c3b0918c4bc2d1265698e939a6 +PKG_SOURCE_DATE:=2026-07-31 +PKG_SOURCE_VERSION:=fcbdb70debc261f9df6734bbb76d81cdc88e0e26 +PKG_MIRROR_HASH:=3bfcb2c8bc08902b95de16593b9d757e8c48f8891bd8ecd0934af14789294f37 -# Build the 6.14 ath10k-ct driver version. +# Build the 7.2 ath10k-ct driver version. # Probably this should match as closely as # possible to whatever mac80211 backports version is being used. -CT_KVER="-6.18" +CT_KVER="-7.2" PKG_MAINTAINER:=Ben Greear PKG_BUILD_PARALLEL:=1 diff --git a/package/kernel/ath10k-ct/patches/002-ath10k-6.10-remove-unsupported-feature.patch b/package/kernel/ath10k-ct/patches/002-ath10k-6.10-remove-unsupported-feature.patch index 1fb99589982..d981ccb39c0 100644 --- a/package/kernel/ath10k-ct/patches/002-ath10k-6.10-remove-unsupported-feature.patch +++ b/package/kernel/ath10k-ct/patches/002-ath10k-6.10-remove-unsupported-feature.patch @@ -1,6 +1,6 @@ ---- a/ath10k-6.18/mac.c -+++ b/ath10k-6.18/mac.c -@@ -11686,7 +11686,6 @@ int ath10k_mac_register(struct ath10k *a +--- a/ath10k-7.2/mac.c ++++ b/ath10k-7.2/mac.c +@@ -11684,7 +11684,6 @@ int ath10k_mac_register(struct ath10k *a ar->hw->wiphy->n_cipher_suites = ar->hw_params.n_cipher_suites; wiphy_ext_feature_set(ar->hw->wiphy, NL80211_EXT_FEATURE_CQM_RSSI_LIST); diff --git a/package/kernel/ath10k-ct/patches/005-ath10k-ct-fix-missing-prototypes-warnings-on-6.12-ke.patch b/package/kernel/ath10k-ct/patches/005-ath10k-ct-fix-missing-prototypes-warnings-on-6.12-ke.patch deleted file mode 100644 index 800b17da09b..00000000000 --- a/package/kernel/ath10k-ct/patches/005-ath10k-ct-fix-missing-prototypes-warnings-on-6.12-ke.patch +++ /dev/null @@ -1,79 +0,0 @@ -From: Shiji Yang -Date: Mon, 28 Apr 2025 23:40:15 +0800 -Subject: [PATCH] ath10k-ct: fix missing-prototypes warnings on 6.12 kernel - -Fix various missing-prototypes warnings by: - -* Mark functions only used in current source file as static. -* Comment out unused functions. - -/workspaces/openwrt/build_dir/target-x86_64_musl/linux-x86_64/ath10k-ct-regular/ath10k-ct-2025.03.14~63f5b605/ath10k-6.18/debug.c:425:6: error: no previous prototype for 'ath10k_debug_fw_ratepwr_table_process' [-Werror=missing-prototypes] - 425 | void ath10k_debug_fw_ratepwr_table_process(struct ath10k *ar, struct sk_buff *skb) - | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -/workspaces/openwrt/build_dir/target-x86_64_musl/linux-x86_64/ath10k-ct-regular/ath10k-ct-2025.03.14~63f5b605/ath10k-6.18/debug.c:437:6: error: no previous prototype for 'ath10k_debug_fw_powerctl_table_process' [-Werror=missing-prototypes] - 437 | void ath10k_debug_fw_powerctl_table_process(struct ath10k *ar, struct sk_buff *skb) - | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -/workspaces/openwrt/build_dir/target-x86_64_musl/linux-x86_64/ath10k-ct-regular/ath10k-ct-2025.03.14~63f5b605/ath10k-6.18/debug.c:884:5: error: no previous prototype for 'ath10k_refresh_target_pdev_ext_ct_stats' [-Werror=missing-prototypes] - 884 | int ath10k_refresh_target_pdev_ext_ct_stats(struct ath10k *ar) - | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -/workspaces/openwrt/build_dir/target-x86_64_musl/linux-x86_64/ath10k-ct-regular/ath10k-ct-2025.03.14~63f5b605/ath10k-6.18/htt_tx.c:1190:6: error: no previous prototype for 'ieee80211_is_robust_mgmt_frame_tx' [-Werror=missing-prototypes] - 1190 | bool ieee80211_is_robust_mgmt_frame_tx(struct ieee80211_hdr *hdr) - | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -/workspaces/openwrt/build_dir/target-x86_64_musl/linux-x86_64/ath10k-ct-regular/ath10k-ct-2025.03.14~63f5b605/ath10k-6.18/wmi.c:3203:5: error: no previous prototype for 'ath10k_wmi_event_txbf_cv_mesg' [-Werror=missing-prototypes] - 3203 | int ath10k_wmi_event_txbf_cv_mesg(struct ath10k *ar, struct sk_buff *skb) - | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Signed-off-by: Shiji Yang ---- - ath10k-6.18/debug.c | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - ---- a/ath10k-6.18/debug.c -+++ b/ath10k-6.18/debug.c -@@ -424,6 +424,7 @@ static void ath10k_debug_fw_stats_reset( - spin_unlock_bh(&ar->data_lock); - } - -+/* - void ath10k_debug_fw_ratepwr_table_process(struct ath10k *ar, struct sk_buff *skb) - { - size_t sz = skb->len; -@@ -447,6 +448,7 @@ void ath10k_debug_fw_powerctl_table_proc - memcpy(ar->debug.powerctl_tbl.data, skb->data, sz); - complete(&ar->debug.powerctl_tbl_complete); - } -+*/ - - void ath10k_debug_fw_stats_process(struct ath10k *ar, struct sk_buff *skb) - { -@@ -883,7 +885,7 @@ static int ath10k_refresh_target_rx_reor - return 0; /* fail silently if firmware does not support this option. */ - } - --int ath10k_refresh_target_pdev_ext_ct_stats(struct ath10k *ar) -+static int ath10k_refresh_target_pdev_ext_ct_stats(struct ath10k *ar) - { - if (test_bit(ATH10K_FW_FEATURE_CUST_STATS_CT, - ar->running_fw->fw_file.fw_features)) ---- a/ath10k-6.18/htt_tx.c -+++ b/ath10k-6.18/htt_tx.c -@@ -1189,7 +1189,7 @@ static u8 ath10k_htt_tx_get_tid(struct s - * since we do tx hw crypt, and it won't actually be encrypted even when this flag is - * set. - */ --bool ieee80211_is_robust_mgmt_frame_tx(struct ieee80211_hdr *hdr) -+static bool ieee80211_is_robust_mgmt_frame_tx(struct ieee80211_hdr *hdr) - { - if (ieee80211_is_disassoc(hdr->frame_control) || - ieee80211_is_deauth(hdr->frame_control)) ---- a/ath10k-6.18/wmi.c -+++ b/ath10k-6.18/wmi.c -@@ -3206,7 +3206,7 @@ printme: - return 0; - } - --int ath10k_wmi_event_txbf_cv_mesg(struct ath10k *ar, struct sk_buff *skb) -+static int ath10k_wmi_event_txbf_cv_mesg(struct ath10k *ar, struct sk_buff *skb) - { - struct wmi_txbf_cv_event *ev; - diff --git a/package/kernel/ath10k-ct/patches/202-ath10k-use-tpt-trigger-by-default.patch b/package/kernel/ath10k-ct/patches/202-ath10k-use-tpt-trigger-by-default.patch index cfbc74b32a1..70c831ecef2 100644 --- a/package/kernel/ath10k-ct/patches/202-ath10k-use-tpt-trigger-by-default.patch +++ b/package/kernel/ath10k-ct/patches/202-ath10k-use-tpt-trigger-by-default.patch @@ -9,14 +9,14 @@ traffic. Signed-off-by: Mathias Kresin --- - ath10k-6.18/core.h | 4 ++++ - ath10k-6.18/leds.c | 4 +--- - ath10k-6.18/mac.c | 2 +- - 3 files changed, 6 insertions(+), 4 deletions(-) + ath10k-7.2/core.h | 4 ++++ + ath10k-7.2/leds.c | 1 + + ath10k-7.2/mac.c | 2 +- + 3 files changed, 6 insertions(+), 1 deletion(-) ---- a/ath10k-6.18/core.h -+++ b/ath10k-6.18/core.h -@@ -1712,6 +1712,10 @@ struct ath10k { +--- a/ath10k-7.2/core.h ++++ b/ath10k-7.2/core.h +@@ -1715,6 +1715,10 @@ struct ath10k { u8 csi_data[4096]; u16 csi_data_len; @@ -27,20 +27,19 @@ Signed-off-by: Mathias Kresin /* must be last */ u8 drv_priv[] __aligned(sizeof(void *)); }; ---- a/ath10k-6.18/leds.c -+++ b/ath10k-6.18/leds.c -@@ -69,7 +69,7 @@ int ath10k_leds_register(struct ath10k * +--- a/ath10k-7.2/leds.c ++++ b/ath10k-7.2/leds.c +@@ -64,6 +64,7 @@ int ath10k_leds_register(struct ath10k * ar->leds.cdev.name = ar->leds.label; ar->leds.cdev.brightness_set_blocking = ath10k_leds_set_brightness_blocking; -- ar->leds.cdev.default_trigger = ar->leds.wifi_led.default_trigger; + ar->leds.cdev.default_trigger = ar->led_default_trigger; ret = led_classdev_register(wiphy_dev(ar->hw->wiphy), &ar->leds.cdev); if (ret) ---- a/ath10k-6.18/mac.c -+++ b/ath10k-6.18/mac.c -@@ -11690,7 +11690,7 @@ int ath10k_mac_register(struct ath10k *a +--- a/ath10k-7.2/mac.c ++++ b/ath10k-7.2/mac.c +@@ -11688,7 +11688,7 @@ int ath10k_mac_register(struct ath10k *a ar->hw->weight_multiplier = ATH10K_AIRTIME_WEIGHT_MULTIPLIER; #ifdef CPTCFG_MAC80211_LEDS diff --git a/package/kernel/ath10k-ct/patches/204-ath10k-correct-driver-version-number.patch b/package/kernel/ath10k-ct/patches/204-ath10k-correct-driver-version-number.patch new file mode 100644 index 00000000000..859e57b481d --- /dev/null +++ b/package/kernel/ath10k-ct/patches/204-ath10k-correct-driver-version-number.patch @@ -0,0 +1,20 @@ +From: Shiji Yang +Date: Thu, 26 Mar 2026 22:44:28 +0800 +Subject: [PATCH] ath10k: correct driver version number + +Signed-off-by: Shiji Yang +--- + ath10k-7.2/pci.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/ath10k-7.2/pci.c ++++ b/ath10k-7.2/pci.c +@@ -3872,7 +3872,7 @@ static int __ath10k_pci_probe(struct pci + int (*pci_hard_reset)(struct ath10k *ar); + u32 (*targ_cpu_to_ce_addr)(struct ath10k *ar, u32 addr); + +- printk(KERN_INFO "ath10k 6.15 driver, optimized for CT firmware, probing pci device: 0x%x.\n", ++ printk(KERN_INFO "ath10k 7.2 driver, optimized for CT firmware, probing pci device: 0x%x.\n", + pci_dev->device); + + switch (pci_dev->device) { diff --git a/package/kernel/ath10k-ct/patches/206-ath10k-ct-silence-noisy-log-caused-by-flushing-queue.patch b/package/kernel/ath10k-ct/patches/206-ath10k-ct-silence-noisy-log-caused-by-flushing-queue.patch index 64e0bc839a7..2834d83a2d0 100644 --- a/package/kernel/ath10k-ct/patches/206-ath10k-ct-silence-noisy-log-caused-by-flushing-queue.patch +++ b/package/kernel/ath10k-ct/patches/206-ath10k-ct-silence-noisy-log-caused-by-flushing-queue.patch @@ -7,12 +7,12 @@ frames from the hardware queue. Only developers need to care about it. Signed-off-by: Shiji Yang --- - ath10k-6.18/mac.c | 8 ++++---- + ath10k-7.2/mac.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) ---- a/ath10k-6.18/mac.c -+++ b/ath10k-6.18/mac.c -@@ -9112,12 +9112,12 @@ static void ath10k_flush(struct ieee8021 +--- a/ath10k-7.2/mac.c ++++ b/ath10k-7.2/mac.c +@@ -9111,12 +9111,12 @@ static void ath10k_flush(struct ieee8021 if (vif) { arvif = (void *)vif->drv_priv; vid = arvif->vdev_id; diff --git a/package/kernel/ath10k-ct/patches/300-fix-fortify-checking-error.patch b/package/kernel/ath10k-ct/patches/300-fix-fortify-checking-error.patch index 41c08262655..505156f099e 100644 --- a/package/kernel/ath10k-ct/patches/300-fix-fortify-checking-error.patch +++ b/package/kernel/ath10k-ct/patches/300-fix-fortify-checking-error.patch @@ -1,10 +1,10 @@ ---- a/ath10k-6.18/wmi.h -+++ b/ath10k-6.18/wmi.h +--- a/ath10k-7.2/wmi.h ++++ b/ath10k-7.2/wmi.h @@ -6310,7 +6310,7 @@ struct qca9880_set_ctl_table_cmd { __le32 ctl_len; /* in bytes. This may be ignored in firmware, * make sure ctl_info data is sizeof(qca9880_power_ctl) */ /** ctl array (len adjusted to number of words) */ -- __le32 ctl_info[1]; /* data would be the qca9880_power_ctl table above */ +- __le32 *ctl_info; /* data would be the qca9880_power_ctl table above */ + __le32 ctl_info[]; /* data would be the qca9880_power_ctl table above */ }; diff --git a/package/kernel/ath10k-ct/patches/960-0010-ath10k-limit-htt-rx-ring-size.patch b/package/kernel/ath10k-ct/patches/960-0010-ath10k-limit-htt-rx-ring-size.patch index cbf790894c7..bba45a5c0c1 100644 --- a/package/kernel/ath10k-ct/patches/960-0010-ath10k-limit-htt-rx-ring-size.patch +++ b/package/kernel/ath10k-ct/patches/960-0010-ath10k-limit-htt-rx-ring-size.patch @@ -1,5 +1,5 @@ ---- a/ath10k-6.18/htt.h -+++ b/ath10k-6.18/htt.h +--- a/ath10k-7.2/htt.h ++++ b/ath10k-7.2/htt.h @@ -238,7 +238,11 @@ enum htt_rx_ring_flags { }; diff --git a/package/kernel/ath10k-ct/patches/960-0011-ath10k-limit-pci-buffer-size.patch b/package/kernel/ath10k-ct/patches/960-0011-ath10k-limit-pci-buffer-size.patch index 6746fb5ad67..fade5ad87ce 100644 --- a/package/kernel/ath10k-ct/patches/960-0011-ath10k-limit-pci-buffer-size.patch +++ b/package/kernel/ath10k-ct/patches/960-0011-ath10k-limit-pci-buffer-size.patch @@ -1,6 +1,6 @@ ---- a/ath10k-6.18/pci.c -+++ b/ath10k-6.18/pci.c -@@ -133,7 +133,11 @@ static const struct ce_attr pci_host_ce_ +--- a/ath10k-7.2/pci.c ++++ b/ath10k-7.2/pci.c +@@ -132,7 +132,11 @@ static const struct ce_attr pci_host_ce_ .flags = CE_ATTR_FLAGS, .src_nentries = 0, .src_sz_max = 2048, @@ -12,7 +12,7 @@ .recv_cb = ath10k_pci_htt_htc_rx_cb, }, -@@ -142,7 +146,11 @@ static const struct ce_attr pci_host_ce_ +@@ -141,7 +145,11 @@ static const struct ce_attr pci_host_ce_ .flags = CE_ATTR_FLAGS, .src_nentries = 0, .src_sz_max = 2048, @@ -24,7 +24,7 @@ .recv_cb = ath10k_pci_htc_rx_cb, }, -@@ -169,7 +177,11 @@ static const struct ce_attr pci_host_ce_ +@@ -168,7 +176,11 @@ static const struct ce_attr pci_host_ce_ .flags = CE_ATTR_FLAGS, .src_nentries = 0, .src_sz_max = 512, @@ -36,7 +36,7 @@ .recv_cb = ath10k_pci_htt_rx_cb, }, -@@ -194,7 +206,11 @@ static const struct ce_attr pci_host_ce_ +@@ -193,7 +205,11 @@ static const struct ce_attr pci_host_ce_ .flags = CE_ATTR_FLAGS, .src_nentries = 0, .src_sz_max = 2048, diff --git a/package/kernel/ath10k-ct/patches/988-ath10k-always-use-mac80211-loss-detection.patch b/package/kernel/ath10k-ct/patches/988-ath10k-always-use-mac80211-loss-detection.patch index cd1d05e8504..810ca166db9 100644 --- a/package/kernel/ath10k-ct/patches/988-ath10k-always-use-mac80211-loss-detection.patch +++ b/package/kernel/ath10k-ct/patches/988-ath10k-always-use-mac80211-loss-detection.patch @@ -13,12 +13,12 @@ own loss detection mechanism. Signed-off-by: David Bauer --- - ath10k-6.18/mac.c | 1 - + ath10k-7.2/mac.c | 1 - 1 file changed, 1 deletion(-) ---- a/ath10k-6.18/mac.c -+++ b/ath10k-6.18/mac.c -@@ -11375,7 +11375,6 @@ int ath10k_mac_register(struct ath10k *a +--- a/ath10k-7.2/mac.c ++++ b/ath10k-7.2/mac.c +@@ -11373,7 +11373,6 @@ int ath10k_mac_register(struct ath10k *a ieee80211_hw_set(ar->hw, CHANCTX_STA_CSA); ieee80211_hw_set(ar->hw, QUEUE_CONTROL); ieee80211_hw_set(ar->hw, SUPPORTS_TX_FRAG); -- 2.47.3