diff options
Diffstat (limited to 'package/kernel/mac80211/patches/ath')
12 files changed, 13 insertions, 294 deletions
diff --git a/package/kernel/mac80211/patches/ath/080-ath10k_thermal_config.patch b/package/kernel/mac80211/patches/ath/080-ath10k_thermal_config.patch index 231a7cb393..3bb046e843 100644 --- a/package/kernel/mac80211/patches/ath/080-ath10k_thermal_config.patch +++ b/package/kernel/mac80211/patches/ath/080-ath10k_thermal_config.patch @@ -37,7 +37,7 @@ void ath10k_thermal_event_temperature(struct ath10k *ar, int temperature); --- a/local-symbols +++ b/local-symbols -@@ -141,6 +141,7 @@ ATH10K_SNOC= +@@ -142,6 +142,7 @@ ATH10K_SNOC= ATH10K_DEBUG= ATH10K_DEBUGFS= ATH10K_SPECTRAL= diff --git a/package/kernel/mac80211/patches/ath/431-add_platform_eeprom_support_to_ath5k.patch b/package/kernel/mac80211/patches/ath/431-add_platform_eeprom_support_to_ath5k.patch index cdc9315cd6..136be19894 100644 --- a/package/kernel/mac80211/patches/ath/431-add_platform_eeprom_support_to_ath5k.patch +++ b/package/kernel/mac80211/patches/ath/431-add_platform_eeprom_support_to_ath5k.patch @@ -1,14 +1,14 @@ --- a/drivers/net/wireless/ath/ath5k/pci.c +++ b/drivers/net/wireless/ath/ath5k/pci.c -@@ -21,6 +21,7 @@ - #include <linux/pci-aspm.h> +@@ -20,6 +20,7 @@ + #include <linux/pci.h> #include <linux/etherdevice.h> #include <linux/module.h> +#include <linux/ath5k_platform.h> #include "../ath.h" #include "ath5k.h" #include "debug.h" -@@ -72,7 +73,7 @@ static void ath5k_pci_read_cachesize(str +@@ -71,7 +72,7 @@ static void ath5k_pci_read_cachesize(str } /* @@ -17,7 +17,7 @@ */ static bool ath5k_pci_eeprom_read(struct ath_common *common, u32 offset, u16 *data) -@@ -80,6 +81,19 @@ ath5k_pci_eeprom_read(struct ath_common +@@ -79,6 +80,19 @@ ath5k_pci_eeprom_read(struct ath_common struct ath5k_hw *ah = (struct ath5k_hw *) common->ah; u32 status, timeout; @@ -37,7 +37,7 @@ /* * Initialize EEPROM access */ -@@ -123,6 +137,16 @@ static int ath5k_pci_eeprom_read_mac(str +@@ -122,6 +136,16 @@ static int ath5k_pci_eeprom_read_mac(str u16 data; int octet; diff --git a/package/kernel/mac80211/patches/ath/432-ath5k_add_pciids.patch b/package/kernel/mac80211/patches/ath/432-ath5k_add_pciids.patch index d82f8001d4..bd0e6707a5 100644 --- a/package/kernel/mac80211/patches/ath/432-ath5k_add_pciids.patch +++ b/package/kernel/mac80211/patches/ath/432-ath5k_add_pciids.patch @@ -1,6 +1,6 @@ --- a/drivers/net/wireless/ath/ath5k/pci.c +++ b/drivers/net/wireless/ath/ath5k/pci.c -@@ -48,6 +48,8 @@ static const struct pci_device_id ath5k_ +@@ -47,6 +47,8 @@ static const struct pci_device_id ath5k_ { PCI_VDEVICE(ATHEROS, 0x001b) }, /* 5413 Eagle */ { PCI_VDEVICE(ATHEROS, 0x001c) }, /* PCI-E cards */ { PCI_VDEVICE(ATHEROS, 0x001d) }, /* 2417 Nala */ diff --git a/package/kernel/mac80211/patches/ath/551-ath9k_ubnt_uap_plus_hsr.patch b/package/kernel/mac80211/patches/ath/551-ath9k_ubnt_uap_plus_hsr.patch index 9c91767587..4454baeef1 100644 --- a/package/kernel/mac80211/patches/ath/551-ath9k_ubnt_uap_plus_hsr.patch +++ b/package/kernel/mac80211/patches/ath/551-ath9k_ubnt_uap_plus_hsr.patch @@ -391,9 +391,9 @@ ATH9K_CHANNEL_CONTEXT= ATH9K_PCOEM= +ATH9K_UBNTHSR= + ATH9K_PCI_NO_EEPROM= ATH9K_HTC= ATH9K_HTC_DEBUGFS= - ATH9K_HWRNG= --- a/drivers/net/wireless/ath/ath9k/Kconfig +++ b/drivers/net/wireless/ath/ath9k/Kconfig @@ -60,6 +60,19 @@ config ATH9K_AHB diff --git a/package/kernel/mac80211/patches/ath/558-ath9k-dynack-introduce-ath_dynack_set_timeout-routin.patch b/package/kernel/mac80211/patches/ath/558-ath9k-dynack-introduce-ath_dynack_set_timeout-routin.patch deleted file mode 100644 index d765f88559..0000000000 --- a/package/kernel/mac80211/patches/ath/558-ath9k-dynack-introduce-ath_dynack_set_timeout-routin.patch +++ /dev/null @@ -1,89 +0,0 @@ -From 4420866ef1b602682b009e0186fbb8aefd2125be Mon Sep 17 00:00:00 2001 -From: Lorenzo Bianconi <lorenzo@kernel.org> -Date: Tue, 20 Aug 2019 18:20:19 +0200 -Subject: [PATCH 1/4] ath9k: dynack: introduce ath_dynack_set_timeout routine - -Introduce ath_dynack_set_timeout routine to configure slottime/ack/cts -timeouts and remove duplicated code - -Tested-by: Koen Vandeputte <koen.vandeputte@ncentric.com> -Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> ---- - drivers/net/wireless/ath/ath9k/dynack.c | 37 ++++++++++++++----------- - 1 file changed, 21 insertions(+), 16 deletions(-) - ---- a/drivers/net/wireless/ath/ath9k/dynack.c -+++ b/drivers/net/wireless/ath/ath9k/dynack.c -@@ -79,6 +79,24 @@ static inline bool ath_dynack_bssidmask( - } - - /** -+ * ath_dynack_set_timeout - configure timeouts/slottime registers -+ * @ah: ath hw -+ * @to: timeout value -+ * -+ */ -+static void ath_dynack_set_timeout(struct ath_hw *ah, int to) -+{ -+ struct ath_common *common = ath9k_hw_common(ah); -+ int slottime = (to - 3) / 2; -+ -+ ath_dbg(common, DYNACK, "ACK timeout %u slottime %u\n", -+ to, slottime); -+ ath9k_hw_setslottime(ah, slottime); -+ ath9k_hw_set_ack_timeout(ah, to); -+ ath9k_hw_set_cts_timeout(ah, to); -+} -+ -+/** - * ath_dynack_compute_ackto - compute ACK timeout as the maximum STA timeout - * @ah: ath hw - * -@@ -86,7 +104,6 @@ static inline bool ath_dynack_bssidmask( - */ - static void ath_dynack_compute_ackto(struct ath_hw *ah) - { -- struct ath_common *common = ath9k_hw_common(ah); - struct ath_dynack *da = &ah->dynack; - struct ath_node *an; - int to = 0; -@@ -96,15 +113,8 @@ static void ath_dynack_compute_ackto(str - to = an->ackto; - - if (to && da->ackto != to) { -- u32 slottime; -- -- slottime = (to - 3) / 2; -+ ath_dynack_set_timeout(ah, to); - da->ackto = to; -- ath_dbg(common, DYNACK, "ACK timeout %u slottime %u\n", -- da->ackto, slottime); -- ath9k_hw_setslottime(ah, slottime); -- ath9k_hw_set_ack_timeout(ah, da->ackto); -- ath9k_hw_set_cts_timeout(ah, da->ackto); - } - } - -@@ -198,10 +208,7 @@ void ath_dynack_sample_tx_ts(struct ath_ - ieee80211_is_assoc_resp(hdr->frame_control) || - ieee80211_is_auth(hdr->frame_control)) { - ath_dbg(common, DYNACK, "late ack\n"); -- -- ath9k_hw_setslottime(ah, (LATEACK_TO - 3) / 2); -- ath9k_hw_set_ack_timeout(ah, LATEACK_TO); -- ath9k_hw_set_cts_timeout(ah, LATEACK_TO); -+ ath_dynack_set_timeout(ah, LATEACK_TO); - if (sta) { - struct ath_node *an; - -@@ -340,9 +347,7 @@ void ath_dynack_reset(struct ath_hw *ah) - da->ack_rbf.h_rb = 0; - - /* init acktimeout */ -- ath9k_hw_setslottime(ah, (ackto - 3) / 2); -- ath9k_hw_set_ack_timeout(ah, ackto); -- ath9k_hw_set_cts_timeout(ah, ackto); -+ ath_dynack_set_timeout(ah, ackto); - } - EXPORT_SYMBOL(ath_dynack_reset); - diff --git a/package/kernel/mac80211/patches/ath/559-ath9k-dynack-properly-set-last-timeout-timestamp-in-.patch b/package/kernel/mac80211/patches/ath/559-ath9k-dynack-properly-set-last-timeout-timestamp-in-.patch deleted file mode 100644 index 5a2aac2782..0000000000 --- a/package/kernel/mac80211/patches/ath/559-ath9k-dynack-properly-set-last-timeout-timestamp-in-.patch +++ /dev/null @@ -1,27 +0,0 @@ -From e5b56ce50eab31d24df6a70cf025db3acc4aa3ac Mon Sep 17 00:00:00 2001 -From: Lorenzo Bianconi <lorenzo@kernel.org> -Date: Tue, 20 Aug 2019 18:20:20 +0200 -Subject: [PATCH 2/4] ath9k: dynack: properly set last timeout timestamp in - ath_dynack_reset - -Add compute timeout to last computation timestamp in -ath_dynack_reset in order to not run ath_dynack_compute_ackto -immediately - -Tested-by: Koen Vandeputte <koen.vandeputte@ncentric.com> -Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> ---- - drivers/net/wireless/ath/ath9k/dynack.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/drivers/net/wireless/ath/ath9k/dynack.c -+++ b/drivers/net/wireless/ath/ath9k/dynack.c -@@ -338,7 +338,7 @@ void ath_dynack_reset(struct ath_hw *ah) - u32 ackto = 9 + 16 + 64; - struct ath_dynack *da = &ah->dynack; - -- da->lto = jiffies; -+ da->lto = jiffies + COMPUTE_TO; - da->ackto = ackto; - - da->st_rbf.t_rb = 0; diff --git a/package/kernel/mac80211/patches/ath/560-ath9k-dynack-set-max-timeout-according-to-channel-wi.patch b/package/kernel/mac80211/patches/ath/560-ath9k-dynack-set-max-timeout-according-to-channel-wi.patch deleted file mode 100644 index 876b113aba..0000000000 --- a/package/kernel/mac80211/patches/ath/560-ath9k-dynack-set-max-timeout-according-to-channel-wi.patch +++ /dev/null @@ -1,92 +0,0 @@ -From 3f737abb7d53cc80d619a3b4a30b6fa63cdc8df7 Mon Sep 17 00:00:00 2001 -From: Lorenzo Bianconi <lorenzo@kernel.org> -Date: Tue, 20 Aug 2019 18:20:21 +0200 -Subject: [PATCH 3/4] ath9k: dynack: set max timeout according to channel width - -Compute maximum configurable ackimeout/ctstimeout according to channel -width (clockrate) - -Tested-by: Koen Vandeputte <koen.vandeputte@ncentric.com> -Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> ---- - drivers/net/wireless/ath/ath9k/dynack.c | 38 +++++++++++++++++++------ - 1 file changed, 30 insertions(+), 8 deletions(-) - ---- a/drivers/net/wireless/ath/ath9k/dynack.c -+++ b/drivers/net/wireless/ath/ath9k/dynack.c -@@ -20,12 +20,31 @@ - - #define COMPUTE_TO (5 * HZ) - #define LATEACK_DELAY (10 * HZ) --#define LATEACK_TO 256 --#define MAX_DELAY 300 - #define EWMA_LEVEL 96 - #define EWMA_DIV 128 - - /** -+ * ath_dynack_get_max_to - set max timeout according to channel width -+ * @ah: ath hw -+ * -+ */ -+static u32 ath_dynack_get_max_to(struct ath_hw *ah) -+{ -+ const struct ath9k_channel *chan = ah->curchan; -+ -+ if (!chan) -+ return 300; -+ -+ if (IS_CHAN_HT40(chan)) -+ return 300; -+ if (IS_CHAN_HALF_RATE(chan)) -+ return 750; -+ if (IS_CHAN_QUARTER_RATE(chan)) -+ return 1500; -+ return 600; -+} -+ -+/** - * ath_dynack_ewma - EWMA (Exponentially Weighted Moving Average) calculation - * - */ -@@ -126,15 +145,16 @@ static void ath_dynack_compute_ackto(str - */ - static void ath_dynack_compute_to(struct ath_hw *ah) - { -- u32 ackto, ack_ts; -- u8 *dst, *src; -+ struct ath_dynack *da = &ah->dynack; -+ u32 ackto, ack_ts, max_to; - struct ieee80211_sta *sta; -- struct ath_node *an; - struct ts_info *st_ts; -- struct ath_dynack *da = &ah->dynack; -+ struct ath_node *an; -+ u8 *dst, *src; - - rcu_read_lock(); - -+ max_to = ath_dynack_get_max_to(ah); - while (da->st_rbf.h_rb != da->st_rbf.t_rb && - da->ack_rbf.h_rb != da->ack_rbf.t_rb) { - ack_ts = da->ack_rbf.tstamp[da->ack_rbf.h_rb]; -@@ -150,7 +170,7 @@ static void ath_dynack_compute_to(struct - if (ack_ts > st_ts->tstamp + st_ts->dur) { - ackto = ack_ts - st_ts->tstamp - st_ts->dur; - -- if (ackto < MAX_DELAY) { -+ if (ackto < max_to) { - sta = ieee80211_find_sta_by_ifaddr(ah->hw, dst, - src); - if (sta) { -@@ -207,8 +227,10 @@ void ath_dynack_sample_tx_ts(struct ath_ - if (ieee80211_is_assoc_req(hdr->frame_control) || - ieee80211_is_assoc_resp(hdr->frame_control) || - ieee80211_is_auth(hdr->frame_control)) { -+ u32 max_to = ath_dynack_get_max_to(ah); -+ - ath_dbg(common, DYNACK, "late ack\n"); -- ath_dynack_set_timeout(ah, LATEACK_TO); -+ ath_dynack_set_timeout(ah, max_to); - if (sta) { - struct ath_node *an; - diff --git a/package/kernel/mac80211/patches/ath/561-ath9k-dynack-set-ackto-to-max-timeout-in-ath_dynack_.patch b/package/kernel/mac80211/patches/ath/561-ath9k-dynack-set-ackto-to-max-timeout-in-ath_dynack_.patch deleted file mode 100644 index 6495bf01b0..0000000000 --- a/package/kernel/mac80211/patches/ath/561-ath9k-dynack-set-ackto-to-max-timeout-in-ath_dynack_.patch +++ /dev/null @@ -1,73 +0,0 @@ -From cc783bfa67e87d2e6206f7626b7bbb74d5c5f269 Mon Sep 17 00:00:00 2001 -From: Lorenzo Bianconi <lorenzo@kernel.org> -Date: Tue, 20 Aug 2019 18:20:22 +0200 -Subject: [PATCH 4/4] ath9k: dynack: set ackto to max timeout in - ath_dynack_reset - -Initialize acktimeout to the maximum configurable value in -ath_dynack_reset in order to not disconnect long distance static links -enabling dynack and even to take care of possible errors configuring -a static timeout. Moreover initialize station timeout value to the current -acktimeout value - -Tested-by: Koen Vandeputte <koen.vandeputte@ncentric.com> -Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> ---- - drivers/net/wireless/ath/ath9k/dynack.c | 20 +++++++++++++------- - 1 file changed, 13 insertions(+), 7 deletions(-) - ---- a/drivers/net/wireless/ath/ath9k/dynack.c -+++ b/drivers/net/wireless/ath/ath9k/dynack.c -@@ -321,11 +321,9 @@ EXPORT_SYMBOL(ath_dynack_sample_ack_ts); - */ - void ath_dynack_node_init(struct ath_hw *ah, struct ath_node *an) - { -- /* ackto = slottime + sifs + air delay */ -- u32 ackto = 9 + 16 + 64; - struct ath_dynack *da = &ah->dynack; - -- an->ackto = ackto; -+ an->ackto = da->ackto; - - spin_lock(&da->qlock); - list_add_tail(&an->list, &da->nodes); -@@ -356,20 +354,26 @@ EXPORT_SYMBOL(ath_dynack_node_deinit); - */ - void ath_dynack_reset(struct ath_hw *ah) - { -- /* ackto = slottime + sifs + air delay */ -- u32 ackto = 9 + 16 + 64; - struct ath_dynack *da = &ah->dynack; -+ struct ath_node *an; -+ -+ spin_lock_bh(&da->qlock); - - da->lto = jiffies + COMPUTE_TO; -- da->ackto = ackto; - - da->st_rbf.t_rb = 0; - da->st_rbf.h_rb = 0; - da->ack_rbf.t_rb = 0; - da->ack_rbf.h_rb = 0; - -+ da->ackto = ath_dynack_get_max_to(ah); -+ list_for_each_entry(an, &da->nodes, list) -+ an->ackto = da->ackto; -+ - /* init acktimeout */ -- ath_dynack_set_timeout(ah, ackto); -+ ath_dynack_set_timeout(ah, da->ackto); -+ -+ spin_unlock_bh(&da->qlock); - } - EXPORT_SYMBOL(ath_dynack_reset); - -@@ -386,6 +390,8 @@ void ath_dynack_init(struct ath_hw *ah) - - spin_lock_init(&da->qlock); - INIT_LIST_HEAD(&da->nodes); -+ /* ackto = slottime + sifs + air delay */ -+ da->ackto = 9 + 16 + 64; - - ah->hw->wiphy->features |= NL80211_FEATURE_ACKTO_ESTIMATION; - } diff --git a/package/kernel/mac80211/patches/ath/930-ath10k_add_tpt_led_trigger.patch b/package/kernel/mac80211/patches/ath/930-ath10k_add_tpt_led_trigger.patch index b1172cd17d..c8c207f41a 100644 --- a/package/kernel/mac80211/patches/ath/930-ath10k_add_tpt_led_trigger.patch +++ b/package/kernel/mac80211/patches/ath/930-ath10k_add_tpt_led_trigger.patch @@ -1,6 +1,6 @@ --- a/drivers/net/wireless/ath/ath10k/mac.c +++ b/drivers/net/wireless/ath/ath10k/mac.c -@@ -8669,6 +8669,21 @@ static int ath10k_mac_init_rd(struct ath +@@ -8671,6 +8671,21 @@ static int ath10k_mac_init_rd(struct ath return 0; } @@ -22,7 +22,7 @@ int ath10k_mac_register(struct ath10k *ar) { static const u32 cipher_suites[] = { -@@ -8995,6 +9010,12 @@ int ath10k_mac_register(struct ath10k *a +@@ -8997,6 +9012,12 @@ int ath10k_mac_register(struct ath10k *a ar->hw->weight_multiplier = ATH10K_AIRTIME_WEIGHT_MULTIPLIER; diff --git a/package/kernel/mac80211/patches/ath/974-ath10k_add-LED-and-GPIO-controlling-support-for-various-chipsets.patch b/package/kernel/mac80211/patches/ath/974-ath10k_add-LED-and-GPIO-controlling-support-for-various-chipsets.patch index 97b7550e34..ae0f682224 100644 --- a/package/kernel/mac80211/patches/ath/974-ath10k_add-LED-and-GPIO-controlling-support-for-various-chipsets.patch +++ b/package/kernel/mac80211/patches/ath/974-ath10k_add-LED-and-GPIO-controlling-support-for-various-chipsets.patch @@ -114,7 +114,7 @@ v13: ath10k_core-$(CONFIG_DEV_COREDUMP) += coredump.o --- a/local-symbols +++ b/local-symbols -@@ -144,6 +144,7 @@ ATH10K_DEBUG= +@@ -145,6 +145,7 @@ ATH10K_DEBUG= ATH10K_DEBUGFS= ATH10K_SPECTRAL= ATH10K_THERMAL= diff --git a/package/kernel/mac80211/patches/ath/975-ath10k-use-tpt-trigger-by-default.patch b/package/kernel/mac80211/patches/ath/975-ath10k-use-tpt-trigger-by-default.patch index 8922ffed81..9fdbf0ce30 100644 --- a/package/kernel/mac80211/patches/ath/975-ath10k-use-tpt-trigger-by-default.patch +++ b/package/kernel/mac80211/patches/ath/975-ath10k-use-tpt-trigger-by-default.patch @@ -42,7 +42,7 @@ Signed-off-by: Mathias Kresin <dev@kresin.me> if (ret) --- a/drivers/net/wireless/ath/ath10k/mac.c +++ b/drivers/net/wireless/ath/ath10k/mac.c -@@ -9027,7 +9027,7 @@ int ath10k_mac_register(struct ath10k *a +@@ -9029,7 +9029,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/mac80211/patches/ath/976-ath10k-Check-if-station-exists-before-forwarding-tx-.patch b/package/kernel/mac80211/patches/ath/976-ath10k-Check-if-station-exists-before-forwarding-tx-.patch index 4f247e29f7..275409b7c1 100644 --- a/package/kernel/mac80211/patches/ath/976-ath10k-Check-if-station-exists-before-forwarding-tx-.patch +++ b/package/kernel/mac80211/patches/ath/976-ath10k-Check-if-station-exists-before-forwarding-tx-.patch @@ -72,7 +72,7 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> --- a/drivers/net/wireless/ath/ath10k/htt_rx.c +++ b/drivers/net/wireless/ath/ath10k/htt_rx.c -@@ -2639,7 +2639,7 @@ static void ath10k_htt_rx_tx_compl_ind(s +@@ -2726,7 +2726,7 @@ static void ath10k_htt_rx_tx_compl_ind(s spin_lock_bh(&ar->data_lock); peer = ath10k_peer_find_by_id(ar, peer_id); |