From 553a3ac221e92c6fad9ffa9229b18a4e77e42c23 Mon Sep 17 00:00:00 2001 From: Ansuel Smith Date: Thu, 18 Nov 2021 03:02:21 +0100 Subject: [PATCH] ath10k-ct: use 5.15 version We switched to mac80211 5.15 backport version. Also switch ath10k-ct to 5.15 and drop the mac address patch that got merged upstream. Compile and tested on ipq806x Netgear R7800. Also update the ath10k-ct to latest version to fix a typo for the new version in the kernel log. Signed-off-by: Ansuel Smith --- package/kernel/ath10k-ct/Makefile | 10 +- ...rolling-support-for-various-chipsets.patch | 104 +++++++++--------- ...02-ath10k-use-tpt-trigger-by-default.patch | 22 ++-- ...h10k-Try-to-get-mac-address-from-dts.patch | 37 ------- ...0-0010-ath10k-limit-htt-rx-ring-size.patch | 4 +- ...60-0011-ath10k-limit-pci-buffer-size.patch | 4 +- 6 files changed, 72 insertions(+), 109 deletions(-) delete mode 100644 package/kernel/ath10k-ct/patches/203-ath10k-Try-to-get-mac-address-from-dts.patch diff --git a/package/kernel/ath10k-ct/Makefile b/package/kernel/ath10k-ct/Makefile index 25ea3376f0..ea7705b1f9 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:=2021-09-22 -PKG_SOURCE_VERSION:=e6a7d5b5b834737cd12e357b5efdc2e42d923bf6 -PKG_MIRROR_HASH:=62a1b97089d3561730656ef73beb3cd77231ec636645115cc1bbb3c6c84a6fe3 +PKG_SOURCE_DATE:=2021-11-21 +PKG_SOURCE_VERSION:=e8e166fee23226e5d495afbdb7ed681d747d115b +PKG_MIRROR_HASH:=771193292242fd8c198e9e379aa90882b1f5a144fbd77e09fbc97aca8ffe84e1 -# Build the 5.10 ath10k-ct driver version. +# Build the 5.15 ath10k-ct driver version. # Probably this should match as closely as # possible to whatever mac80211 backports version is being used. -CT_KVER="-5.10" +CT_KVER="-5.15" PKG_MAINTAINER:=Ben Greear PKG_BUILD_PARALLEL:=1 diff --git a/package/kernel/ath10k-ct/patches/201-ath10k-add-LED-and-GPIO-controlling-support-for-various-chipsets.patch b/package/kernel/ath10k-ct/patches/201-ath10k-add-LED-and-GPIO-controlling-support-for-various-chipsets.patch index 691b504c0f..33156536ca 100644 --- a/package/kernel/ath10k-ct/patches/201-ath10k-add-LED-and-GPIO-controlling-support-for-various-chipsets.patch +++ b/package/kernel/ath10k-ct/patches/201-ath10k-add-LED-and-GPIO-controlling-support-for-various-chipsets.patch @@ -66,25 +66,25 @@ v13: * cleanup includes - ath10k-5.10/Kconfig | 10 +++ - ath10k-5.10/Makefile | 1 + - ath10k-5.10/core.c | 22 +++++++ - ath10k-5.10/core.h | 9 ++- - ath10k-5.10/hw.h | 1 + - ath10k-5.10/leds.c | 103 ++++++++++++++++++++++++++++++ - ath10k-5.10/leds.h | 45 +++++++++++++ - ath10k-5.10/mac.c | 1 + - ath10k-5.10/wmi-ops.h | 32 ++++++++++ - ath10k-5.10/wmi-tlv.c | 2 + - ath10k-5.10/wmi.c | 54 ++++++++++++++++ - ath10k-5.10/wmi.h | 35 ++++++++++ + ath10k-5.15/Kconfig | 10 +++ + ath10k-5.15/Makefile | 1 + + ath10k-5.15/core.c | 22 +++++++ + ath10k-5.15/core.h | 9 ++- + ath10k-5.15/hw.h | 1 + + ath10k-5.15/leds.c | 103 ++++++++++++++++++++++++++++++ + ath10k-5.15/leds.h | 45 +++++++++++++ + ath10k-5.15/mac.c | 1 + + ath10k-5.15/wmi-ops.h | 32 ++++++++++ + ath10k-5.15/wmi-tlv.c | 2 + + ath10k-5.15/wmi.c | 54 ++++++++++++++++ + ath10k-5.15/wmi.h | 35 ++++++++++ 12 files changed, 314 insertions(+), 1 deletion(-) - create mode 100644 ath10k-5.10/leds.c - create mode 100644 ath10k-5.10/leds.h + create mode 100644 ath10k-5.15/leds.c + create mode 100644 ath10k-5.15/leds.h ---- a/ath10k-5.10/Kconfig -+++ b/ath10k-5.10/Kconfig -@@ -65,6 +65,16 @@ config ATH10K_DEBUGFS +--- a/ath10k-5.15/Kconfig ++++ b/ath10k-5.15/Kconfig +@@ -66,6 +66,16 @@ config ATH10K_DEBUGFS If unsure, say Y to make it easier to debug problems. @@ -101,8 +101,8 @@ v13: config ATH10K_SPECTRAL bool "Atheros ath10k spectral scan support" depends on ATH10K_DEBUGFS ---- a/ath10k-5.10/Makefile -+++ b/ath10k-5.10/Makefile +--- a/ath10k-5.15/Makefile ++++ b/ath10k-5.15/Makefile @@ -20,6 +20,7 @@ ath10k_core-$(CONFIG_ATH10K_SPECTRAL) += ath10k_core-$(CONFIG_NL80211_TESTMODE) += testmode.o ath10k_core-$(CONFIG_ATH10K_TRACING) += trace.o @@ -111,9 +111,9 @@ v13: ath10k_core-$(CONFIG_MAC80211_DEBUGFS) += debugfs_sta.o ath10k_core-$(CONFIG_PM) += wow.o ath10k_core-$(CONFIG_ATH10K_CE) += ce.o ---- a/ath10k-5.10/core.c -+++ b/ath10k-5.10/core.c -@@ -26,6 +26,7 @@ +--- a/ath10k-5.15/core.c ++++ b/ath10k-5.15/core.c +@@ -27,6 +27,7 @@ #include "testmode.h" #include "wmi-ops.h" #include "coredump.h" @@ -121,7 +121,7 @@ v13: /* Disable ath10k-ct DBGLOG output by default */ unsigned int ath10k_debug_mask = ATH10K_DBG_NO_DBGLOG; -@@ -68,6 +69,7 @@ static const struct ath10k_hw_params ath +@@ -69,6 +70,7 @@ static const struct ath10k_hw_params ath .dev_id = QCA988X_2_0_DEVICE_ID, .bus = ATH10K_BUS_PCI, .name = "qca988x hw2.0", @@ -129,7 +129,7 @@ v13: .patch_load_addr = QCA988X_HW_2_0_PATCH_LOAD_ADDR, .uart_pin = 7, .cc_wraparound_type = ATH10K_HW_CC_WRAP_SHIFTED_ALL, -@@ -137,6 +139,7 @@ static const struct ath10k_hw_params ath +@@ -140,6 +142,7 @@ static const struct ath10k_hw_params ath .dev_id = QCA9887_1_0_DEVICE_ID, .bus = ATH10K_BUS_PCI, .name = "qca9887 hw1.0", @@ -137,7 +137,7 @@ v13: .patch_load_addr = QCA9887_HW_1_0_PATCH_LOAD_ADDR, .uart_pin = 7, .cc_wraparound_type = ATH10K_HW_CC_WRAP_SHIFTED_ALL, -@@ -342,6 +345,7 @@ static const struct ath10k_hw_params ath +@@ -351,6 +354,7 @@ static const struct ath10k_hw_params ath .dev_id = QCA99X0_2_0_DEVICE_ID, .bus = ATH10K_BUS_PCI, .name = "qca99x0 hw2.0", @@ -145,7 +145,7 @@ v13: .patch_load_addr = QCA99X0_HW_2_0_PATCH_LOAD_ADDR, .uart_pin = 7, .otp_exe_param = 0x00000700, -@@ -382,6 +386,7 @@ static const struct ath10k_hw_params ath +@@ -392,6 +396,7 @@ static const struct ath10k_hw_params ath .dev_id = QCA9984_1_0_DEVICE_ID, .bus = ATH10K_BUS_PCI, .name = "qca9984/qca9994 hw1.0", @@ -153,7 +153,7 @@ v13: .patch_load_addr = QCA9984_HW_1_0_PATCH_LOAD_ADDR, .uart_pin = 7, .cc_wraparound_type = ATH10K_HW_CC_WRAP_SHIFTED_EACH, -@@ -429,6 +434,7 @@ static const struct ath10k_hw_params ath +@@ -440,6 +445,7 @@ static const struct ath10k_hw_params ath .dev_id = QCA9888_2_0_DEVICE_ID, .bus = ATH10K_BUS_PCI, .name = "qca9888 hw2.0", @@ -161,7 +161,7 @@ v13: .patch_load_addr = QCA9888_HW_2_0_PATCH_LOAD_ADDR, .uart_pin = 7, .cc_wraparound_type = ATH10K_HW_CC_WRAP_SHIFTED_EACH, -@@ -3705,6 +3711,10 @@ int ath10k_core_start(struct ath10k *ar, +@@ -3882,6 +3888,10 @@ int ath10k_core_start(struct ath10k *ar, ath10k_wmi_check_apply_board_power_ctl_table(ar); } @@ -172,7 +172,7 @@ v13: return 0; err_hif_stop: -@@ -3963,9 +3973,18 @@ static void ath10k_core_register_work(st +@@ -4143,9 +4153,18 @@ static void ath10k_core_register_work(st goto err_spectral_destroy; } @@ -191,7 +191,7 @@ v13: err_spectral_destroy: ath10k_spectral_destroy(ar); err_debug_destroy: -@@ -4025,6 +4044,8 @@ void ath10k_core_unregister(struct ath10 +@@ -4205,6 +4224,8 @@ void ath10k_core_unregister(struct ath10 if (!test_bit(ATH10K_FLAG_CORE_REGISTERED, &ar->dev_flags)) return; @@ -200,8 +200,8 @@ v13: ath10k_thermal_unregister(ar); /* Stop spectral before unregistering from mac80211 to remove the * relayfs debugfs file cleanly. Otherwise the parent debugfs tree ---- a/ath10k-5.10/core.h -+++ b/ath10k-5.10/core.h +--- a/ath10k-5.15/core.h ++++ b/ath10k-5.15/core.h @@ -14,6 +14,7 @@ #include #include @@ -210,7 +210,7 @@ v13: #include "htt.h" #include "htc.h" -@@ -1557,6 +1558,13 @@ struct ath10k { +@@ -1571,6 +1572,13 @@ struct ath10k { } testmode; struct { @@ -224,8 +224,8 @@ v13: /* protected by data_lock */ u32 rx_crc_err_drop; u32 fw_crash_counter; ---- a/ath10k-5.10/hw.h -+++ b/ath10k-5.10/hw.h +--- a/ath10k-5.15/hw.h ++++ b/ath10k-5.15/hw.h @@ -521,6 +521,7 @@ struct ath10k_hw_params { const char *name; u32 patch_load_addr; @@ -235,7 +235,7 @@ v13: /* Type of hw cycle counter wraparound logic, for more info --- /dev/null -+++ b/ath10k-5.10/leds.c ++++ b/ath10k-5.15/leds.c @@ -0,0 +1,103 @@ +/* + * Copyright (c) 2005-2011 Atheros Communications Inc. @@ -341,7 +341,7 @@ v13: +} + --- /dev/null -+++ b/ath10k-5.10/leds.h ++++ b/ath10k-5.15/leds.h @@ -0,0 +1,41 @@ +/* + * Copyright (c) 2018, The Linux Foundation. All rights reserved. @@ -384,8 +384,8 @@ v13: + +#endif +#endif /* _LEDS_H_ */ ---- a/ath10k-5.10/mac.c -+++ b/ath10k-5.10/mac.c +--- a/ath10k-5.15/mac.c ++++ b/ath10k-5.15/mac.c @@ -25,6 +25,7 @@ #include "wmi-tlv.h" #include "wmi-ops.h" @@ -394,8 +394,8 @@ v13: /*********/ /* Rates */ ---- a/ath10k-5.10/wmi-ops.h -+++ b/ath10k-5.10/wmi-ops.h +--- a/ath10k-5.15/wmi-ops.h ++++ b/ath10k-5.15/wmi-ops.h @@ -228,7 +228,10 @@ struct wmi_ops { const struct wmi_bb_timing_cfg_arg *arg); struct sk_buff *(*gen_per_peer_per_tid_cfg)(struct ath10k *ar, @@ -443,8 +443,8 @@ v13: static inline int ath10k_wmi_dbglog_cfg(struct ath10k *ar, u64 module_enable, u32 log_level) { ---- a/ath10k-5.10/wmi-tlv.c -+++ b/ath10k-5.10/wmi-tlv.c +--- a/ath10k-5.15/wmi-tlv.c ++++ b/ath10k-5.15/wmi-tlv.c @@ -4594,6 +4594,8 @@ static const struct wmi_ops wmi_tlv_ops .gen_echo = ath10k_wmi_tlv_op_gen_echo, .gen_vdev_spectral_conf = ath10k_wmi_tlv_op_gen_vdev_spectral_conf, @@ -454,8 +454,8 @@ v13: }; static const struct wmi_peer_flags_map wmi_tlv_peer_flags_map = { ---- a/ath10k-5.10/wmi.c -+++ b/ath10k-5.10/wmi.c +--- a/ath10k-5.15/wmi.c ++++ b/ath10k-5.15/wmi.c @@ -8409,6 +8409,49 @@ ath10k_wmi_op_gen_peer_set_param(struct return skb; } @@ -506,7 +506,7 @@ v13: static struct sk_buff * ath10k_wmi_op_gen_set_psmode(struct ath10k *ar, u32 vdev_id, enum wmi_sta_ps_mode psmode) -@@ -10238,6 +10281,9 @@ static const struct wmi_ops wmi_ops = { +@@ -10240,6 +10283,9 @@ static const struct wmi_ops wmi_ops = { .fw_stats_fill = ath10k_wmi_main_op_fw_stats_fill, .get_vdev_subtype = ath10k_wmi_op_get_vdev_subtype, .gen_echo = ath10k_wmi_op_gen_echo, @@ -516,7 +516,7 @@ v13: /* .gen_bcn_tmpl not implemented */ /* .gen_prb_tmpl not implemented */ /* .gen_p2p_go_bcn_ie not implemented */ -@@ -10308,6 +10354,8 @@ static const struct wmi_ops wmi_10_1_ops +@@ -10310,6 +10356,8 @@ static const struct wmi_ops wmi_10_1_ops .fw_stats_fill = ath10k_wmi_10x_op_fw_stats_fill, .get_vdev_subtype = ath10k_wmi_op_get_vdev_subtype, .gen_echo = ath10k_wmi_op_gen_echo, @@ -525,7 +525,7 @@ v13: /* .gen_bcn_tmpl not implemented */ /* .gen_prb_tmpl not implemented */ /* .gen_p2p_go_bcn_ie not implemented */ -@@ -10387,6 +10435,8 @@ static const struct wmi_ops wmi_10_2_ops +@@ -10389,6 +10437,8 @@ static const struct wmi_ops wmi_10_2_ops .gen_delba_send = ath10k_wmi_op_gen_delba_send, .fw_stats_fill = ath10k_wmi_10x_op_fw_stats_fill, .get_vdev_subtype = ath10k_wmi_op_get_vdev_subtype, @@ -534,7 +534,7 @@ v13: /* .gen_pdev_enable_adaptive_cca not implemented */ }; -@@ -10458,6 +10508,8 @@ static const struct wmi_ops wmi_10_2_4_o +@@ -10460,6 +10510,8 @@ static const struct wmi_ops wmi_10_2_4_o ath10k_wmi_op_gen_pdev_enable_adaptive_cca, .get_vdev_subtype = ath10k_wmi_10_2_4_op_get_vdev_subtype, .gen_bb_timing = ath10k_wmi_10_2_4_op_gen_bb_timing, @@ -543,7 +543,7 @@ v13: /* .gen_bcn_tmpl not implemented */ /* .gen_prb_tmpl not implemented */ /* .gen_p2p_go_bcn_ie not implemented */ -@@ -10540,6 +10592,8 @@ static const struct wmi_ops wmi_10_4_ops +@@ -10542,6 +10594,8 @@ static const struct wmi_ops wmi_10_4_ops .gen_pdev_bss_chan_info_req = ath10k_wmi_10_2_op_gen_pdev_bss_chan_info, .gen_echo = ath10k_wmi_op_gen_echo, .gen_pdev_get_tpc_config = ath10k_wmi_10_2_4_op_gen_pdev_get_tpc_config, @@ -552,8 +552,8 @@ v13: }; int ath10k_wmi_attach(struct ath10k *ar) ---- a/ath10k-5.10/wmi.h -+++ b/ath10k-5.10/wmi.h +--- a/ath10k-5.15/wmi.h ++++ b/ath10k-5.15/wmi.h @@ -3133,6 +3133,41 @@ enum wmi_10_4_feature_mask { }; 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 168c6ab462..29a6fbc09e 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-5.10/core.h | 4 ++++ - ath10k-5.10/leds.c | 4 +--- - ath10k-5.10/mac.c | 2 +- + ath10k-5.15/core.h | 4 ++++ + ath10k-5.15/leds.c | 4 +--- + ath10k-5.15/mac.c | 2 +- 3 files changed, 6 insertions(+), 4 deletions(-) ---- a/ath10k-5.10/core.h -+++ b/ath10k-5.10/core.h -@@ -1665,6 +1665,10 @@ struct ath10k { +--- a/ath10k-5.15/core.h ++++ b/ath10k-5.15/core.h +@@ -1686,6 +1686,10 @@ struct ath10k { u8 csi_data[4096]; u16 csi_data_len; @@ -27,8 +27,8 @@ Signed-off-by: Mathias Kresin /* must be last */ u8 drv_priv[] __aligned(sizeof(void *)); }; ---- a/ath10k-5.10/leds.c -+++ b/ath10k-5.10/leds.c +--- a/ath10k-5.15/leds.c ++++ b/ath10k-5.15/leds.c @@ -81,9 +81,7 @@ int ath10k_leds_register(struct ath10k * ar->leds.cdev.name = ar->leds.label; @@ -40,9 +40,9 @@ Signed-off-by: Mathias Kresin ret = led_classdev_register(wiphy_dev(ar->hw->wiphy), &ar->leds.cdev); if (ret) ---- a/ath10k-5.10/mac.c -+++ b/ath10k-5.10/mac.c -@@ -11405,7 +11405,7 @@ int ath10k_mac_register(struct ath10k *a +--- a/ath10k-5.15/mac.c ++++ b/ath10k-5.15/mac.c +@@ -11519,7 +11519,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/203-ath10k-Try-to-get-mac-address-from-dts.patch b/package/kernel/ath10k-ct/patches/203-ath10k-Try-to-get-mac-address-from-dts.patch deleted file mode 100644 index 8fcdaf8c0f..0000000000 --- a/package/kernel/ath10k-ct/patches/203-ath10k-Try-to-get-mac-address-from-dts.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 22fb5991a44c78ff18ec0082dc90c809356eb893 Mon Sep 17 00:00:00 2001 -From: Ansuel Smith -Date: Sun, 27 Sep 2020 19:23:35 +0200 -Subject: [PATCH 1/2] ath10k: Try to get mac-address from dts - -Most of embedded device that have the ath10k wifi integrated store the -mac-address in nvmem partitions. Try to fetch the mac-address using the -standard 'of_get_mac_address' than in all the check also try to fetch the -address using the nvmem api searching for a defined 'mac-address' cell. -Mac-address defined in the dts have priority than any other address found. - -Tested-on: QCA9984 hw1.0 PCI 10.4 - -Signed-off-by: Ansuel Smith ---- - ath10k-5.10/core.c | 10 ++++++++++ - 1 file changed, 10 insertions(+) - ---- a/ath10k-5.10/core.c -+++ b/ath10k-5.10/core.c -@@ -8,6 +8,7 @@ - #include - #include - #include -+#include - #include - #include - #include -@@ -3881,6 +3882,8 @@ static int ath10k_core_probe_fw(struct a - - device_get_mac_address(ar->dev, ar->mac_addr, sizeof(ar->mac_addr)); - -+ of_get_mac_address(ar->dev->of_node, ar->mac_addr); -+ - ret = ath10k_core_init_firmware_features(ar); - if (ret) { - ath10k_err(ar, "fatal problem with firmware features: %d\n", 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 af9c3d455b..d50611b970 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-5.10/htt.h -+++ b/ath10k-5.10/htt.h +--- a/ath10k-5.15/htt.h ++++ b/ath10k-5.15/htt.h @@ -237,7 +237,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 1fc2566f9c..b8c6c35326 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,5 +1,5 @@ ---- a/ath10k-5.10/pci.c -+++ b/ath10k-5.10/pci.c +--- a/ath10k-5.15/pci.c ++++ b/ath10k-5.15/pci.c @@ -131,7 +131,11 @@ static const struct ce_attr pci_host_ce_ .flags = CE_ATTR_FLAGS, .src_nentries = 0,