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 <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/24529
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This commit is contained in:
Shiji Yang 2026-08-02 08:56:26 +08:00 committed by Hauke Mehrtens
parent 0e371752ae
commit 70b3f992b8
10 changed files with 60 additions and 120 deletions

View file

@ -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 <greearb@candelatech.com>
PKG_BUILD_PARALLEL:=1

View 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);

View file

@ -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;

View file

@ -9,14 +9,14 @@ traffic.
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;
@ -27,20 +27,19 @@ Signed-off-by: Mathias Kresin <dev@kresin.me>
/* 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

View file

@ -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) {

View 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>
---
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;

View 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) */
- __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 */
};

View 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 {
};

View 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,
@ -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,

View file

@ -13,12 +13,12 @@ own loss detection mechanism.
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(-)
--- 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);