[PATCH 00/21][SRU][OEM-OSP1-B] iwlwifi: mvm: support HE context cmd API change

You-Sheng Yang vicamo.yang at canonical.com
Tue Sep 24 07:59:26 UTC 2019


BugLink: https://bugs.launchpad.net/bugs/1845138

[Impact]
When trying to associate with an 802.11ax Wi-Fi AP on platforms with
Intel AX1650s/AX1650i, iwlwifi gives a firmware error about command in
SYN CMD STA_HE_CTXT_CMD and hardware resets.

[Fix]
AX1650s/AX1650i firmware expects passed command struct to include
multiple bssid support when associating with 802.11ax APs, and the
implementation has been landed to v5.2 as:

  commit d14ae796f849: iwlwifi: mvm: support HE context cmd API change

This commit, along with its prerequisites in kernel mac80211/cfg80211
framework are neccesary to complete 802.11ax AP associations.

[Test Case]
Tested on AX1650s/AX1650i, as well as 9462/9560, to associate with
AX/N/AC/BG open/wpa AP.

[Regression Risk]
Medium. These patches introduces new features to mac80211/cfg80211
framework but are only enabled when IEEE80211_HW_SUPPORTS_MULTI_BSSID
and/or IEEE80211_HW_SUPPORTS_ONLY_HE_MULTI_BSSID are set. There is also
refactoring to information element access for cfg80211.

For the firmware part, this should only be enabled when firmware blobs
has explicitly declared IWL_UCODE_TLV_API_MBSSID_HE capability. And when
this capability is set, like fw for AX1650s/AX1650i, changes here are
necessary to make an association to 802.11ax Wi-Fi AP successfully.

Johannes Berg (6):
  cfg80211: add and use strongly typed element iteration macros
  mac80211: use element iteration macro in parsing
  cfg80211: add various struct element finding helpers
  nl80211: use for_each_element() in validate_ie_attr()
  cfg80211: use for_each_element() for multi-bssid parsing
  cfg80211: add missing kernel-doc for multi-BSSID fields

Jouni Malinen (1):
  mac80211_hwsim: Declare support for Multi-BSSID

Peng Xu (1):
  cfg80211: Parsing of Multiple BSSID information in scanning

Sara Sharon (13):
  mac80211: pass bssids to elements parsing function
  mac80211: move the bss update from elements to an helper
  cfg80211: Properly track transmitting and non-transmitting BSS
  cfg80211: Move Multiple BSS info to struct cfg80211_bss to be visible
  cfg80211: parse multi-bssid only if HW supports it
  cfg80211: make BSSID generation function inline
  cfg80211: save multi-bssid properties
  mac80211: support multi-bssid
  mac80211: indicate support for multiple BSSID
  cfg80211: fix the IE inheritance of extension IEs
  cfg80211: fix memory leak of new_ie
  iwlwifi: mvm: support multiple BSSID
  iwlwifi: mvm: support HE context cmd API change

 .../net/wireless/intel/iwlwifi/fw/api/mac.h   |  77 ++-
 drivers/net/wireless/intel/iwlwifi/fw/file.h  |   3 +
 .../net/wireless/intel/iwlwifi/mvm/mac80211.c |  22 +-
 drivers/net/wireless/mac80211_hwsim.c         |   1 +
 include/linux/ieee80211.h                     |  92 ++-
 include/net/cfg80211.h                        | 179 +++++-
 include/net/mac80211.h                        |  22 +
 net/mac80211/debugfs.c                        |   4 +-
 net/mac80211/ibss.c                           |   8 +-
 net/mac80211/ieee80211_i.h                    |  20 +-
 net/mac80211/main.c                           |  13 +-
 net/mac80211/mesh.c                           |  10 +-
 net/mac80211/mesh_hwmp.c                      |   3 +-
 net/mac80211/mesh_plink.c                     |   4 +-
 net/mac80211/mlme.c                           | 185 ++++--
 net/mac80211/scan.c                           | 160 +++--
 net/mac80211/tdls.c                           |   6 +-
 net/mac80211/util.c                           | 133 +++-
 net/wireless/core.h                           |  13 +-
 net/wireless/nl80211.c                        |  28 +-
 net/wireless/scan.c                           | 595 ++++++++++++++++--
 net/wireless/util.c                           |   6 +-
 22 files changed, 1314 insertions(+), 270 deletions(-)

-- 
2.23.0




More information about the kernel-team mailing list