Merge tag 'wireless-next-2022-03-11' of git://git.kernel.org/pub/scm/linux/kernel...
authorJakub Kicinski <kuba@kernel.org>
Fri, 11 Mar 2022 21:00:16 +0000 (13:00 -0800)
committerJakub Kicinski <kuba@kernel.org>
Fri, 11 Mar 2022 21:00:17 +0000 (13:00 -0800)
Johannes Berg says:

====================
brcmfmac
 * add BCM43454/6 support

rtw89
 * add support for 160 MHz channels and 6 GHz band
 * hardware scan support

iwlwifi
 * support UHB TAS enablement via BIOS
 * remove a bunch of W=1 warnings
 * add support for channel switch offload
 * support 32 Rx AMPDU sessions in newer devices
 * add support for a couple of new devices
 * add support for band disablement via BIOS

mt76
 * mt7915 thermal management improvements
 * SAR support for more mt76 drivers
 * mt7986 wmac support on mt7915

ath11k
 * debugfs interface to configure firmware debug log level
 * debugfs interface to test Target Wake Time (TWT)
 * provide 802.11ax High Efficiency (HE) data via radiotap

ath9k
 * use hw_random API instead of directly dumping into random.c

wcn36xx
 * fix wcn3660 to work on 5 GHz band

ath6kl
 * add device ID for WLU5150-D81

cfg80211/mac80211
 * initial EHT (from 802.11be) support
   (EHT rates, 320 MHz, larger block-ack)
 * support disconnect on HW restart

* tag 'wireless-next-2022-03-11' of git://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless-next: (247 commits)
  mac80211: Add support to trigger sta disconnect on hardware restart
  mac80211: fix potential double free on mesh join
  mac80211: correct legacy rates check in ieee80211_calc_rx_airtime
  nl80211: fix typo of NL80211_IF_TYPE_OCB in documentation
  mac80211: Use GFP_KERNEL instead of GFP_ATOMIC when possible
  mac80211: replace DEFINE_SIMPLE_ATTRIBUTE with DEFINE_DEBUGFS_ATTRIBUTE
  rtw89: 8852c: process logic efuse map
  rtw89: 8852c: process efuse of phycap
  rtw89: support DAV efuse reading operation
  rtw89: 8852c: add chip::dle_mem
  rtw89: add page_regs to handle v1 chips
  rtw89: add chip_info::{h2c,c2h}_reg to support more chips
  rtw89: add hci_func_en_addr to support variant generation
  rtw89: add power_{on/off}_func
  rtw89: read chip version depends on chip ID
  rtw89: pci: use a struct to describe all registers address related to DMA channel
  rtw89: pci: add V1 of PCI channel address
  rtw89: pci: add struct rtw89_pci_info
  rtw89: 8852c: add 8852c empty files
  MAINTAINERS: add devicetree bindings entry for mt76
  ...

====================

Link: https://lore.kernel.org/r/20220311124029.213470-1-johannes@sipsolutions.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
22 files changed:
1  2 
MAINTAINERS
drivers/net/wireless/intel/iwlwifi/fw/acpi.c
drivers/net/wireless/intel/iwlwifi/fw/api/commands.h
drivers/net/wireless/intel/iwlwifi/fw/api/rs.h
drivers/net/wireless/intel/iwlwifi/fw/file.h
drivers/net/wireless/intel/iwlwifi/iwl-csr.h
drivers/net/wireless/intel/iwlwifi/iwl-drv.c
drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c
drivers/net/wireless/intel/iwlwifi/mei/main.c
drivers/net/wireless/intel/iwlwifi/mei/net.c
drivers/net/wireless/intel/iwlwifi/mvm/debugfs.c
drivers/net/wireless/intel/iwlwifi/mvm/fw.c
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
drivers/net/wireless/intel/iwlwifi/mvm/mvm.h
drivers/net/wireless/intel/iwlwifi/mvm/ops.c
drivers/net/wireless/intel/iwlwifi/mvm/tx.c
drivers/net/wireless/intel/iwlwifi/pcie/trans.c
drivers/net/wireless/mac80211_hwsim.c
net/mac80211/ieee80211_i.h
net/mac80211/mlme.c
net/wireless/nl80211.c
net/wireless/util.c

