]> git.ipfire.org Git - thirdparty/openwrt.git/commitdiff
ath10k-ct: update to version 7.2 main master 24529/head
authorShiji Yang <yangshiji66@outlook.com>
Sun, 2 Aug 2026 00:56:26 +0000 (08:56 +0800)
committerHauke Mehrtens <hauke@hauke-m.de>
Tue, 4 Aug 2026 00:37:19 +0000 (02:37 +0200)
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 <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/24529
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
package/kernel/ath10k-ct/Makefile
package/kernel/ath10k-ct/patches/002-ath10k-6.10-remove-unsupported-feature.patch
package/kernel/ath10k-ct/patches/005-ath10k-ct-fix-missing-prototypes-warnings-on-6.12-ke.patch [deleted file]
package/kernel/ath10k-ct/patches/202-ath10k-use-tpt-trigger-by-default.patch
package/kernel/ath10k-ct/patches/204-ath10k-correct-driver-version-number.patch [new file with mode: 0644]
package/kernel/ath10k-ct/patches/206-ath10k-ct-silence-noisy-log-caused-by-flushing-queue.patch
package/kernel/ath10k-ct/patches/300-fix-fortify-checking-error.patch
package/kernel/ath10k-ct/patches/960-0010-ath10k-limit-htt-rx-ring-size.patch
package/kernel/ath10k-ct/patches/960-0011-ath10k-limit-pci-buffer-size.patch
package/kernel/ath10k-ct/patches/988-ath10k-always-use-mac80211-loss-detection.patch

index 48514a6b40acaadfd1a3471df674882a4939b5cc..f5211fb7c686c5fe99138093b8c5e6b73007f18e 100644 (file)
@@ -8,14 +8,14 @@ PKG_LICENSE_FILES:=
 
 PKG_SOURCE_URL:=https://github.com/greearb/ath10k-ct.git
 PKG_SOURCE_PROTO:=git
 
 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.
 # 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 <greearb@candelatech.com>
 PKG_BUILD_PARALLEL:=1
 
 PKG_MAINTAINER:=Ben Greear <greearb@candelatech.com>
 PKG_BUILD_PARALLEL:=1
index 1fb99589982beb551ae4098b190e4c5014d5cc8a..d981ccb39c0c24c8c6238535e850a25f77fff49d 100644 (file)
@@ -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);
        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 (file)
index 800b17d..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-From: Shiji Yang <yangshiji66@outlook.com>
-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 <yangshiji66@outlook.com>
----
- 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;
index cfbc74b32a14d82041a058217188270195d64a4e..70c831ecef27b0f67e95ebb44e57000b36e05d1b 100644 (file)
@@ -9,14 +9,14 @@ traffic.
 
 Signed-off-by: Mathias Kresin <dev@kresin.me>
 ---
 
 Signed-off-by: Mathias Kresin <dev@kresin.me>
 ---
- 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;
  
        u8 csi_data[4096];
        u16 csi_data_len;
  
@@ -27,20 +27,19 @@ Signed-off-by: Mathias Kresin <dev@kresin.me>
        /* must be last */
        u8 drv_priv[] __aligned(sizeof(void *));
  };
        /* 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.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)
 +      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
        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 (file)
index 0000000..859e57b
--- /dev/null
@@ -0,0 +1,20 @@
+From: Shiji Yang <yangshiji66@outlook.com>
+Date: Thu, 26 Mar 2026 22:44:28 +0800
+Subject: [PATCH] ath10k: correct driver version number
+
+Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
+---
+ 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) {
index 64e0bc839a7fd3ae5c9ae3c941e00d5557e82919..2834d83a2d05eab2a2fe4369f8eb274f0472c646 100644 (file)
@@ -7,12 +7,12 @@ frames from the hardware queue. Only developers need to care about it.
 
 Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
 ---
 
 Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
 ---
- ath10k-6.18/mac.c | 8 ++++----
+ ath10k-7.2/mac.c | 8 ++++----
  1 file changed, 4 insertions(+), 4 deletions(-)
 
  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;
          if (vif) {
                  arvif = (void *)vif->drv_priv;
                  vid = arvif->vdev_id;
index 41c082626557d01ace6f9e3deaab25b72df29061..505156f099e7781ca29f2bc7a62607dce4904f04 100644 (file)
@@ -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) */
 @@ -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 */
  };
  
 +      __le32 ctl_info[]; /* data would be the qca9880_power_ctl table above */
  };
  
index cbf790894c7c9b0ee844149a34fcf912ac341b2e..bba45a5c0c1058b231f6849f32eb8cae22c7135e 100644 (file)
@@ -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 {
  };
  
 @@ -238,7 +238,11 @@ enum htt_rx_ring_flags {
  };
  
index 6746fb5ad67f5a55a35957eee5d81ab3b84be1eb..fade5ad87cebeda56f40312cd94ffff5f0df3f27 100644 (file)
@@ -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,
                .flags = CE_ATTR_FLAGS,
                .src_nentries = 0,
                .src_sz_max = 2048,
@@ -12,7 +12,7 @@
                .recv_cb = ath10k_pci_htt_htc_rx_cb,
        },
  
                .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,
                .flags = CE_ATTR_FLAGS,
                .src_nentries = 0,
                .src_sz_max = 2048,
@@ -24,7 +24,7 @@
                .recv_cb = ath10k_pci_htc_rx_cb,
        },
  
                .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,
                .flags = CE_ATTR_FLAGS,
                .src_nentries = 0,
                .src_sz_max = 512,
@@ -36,7 +36,7 @@
                .recv_cb = ath10k_pci_htt_rx_cb,
        },
  
                .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,
                .flags = CE_ATTR_FLAGS,
                .src_nentries = 0,
                .src_sz_max = 2048,
index cd1d05e8504ddf6168864438990217edd47e97c5..810ca166db9e8cbabaffcfb768a3ab350b4671aa 100644 (file)
@@ -13,12 +13,12 @@ own loss detection mechanism.
 
 Signed-off-by: David Bauer <mail@david-bauer.net>
 ---
 
 Signed-off-by: David Bauer <mail@david-bauer.net>
 ---
- ath10k-6.18/mac.c | 1 -
+ ath10k-7.2/mac.c | 1 -
  1 file changed, 1 deletion(-)
 
  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);
        ieee80211_hw_set(ar->hw, CHANCTX_STA_CSA);
        ieee80211_hw_set(ar->hw, QUEUE_CONTROL);
        ieee80211_hw_set(ar->hw, SUPPORTS_TX_FRAG);