[RFC PATCH 19.07] mac80211: Update to backports version 4.19.189-test2

Hauke Mehrtens hauke at hauke-m.de
Sun May 2 22:47:43 BST 2021


The removed patches were applied upstream.

Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 package/kernel/mac80211/Makefile              |  6 +-
 .../ath/500-ath9k_eeprom_debugfs.patch        |  4 +-
 .../ath/512-ath9k_channelbw_debugfs.patch     |  4 +-
 .../patches/ath/530-ath9k_extra_leds.patch    | 10 +--
 .../patches/ath/542-ath9k_debugfs_diag.patch  |  4 +-
 .../ath/548-ath9k_enable_gpio_chip.patch      |  4 +-
 .../ath/549-ath9k_enable_gpio_buttons.patch   |  2 +-
 .../mac80211/patches/ath/552-ahb_of.patch     |  2 +-
 .../ath/930-ath10k_add_tpt_led_trigger.patch  |  4 +-
 ...-of-peer_bw_rxnss_override-parameter.patch |  2 +-
 ...dling-for-VHT160-in-recent-firmwares.patch |  2 +-
 ...rolling-support-for-various-chipsets.patch | 14 ++--
 ...75-ath10k-use-tpt-trigger-by-default.patch |  2 +-
 ...rt-for-configuring-management-packet.patch |  4 +-
 ...ble-out-of-bound-access-of-ath10k_ra.patch |  2 +-
 ...rect-multicast-broadcast-rate-settin.patch |  4 +-
 ...frameburst-mode-in-default-firmware-.patch |  2 +-
 ...phy_err-and-use-it-in-the-cfg80211.c.patch | 76 +++++++++----------
 ...-code-handling-bandwidth-of-firmware.patch |  2 +-
 ...-firmware-reporting-160-MHz-channels.patch |  2 +-
 ...bphy_err-to-take-struct-brcmf_pub-ar.patch | 76 +++++++++----------
 ...DFS_OFFLOAD-extended-feature-if-supp.patch |  2 +-
 ...g80211_ops-pointer-to-another-struct.patch |  2 +-
 ...rors-when-setting-roaming-parameters.patch |  2 +-
 ...B-condition-when-setting-interface-c.patch | 10 +--
 ...lify-building-interface-combinations.patch |  6 +-
 ...add-initial-support-for-monitor-mode.patch |  8 +-
 .../subsys/150-disable_addr_notifier.patch    |  6 +-
 .../mac80211/patches/subsys/210-ap_scan.patch |  2 +-
 ...d-stop-start-logic-for-software-TXQs.patch |  4 +-
 ...l-merge-with-minstrel_ht-always-enab.patch |  4 +-
 .../320-mac80211-Add-TXQ-scheduling-API.patch |  2 +-
 ...time-accounting-and-scheduling-to-TX.patch |  4 +-
 ...1-add-TX_NEEDS_ALIGNED4_SKBS-hw-flag.patch |  4 +-
 ...op-redundant-rcu_read_lock-unlock-ca.patch |  2 +-
 ...nd-deauth-when-expiring-inactive-STA.patch |  2 +-
 ...et-set-TDLS-STA-bandwidth-wider-than.patch | 65 ----------------
 ...use-TX-while-changing-interface-type.patch | 57 --------------
 ...ac80211-fix-fast-rx-encryption-check.patch | 29 -------
 ...-station-rate-table-updates-on-assoc.patch | 49 ------------
 ...ential-overflow-when-multiplying-to-.patch | 34 ---------
 .../374-mac80211-fix-rate-mask-reset.patch    | 50 ------------
 ...c80211-fix-double-free-in-ibss_leave.patch | 69 -----------------
 .../522-mac80211_configure_antenna_gain.patch |  4 +-
 44 files changed, 146 insertions(+), 499 deletions(-)
 delete mode 100644 package/kernel/mac80211/patches/subsys/369-mac80211-don-t-set-set-TDLS-STA-bandwidth-wider-than.patch
 delete mode 100644 package/kernel/mac80211/patches/subsys/370-mac80211-pause-TX-while-changing-interface-type.patch
 delete mode 100644 package/kernel/mac80211/patches/subsys/371-mac80211-fix-fast-rx-encryption-check.patch
 delete mode 100644 package/kernel/mac80211/patches/subsys/372-mac80211-fix-station-rate-table-updates-on-assoc.patch
 delete mode 100644 package/kernel/mac80211/patches/subsys/373-mac80211-fix-potential-overflow-when-multiplying-to-.patch
 delete mode 100644 package/kernel/mac80211/patches/subsys/374-mac80211-fix-rate-mask-reset.patch
 delete mode 100644 package/kernel/mac80211/patches/subsys/375-mac80211-fix-double-free-in-ibss_leave.patch

diff --git a/package/kernel/mac80211/Makefile b/package/kernel/mac80211/Makefile
index 02d717127b..7963469bc7 100644
--- a/package/kernel/mac80211/Makefile
+++ b/package/kernel/mac80211/Makefile
@@ -10,10 +10,10 @@ include $(INCLUDE_DIR)/kernel.mk
 
 PKG_NAME:=mac80211
 
-PKG_VERSION:=4.19.161-1
+PKG_VERSION:=4.19.189-test2
 PKG_RELEASE:=1
-PKG_SOURCE_URL:=@KERNEL/linux/kernel/projects/backports/stable/v4.19.161/
-PKG_HASH:=01a4173ba180eb8ca67c898239d5accb49a3ea9aea51510e17d5c937d6e93f9a
+PKG_SOURCE_URL:=https://hauke-m.de/files/backports-test/
+PKG_HASH:=278035402124183aaa2a339e3eeda620e5440461ebaf22e914a78ec9deab0d36
 
 PKG_SOURCE:=backports-$(PKG_VERSION).tar.xz
 PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/backports-$(PKG_VERSION)
diff --git a/package/kernel/mac80211/patches/ath/500-ath9k_eeprom_debugfs.patch b/package/kernel/mac80211/patches/ath/500-ath9k_eeprom_debugfs.patch
index b6dc45cd96..319db41113 100644
--- a/package/kernel/mac80211/patches/ath/500-ath9k_eeprom_debugfs.patch
+++ b/package/kernel/mac80211/patches/ath/500-ath9k_eeprom_debugfs.patch
@@ -1,6 +1,6 @@
 --- a/drivers/net/wireless/ath/ath9k/debug.c
 +++ b/drivers/net/wireless/ath/ath9k/debug.c