diff --cc MAINTAINERS
Simple merge
index c17ab53fcd8ff57e0a75c4d226cf40047efc9eaf,dd220e1d7996987976a697a7b3f4772be9534800..33aae639ad37e633ed7d1a044655f021a7e7c4fb
@@@ -1,9 -1,10 +1,10 @@@
  // SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
  /*
   * Copyright (C) 2017 Intel Deutschland GmbH
 - * Copyright (C) 2019-2021 Intel Corporation
 + * Copyright (C) 2019-2022 Intel Corporation
   */
  #include <linux/uuid.h>
+ #include <linux/dmi.h>
  #include "iwl-drv.h"
  #include "iwl-debug.h"
  #include "acpi.h"
Simple merge
Simple merge
index 950be0f43b5359e578666dbc30b7d8e4a7bcc313,29bfce6b3561e65d511831c49d0e723eb9cfb9b2..476b2136505872e018d5e4e85644f05df7df42c3
@@@ -672,7 -692,49 +693,49 @@@ static void ieee80211_add_he_ie(struct 
        ieee80211_ie_build_he_6ghz_cap(sdata, skb);
  }
  
 -static void ieee80211_send_assoc(struct ieee80211_sub_if_data *sdata)
+ static void ieee80211_add_eht_ie(struct ieee80211_sub_if_data *sdata,
+                                struct sk_buff *skb,
+                                struct ieee80211_supported_band *sband)
+ {
+       u8 *pos;
+       const struct ieee80211_sta_he_cap *he_cap;
+       const struct ieee80211_sta_eht_cap *eht_cap;
+       struct ieee80211_chanctx_conf *chanctx_conf;
+       u8 eht_cap_size;
+       bool reg_cap = false;
+       rcu_read_lock();
+       chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf);
+       if (!WARN_ON_ONCE(!chanctx_conf))
+               reg_cap = cfg80211_chandef_usable(sdata->wdev.wiphy,
+                                                 &chanctx_conf->def,
+                                                 IEEE80211_CHAN_NO_HE |
+                                                 IEEE80211_CHAN_NO_EHT);
+       rcu_read_unlock();
+       he_cap = ieee80211_get_he_iftype_cap(sband,
+                                            ieee80211_vif_type_p2p(&sdata->vif));
+       eht_cap = ieee80211_get_eht_iftype_cap(sband,
+                                              ieee80211_vif_type_p2p(&sdata->vif));
+       /*
+        * EHT capabilities element is only added if the HE capabilities element
+        * was added so assume that 'he_cap' is valid and don't check it.
+        */
+       if (WARN_ON(!he_cap || !eht_cap || !reg_cap))
+               return;
+       eht_cap_size =
+               2 + 1 + sizeof(eht_cap->eht_cap_elem) +
+               ieee80211_eht_mcs_nss_size(&he_cap->he_cap_elem,
+                                          &eht_cap->eht_cap_elem) +
+               ieee80211_eht_ppe_size(eht_cap->eht_ppe_thres[0],
+                                      eht_cap->eht_cap_elem.phy_cap_info);
+       pos = skb_put(skb, eht_cap_size);
+       ieee80211_ie_build_eht_cap(pos, he_cap, eht_cap, pos + eht_cap_size);
+ }
 +static int ieee80211_send_assoc(struct ieee80211_sub_if_data *sdata)
  {
        struct ieee80211_local *local = sdata->local;
        struct ieee80211_if_managed *ifmgd = &sdata->u.mgd;
Simple merge
Simple merge