323-v6.3-wifi-mac80211-Add-VHT-MU-MIMO-related-flags-in-ieee8.patch 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. From: Muna Sinada <quic_msinada@quicinc.com>
  2. Date: Wed, 5 Oct 2022 14:54:45 -0700
  3. Subject: [PATCH] wifi: mac80211: Add VHT MU-MIMO related flags in
  4. ieee80211_bss_conf
  5. Adding flags for SU Beamformer, SU Beamformee, MU Beamformer and
  6. MU Beamformee for VHT. This is utilized to pass MU-MIMO
  7. configurations from user space to driver in AP mode.
  8. Signed-off-by: Muna Sinada <quic_msinada@quicinc.com>
  9. Link: https://lore.kernel.org/r/1665006886-23874-1-git-send-email-quic_msinada@quicinc.com
  10. [fixed indentation, removed redundant !!]
  11. Signed-off-by: Johannes Berg <johannes.berg@intel.com>
  12. ---
  13. --- a/include/net/mac80211.h
  14. +++ b/include/net/mac80211.h
  15. @@ -653,6 +653,14 @@ struct ieee80211_fils_discovery {
  16. * write-protected by sdata_lock and local->mtx so holding either is fine
  17. * for read access.
  18. * @color_change_color: the bss color that will be used after the change.
  19. + * @vht_su_beamformer: in AP mode, does this BSS support operation as an VHT SU
  20. + * beamformer
  21. + * @vht_su_beamformee: in AP mode, does this BSS support operation as an VHT SU
  22. + * beamformee
  23. + * @vht_mu_beamformer: in AP mode, does this BSS support operation as an VHT MU
  24. + * beamformer
  25. + * @vht_mu_beamformee: in AP mode, does this BSS support operation as an VHT MU
  26. + * beamformee
  27. */
  28. struct ieee80211_bss_conf {
  29. const u8 *bssid;
  30. @@ -726,6 +734,11 @@ struct ieee80211_bss_conf {
  31. bool color_change_active;
  32. u8 color_change_color;
  33. +
  34. + bool vht_su_beamformer;
  35. + bool vht_su_beamformee;
  36. + bool vht_mu_beamformer;
  37. + bool vht_mu_beamformee;
  38. };
  39. /**
  40. --- a/net/mac80211/cfg.c
  41. +++ b/net/mac80211/cfg.c
  42. @@ -1252,6 +1252,21 @@ static int ieee80211_start_ap(struct wip
  43. prev_beacon_int = link_conf->beacon_int;
  44. link_conf->beacon_int = params->beacon_interval;
  45. + if (params->vht_cap) {
  46. + link_conf->vht_su_beamformer =
  47. + params->vht_cap->vht_cap_info &
  48. + cpu_to_le32(IEEE80211_VHT_CAP_SU_BEAMFORMER_CAPABLE);
  49. + link_conf->vht_su_beamformee =
  50. + params->vht_cap->vht_cap_info &
  51. + cpu_to_le32(IEEE80211_VHT_CAP_SU_BEAMFORMEE_CAPABLE);
  52. + link_conf->vht_mu_beamformer =
  53. + params->vht_cap->vht_cap_info &
  54. + cpu_to_le32(IEEE80211_VHT_CAP_MU_BEAMFORMER_CAPABLE);
  55. + link_conf->vht_mu_beamformee =
  56. + params->vht_cap->vht_cap_info &
  57. + cpu_to_le32(IEEE80211_VHT_CAP_MU_BEAMFORMEE_CAPABLE);
  58. + }
  59. +
  60. if (params->he_cap && params->he_oper) {
  61. link_conf->he_support = true;
  62. link_conf->htc_trig_based_pkt_ext =