-@@ -1374,6 +1374,53 @@ void ath9k_deinit_debug(struct ath_softc
+@@ -1377,6 +1377,53 @@ void ath9k_deinit_debug(struct ath_softc
  	ath9k_cmn_spectral_deinit_debug(&sc->spec_priv);
  }
  
@@ -54,7 +54,7 @@
  int ath9k_init_debug(struct ath_hw *ah)
  {
  	struct ath_common *common = ath9k_hw_common(ah);
-@@ -1393,6 +1440,8 @@ int ath9k_init_debug(struct ath_hw *ah)
+@@ -1396,6 +1443,8 @@ int ath9k_init_debug(struct ath_hw *ah)
  	ath9k_tx99_init_debug(sc);
  	ath9k_cmn_spectral_init_debug(&sc->spec_priv, sc->debug.debugfs_phy);
  
diff --git a/package/kernel/mac80211/patches/ath/512-ath9k_channelbw_debugfs.patch b/package/kernel/mac80211/patches/ath/512-ath9k_channelbw_debugfs.patch
index 2d4a5688c8..f70d565648 100644
--- a/package/kernel/mac80211/patches/ath/512-ath9k_channelbw_debugfs.patch
+++ b/package/kernel/mac80211/patches/ath/512-ath9k_channelbw_debugfs.patch
@@ -1,6 +1,6 @@
 --- a/drivers/net/wireless/ath/ath9k/debug.c
 +++ b/drivers/net/wireless/ath/ath9k/debug.c
-@@ -1421,6 +1421,52 @@ static const struct file_operations fops
+@@ -1424,6 +1424,52 @@ static const struct file_operations fops
  	.owner = THIS_MODULE
  };
  
@@ -53,7 +53,7 @@
  int ath9k_init_debug(struct ath_hw *ah)
  {
  	struct ath_common *common = ath9k_hw_common(ah);
-@@ -1442,6 +1488,8 @@ int ath9k_init_debug(struct ath_hw *ah)
+@@ -1445,6 +1491,8 @@ int ath9k_init_debug(struct ath_hw *ah)
  
  	debugfs_create_file("eeprom", S_IRUSR, sc->debug.debugfs_phy, sc,
  			    &fops_eeprom);
diff --git a/package/kernel/mac80211/patches/ath/530-ath9k_extra_leds.patch b/package/kernel/mac80211/patches/ath/530-ath9k_extra_leds.patch
index c13a72cbb0..2f8a6c41e0 100644
--- a/package/kernel/mac80211/patches/ath/530-ath9k_extra_leds.patch
+++ b/package/kernel/mac80211/patches/ath/530-ath9k_extra_leds.patch
@@ -1,6 +1,6 @@
 --- a/drivers/net/wireless/ath/ath9k/ath9k.h
 +++ b/drivers/net/wireless/ath/ath9k/ath9k.h
-@@ -850,6 +850,9 @@ static inline int ath9k_dump_btcoex(stru
+@@ -851,6 +851,9 @@ static inline int ath9k_dump_btcoex(stru
  #ifdef CPTCFG_MAC80211_LEDS
  void ath_init_leds(struct ath_softc *sc);
  void ath_deinit_leds(struct ath_softc *sc);
@@ -10,7 +10,7 @@
  #else
  static inline void ath_init_leds(struct ath_softc *sc)
  {
-@@ -991,6 +994,13 @@ void ath_ant_comb_scan(struct ath_softc
+@@ -992,6 +995,13 @@ void ath_ant_comb_scan(struct ath_softc
  #define AIRTIME_USE_NEW_QUEUES	BIT(2)
  #define AIRTIME_ACTIVE(flags) (!!(flags & (AIRTIME_USE_TX|AIRTIME_USE_RX)))
  
@@ -24,7 +24,7 @@
  struct ath_softc {
  	struct ieee80211_hw *hw;
  	struct device *dev;
-@@ -1046,9 +1056,8 @@ struct ath_softc {
+@@ -1047,9 +1057,8 @@ struct ath_softc {
  	spinlock_t chan_lock;
  
  #ifdef CPTCFG_MAC80211_LEDS
@@ -192,7 +192,7 @@
  #endif
 --- a/drivers/net/wireless/ath/ath9k/debug.c
 +++ b/drivers/net/wireless/ath/ath9k/debug.c
-@@ -1466,6 +1466,61 @@ static const struct file_operations fops
+@@ -1469,6 +1469,61 @@ static const struct file_operations fops
  	.llseek = default_llseek,
  };
  
@@ -254,7 +254,7 @@
  
  int ath9k_init_debug(struct ath_hw *ah)
  {
-@@ -1490,6 +1545,10 @@ int ath9k_init_debug(struct ath_hw *ah)
+@@ -1493,6 +1548,10 @@ int ath9k_init_debug(struct ath_hw *ah)
  			    &fops_eeprom);
  	debugfs_create_file("chanbw", S_IRUSR | S_IWUSR, sc->debug.debugfs_phy,
  			    sc, &fops_chanbw);
diff --git a/package/kernel/mac80211/patches/ath/542-ath9k_debugfs_diag.patch b/package/kernel/mac80211/patches/ath/542-ath9k_debugfs_diag.patch
index e627c38495..d7e82c9a66 100644
--- a/package/kernel/mac80211/patches/ath/542-ath9k_debugfs_diag.patch
+++ b/package/kernel/mac80211/patches/ath/542-ath9k_debugfs_diag.patch
@@ -1,6 +1,6 @@
 --- a/drivers/net/wireless/ath/ath9k/debug.c
 +++ b/drivers/net/wireless/ath/ath9k/debug.c
-@@ -1522,6 +1522,50 @@ static const struct file_operations fops
+@@ -1525,6 +1525,50 @@ static const struct file_operations fops
  #endif
  
  
@@ -51,7 +51,7 @@
  int ath9k_init_debug(struct ath_hw *ah)
  {
  	struct ath_common *common = ath9k_hw_common(ah);
-@@ -1549,6 +1593,8 @@ int ath9k_init_debug(struct ath_hw *ah)
+@@ -1552,6 +1596,8 @@ int ath9k_init_debug(struct ath_hw *ah)
  	debugfs_create_file("gpio_led", S_IWUSR,
  			   sc->debug.debugfs_phy, sc, &fops_gpio_led);
  #endif
diff --git a/package/kernel/mac80211/patches/ath/548-ath9k_enable_gpio_chip.patch b/package/kernel/mac80211/patches/ath/548-ath9k_enable_gpio_chip.patch
index eb9eb26a74..d10f312472 100644
--- a/package/kernel/mac80211/patches/ath/548-ath9k_enable_gpio_chip.patch
+++ b/package/kernel/mac80211/patches/ath/548-ath9k_enable_gpio_chip.patch
@@ -18,7 +18,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  
  #include "common.h"
  #include "debug.h"
-@@ -1001,6 +1002,14 @@ struct ath_led {
+@@ -1002,6 +1003,14 @@ struct ath_led {
  	struct led_classdev cdev;
  };
  
@@ -33,7 +33,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  struct ath_softc {
  	struct ieee80211_hw *hw;
  	struct device *dev;
-@@ -1058,6 +1067,9 @@ struct ath_softc {
+@@ -1059,6 +1068,9 @@ struct ath_softc {
  #ifdef CPTCFG_MAC80211_LEDS
  	const char *led_default_trigger;
  	struct list_head leds;
diff --git a/package/kernel/mac80211/patches/ath/549-ath9k_enable_gpio_buttons.patch b/package/kernel/mac80211/patches/ath/549-ath9k_enable_gpio_buttons.patch
index bd71b75e76..d0922253a6 100644
--- a/package/kernel/mac80211/patches/ath/549-ath9k_enable_gpio_buttons.patch
+++ b/package/kernel/mac80211/patches/ath/549-ath9k_enable_gpio_buttons.patch
@@ -10,7 +10,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
 ---
 --- a/drivers/net/wireless/ath/ath9k/ath9k.h
 +++ b/drivers/net/wireless/ath/ath9k/ath9k.h
-@@ -1069,6 +1069,7 @@ struct ath_softc {
+@@ -1070,6 +1070,7 @@ struct ath_softc {
  	struct list_head leds;
  #ifdef CONFIG_GPIOLIB
  	struct ath9k_gpio_chip *gpiochip;
diff --git a/package/kernel/mac80211/patches/ath/552-ahb_of.patch b/package/kernel/mac80211/patches/ath/552-ahb_of.patch
index c16bf424ea..d944e13941 100644
--- a/package/kernel/mac80211/patches/ath/552-ahb_of.patch
+++ b/package/kernel/mac80211/patches/ath/552-ahb_of.patch
@@ -325,7 +325,7 @@
  
  #include "common.h"
  #include "debug.h"
-@@ -1023,6 +1024,9 @@ struct ath_softc {
+@@ -1024,6 +1025,9 @@ struct ath_softc {
  	struct ath_hw *sc_ah;
  	void __iomem *mem;
  	int irq;
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 bdf08710e6..61ea3c1a73 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
-@@ -8300,6 +8300,21 @@ static int ath10k_mac_init_rd(struct ath
+@@ -8293,6 +8293,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[] = {
-@@ -8584,6 +8599,12 @@ int ath10k_mac_register(struct ath10k *a
+@@ -8577,6 +8592,12 @@ int ath10k_mac_register(struct ath10k *a
  
  	wiphy_ext_feature_set(ar->hw->wiphy, NL80211_EXT_FEATURE_CQM_RSSI_LIST);
  
diff --git a/package/kernel/mac80211/patches/ath/972-ath10k_fix-crash-due-to-wrong-handling-of-peer_bw_rxnss_override-parameter.patch b/package/kernel/mac80211/patches/ath/972-ath10k_fix-crash-due-to-wrong-handling-of-peer_bw_rxnss_override-parameter.patch
index 12f56197ba..64772e8d9d 100644
--- a/package/kernel/mac80211/patches/ath/972-ath10k_fix-crash-due-to-wrong-handling-of-peer_bw_rxnss_override-parameter.patch
+++ b/package/kernel/mac80211/patches/ath/972-ath10k_fix-crash-due-to-wrong-handling-of-peer_bw_rxnss_override-parameter.patch
@@ -105,7 +105,7 @@ v9: use SM/MS macros from code.h to simplify shift/mask handling
  }
 --- a/drivers/net/wireless/ath/ath10k/wmi.c
 +++ b/drivers/net/wireless/ath/ath10k/wmi.c
-@@ -7391,12 +7391,7 @@ ath10k_wmi_peer_assoc_fill_10_4(struct a
+@@ -7396,12 +7396,7 @@ ath10k_wmi_peer_assoc_fill_10_4(struct a
  	struct wmi_10_4_peer_assoc_complete_cmd *cmd = buf;
  
  	ath10k_wmi_peer_assoc_fill_10_2(ar, buf, arg);
diff --git a/package/kernel/mac80211/patches/ath/973-ath10k_fix-band_center_freq-handling-for-VHT160-in-recent-firmwares.patch b/package/kernel/mac80211/patches/ath/973-ath10k_fix-band_center_freq-handling-for-VHT160-in-recent-firmwares.patch
index c26ea96095..5f2f7028c2 100644
--- a/package/kernel/mac80211/patches/ath/973-ath10k_fix-band_center_freq-handling-for-VHT160-in-recent-firmwares.patch
+++ b/package/kernel/mac80211/patches/ath/973-ath10k_fix-band_center_freq-handling-for-VHT160-in-recent-firmwares.patch
@@ -13,7 +13,7 @@ v2: fix trailing whitespace issue and fix some typos within the commit note
  2 files changed, 8 insertions(+), 10 deletions(-)
 --- a/drivers/net/wireless/ath/ath10k/mac.c
 +++ b/drivers/net/wireless/ath/ath10k/mac.c
-@@ -4483,13 +4483,6 @@ static struct ieee80211_sta_vht_cap ath1
+@@ -4476,13 +4476,6 @@ static struct ieee80211_sta_vht_cap ath1
  		vht_cap.cap |= val;
  	}
  
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 2ae28283dc..a5ffed6979 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
@@ -464,7 +464,7 @@ v13:
  {
 --- a/drivers/net/wireless/ath/ath10k/wmi-tlv.c
 +++ b/drivers/net/wireless/ath/ath10k/wmi-tlv.c
-@@ -3991,6 +3991,8 @@ static const struct wmi_ops wmi_tlv_ops
+@@ -3996,6 +3996,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,
  	.gen_vdev_spectral_enable = ath10k_wmi_tlv_op_gen_vdev_spectral_enable,
@@ -475,7 +475,7 @@ v13:
  static const struct wmi_peer_flags_map wmi_tlv_peer_flags_map = {
 --- a/drivers/net/wireless/ath/ath10k/wmi.c
 +++ b/drivers/net/wireless/ath/ath10k/wmi.c
-@@ -7211,6 +7211,49 @@ ath10k_wmi_op_gen_peer_set_param(struct
+@@ -7216,6 +7216,49 @@ ath10k_wmi_op_gen_peer_set_param(struct
  	return skb;
  }
  
@@ -525,7 +525,7 @@ v13:
  static struct sk_buff *
  ath10k_wmi_op_gen_set_psmode(struct ath10k *ar, u32 vdev_id,
  			     enum wmi_sta_ps_mode psmode)
-@@ -8822,6 +8865,9 @@ static const struct wmi_ops wmi_ops = {
+@@ -8827,6 +8870,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,
@@ -535,7 +535,7 @@ v13:
  	/* .gen_bcn_tmpl not implemented */
  	/* .gen_prb_tmpl not implemented */
  	/* .gen_p2p_go_bcn_ie not implemented */
-@@ -8892,6 +8938,8 @@ static const struct wmi_ops wmi_10_1_ops
+@@ -8897,6 +8943,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,
@@ -544,7 +544,7 @@ v13:
  	/* .gen_bcn_tmpl not implemented */
  	/* .gen_prb_tmpl not implemented */
  	/* .gen_p2p_go_bcn_ie not implemented */
-@@ -8963,6 +9011,8 @@ static const struct wmi_ops wmi_10_2_ops
+@@ -8968,6 +9016,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,
@@ -553,7 +553,7 @@ v13:
  	/* .gen_pdev_enable_adaptive_cca not implemented */
  };
  
-@@ -9033,6 +9083,8 @@ static const struct wmi_ops wmi_10_2_4_o
+@@ -9038,6 +9088,8 @@ static const struct wmi_ops wmi_10_2_4_o
  	.gen_pdev_enable_adaptive_cca =
  		ath10k_wmi_op_gen_pdev_enable_adaptive_cca,
  	.get_vdev_subtype = ath10k_wmi_10_2_4_op_get_vdev_subtype,
@@ -562,7 +562,7 @@ v13:
  	/* .gen_bcn_tmpl not implemented */
  	/* .gen_prb_tmpl not implemented */
  	/* .gen_p2p_go_bcn_ie not implemented */
-@@ -9112,6 +9164,8 @@ static const struct wmi_ops wmi_10_4_ops
+@@ -9117,6 +9169,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,
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 e33793bb39..70350540b1 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 at kresin.me>
  	if (ret)
 --- a/drivers/net/wireless/ath/ath10k/mac.c
 +++ b/drivers/net/wireless/ath/ath10k/mac.c
-@@ -8616,7 +8616,7 @@ int ath10k_mac_register(struct ath10k *a
+@@ -8609,7 +8609,7 @@ int ath10k_mac_register(struct ath10k *a
  	wiphy_ext_feature_set(ar->hw->wiphy, NL80211_EXT_FEATURE_CQM_RSSI_LIST);
  
  #ifdef CPTCFG_MAC80211_LEDS
diff --git a/package/kernel/mac80211/patches/ath/977-ath10k-add-support-for-configuring-management-packet.patch b/package/kernel/mac80211/patches/ath/977-ath10k-add-support-for-configuring-management-packet.patch
index 4f68f04ed2..ee4f4a760d 100644
--- a/package/kernel/mac80211/patches/ath/977-ath10k-add-support-for-configuring-management-packet.patch
+++ b/package/kernel/mac80211/patches/ath/977-ath10k-add-support-for-configuring-management-packet.patch
@@ -43,7 +43,7 @@ Origin: backport, https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux
  static int ath10k_mac_get_max_vht_mcs_map(u16 mcs_map, int nss)
  {
  	switch ((mcs_map >> (2 * nss)) & 0x3) {
-@@ -5485,9 +5501,10 @@ static void ath10k_bss_info_changed(stru
+@@ -5478,9 +5494,10 @@ static void ath10k_bss_info_changed(stru
  	struct cfg80211_chan_def def;
  	u32 vdev_param, pdev_param, slottime, preamble;
  	u16 bitrate, hw_value;
@@ -56,7 +56,7 @@ Origin: backport, https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux
  
  	mutex_lock(&ar->conf_mutex);
  
-@@ -5693,6 +5710,30 @@ static void ath10k_bss_info_changed(stru
+@@ -5686,6 +5703,30 @@ static void ath10k_bss_info_changed(stru
  				    arvif->vdev_id,  ret);
  	}
  
diff --git a/package/kernel/mac80211/patches/ath/978-ath10k-fix-possible-out-of-bound-access-of-ath10k_ra.patch b/package/kernel/mac80211/patches/ath/978-ath10k-fix-possible-out-of-bound-access-of-ath10k_ra.patch
index 1c7c612eea..d4f177f1bc 100644
--- a/package/kernel/mac80211/patches/ath/978-ath10k-fix-possible-out-of-bound-access-of-ath10k_ra.patch
+++ b/package/kernel/mac80211/patches/ath/978-ath10k-fix-possible-out-of-bound-access-of-ath10k_ra.patch
@@ -26,7 +26,7 @@ Origin: backport, https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux
  		if (ath10k_rates[i].bitrate == bitrate)
  			return hw_value_prefix | ath10k_rates[i].hw_value;
  	}
-@@ -5716,22 +5716,22 @@ static void ath10k_bss_info_changed(stru
+@@ -5709,22 +5709,22 @@ static void ath10k_bss_info_changed(stru
  			return;
  		}
  
diff --git a/package/kernel/mac80211/patches/ath/979-ath10k-fix-incorrect-multicast-broadcast-rate-settin.patch b/package/kernel/mac80211/patches/ath/979-ath10k-fix-incorrect-multicast-broadcast-rate-settin.patch
index 26dc801805..f30b0f3658 100644
--- a/package/kernel/mac80211/patches/ath/979-ath10k-fix-incorrect-multicast-broadcast-rate-settin.patch
+++ b/package/kernel/mac80211/patches/ath/979-ath10k-fix-incorrect-multicast-broadcast-rate-settin.patch
@@ -17,7 +17,7 @@ Origin: other, https://patchwork.kernel.org/patch/10723033/
 
 --- a/drivers/net/wireless/ath/ath10k/mac.c
 +++ b/drivers/net/wireless/ath/ath10k/mac.c
-@@ -5501,8 +5501,8 @@ static void ath10k_bss_info_changed(stru
+@@ -5494,8 +5494,8 @@ static void ath10k_bss_info_changed(stru
  	struct cfg80211_chan_def def;
  	u32 vdev_param, pdev_param, slottime, preamble;
  	u16 bitrate, hw_value;
@@ -28,7 +28,7 @@ Origin: other, https://patchwork.kernel.org/patch/10723033/
  	enum nl80211_band band;
  	const struct ieee80211_supported_band *sband;
  
-@@ -5675,7 +5675,11 @@ static void ath10k_bss_info_changed(stru
+@@ -5668,7 +5668,11 @@ static void ath10k_bss_info_changed(stru
  	if (changed & BSS_CHANGED_MCAST_RATE &&
  	    !ath10k_mac_vif_chan(arvif->vif, &def)) {
  		band = def.chan->band;
diff --git a/package/kernel/mac80211/patches/brcm/328-v5.0-0002-brcmfmac-enable-frameburst-mode-in-default-firmware-.patch b/package/kernel/mac80211/patches/brcm/328-v5.0-0002-brcmfmac-enable-frameburst-mode-in-default-firmware-.patch
index 3464839a2b..9bc6d453c3 100644
--- a/package/kernel/mac80211/patches/brcm/328-v5.0-0002-brcmfmac-enable-frameburst-mode-in-default-firmware-.patch
+++ b/package/kernel/mac80211/patches/brcm/328-v5.0-0002-brcmfmac-enable-frameburst-mode-in-default-firmware-.patch
@@ -17,7 +17,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
 
 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
 +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
-@@ -6654,6 +6654,12 @@ static s32 brcmf_config_dongle(struct br
+@@ -6657,6 +6657,12 @@ static s32 brcmf_config_dongle(struct br
  
  	brcmf_configure_arp_nd_offload(ifp, true);
  
diff --git a/package/kernel/mac80211/patches/brcm/346-v5.1-brcmfmac-add-bphy_err-and-use-it-in-the-cfg80211.c.patch b/package/kernel/mac80211/patches/brcm/346-v5.1-brcmfmac-add-bphy_err-and-use-it-in-the-cfg80211.c.patch
index 8858b186a7..7ae551619b 100644
--- a/package/kernel/mac80211/patches/brcm/346-v5.1-brcmfmac-add-bphy_err-and-use-it-in-the-cfg80211.c.patch
+++ b/package/kernel/mac80211/patches/brcm/346-v5.1-brcmfmac-add-bphy_err-and-use-it-in-the-cfg80211.c.patch
@@ -1603,7 +1603,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  
  	return ret;
  }
-@@ -5338,6 +5381,7 @@ static void brcmf_clear_assoc_ies(struct
+@@ -5341,6 +5384,7 @@ static void brcmf_clear_assoc_ies(struct
  static s32 brcmf_get_assoc_ies(struct brcmf_cfg80211_info *cfg,
  			       struct brcmf_if *ifp)
  {
@@ -1611,7 +1611,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  	struct brcmf_cfg80211_assoc_ielen_le *assoc_info;
  	struct brcmf_cfg80211_connect_info *conn_info = cfg_to_conn(cfg);
  	u32 req_len;
-@@ -5349,7 +5393,7 @@ static s32 brcmf_get_assoc_ies(struct br
+@@ -5352,7 +5396,7 @@ static s32 brcmf_get_assoc_ies(struct br
  	err = brcmf_fil_iovar_data_get(ifp, "assoc_info",
  				       cfg->extra_buf, WL_ASSOC_INFO_MAX);
  	if (err) {
@@ -1620,7 +1620,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  		return err;
  	}
  	assoc_info =
-@@ -5361,7 +5405,7 @@ static s32 brcmf_get_assoc_ies(struct br
+@@ -5364,7 +5408,7 @@ static s32 brcmf_get_assoc_ies(struct br
  					       cfg->extra_buf,
  					       WL_ASSOC_INFO_MAX);
  		if (err) {
@@ -1629,7 +1629,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  			return err;
  		}
  		conn_info->req_ie_len = req_len;
-@@ -5379,7 +5423,7 @@ static s32 brcmf_get_assoc_ies(struct br
+@@ -5382,7 +5426,7 @@ static s32 brcmf_get_assoc_ies(struct br
  					       cfg->extra_buf,
  					       WL_ASSOC_INFO_MAX);
  		if (err) {
@@ -1638,7 +1638,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  			return err;
  		}
  		conn_info->resp_ie_len = resp_len;
-@@ -5508,6 +5552,7 @@ brcmf_notify_connect_status_ap(struct br
+@@ -5511,6 +5555,7 @@ brcmf_notify_connect_status_ap(struct br
  			       struct net_device *ndev,
  			       const struct brcmf_event_msg *e, void *data)
  {
@@ -1646,7 +1646,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  	static int generation;
  	u32 event = e->event_code;
  	u32 reason = e->reason;
-@@ -5525,7 +5570,7 @@ brcmf_notify_connect_status_ap(struct br
+@@ -5528,7 +5573,7 @@ brcmf_notify_connect_status_ap(struct br
  	if (((event == BRCMF_E_ASSOC_IND) || (event == BRCMF_E_REASSOC_IND)) &&
  	    (reason == BRCMF_E_STATUS_SUCCESS)) {
  		if (!data) {
@@ -1655,7 +1655,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  			return -EINVAL;
  		}
  
-@@ -5817,6 +5862,7 @@ static void init_vif_event(struct brcmf_
+@@ -5820,6 +5865,7 @@ static void init_vif_event(struct brcmf_
  
  static s32 brcmf_dongle_roam(struct brcmf_if *ifp)
  {
@@ -1663,7 +1663,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  	s32 err;
  	u32 bcn_timeout;
  	__le32 roamtrigger[2];
-@@ -5829,7 +5875,7 @@ static s32 brcmf_dongle_roam(struct brcm
+@@ -5832,7 +5878,7 @@ static s32 brcmf_dongle_roam(struct brcm
  		bcn_timeout = BRCMF_DEFAULT_BCN_TIMEOUT_ROAM_ON;
  	err = brcmf_fil_iovar_int_set(ifp, "bcn_timeout", bcn_timeout);
  	if (err) {
@@ -1672,7 +1672,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  		goto roam_setup_done;
  	}
  
-@@ -5841,7 +5887,7 @@ static s32 brcmf_dongle_roam(struct brcm
+@@ -5844,7 +5890,7 @@ static s32 brcmf_dongle_roam(struct brcm
  	err = brcmf_fil_iovar_int_set(ifp, "roam_off",
  				      ifp->drvr->settings->roamoff);
  	if (err) {
@@ -1681,7 +1681,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  		goto roam_setup_done;
  	}
  
-@@ -5850,7 +5896,7 @@ static s32 brcmf_dongle_roam(struct brcm
+@@ -5853,7 +5899,7 @@ static s32 brcmf_dongle_roam(struct brcm
  	err = brcmf_fil_cmd_data_set(ifp, BRCMF_C_SET_ROAM_TRIGGER,
  				     (void *)roamtrigger, sizeof(roamtrigger));
  	if (err) {
@@ -1690,7 +1690,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  		goto roam_setup_done;
  	}
  
-@@ -5859,7 +5905,7 @@ static s32 brcmf_dongle_roam(struct brcm
+@@ -5862,7 +5908,7 @@ static s32 brcmf_dongle_roam(struct brcm
  	err = brcmf_fil_cmd_data_set(ifp, BRCMF_C_SET_ROAM_DELTA,
  				     (void *)roam_delta, sizeof(roam_delta));
  	if (err) {
@@ -1699,7 +1699,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  		goto roam_setup_done;
  	}
  
-@@ -5870,25 +5916,26 @@ roam_setup_done:
+@@ -5873,25 +5919,26 @@ roam_setup_done:
  static s32
  brcmf_dongle_scantime(struct brcmf_if *ifp)
  {
@@ -1729,7 +1729,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  		goto dongle_scantime_out;
  	}
  
-@@ -5920,10 +5967,10 @@ static void brcmf_update_bw40_channel_fl
+@@ -5923,10 +5970,10 @@ static void brcmf_update_bw40_channel_fl
  static int brcmf_construct_chaninfo(struct brcmf_cfg80211_info *cfg,
  				    u32 bw_cap[])
  {
@@ -1741,7 +1741,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  	struct brcmf_chanspec_list *list;
  	struct brcmu_chan ch;
  	int err;
-@@ -5942,11 +5989,10 @@ static int brcmf_construct_chaninfo(stru
+@@ -5945,11 +5992,10 @@ static int brcmf_construct_chaninfo(stru
  	err = brcmf_fil_iovar_data_get(ifp, "chanspecs", pbuf,
  				       BRCMF_DCMD_MEDLEN);
  	if (err) {
@@ -1754,7 +1754,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  	band = wiphy->bands[NL80211_BAND_2GHZ];
  	if (band)
  		for (i = 0; i < band->n_channels; i++)
-@@ -5966,7 +6012,8 @@ static int brcmf_construct_chaninfo(stru
+@@ -5969,7 +6015,8 @@ static int brcmf_construct_chaninfo(stru
  		} else if (ch.band == BRCMU_CHAN_BAND_5G) {
  			band = wiphy->bands[NL80211_BAND_5GHZ];
  		} else {
@@ -1764,7 +1764,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  			continue;
  		}
  		if (!band)
-@@ -5989,8 +6036,8 @@ static int brcmf_construct_chaninfo(stru
+@@ -5992,8 +6039,8 @@ static int brcmf_construct_chaninfo(stru
  			/* It seems firmware supports some channel we never
  			 * considered. Something new in IEEE standard?
  			 */
@@ -1775,7 +1775,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  			continue;
  		}
  
-@@ -6036,6 +6083,7 @@ fail_pbuf:
+@@ -6039,6 +6086,7 @@ fail_pbuf:
  
  static int brcmf_enable_bw40_2g(struct brcmf_cfg80211_info *cfg)
  {
@@ -1783,7 +1783,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  	struct brcmf_if *ifp = brcmf_get_ifp(cfg->pub, 0);
  	struct ieee80211_supported_band *band;
  	struct brcmf_fil_bwcap_le band_bwcap;
-@@ -6082,7 +6130,7 @@ static int brcmf_enable_bw40_2g(struct b
+@@ -6085,7 +6133,7 @@ static int brcmf_enable_bw40_2g(struct b
  		err = brcmf_fil_iovar_data_get(ifp, "chanspecs", pbuf,
  					       BRCMF_DCMD_MEDLEN);
  		if (err) {
@@ -1792,7 +1792,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  			kfree(pbuf);
  			return err;
  		}
-@@ -6113,6 +6161,7 @@ static int brcmf_enable_bw40_2g(struct b
+@@ -6116,6 +6164,7 @@ static int brcmf_enable_bw40_2g(struct b
  
  static void brcmf_get_bwcap(struct brcmf_if *ifp, u32 bw_cap[])
  {
@@ -1800,7 +1800,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  	u32 band, mimo_bwcap;
  	int err;
  
-@@ -6148,7 +6197,7 @@ static void brcmf_get_bwcap(struct brcmf
+@@ -6151,7 +6200,7 @@ static void brcmf_get_bwcap(struct brcmf
  		bw_cap[NL80211_BAND_5GHZ] |= WLC_BW_20MHZ_BIT;
  		break;
  	default:
@@ -1809,7 +1809,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  	}
  }
  
-@@ -6224,7 +6273,7 @@ static void brcmf_update_vht_cap(struct
+@@ -6227,7 +6276,7 @@ static void brcmf_update_vht_cap(struct
  static int brcmf_setup_wiphybands(struct brcmf_cfg80211_info *cfg)
  {
  	struct brcmf_if *ifp = brcmf_get_ifp(cfg->pub, 0);
@@ -1818,7 +1818,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  	u32 nmode = 0;
  	u32 vhtmode = 0;
  	u32 bw_cap[2] = { WLC_BW_20MHZ_BIT, WLC_BW_20MHZ_BIT };
-@@ -6240,7 +6289,7 @@ static int brcmf_setup_wiphybands(struct
+@@ -6243,7 +6292,7 @@ static int brcmf_setup_wiphybands(struct
  	(void)brcmf_fil_iovar_int_get(ifp, "vhtmode", &vhtmode);
  	err = brcmf_fil_iovar_int_get(ifp, "nmode", &nmode);
  	if (err) {
@@ -1827,7 +1827,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  	} else {
  		brcmf_get_bwcap(ifp, bw_cap);
  	}
-@@ -6250,7 +6299,7 @@ static int brcmf_setup_wiphybands(struct
+@@ -6253,7 +6302,7 @@ static int brcmf_setup_wiphybands(struct
  
  	err = brcmf_fil_iovar_int_get(ifp, "rxchain", &rxchain);
  	if (err) {
@@ -1836,7 +1836,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  		nchain = 1;
  	} else {
  		for (nchain = 0; rxchain; nchain++)
-@@ -6260,7 +6309,7 @@ static int brcmf_setup_wiphybands(struct
+@@ -6263,7 +6312,7 @@ static int brcmf_setup_wiphybands(struct
  
  	err = brcmf_construct_chaninfo(cfg, bw_cap);
  	if (err) {
@@ -1845,7 +1845,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  		return err;
  	}
  
-@@ -6272,7 +6321,6 @@ static int brcmf_setup_wiphybands(struct
+@@ -6275,7 +6324,6 @@ static int brcmf_setup_wiphybands(struct
  					      &txbf_bfr_cap);
  	}
  
@@ -1853,7 +1853,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  	for (i = 0; i < ARRAY_SIZE(wiphy->bands); i++) {
  		band = wiphy->bands[i];
  		if (band == NULL)
-@@ -6473,7 +6521,7 @@ static void brcmf_wiphy_wowl_params(stru
+@@ -6476,7 +6524,7 @@ static void brcmf_wiphy_wowl_params(stru
  	wowl = kmemdup(&brcmf_wowlan_support, sizeof(brcmf_wowlan_support),
  		       GFP_KERNEL);
  	if (!wowl) {
@@ -1862,7 +1862,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  		wiphy->wowlan = &brcmf_wowlan_support;
  		return;
  	}
-@@ -6570,7 +6618,7 @@ static int brcmf_setup_wiphy(struct wiph
+@@ -6573,7 +6621,7 @@ static int brcmf_setup_wiphy(struct wiph
  	err = brcmf_fil_cmd_data_get(ifp, BRCMF_C_GET_BANDLIST, &bandlist,
  				     sizeof(bandlist));
  	if (err) {
@@ -1871,7 +1871,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  		return err;
  	}
  	/* first entry in bandlist is number of bands */
-@@ -6619,6 +6667,7 @@ static int brcmf_setup_wiphy(struct wiph
+@@ -6622,6 +6670,7 @@ static int brcmf_setup_wiphy(struct wiph
  
  static s32 brcmf_config_dongle(struct brcmf_cfg80211_info *cfg)
  {
@@ -1879,7 +1879,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  	struct net_device *ndev;
  	struct wireless_dev *wdev;
  	struct brcmf_if *ifp;
-@@ -6656,7 +6705,7 @@ static s32 brcmf_config_dongle(struct br
+@@ -6659,7 +6708,7 @@ static s32 brcmf_config_dongle(struct br
  
  	err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_FAKEFRAG, 1);
  	if (err) {
@@ -1888,7 +1888,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  		goto default_conf_out;
  	}
  
-@@ -6848,8 +6897,8 @@ static void brcmf_cfg80211_reg_notifier(
+@@ -6851,8 +6900,8 @@ static void brcmf_cfg80211_reg_notifier(
  	/* ignore non-ISO3166 country codes */
  	for (i = 0; i < 2; i++)
  		if (req->alpha2[i] < 'A' || req->alpha2[i] > 'Z') {
@@ -1899,7 +1899,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  			return;
  		}
  
-@@ -6858,7 +6907,7 @@ static void brcmf_cfg80211_reg_notifier(
+@@ -6861,7 +6910,7 @@ static void brcmf_cfg80211_reg_notifier(
  
  	err = brcmf_fil_iovar_data_get(ifp, "country", &ccreq, sizeof(ccreq));
  	if (err) {
@@ -1908,7 +1908,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  		return;
  	}
  
-@@ -6868,7 +6917,7 @@ static void brcmf_cfg80211_reg_notifier(
+@@ -6871,7 +6920,7 @@ static void brcmf_cfg80211_reg_notifier(
  
  	err = brcmf_fil_iovar_data_set(ifp, "country", &ccreq, sizeof(ccreq));
  	if (err) {
@@ -1917,7 +1917,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  		return;
  	}
  	brcmf_setup_wiphybands(cfg);
-@@ -6914,13 +6963,13 @@ struct brcmf_cfg80211_info *brcmf_cfg802
+@@ -6917,13 +6966,13 @@ struct brcmf_cfg80211_info *brcmf_cfg802
  	u16 *cap = NULL;
  
  	if (!ndev) {
@@ -1933,7 +1933,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  		return NULL;
  	}
  
-@@ -6941,7 +6990,7 @@ struct brcmf_cfg80211_info *brcmf_cfg802
+@@ -6944,7 +6993,7 @@ struct brcmf_cfg80211_info *brcmf_cfg802
  
  	err = wl_init_priv(cfg);
  	if (err) {
@@ -1942,7 +1942,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  		brcmf_free_vif(vif);
  		goto wiphy_out;
  	}
-@@ -6950,7 +6999,7 @@ struct brcmf_cfg80211_info *brcmf_cfg802
+@@ -6953,7 +7002,7 @@ struct brcmf_cfg80211_info *brcmf_cfg802
  	/* determine d11 io type before wiphy setup */
  	err = brcmf_fil_cmd_int_get(ifp, BRCMF_C_GET_VERSION, &io_type);
  	if (err) {
@@ -1951,7 +1951,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  		goto priv_out;
  	}
  	cfg->d11inf.io_type = (u8)io_type;
-@@ -6984,13 +7033,13 @@ struct brcmf_cfg80211_info *brcmf_cfg802
+@@ -6987,13 +7036,13 @@ struct brcmf_cfg80211_info *brcmf_cfg802
  #endif
  	err = wiphy_register(wiphy);
  	if (err < 0) {
@@ -1967,7 +1967,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  		goto wiphy_unreg_out;
  	}
  
-@@ -7008,24 +7057,24 @@ struct brcmf_cfg80211_info *brcmf_cfg802
+@@ -7011,24 +7060,24 @@ struct brcmf_cfg80211_info *brcmf_cfg802
  
  	err = brcmf_fweh_activate_events(ifp);
  	if (err) {
@@ -1996,7 +1996,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  		brcmf_btcoex_detach(cfg);
  		brcmf_p2p_detach(&cfg->p2p);
  		goto wiphy_unreg_out;
-@@ -7045,7 +7094,7 @@ struct brcmf_cfg80211_info *brcmf_cfg802
+@@ -7048,7 +7097,7 @@ struct brcmf_cfg80211_info *brcmf_cfg802
  	/* (re-) activate FWEH event handling */
  	err = brcmf_fweh_activate_events(ifp);
  	if (err) {
diff --git a/package/kernel/mac80211/patches/brcm/351-v5.1-0001-brcmfmac-improve-code-handling-bandwidth-of-firmware.patch b/package/kernel/mac80211/patches/brcm/351-v5.1-0001-brcmfmac-improve-code-handling-bandwidth-of-firmware.patch
index b28ff817ea..4433313b60 100644
--- a/package/kernel/mac80211/patches/brcm/351-v5.1-0001-brcmfmac-improve-code-handling-bandwidth-of-firmware.patch
+++ b/package/kernel/mac80211/patches/brcm/351-v5.1-0001-brcmfmac-improve-code-handling-bandwidth-of-firmware.patch
@@ -18,7 +18,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
 
 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
 +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
-@@ -6047,11 +6047,18 @@ static int brcmf_construct_chaninfo(stru
+@@ -6050,11 +6050,18 @@ static int brcmf_construct_chaninfo(stru
  		/* assuming the chanspecs order is HT20,
  		 * HT40 upper, HT40 lower, and VHT80.
  		 */
diff --git a/package/kernel/mac80211/patches/brcm/351-v5.1-0002-brcmfmac-support-firmware-reporting-160-MHz-channels.patch b/package/kernel/mac80211/patches/brcm/351-v5.1-0002-brcmfmac-support-firmware-reporting-160-MHz-channels.patch
index 3d92f80b3e..20ff9b8b47 100644
--- a/package/kernel/mac80211/patches/brcm/351-v5.1-0002-brcmfmac-support-firmware-reporting-160-MHz-channels.patch
+++ b/package/kernel/mac80211/patches/brcm/351-v5.1-0002-brcmfmac-support-firmware-reporting-160-MHz-channels.patch
@@ -18,7 +18,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
 
 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
 +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
-@@ -6048,6 +6048,9 @@ static int brcmf_construct_chaninfo(stru
+@@ -6051,6 +6051,9 @@ static int brcmf_construct_chaninfo(stru
  		 * HT40 upper, HT40 lower, and VHT80.
  		 */
  		switch (ch.bw) {
diff --git a/package/kernel/mac80211/patches/brcm/352-v5.1-brcmfmac-rework-bphy_err-to-take-struct-brcmf_pub-ar.patch b/package/kernel/mac80211/patches/brcm/352-v5.1-brcmfmac-rework-bphy_err-to-take-struct-brcmf_pub-ar.patch
index bab3b3a204..79266778d3 100644
--- a/package/kernel/mac80211/patches/brcm/352-v5.1-brcmfmac-rework-bphy_err-to-take-struct-brcmf_pub-ar.patch
+++ b/package/kernel/mac80211/patches/brcm/352-v5.1-brcmfmac-rework-bphy_err-to-take-struct-brcmf_pub-ar.patch
@@ -1864,7 +1864,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  
  	return ret;
  }
-@@ -5381,7 +5425,7 @@ static void brcmf_clear_assoc_ies(struct
+@@ -5384,7 +5428,7 @@ static void brcmf_clear_assoc_ies(struct
  static s32 brcmf_get_assoc_ies(struct brcmf_cfg80211_info *cfg,
  			       struct brcmf_if *ifp)
  {
@@ -1873,7 +1873,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  	struct brcmf_cfg80211_assoc_ielen_le *assoc_info;
  	struct brcmf_cfg80211_connect_info *conn_info = cfg_to_conn(cfg);
  	u32 req_len;
-@@ -5393,7 +5437,7 @@ static s32 brcmf_get_assoc_ies(struct br
+@@ -5396,7 +5440,7 @@ static s32 brcmf_get_assoc_ies(struct br
  	err = brcmf_fil_iovar_data_get(ifp, "assoc_info",
  				       cfg->extra_buf, WL_ASSOC_INFO_MAX);
  	if (err) {
@@ -1882,7 +1882,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  		return err;
  	}
  	assoc_info =
-@@ -5405,7 +5449,7 @@ static s32 brcmf_get_assoc_ies(struct br
+@@ -5408,7 +5452,7 @@ static s32 brcmf_get_assoc_ies(struct br
  					       cfg->extra_buf,
  					       WL_ASSOC_INFO_MAX);
  		if (err) {
@@ -1891,7 +1891,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  			return err;
  		}
  		conn_info->req_ie_len = req_len;
-@@ -5423,7 +5467,7 @@ static s32 brcmf_get_assoc_ies(struct br
+@@ -5426,7 +5470,7 @@ static s32 brcmf_get_assoc_ies(struct br
  					       cfg->extra_buf,
  					       WL_ASSOC_INFO_MAX);
  		if (err) {
@@ -1900,7 +1900,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  			return err;
  		}
  		conn_info->resp_ie_len = resp_len;
-@@ -5552,7 +5596,7 @@ brcmf_notify_connect_status_ap(struct br
+@@ -5555,7 +5599,7 @@ brcmf_notify_connect_status_ap(struct br
  			       struct net_device *ndev,
  			       const struct brcmf_event_msg *e, void *data)
  {
@@ -1909,7 +1909,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  	static int generation;
  	u32 event = e->event_code;
  	u32 reason = e->reason;
-@@ -5570,7 +5614,7 @@ brcmf_notify_connect_status_ap(struct br
+@@ -5573,7 +5617,7 @@ brcmf_notify_connect_status_ap(struct br
  	if (((event == BRCMF_E_ASSOC_IND) || (event == BRCMF_E_REASSOC_IND)) &&
  	    (reason == BRCMF_E_STATUS_SUCCESS)) {
  		if (!data) {
@@ -1918,7 +1918,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  			return -EINVAL;
  		}
  
-@@ -5862,7 +5906,7 @@ static void init_vif_event(struct brcmf_
+@@ -5865,7 +5909,7 @@ static void init_vif_event(struct brcmf_
  
  static s32 brcmf_dongle_roam(struct brcmf_if *ifp)
  {
@@ -1927,7 +1927,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  	s32 err;
  	u32 bcn_timeout;
  	__le32 roamtrigger[2];
-@@ -5875,7 +5919,7 @@ static s32 brcmf_dongle_roam(struct brcm
+@@ -5878,7 +5922,7 @@ static s32 brcmf_dongle_roam(struct brcm
  		bcn_timeout = BRCMF_DEFAULT_BCN_TIMEOUT_ROAM_ON;
  	err = brcmf_fil_iovar_int_set(ifp, "bcn_timeout", bcn_timeout);
  	if (err) {
@@ -1936,7 +1936,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  		goto roam_setup_done;
  	}
  
-@@ -5887,7 +5931,7 @@ static s32 brcmf_dongle_roam(struct brcm
+@@ -5890,7 +5934,7 @@ static s32 brcmf_dongle_roam(struct brcm
  	err = brcmf_fil_iovar_int_set(ifp, "roam_off",
  				      ifp->drvr->settings->roamoff);
  	if (err) {
@@ -1945,7 +1945,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  		goto roam_setup_done;
  	}
  
-@@ -5896,7 +5940,7 @@ static s32 brcmf_dongle_roam(struct brcm
+@@ -5899,7 +5943,7 @@ static s32 brcmf_dongle_roam(struct brcm
  	err = brcmf_fil_cmd_data_set(ifp, BRCMF_C_SET_ROAM_TRIGGER,
  				     (void *)roamtrigger, sizeof(roamtrigger));
  	if (err) {
@@ -1954,7 +1954,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  		goto roam_setup_done;
  	}
  
-@@ -5905,7 +5949,7 @@ static s32 brcmf_dongle_roam(struct brcm
+@@ -5908,7 +5952,7 @@ static s32 brcmf_dongle_roam(struct brcm
  	err = brcmf_fil_cmd_data_set(ifp, BRCMF_C_SET_ROAM_DELTA,
  				     (void *)roam_delta, sizeof(roam_delta));
  	if (err) {
@@ -1963,7 +1963,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  		goto roam_setup_done;
  	}
  
-@@ -5916,26 +5960,26 @@ roam_setup_done:
+@@ -5919,26 +5963,26 @@ roam_setup_done:
  static s32
  brcmf_dongle_scantime(struct brcmf_if *ifp)
  {
@@ -1994,7 +1994,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  		goto dongle_scantime_out;
  	}
  
-@@ -5968,7 +6012,8 @@ static int brcmf_construct_chaninfo(stru
+@@ -5971,7 +6015,8 @@ static int brcmf_construct_chaninfo(stru
  				    u32 bw_cap[])
  {
  	struct wiphy *wiphy = cfg_to_wiphy(cfg);
@@ -2004,7 +2004,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  	struct ieee80211_supported_band *band;
  	struct ieee80211_channel *channel;
  	struct brcmf_chanspec_list *list;
-@@ -5989,7 +6034,7 @@ static int brcmf_construct_chaninfo(stru
+@@ -5992,7 +6037,7 @@ static int brcmf_construct_chaninfo(stru
  	err = brcmf_fil_iovar_data_get(ifp, "chanspecs", pbuf,
  				       BRCMF_DCMD_MEDLEN);
  	if (err) {
@@ -2013,7 +2013,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  		goto fail_pbuf;
  	}
  
-@@ -6012,7 +6057,7 @@ static int brcmf_construct_chaninfo(stru
+@@ -6015,7 +6060,7 @@ static int brcmf_construct_chaninfo(stru
  		} else if (ch.band == BRCMU_CHAN_BAND_5G) {
  			band = wiphy->bands[NL80211_BAND_5GHZ];
  		} else {
@@ -2022,7 +2022,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  				 ch.chspec);
  			continue;
  		}
-@@ -6036,7 +6081,7 @@ static int brcmf_construct_chaninfo(stru
+@@ -6039,7 +6084,7 @@ static int brcmf_construct_chaninfo(stru
  			/* It seems firmware supports some channel we never
  			 * considered. Something new in IEEE standard?
  			 */
@@ -2031,7 +2031,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  				 ch.control_ch_num);
  			continue;
  		}
-@@ -6093,8 +6138,8 @@ fail_pbuf:
+@@ -6096,8 +6141,8 @@ fail_pbuf:
  
  static int brcmf_enable_bw40_2g(struct brcmf_cfg80211_info *cfg)
  {
@@ -2042,7 +2042,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  	struct ieee80211_supported_band *band;
  	struct brcmf_fil_bwcap_le band_bwcap;
  	struct brcmf_chanspec_list *list;
-@@ -6140,7 +6185,7 @@ static int brcmf_enable_bw40_2g(struct b
+@@ -6143,7 +6188,7 @@ static int brcmf_enable_bw40_2g(struct b
  		err = brcmf_fil_iovar_data_get(ifp, "chanspecs", pbuf,
  					       BRCMF_DCMD_MEDLEN);
  		if (err) {
@@ -2051,7 +2051,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  			kfree(pbuf);
  			return err;
  		}
-@@ -6171,7 +6216,7 @@ static int brcmf_enable_bw40_2g(struct b
+@@ -6174,7 +6219,7 @@ static int brcmf_enable_bw40_2g(struct b
  
  static void brcmf_get_bwcap(struct brcmf_if *ifp, u32 bw_cap[])
  {
@@ -2060,7 +2060,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  	u32 band, mimo_bwcap;
  	int err;
  
-@@ -6207,7 +6252,7 @@ static void brcmf_get_bwcap(struct brcmf
+@@ -6210,7 +6255,7 @@ static void brcmf_get_bwcap(struct brcmf
  		bw_cap[NL80211_BAND_5GHZ] |= WLC_BW_20MHZ_BIT;
  		break;
  	default:
@@ -2069,7 +2069,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  	}
  }
  
-@@ -6282,7 +6327,8 @@ static void brcmf_update_vht_cap(struct
+@@ -6285,7 +6330,8 @@ static void brcmf_update_vht_cap(struct
  
  static int brcmf_setup_wiphybands(struct brcmf_cfg80211_info *cfg)
  {
@@ -2079,7 +2079,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  	struct wiphy *wiphy = cfg_to_wiphy(cfg);
  	u32 nmode = 0;
  	u32 vhtmode = 0;
-@@ -6299,7 +6345,7 @@ static int brcmf_setup_wiphybands(struct
+@@ -6302,7 +6348,7 @@ static int brcmf_setup_wiphybands(struct
  	(void)brcmf_fil_iovar_int_get(ifp, "vhtmode", &vhtmode);
  	err = brcmf_fil_iovar_int_get(ifp, "nmode", &nmode);
  	if (err) {
@@ -2088,7 +2088,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  	} else {
  		brcmf_get_bwcap(ifp, bw_cap);
  	}
-@@ -6309,7 +6355,7 @@ static int brcmf_setup_wiphybands(struct
+@@ -6312,7 +6358,7 @@ static int brcmf_setup_wiphybands(struct
  
  	err = brcmf_fil_iovar_int_get(ifp, "rxchain", &rxchain);
  	if (err) {
@@ -2097,7 +2097,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  		nchain = 1;
  	} else {
  		for (nchain = 0; rxchain; nchain++)
-@@ -6319,7 +6365,7 @@ static int brcmf_setup_wiphybands(struct
+@@ -6322,7 +6368,7 @@ static int brcmf_setup_wiphybands(struct
  
  	err = brcmf_construct_chaninfo(cfg, bw_cap);
  	if (err) {
@@ -2106,7 +2106,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  		return err;
  	}
  
-@@ -6526,12 +6572,13 @@ static void brcmf_wiphy_wowl_params(stru
+@@ -6529,12 +6575,13 @@ static void brcmf_wiphy_wowl_params(stru
  {
  #ifdef CONFIG_PM
  	struct brcmf_cfg80211_info *cfg = wiphy_to_cfg(wiphy);
@@ -2121,7 +2121,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  		wiphy->wowlan = &brcmf_wowlan_support;
  		return;
  	}
-@@ -6628,7 +6675,7 @@ static int brcmf_setup_wiphy(struct wiph
+@@ -6631,7 +6678,7 @@ static int brcmf_setup_wiphy(struct wiph
  	err = brcmf_fil_cmd_data_get(ifp, BRCMF_C_GET_BANDLIST, &bandlist,
  				     sizeof(bandlist));
  	if (err) {
@@ -2130,7 +2130,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  		return err;
  	}
  	/* first entry in bandlist is number of bands */
-@@ -6677,7 +6724,7 @@ static int brcmf_setup_wiphy(struct wiph
+@@ -6680,7 +6727,7 @@ static int brcmf_setup_wiphy(struct wiph
  
  static s32 brcmf_config_dongle(struct brcmf_cfg80211_info *cfg)
  {
@@ -2139,7 +2139,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  	struct net_device *ndev;
  	struct wireless_dev *wdev;
  	struct brcmf_if *ifp;
-@@ -6715,7 +6762,7 @@ static s32 brcmf_config_dongle(struct br
+@@ -6718,7 +6765,7 @@ static s32 brcmf_config_dongle(struct br
  
  	err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_FAKEFRAG, 1);
  	if (err) {
@@ -2148,7 +2148,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  		goto default_conf_out;
  	}
  
-@@ -6896,6 +6943,7 @@ static void brcmf_cfg80211_reg_notifier(
+@@ -6899,6 +6946,7 @@ static void brcmf_cfg80211_reg_notifier(
  {
  	struct brcmf_cfg80211_info *cfg = wiphy_to_cfg(wiphy);
  	struct brcmf_if *ifp = brcmf_get_ifp(cfg->pub, 0);
@@ -2156,7 +2156,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  	struct brcmf_fil_country_le ccreq;
  	s32 err;
  	int i;
-@@ -6907,7 +6955,7 @@ static void brcmf_cfg80211_reg_notifier(
+@@ -6910,7 +6958,7 @@ static void brcmf_cfg80211_reg_notifier(
  	/* ignore non-ISO3166 country codes */
  	for (i = 0; i < 2; i++)
  		if (req->alpha2[i] < 'A' || req->alpha2[i] > 'Z') {
@@ -2165,7 +2165,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  				 req->alpha2[0], req->alpha2[1]);
  			return;
  		}
-@@ -6917,7 +6965,7 @@ static void brcmf_cfg80211_reg_notifier(
+@@ -6920,7 +6968,7 @@ static void brcmf_cfg80211_reg_notifier(
  
  	err = brcmf_fil_iovar_data_get(ifp, "country", &ccreq, sizeof(ccreq));
  	if (err) {
@@ -2174,7 +2174,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  		return;
  	}
  
-@@ -6927,7 +6975,7 @@ static void brcmf_cfg80211_reg_notifier(
+@@ -6930,7 +6978,7 @@ static void brcmf_cfg80211_reg_notifier(
  
  	err = brcmf_fil_iovar_data_set(ifp, "country", &ccreq, sizeof(ccreq));
  	if (err) {
@@ -2183,7 +2183,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  		return;
  	}
  	brcmf_setup_wiphybands(cfg);
-@@ -6973,13 +7021,13 @@ struct brcmf_cfg80211_info *brcmf_cfg802
+@@ -6976,13 +7024,13 @@ struct brcmf_cfg80211_info *brcmf_cfg802
  	u16 *cap = NULL;
  
  	if (!ndev) {
@@ -2199,7 +2199,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  		return NULL;
  	}
  
-@@ -7000,7 +7048,7 @@ struct brcmf_cfg80211_info *brcmf_cfg802
+@@ -7003,7 +7051,7 @@ struct brcmf_cfg80211_info *brcmf_cfg802
  
  	err = wl_init_priv(cfg);
  	if (err) {
@@ -2208,7 +2208,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  		brcmf_free_vif(vif);
  		goto wiphy_out;
  	}
-@@ -7009,7 +7057,7 @@ struct brcmf_cfg80211_info *brcmf_cfg802
+@@ -7012,7 +7060,7 @@ struct brcmf_cfg80211_info *brcmf_cfg802
  	/* determine d11 io type before wiphy setup */
  	err = brcmf_fil_cmd_int_get(ifp, BRCMF_C_GET_VERSION, &io_type);
  	if (err) {
@@ -2217,7 +2217,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  		goto priv_out;
  	}
  	cfg->d11inf.io_type = (u8)io_type;
-@@ -7043,13 +7091,13 @@ struct brcmf_cfg80211_info *brcmf_cfg802
+@@ -7046,13 +7094,13 @@ struct brcmf_cfg80211_info *brcmf_cfg802
  #endif
  	err = wiphy_register(wiphy);
  	if (err < 0) {
@@ -2233,7 +2233,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  		goto wiphy_unreg_out;
  	}
  
-@@ -7067,24 +7115,24 @@ struct brcmf_cfg80211_info *brcmf_cfg802
+@@ -7070,24 +7118,24 @@ struct brcmf_cfg80211_info *brcmf_cfg802
  
  	err = brcmf_fweh_activate_events(ifp);
  	if (err) {
@@ -2262,7 +2262,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  		brcmf_btcoex_detach(cfg);
  		brcmf_p2p_detach(&cfg->p2p);
  		goto wiphy_unreg_out;
-@@ -7104,7 +7152,7 @@ struct brcmf_cfg80211_info *brcmf_cfg802
+@@ -7107,7 +7155,7 @@ struct brcmf_cfg80211_info *brcmf_cfg802
  	/* (re-) activate FWEH event handling */
  	err = brcmf_fweh_activate_events(ifp);
  	if (err) {
diff --git a/package/kernel/mac80211/patches/brcm/383-v5.4-0002-brcmfmac-enable-DFS_OFFLOAD-extended-feature-if-supp.patch b/package/kernel/mac80211/patches/brcm/383-v5.4-0002-brcmfmac-enable-DFS_OFFLOAD-extended-feature-if-supp.patch
index 7048d1c690..a631af62e2 100644
--- a/package/kernel/mac80211/patches/brcm/383-v5.4-0002-brcmfmac-enable-DFS_OFFLOAD-extended-feature-if-supp.patch
+++ b/package/kernel/mac80211/patches/brcm/383-v5.4-0002-brcmfmac-enable-DFS_OFFLOAD-extended-feature-if-supp.patch
@@ -19,7 +19,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
 
 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
 +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
-@@ -6725,6 +6725,11 @@ static int brcmf_setup_wiphy(struct wiph
+@@ -6728,6 +6728,11 @@ static int brcmf_setup_wiphy(struct wiph
  		}
  	}
  
diff --git a/package/kernel/mac80211/patches/brcm/392-v5.4-0001-brcmfmac-move-cfg80211_ops-pointer-to-another-struct.patch b/package/kernel/mac80211/patches/brcm/392-v5.4-0001-brcmfmac-move-cfg80211_ops-pointer-to-another-struct.patch
index a56be4d35c..29936a0df7 100644
--- a/package/kernel/mac80211/patches/brcm/392-v5.4-0001-brcmfmac-move-cfg80211_ops-pointer-to-another-struct.patch
+++ b/package/kernel/mac80211/patches/brcm/392-v5.4-0001-brcmfmac-move-cfg80211_ops-pointer-to-another-struct.patch
@@ -24,7 +24,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
 
 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
 +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
-@@ -7194,7 +7194,6 @@ void brcmf_cfg80211_detach(struct brcmf_
+@@ -7197,7 +7197,6 @@ void brcmf_cfg80211_detach(struct brcmf_
  	brcmf_pno_detach(cfg);
  	brcmf_btcoex_detach(cfg);
  	wiphy_unregister(cfg->wiphy);
diff --git a/package/kernel/mac80211/patches/brcm/414-v5.6-0004-brcmfmac-make-errors-when-setting-roaming-parameters.patch b/package/kernel/mac80211/patches/brcm/414-v5.6-0004-brcmfmac-make-errors-when-setting-roaming-parameters.patch
index b15907217e..bdc5ab9ee3 100644
--- a/package/kernel/mac80211/patches/brcm/414-v5.6-0004-brcmfmac-make-errors-when-setting-roaming-parameters.patch
+++ b/package/kernel/mac80211/patches/brcm/414-v5.6-0004-brcmfmac-make-errors-when-setting-roaming-parameters.patch
@@ -16,7 +16,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
 
 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
 +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
-@@ -5936,19 +5936,17 @@ static s32 brcmf_dongle_roam(struct brcm
+@@ -5939,19 +5939,17 @@ static s32 brcmf_dongle_roam(struct brcm
  	roamtrigger[1] = cpu_to_le32(BRCM_BAND_ALL);
  	err = brcmf_fil_cmd_data_set(ifp, BRCMF_C_SET_ROAM_TRIGGER,
  				     (void *)roamtrigger, sizeof(roamtrigger));
diff --git a/package/kernel/mac80211/patches/brcm/414-v5.6-0006-brcmfmac-add-RSDB-condition-when-setting-interface-c.patch b/package/kernel/mac80211/patches/brcm/414-v5.6-0006-brcmfmac-add-RSDB-condition-when-setting-interface-c.patch
index c56ae2c248..a62ac68f2e 100644
--- a/package/kernel/mac80211/patches/brcm/414-v5.6-0006-brcmfmac-add-RSDB-condition-when-setting-interface-c.patch
+++ b/package/kernel/mac80211/patches/brcm/414-v5.6-0006-brcmfmac-add-RSDB-condition-when-setting-interface-c.patch
@@ -20,7 +20,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
 
 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
 +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
-@@ -6444,6 +6444,9 @@ brcmf_txrx_stypes[NUM_NL80211_IFTYPES] =
+@@ -6447,6 +6447,9 @@ brcmf_txrx_stypes[NUM_NL80211_IFTYPES] =
   *	#STA <= 1, #AP <= 1, channels = 1, 2 total
   *	#AP <= 4, matching BI, channels = 1, 4 total
   *
@@ -30,7 +30,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
   * p2p, no mchan, and mbss:
   *
   *	#STA <= 1, #P2P-DEV <= 1, #{P2P-CL, P2P-GO} <= 1, channels = 1, 3 total
-@@ -6455,6 +6458,10 @@ brcmf_txrx_stypes[NUM_NL80211_IFTYPES] =
+@@ -6458,6 +6461,10 @@ brcmf_txrx_stypes[NUM_NL80211_IFTYPES] =
   *	#STA <= 1, #P2P-DEV <= 1, #{P2P-CL, P2P-GO} <= 1, channels = 2, 3 total
   *	#STA <= 1, #P2P-DEV <= 1, #AP <= 1, #P2P-CL <= 1, channels = 1, 4 total
   *	#AP <= 4, matching BI, channels = 1, 4 total
@@ -41,7 +41,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
   */
  static int brcmf_setup_ifmodes(struct wiphy *wiphy, struct brcmf_if *ifp)
  {
-@@ -6462,13 +6469,14 @@ static int brcmf_setup_ifmodes(struct wi
+@@ -6465,13 +6472,14 @@ static int brcmf_setup_ifmodes(struct wi
  	struct ieee80211_iface_limit *c0_limits = NULL;
  	struct ieee80211_iface_limit *p2p_limits = NULL;
  	struct ieee80211_iface_limit *mbss_limits = NULL;
@@ -58,7 +58,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  	combo = kcalloc(n_combos, sizeof(*combo), GFP_KERNEL);
  	if (!combo)
  		goto err;
-@@ -6479,16 +6487,36 @@ static int brcmf_setup_ifmodes(struct wi
+@@ -6482,16 +6490,36 @@ static int brcmf_setup_ifmodes(struct wi
  
  	c = 0;
  	i = 0;
@@ -99,7 +99,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  		wiphy->interface_modes |= BIT(NL80211_IFTYPE_P2P_CLIENT) |
  					  BIT(NL80211_IFTYPE_P2P_GO) |
  					  BIT(NL80211_IFTYPE_P2P_DEVICE);
-@@ -6497,16 +6525,26 @@ static int brcmf_setup_ifmodes(struct wi
+@@ -6500,16 +6528,26 @@ static int brcmf_setup_ifmodes(struct wi
  		c0_limits[i].max = 1;
  		c0_limits[i++].types = BIT(NL80211_IFTYPE_P2P_CLIENT) |
  				       BIT(NL80211_IFTYPE_P2P_GO);
diff --git a/package/kernel/mac80211/patches/brcm/419-v5.6-0001-brcmfmac-simplify-building-interface-combinations.patch b/package/kernel/mac80211/patches/brcm/419-v5.6-0001-brcmfmac-simplify-building-interface-combinations.patch
index 8c231cbe13..1623d483d7 100644
--- a/package/kernel/mac80211/patches/brcm/419-v5.6-0001-brcmfmac-simplify-building-interface-combinations.patch
+++ b/package/kernel/mac80211/patches/brcm/419-v5.6-0001-brcmfmac-simplify-building-interface-combinations.patch
@@ -18,7 +18,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
 
 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
 +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
-@@ -6471,12 +6471,13 @@ static int brcmf_setup_ifmodes(struct wi
+@@ -6474,12 +6474,13 @@ static int brcmf_setup_ifmodes(struct wi
  	struct ieee80211_iface_limit *c0_limits = NULL;
  	struct ieee80211_iface_limit *p2p_limits = NULL;
  	struct ieee80211_iface_limit *mbss_limits = NULL;
@@ -33,7 +33,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  
  	n_combos = 1 + !!(p2p && !rsdb) + !!mbss;
  	combo = kcalloc(n_combos, sizeof(*combo), GFP_KERNEL);
-@@ -6486,6 +6487,10 @@ static int brcmf_setup_ifmodes(struct wi
+@@ -6489,6 +6490,10 @@ static int brcmf_setup_ifmodes(struct wi
  	wiphy->interface_modes = BIT(NL80211_IFTYPE_STATION) |
  				 BIT(NL80211_IFTYPE_ADHOC) |
  				 BIT(NL80211_IFTYPE_AP);
@@ -44,7 +44,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  
  	c = 0;
  	i = 0;
-@@ -6497,48 +6502,28 @@ static int brcmf_setup_ifmodes(struct wi
+@@ -6500,48 +6505,28 @@ static int brcmf_setup_ifmodes(struct wi
  		c0_limits = kcalloc(2, sizeof(*c0_limits), GFP_KERNEL);
  	if (!c0_limits)
  		goto err;
diff --git a/package/kernel/mac80211/patches/brcm/419-v5.6-0002-brcmfmac-add-initial-support-for-monitor-mode.patch b/package/kernel/mac80211/patches/brcm/419-v5.6-0002-brcmfmac-add-initial-support-for-monitor-mode.patch
index f64ff1e82a..7cc93fb224 100644
--- a/package/kernel/mac80211/patches/brcm/419-v5.6-0002-brcmfmac-add-initial-support-for-monitor-mode.patch
+++ b/package/kernel/mac80211/patches/brcm/419-v5.6-0002-brcmfmac-add-initial-support-for-monitor-mode.patch
@@ -139,7 +139,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  	case NL80211_IFTYPE_AP:
  		return brcmf_cfg80211_del_ap_iface(wiphy, wdev);
  	case NL80211_IFTYPE_P2P_CLIENT:
-@@ -6471,9 +6550,10 @@ static int brcmf_setup_ifmodes(struct wi
+@@ -6474,9 +6553,10 @@ static int brcmf_setup_ifmodes(struct wi
  	struct ieee80211_iface_limit *c0_limits = NULL;
  	struct ieee80211_iface_limit *p2p_limits = NULL;
  	struct ieee80211_iface_limit *mbss_limits = NULL;
@@ -152,7 +152,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  	mbss = brcmf_feat_is_enabled(ifp, BRCMF_FEAT_MBSS);
  	p2p = brcmf_feat_is_enabled(ifp, BRCMF_FEAT_P2P);
  	rsdb = brcmf_feat_is_enabled(ifp, BRCMF_FEAT_RSDB);
-@@ -6487,6 +6567,8 @@ static int brcmf_setup_ifmodes(struct wi
+@@ -6490,6 +6570,8 @@ static int brcmf_setup_ifmodes(struct wi
  	wiphy->interface_modes = BIT(NL80211_IFTYPE_STATION) |
  				 BIT(NL80211_IFTYPE_ADHOC) |
  				 BIT(NL80211_IFTYPE_AP);
@@ -161,7 +161,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  	if (p2p)
  		wiphy->interface_modes |= BIT(NL80211_IFTYPE_P2P_CLIENT) |
  					  BIT(NL80211_IFTYPE_P2P_GO) |
-@@ -6494,18 +6576,18 @@ static int brcmf_setup_ifmodes(struct wi
+@@ -6497,18 +6579,18 @@ static int brcmf_setup_ifmodes(struct wi
  
  	c = 0;
  	i = 0;
@@ -186,7 +186,7 @@ Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
  	if (p2p) {
  		c0_limits[i].max = 1;
  		c0_limits[i++].types = BIT(NL80211_IFTYPE_P2P_DEVICE);
-@@ -6554,14 +6636,20 @@ static int brcmf_setup_ifmodes(struct wi
+@@ -6557,14 +6639,20 @@ static int brcmf_setup_ifmodes(struct wi
  	if (mbss) {
  		c++;
  		i = 0;
diff --git a/package/kernel/mac80211/patches/subsys/150-disable_addr_notifier.patch b/package/kernel/mac80211/patches/subsys/150-disable_addr_notifier.patch
index 1581b3400b..ab80887bde 100644
--- a/package/kernel/mac80211/patches/subsys/150-disable_addr_notifier.patch
+++ b/package/kernel/mac80211/patches/subsys/150-disable_addr_notifier.patch
@@ -18,7 +18,7 @@
  static int ieee80211_ifa6_changed(struct notifier_block *nb,
  				  unsigned long data, void *arg)
  {
-@@ -1168,14 +1168,14 @@ int ieee80211_register_hw(struct ieee802
+@@ -1179,14 +1179,14 @@ int ieee80211_register_hw(struct ieee802
  
  	rtnl_unlock();
  
@@ -35,7 +35,7 @@
  	local->ifa6_notifier.notifier_call = ieee80211_ifa6_changed;
  	result = register_inet6addr_notifier(&local->ifa6_notifier);
  	if (result)
-@@ -1184,13 +1184,13 @@ int ieee80211_register_hw(struct ieee802
+@@ -1195,13 +1195,13 @@ int ieee80211_register_hw(struct ieee802
  
  	return 0;
  
@@ -52,7 +52,7 @@
   fail_ifa:
  #endif
  	rtnl_lock();
-@@ -1219,10 +1219,10 @@ void ieee80211_unregister_hw(struct ieee
+@@ -1230,10 +1230,10 @@ void ieee80211_unregister_hw(struct ieee
  	tasklet_kill(&local->tx_pending_tasklet);
  	tasklet_kill(&local->tasklet);
  
diff --git a/package/kernel/mac80211/patches/subsys/210-ap_scan.patch b/package/kernel/mac80211/patches/subsys/210-ap_scan.patch
index c63275baaf..57fd427f8f 100644
--- a/package/kernel/mac80211/patches/subsys/210-ap_scan.patch
+++ b/package/kernel/mac80211/patches/subsys/210-ap_scan.patch
@@ -1,6 +1,6 @@
 --- a/net/mac80211/cfg.c
 +++ b/net/mac80211/cfg.c
-@@ -2190,7 +2190,7 @@ static int ieee80211_scan(struct wiphy *
+@@ -2192,7 +2192,7 @@ static int ieee80211_scan(struct wiphy *
  		 * the  frames sent while scanning on other channel will be
  		 * lost)
  		 */
diff --git a/package/kernel/mac80211/patches/subsys/300-mac80211-add-stop-start-logic-for-software-TXQs.patch b/package/kernel/mac80211/patches/subsys/300-mac80211-add-stop-start-logic-for-software-TXQs.patch
index 5f858000c3..b4fbf136ee 100644
--- a/package/kernel/mac80211/patches/subsys/300-mac80211-add-stop-start-logic-for-software-TXQs.patch
+++ b/package/kernel/mac80211/patches/subsys/300-mac80211-add-stop-start-logic-for-software-TXQs.patch
@@ -69,7 +69,7 @@ Signed-off-by: Johannes Berg <johannes.berg at intel.com>
  };
  
  /**
-@@ -1226,6 +1227,7 @@ struct ieee80211_local {
+@@ -1227,6 +1228,7 @@ struct ieee80211_local {
  
  	struct sk_buff_head pending[IEEE80211_MAX_QUEUES];
  	struct tasklet_struct tx_pending_tasklet;
@@ -77,7 +77,7 @@ Signed-off-by: Johannes Berg <johannes.berg at intel.com>
  
  	atomic_t agg_queue_stop[IEEE80211_MAX_QUEUES];
  
-@@ -2047,6 +2049,7 @@ void ieee80211_txq_remove_vlan(struct ie
+@@ -2048,6 +2050,7 @@ void ieee80211_txq_remove_vlan(struct ie
  			       struct ieee80211_sub_if_data *sdata);
  void ieee80211_fill_txq_stats(struct cfg80211_txq_stats *txqstats,
  			      struct txq_info *txqi);
diff --git a/package/kernel/mac80211/patches/subsys/305-mac80211-minstrel-merge-with-minstrel_ht-always-enab.patch b/package/kernel/mac80211/patches/subsys/305-mac80211-minstrel-merge-with-minstrel_ht-always-enab.patch
index 785ca3cc18..75ba462070 100644
--- a/package/kernel/mac80211/patches/subsys/305-mac80211-minstrel-merge-with-minstrel_ht-always-enab.patch
+++ b/package/kernel/mac80211/patches/subsys/305-mac80211-minstrel-merge-with-minstrel_ht-always-enab.patch
@@ -67,7 +67,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  ccflags-y += -DDEBUG
 --- a/net/mac80211/main.c
 +++ b/net/mac80211/main.c
-@@ -1308,18 +1308,12 @@ static int __init ieee80211_init(void)
+@@ -1319,18 +1319,12 @@ static int __init ieee80211_init(void)
  	if (ret)
  		return ret;
  
@@ -86,7 +86,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	rc80211_minstrel_exit();
  
  	return ret;
-@@ -1327,7 +1321,6 @@ static int __init ieee80211_init(void)
+@@ -1338,7 +1332,6 @@ static int __init ieee80211_init(void)
  
  static void __exit ieee80211_exit(void)
  {
diff --git a/package/kernel/mac80211/patches/subsys/320-mac80211-Add-TXQ-scheduling-API.patch b/package/kernel/mac80211/patches/subsys/320-mac80211-Add-TXQ-scheduling-API.patch
index 71088be87a..3c428823c1 100644
--- a/package/kernel/mac80211/patches/subsys/320-mac80211-Add-TXQ-scheduling-API.patch
+++ b/package/kernel/mac80211/patches/subsys/320-mac80211-Add-TXQ-scheduling-API.patch
@@ -163,7 +163,7 @@ Signed-off-by: Johannes Berg <johannes.berg at intel.com>
  	unsigned long flags;
  
  	/* keep last! */
-@@ -1127,6 +1131,11 @@ struct ieee80211_local {
+@@ -1128,6 +1132,11 @@ struct ieee80211_local {
  	struct codel_vars *cvars;
  	struct codel_params cparams;
  
diff --git a/package/kernel/mac80211/patches/subsys/322-mac80211-Add-airtime-accounting-and-scheduling-to-TX.patch b/package/kernel/mac80211/patches/subsys/322-mac80211-Add-airtime-accounting-and-scheduling-to-TX.patch
index d028ee2496..666dff8aa0 100644
--- a/package/kernel/mac80211/patches/subsys/322-mac80211-Add-airtime-accounting-and-scheduling-to-TX.patch
+++ b/package/kernel/mac80211/patches/subsys/322-mac80211-Add-airtime-accounting-and-scheduling-to-TX.patch
@@ -240,7 +240,7 @@ Signed-off-by: Johannes Berg <johannes.berg at intel.com>
  				   sta->debugfs_dir,
 --- a/net/mac80211/ieee80211_i.h
 +++ b/net/mac80211/ieee80211_i.h
-@@ -1136,6 +1136,8 @@ struct ieee80211_local {
+@@ -1137,6 +1137,8 @@ struct ieee80211_local {
  	struct list_head active_txqs[IEEE80211_NUM_ACS];
  	u16 schedule_round[IEEE80211_NUM_ACS];
  
@@ -259,7 +259,7 @@ Signed-off-by: Johannes Berg <johannes.berg at intel.com>
  
  	INIT_LIST_HEAD(&local->chanctx_list);
  	mutex_init(&local->chanctx_mtx);
-@@ -1142,6 +1143,9 @@ int ieee80211_register_hw(struct ieee802
+@@ -1153,6 +1154,9 @@ int ieee80211_register_hw(struct ieee802
  	if (!local->hw.max_nan_de_entries)
  		local->hw.max_nan_de_entries = IEEE80211_MAX_NAN_INSTANCE_ID;
  
diff --git a/package/kernel/mac80211/patches/subsys/351-mac80211-add-TX_NEEDS_ALIGNED4_SKBS-hw-flag.patch b/package/kernel/mac80211/patches/subsys/351-mac80211-add-TX_NEEDS_ALIGNED4_SKBS-hw-flag.patch
index 3a210ff238..f6a9591c7f 100644
--- a/package/kernel/mac80211/patches/subsys/351-mac80211-add-TX_NEEDS_ALIGNED4_SKBS-hw-flag.patch
+++ b/package/kernel/mac80211/patches/subsys/351-mac80211-add-TX_NEEDS_ALIGNED4_SKBS-hw-flag.patch
@@ -81,7 +81,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
   * mac80211 is capable of taking advantage of many hardware
 --- a/net/mac80211/iface.c
 +++ b/net/mac80211/iface.c
-@@ -1871,6 +1871,10 @@ int ieee80211_if_add(struct ieee80211_lo
+@@ -1877,6 +1877,10 @@ int ieee80211_if_add(struct ieee80211_lo
  					+ 8 /* rfc1042/bridge tunnel */
  					- ETH_HLEN /* ethernet hard_header_len */
  					+ IEEE80211_ENCRYPT_HEADROOM;
@@ -94,7 +94,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  		ret = dev_alloc_name(ndev, ndev->name);
 --- a/net/mac80211/mesh_pathtbl.c
 +++ b/net/mac80211/mesh_pathtbl.c
-@@ -105,13 +105,15 @@ void mesh_path_assign_nexthop(struct mes
+@@ -106,13 +106,15 @@ void mesh_path_assign_nexthop(struct mes
  static void prepare_for_gate(struct sk_buff *skb, char *dst_addr,
  			     struct mesh_path *gate_mpath)
  {
diff --git a/package/kernel/mac80211/patches/subsys/353-mac80211-mesh-drop-redundant-rcu_read_lock-unlock-ca.patch b/package/kernel/mac80211/patches/subsys/353-mac80211-mesh-drop-redundant-rcu_read_lock-unlock-ca.patch
index 0e13e2fecc..92dbcad676 100644
--- a/package/kernel/mac80211/patches/subsys/353-mac80211-mesh-drop-redundant-rcu_read_lock-unlock-ca.patch
+++ b/package/kernel/mac80211/patches/subsys/353-mac80211-mesh-drop-redundant-rcu_read_lock-unlock-ca.patch
@@ -85,7 +85,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  void mesh_path_timer(struct timer_list *t)
 --- a/net/mac80211/mesh_pathtbl.c
 +++ b/net/mac80211/mesh_pathtbl.c
-@@ -219,7 +219,7 @@ static struct mesh_path *mpath_lookup(st
+@@ -220,7 +220,7 @@ static struct mesh_path *mpath_lookup(st
  {
  	struct mesh_path *mpath;
  
diff --git a/package/kernel/mac80211/patches/subsys/365-mac80211-IBSS-send-deauth-when-expiring-inactive-STA.patch b/package/kernel/mac80211/patches/subsys/365-mac80211-IBSS-send-deauth-when-expiring-inactive-STA.patch
index 5fa8fcddcb..90722a32ce 100644
--- a/package/kernel/mac80211/patches/subsys/365-mac80211-IBSS-send-deauth-when-expiring-inactive-STA.patch
+++ b/package/kernel/mac80211/patches/subsys/365-mac80211-IBSS-send-deauth-when-expiring-inactive-STA.patch
@@ -54,7 +54,7 @@ Signed-off-by: Johannes Berg <johannes.berg at intel.com>
  	}
 --- a/net/mac80211/ieee80211_i.h
 +++ b/net/mac80211/ieee80211_i.h
-@@ -2068,7 +2068,8 @@ void ieee80211_send_auth(struct ieee8021
+@@ -2069,7 +2069,8 @@ void ieee80211_send_auth(struct ieee8021
  			 const u8 *da, const u8 *key, u8 key_len, u8 key_idx,
  			 u32 tx_flags);
  void ieee80211_send_deauth_disassoc(struct ieee80211_sub_if_data *sdata,
diff --git a/package/kernel/mac80211/patches/subsys/369-mac80211-don-t-set-set-TDLS-STA-bandwidth-wider-than.patch b/package/kernel/mac80211/patches/subsys/369-mac80211-don-t-set-set-TDLS-STA-bandwidth-wider-than.patch
deleted file mode 100644
index a88b24d402..0000000000
--- a/package/kernel/mac80211/patches/subsys/369-mac80211-don-t-set-set-TDLS-STA-bandwidth-wider-than.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-From ebbd7dc7ca856a182769c17c4c8a739cedc064c4 Mon Sep 17 00:00:00 2001
-From: Johannes Berg <johannes.berg at intel.com>
-Date: Sun, 6 Dec 2020 14:54:44 +0200
-Subject: [PATCH] mac80211: don't set set TDLS STA bandwidth wider than
- possible
-
-[ Upstream commit f65607cdbc6b0da356ef5a22552ddd9313cf87a0 ]
-
-When we set up a TDLS station, we set sta->sta.bandwidth solely based
-on the capabilities, because the "what's the current bandwidth" check
-is bypassed and only applied for other types of stations.
-
-This leads to the unfortunate scenario that the sta->sta.bandwidth is
-160 MHz if both stations support it, but we never actually configure
-this bandwidth unless the AP is already using 160 MHz; even for wider
-bandwidth support we only go up to 80 MHz (at least right now.)
-
-For iwlwifi, this can also lead to firmware asserts, telling us that
-we've configured the TX rates for a higher bandwidth than is actually
-available due to the PHY configuration.
-
-For non-TDLS, we check against the interface's requested bandwidth,
-but we explicitly skip this check for TDLS to cope with the wider BW
-case. Change this to
- (a) still limit to the TDLS peer's own chandef, which gets factored
-     into the overall PHY configuration we request from the driver,
-     and
- (b) limit it to when the TDLS peer is authorized, because it's only
-     factored into the channel context in this case.
-
-Fixes: 504871e602d9 ("mac80211: fix bandwidth computation for TDLS peers")
-Signed-off-by: Johannes Berg <johannes.berg at intel.com>
-Signed-off-by: Luca Coelho <luciano.coelho at intel.com>
-Link: https://lore.kernel.org/r/iwlwifi.20201206145305.fcc7d29c4590.I11f77e9e25ddf871a3c8d5604650c763e2c5887a@changeid
-Signed-off-by: Johannes Berg <johannes.berg at intel.com>
-Signed-off-by: Sasha Levin <sashal at kernel.org>
----
- net/mac80211/vht.c | 14 ++++++++++----
- 1 file changed, 10 insertions(+), 4 deletions(-)
-
---- a/net/mac80211/vht.c
-+++ b/net/mac80211/vht.c
-@@ -421,12 +421,18 @@ enum ieee80211_sta_rx_bandwidth ieee8021
- 	 * IEEE80211-2016 specification makes higher bandwidth operation
- 	 * possible on the TDLS link if the peers have wider bandwidth
- 	 * capability.
-+	 *
-+	 * However, in this case, and only if the TDLS peer is authorized,
-+	 * limit to the tdls_chandef so that the configuration here isn't
-+	 * wider than what's actually requested on the channel context.
- 	 */
- 	if (test_sta_flag(sta, WLAN_STA_TDLS_PEER) &&
--	    test_sta_flag(sta, WLAN_STA_TDLS_WIDER_BW))
--		return bw;
--
--	bw = min(bw, ieee80211_chan_width_to_rx_bw(bss_width));
-+	    test_sta_flag(sta, WLAN_STA_TDLS_WIDER_BW) &&
-+	    test_sta_flag(sta, WLAN_STA_AUTHORIZED) &&
-+	    sta->tdls_chandef.chan)
-+		bw = min(bw, ieee80211_chan_width_to_rx_bw(sta->tdls_chandef.width));
-+	else
-+		bw = min(bw, ieee80211_chan_width_to_rx_bw(bss_width));
- 
- 	return bw;
- }
diff --git a/package/kernel/mac80211/patches/subsys/370-mac80211-pause-TX-while-changing-interface-type.patch b/package/kernel/mac80211/patches/subsys/370-mac80211-pause-TX-while-changing-interface-type.patch
deleted file mode 100644
index ce9776c112..0000000000
--- a/package/kernel/mac80211/patches/subsys/370-mac80211-pause-TX-while-changing-interface-type.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From b26b5e0861578fa7cdf444b1aa61d06f739eb306 Mon Sep 17 00:00:00 2001
-From: Johannes Berg <johannes.berg at intel.com>
-Date: Fri, 22 Jan 2021 17:11:16 +0100
-Subject: [PATCH] mac80211: pause TX while changing interface type
-
-[ Upstream commit 054c9939b4800a91475d8d89905827bf9e1ad97a ]
-
-syzbot reported a crash that happened when changing the interface
-type around a lot, and while it might have been easy to fix just
-the symptom there, a little deeper investigation found that really
-the reason is that we allowed packets to be transmitted while in
-the middle of changing the interface type.
-
-Disallow TX by stopping the queues while changing the type.
-
-Fixes: 34d4bc4d41d2 ("mac80211: support runtime interface type changes")
-Reported-by: syzbot+d7a3b15976bf7de2238a at syzkaller.appspotmail.com
-Link: https://lore.kernel.org/r/20210122171115.b321f98f4d4f.I6997841933c17b093535c31d29355be3c0c39628@changeid
-Signed-off-by: Johannes Berg <johannes.berg at intel.com>
-Signed-off-by: Sasha Levin <sashal at kernel.org>
----
- net/mac80211/ieee80211_i.h | 1 +
- net/mac80211/iface.c       | 6 ++++++
- 2 files changed, 7 insertions(+)
-
---- a/net/mac80211/ieee80211_i.h
-+++ b/net/mac80211/ieee80211_i.h
-@@ -1057,6 +1057,7 @@ enum queue_stop_reason {
- 	IEEE80211_QUEUE_STOP_REASON_FLUSH,
- 	IEEE80211_QUEUE_STOP_REASON_TDLS_TEARDOWN,
- 	IEEE80211_QUEUE_STOP_REASON_RESERVE_TID,
-+	IEEE80211_QUEUE_STOP_REASON_IFTYPE_CHANGE,
- 
- 	IEEE80211_QUEUE_STOP_REASONS,
- };
---- a/net/mac80211/iface.c
-+++ b/net/mac80211/iface.c
-@@ -1621,6 +1621,10 @@ static int ieee80211_runtime_change_ifty
- 	if (ret)
- 		return ret;
- 
-+	ieee80211_stop_vif_queues(local, sdata,
-+				  IEEE80211_QUEUE_STOP_REASON_IFTYPE_CHANGE);
-+	synchronize_net();
-+
- 	ieee80211_do_stop(sdata, false);
- 
- 	ieee80211_teardown_sdata(sdata);
-@@ -1641,6 +1645,8 @@ static int ieee80211_runtime_change_ifty
- 	err = ieee80211_do_open(&sdata->wdev, false);
- 	WARN(err, "type change: do_open returned %d", err);
- 
-+	ieee80211_wake_vif_queues(local, sdata,
-+				  IEEE80211_QUEUE_STOP_REASON_IFTYPE_CHANGE);
- 	return ret;
- }
- 
diff --git a/package/kernel/mac80211/patches/subsys/371-mac80211-fix-fast-rx-encryption-check.patch b/package/kernel/mac80211/patches/subsys/371-mac80211-fix-fast-rx-encryption-check.patch
deleted file mode 100644
index f6ce40ac24..0000000000
--- a/package/kernel/mac80211/patches/subsys/371-mac80211-fix-fast-rx-encryption-check.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From b70798906c4c85314511cf6d5cae98385861fc07 Mon Sep 17 00:00:00 2001
-From: Felix Fietkau <nbd at nbd.name>
-Date: Fri, 18 Dec 2020 19:47:17 +0100
-Subject: [PATCH] mac80211: fix fast-rx encryption check
-
-[ Upstream commit 622d3b4e39381262da7b18ca1ed1311df227de86 ]
-
-When using WEP, the default unicast key needs to be selected, instead of
-the STA PTK.
-
-Signed-off-by: Felix Fietkau <nbd at nbd.name>
-Link: https://lore.kernel.org/r/20201218184718.93650-5-nbd@nbd.name
-Signed-off-by: Johannes Berg <johannes.berg at intel.com>
-Signed-off-by: Sasha Levin <sashal at kernel.org>
----
- net/mac80211/rx.c | 2 ++
- 1 file changed, 2 insertions(+)
-
---- a/net/mac80211/rx.c
-+++ b/net/mac80211/rx.c
-@@ -4019,6 +4019,8 @@ void ieee80211_check_fast_rx(struct sta_
- 
- 	rcu_read_lock();
- 	key = rcu_dereference(sta->ptk[sta->ptk_idx]);
-+	if (!key)
-+		key = rcu_dereference(sdata->default_unicast_key);
- 	if (key) {
- 		switch (key->conf.cipher) {
- 		case WLAN_CIPHER_SUITE_TKIP:
diff --git a/package/kernel/mac80211/patches/subsys/372-mac80211-fix-station-rate-table-updates-on-assoc.patch b/package/kernel/mac80211/patches/subsys/372-mac80211-fix-station-rate-table-updates-on-assoc.patch
deleted file mode 100644
index 693904b495..0000000000
--- a/package/kernel/mac80211/patches/subsys/372-mac80211-fix-station-rate-table-updates-on-assoc.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 1d3a84f92f75bb0c2f981a75f507f55afed12f2c Mon Sep 17 00:00:00 2001
-From: Felix Fietkau <nbd at nbd.name>
-Date: Mon, 1 Feb 2021 09:33:24 +0100
-Subject: [PATCH] mac80211: fix station rate table updates on assoc
-
-commit 18fe0fae61252b5ae6e26553e2676b5fac555951 upstream.
-
-If the driver uses .sta_add, station entries are only uploaded after the sta
-is in assoc state. Fix early station rate table updates by deferring them
-until the sta has been uploaded.
-
-Cc: stable at vger.kernel.org
-Signed-off-by: Felix Fietkau <nbd at nbd.name>
-Link: https://lore.kernel.org/r/20210201083324.3134-1-nbd@nbd.name
-[use rcu_access_pointer() instead since we won't dereference here]
-Signed-off-by: Johannes Berg <johannes.berg at intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- net/mac80211/driver-ops.c | 5 ++++-
- net/mac80211/rate.c       | 3 ++-
- 2 files changed, 6 insertions(+), 2 deletions(-)
-
---- a/net/mac80211/driver-ops.c
-+++ b/net/mac80211/driver-ops.c
-@@ -128,8 +128,11 @@ int drv_sta_state(struct ieee80211_local
- 	} else if (old_state == IEEE80211_STA_AUTH &&
- 		   new_state == IEEE80211_STA_ASSOC) {
- 		ret = drv_sta_add(local, sdata, &sta->sta);
--		if (ret == 0)
-+		if (ret == 0) {
- 			sta->uploaded = true;
-+			if (rcu_access_pointer(sta->sta.rates))
-+				drv_sta_rate_tbl_update(local, sdata, &sta->sta);
-+		}
- 	} else if (old_state == IEEE80211_STA_ASSOC &&
- 		   new_state == IEEE80211_STA_AUTH) {
- 		drv_sta_remove(local, sdata, &sta->sta);
---- a/net/mac80211/rate.c
-+++ b/net/mac80211/rate.c
-@@ -941,7 +941,8 @@ int rate_control_set_rates(struct ieee80
- 	if (old)
- 		kfree_rcu(old, rcu_head);
- 
--	drv_sta_rate_tbl_update(hw_to_local(hw), sta->sdata, pubsta);
-+	if (sta->uploaded)
-+		drv_sta_rate_tbl_update(hw_to_local(hw), sta->sdata, pubsta);
- 
- 	ieee80211_sta_set_expected_throughput(pubsta, sta_get_expected_throughput(sta));
- 
diff --git a/package/kernel/mac80211/patches/subsys/373-mac80211-fix-potential-overflow-when-multiplying-to-.patch b/package/kernel/mac80211/patches/subsys/373-mac80211-fix-potential-overflow-when-multiplying-to-.patch
deleted file mode 100644
index f5d9d843f5..0000000000
--- a/package/kernel/mac80211/patches/subsys/373-mac80211-fix-potential-overflow-when-multiplying-to-.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 2a4b99ffcda9f6739d4deb7bd7d2e0ed8444dda7 Mon Sep 17 00:00:00 2001
-From: Colin Ian King <colin.king at canonical.com>
-Date: Fri, 5 Feb 2021 17:53:52 +0000
-Subject: [PATCH] mac80211: fix potential overflow when multiplying to u32
- integers
-
-[ Upstream commit 6194f7e6473be78acdc5d03edd116944bdbb2c4e ]
-
-The multiplication of the u32 variables tx_time and estimated_retx is
-performed using a 32 bit multiplication and the result is stored in
-a u64 result. This has a potential u32 overflow issue, so avoid this
-by casting tx_time to a u64 to force a 64 bit multiply.
-
-Addresses-Coverity: ("Unintentional integer overflow")
-Fixes: 050ac52cbe1f ("mac80211: code for on-demand Hybrid Wireless Mesh Protocol")
-Signed-off-by: Colin Ian King <colin.king at canonical.com>
-Link: https://lore.kernel.org/r/20210205175352.208841-1-colin.king@canonical.com
-Signed-off-by: Johannes Berg <johannes.berg at intel.com>
-Signed-off-by: Sasha Levin <sashal at kernel.org>
----
- net/mac80211/mesh_hwmp.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/net/mac80211/mesh_hwmp.c
-+++ b/net/mac80211/mesh_hwmp.c
-@@ -355,7 +355,7 @@ static u32 airtime_link_metric_get(struc
- 	 */
- 	tx_time = (device_constant + 10 * test_frame_len / rate);
- 	estimated_retx = ((1 << (2 * ARITH_SHIFT)) / (s_unit - err));
--	result = (tx_time * estimated_retx) >> (2 * ARITH_SHIFT);
-+	result = ((u64)tx_time * estimated_retx) >> (2 * ARITH_SHIFT);
- 	return (u32)result;
- }
- 
diff --git a/package/kernel/mac80211/patches/subsys/374-mac80211-fix-rate-mask-reset.patch b/package/kernel/mac80211/patches/subsys/374-mac80211-fix-rate-mask-reset.patch
deleted file mode 100644
index 36d5bee123..0000000000
--- a/package/kernel/mac80211/patches/subsys/374-mac80211-fix-rate-mask-reset.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From 4311a94e7598ca19311b04eb965556b5bb33accd Mon Sep 17 00:00:00 2001
-From: Johannes Berg <johannes.berg at intel.com>
-Date: Fri, 12 Feb 2021 11:22:14 +0100
-Subject: [PATCH] mac80211: fix rate mask reset
-
-[ Upstream commit 1944015fe9c1d9fa5e9eb7ffbbb5ef8954d6753b ]
-
-Coverity reported the strange "if (~...)" condition that's
-always true. It suggested that ! was intended instead of ~,
-but upon further analysis I'm convinced that what really was
-intended was a comparison to 0xff/0xffff (in HT/VHT cases
-respectively), since this indicates that all of the rates
-are enabled.
-
-Change the comparison accordingly.
-
-I'm guessing this never really mattered because a reset to
-not having a rate mask is basically equivalent to having a
-mask that enables all rates.
-
-Reported-by: Colin Ian King <colin.king at canonical.com>
-Fixes: 2ffbe6d33366 ("mac80211: fix and optimize MCS mask handling")
-Fixes: b119ad6e726c ("mac80211: add rate mask logic for vht rates")
-Reviewed-by: Colin Ian King <colin.king at canonical.com>
-Link: https://lore.kernel.org/r/20210212112213.36b38078f569.I8546a20c80bc1669058eb453e213630b846e107b@changeid
-Signed-off-by: Johannes Berg <johannes.berg at intel.com>
-Signed-off-by: Sasha Levin <sashal at kernel.org>
----
- net/mac80211/cfg.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
---- a/net/mac80211/cfg.c
-+++ b/net/mac80211/cfg.c
-@@ -2779,14 +2779,14 @@ static int ieee80211_set_bitrate_mask(st
- 			continue;
- 
- 		for (j = 0; j < IEEE80211_HT_MCS_MASK_LEN; j++) {
--			if (~sdata->rc_rateidx_mcs_mask[i][j]) {
-+			if (sdata->rc_rateidx_mcs_mask[i][j] != 0xff) {
- 				sdata->rc_has_mcs_mask[i] = true;
- 				break;
- 			}
- 		}
- 
- 		for (j = 0; j < NL80211_VHT_NSS_MAX; j++) {
--			if (~sdata->rc_rateidx_vht_mcs_mask[i][j]) {
-+			if (sdata->rc_rateidx_vht_mcs_mask[i][j] != 0xffff) {
- 				sdata->rc_has_vht_mcs_mask[i] = true;
- 				break;
- 			}
diff --git a/package/kernel/mac80211/patches/subsys/375-mac80211-fix-double-free-in-ibss_leave.patch b/package/kernel/mac80211/patches/subsys/375-mac80211-fix-double-free-in-ibss_leave.patch
deleted file mode 100644
index e5245811bc..0000000000
--- a/package/kernel/mac80211/patches/subsys/375-mac80211-fix-double-free-in-ibss_leave.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-From 7da363fba2fc8526dbf3f966bac6f03fec98f095 Mon Sep 17 00:00:00 2001
-From: Markus Theil <markus.theil at tu-ilmenau.de>
-Date: Sat, 13 Feb 2021 14:36:53 +0100
-Subject: [PATCH] mac80211: fix double free in ibss_leave
-
-commit 3bd801b14e0c5d29eeddc7336558beb3344efaa3 upstream.
-
-Clear beacon ie pointer and ie length after free
-in order to prevent double free.
-
-==================================================================
-BUG: KASAN: double-free or invalid-free \
-in ieee80211_ibss_leave+0x83/0xe0 net/mac80211/ibss.c:1876
-
-CPU: 0 PID: 8472 Comm: syz-executor100 Not tainted 5.11.0-rc6-syzkaller #0
-Call Trace:
- __dump_stack lib/dump_stack.c:79 [inline]
- dump_stack+0x107/0x163 lib/dump_stack.c:120
- print_address_description.constprop.0.cold+0x5b/0x2c6 mm/kasan/report.c:230
- kasan_report_invalid_free+0x51/0x80 mm/kasan/report.c:355
- ____kasan_slab_free+0xcc/0xe0 mm/kasan/common.c:341
- kasan_slab_free include/linux/kasan.h:192 [inline]
- __cache_free mm/slab.c:3424 [inline]
- kfree+0xed/0x270 mm/slab.c:3760
- ieee80211_ibss_leave+0x83/0xe0 net/mac80211/ibss.c:1876
- rdev_leave_ibss net/wireless/rdev-ops.h:545 [inline]
- __cfg80211_leave_ibss+0x19a/0x4c0 net/wireless/ibss.c:212
- __cfg80211_leave+0x327/0x430 net/wireless/core.c:1172
- cfg80211_leave net/wireless/core.c:1221 [inline]
- cfg80211_netdev_notifier_call+0x9e8/0x12c0 net/wireless/core.c:1335
- notifier_call_chain+0xb5/0x200 kernel/notifier.c:83
- call_netdevice_notifiers_info+0xb5/0x130 net/core/dev.c:2040
- call_netdevice_notifiers_extack net/core/dev.c:2052 [inline]
- call_netdevice_notifiers net/core/dev.c:2066 [inline]
- __dev_close_many+0xee/0x2e0 net/core/dev.c:1586
- __dev_close net/core/dev.c:1624 [inline]
- __dev_change_flags+0x2cb/0x730 net/core/dev.c:8476
- dev_change_flags+0x8a/0x160 net/core/dev.c:8549
- dev_ifsioc+0x210/0xa70 net/core/dev_ioctl.c:265
- dev_ioctl+0x1b1/0xc40 net/core/dev_ioctl.c:511
- sock_do_ioctl+0x148/0x2d0 net/socket.c:1060
- sock_ioctl+0x477/0x6a0 net/socket.c:1177
- vfs_ioctl fs/ioctl.c:48 [inline]
- __do_sys_ioctl fs/ioctl.c:753 [inline]
- __se_sys_ioctl fs/ioctl.c:739 [inline]
- __x64_sys_ioctl+0x193/0x200 fs/ioctl.c:739
- do_syscall_64+0x2d/0x70 arch/x86/entry/common.c:46
- entry_SYSCALL_64_after_hwframe+0x44/0xa9
-
-Reported-by: syzbot+93976391bf299d425f44 at syzkaller.appspotmail.com
-Signed-off-by: Markus Theil <markus.theil at tu-ilmenau.de>
-Link: https://lore.kernel.org/r/20210213133653.367130-1-markus.theil@tu-ilmenau.de
-Signed-off-by: Johannes Berg <johannes.berg at intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- net/mac80211/ibss.c | 2 ++
- 1 file changed, 2 insertions(+)
-
---- a/net/mac80211/ibss.c
-+++ b/net/mac80211/ibss.c
-@@ -1869,6 +1869,8 @@ int ieee80211_ibss_leave(struct ieee8021
- 
- 	/* remove beacon */
- 	kfree(sdata->u.ibss.ie);
-+	sdata->u.ibss.ie = NULL;
-+	sdata->u.ibss.ie_len = 0;
- 
- 	/* on the next join, re-program HT parameters */
- 	memset(&ifibss->ht_capa, 0, sizeof(ifibss->ht_capa));
diff --git a/package/kernel/mac80211/patches/subsys/522-mac80211_configure_antenna_gain.patch b/package/kernel/mac80211/patches/subsys/522-mac80211_configure_antenna_gain.patch
index ebf46c6a4c..147eb6edcc 100644
--- a/package/kernel/mac80211/patches/subsys/522-mac80211_configure_antenna_gain.patch
+++ b/package/kernel/mac80211/patches/subsys/522-mac80211_configure_antenna_gain.patch
@@ -57,7 +57,7 @@
  	__NL80211_ATTR_AFTER_LAST,
 --- a/net/mac80211/cfg.c
 +++ b/net/mac80211/cfg.c
-@@ -2458,6 +2458,19 @@ static int ieee80211_get_tx_power(struct
+@@ -2460,6 +2460,19 @@ static int ieee80211_get_tx_power(struct
  	return 0;
  }
  
@@ -77,7 +77,7 @@
  static int ieee80211_set_wds_peer(struct wiphy *wiphy, struct net_device *dev,
  				  const u8 *addr)
  {
-@@ -3847,6 +3860,7 @@ const struct cfg80211_ops mac80211_confi
+@@ -3849,6 +3862,7 @@ const struct cfg80211_ops mac80211_confi
  	.set_wiphy_params = ieee80211_set_wiphy_params,
  	.set_tx_power = ieee80211_set_tx_power,
  	.get_tx_power = ieee80211_get_tx_power,
-- 
2.30.2




More information about the openwrt-devel mailing list