]> git.baikalelectronics.ru Git - kernel.git/commitdiff
iwlwifi: set NO_HE if the regulatory domain forbids it
authorHaim Dreyfuss <haim.dreyfuss@intel.com>
Fri, 29 May 2020 06:39:21 +0000 (09:39 +0300)
committerLuca Coelho <luciano.coelho@intel.com>
Fri, 29 May 2020 07:31:58 +0000 (10:31 +0300)
If the firmware's regulatory domain forbids HE operation, set it
in the cfg80211 regdomain.

Signed-off-by: Haim Dreyfuss <haim.dreyfuss@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Link: https://lore.kernel.org/r/iwlwifi.20200529092401.c3e50c36c628.I991bfa662c0ef35de5be9eaf5b78ef190b67cb56@changeid
drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c

index d91a8e8349e6a82693b56509c5911c309b19da27..ee410417761d373b513a0b28a3f70fd54f4dbe81 100644 (file)
@@ -240,6 +240,7 @@ enum iwl_nvm_channel_flags {
  * @REG_CAPA_40MHZ_FORBIDDEN: 11n channel with a width of 40Mhz is forbidden
  *     for this regulatory domain (valid only in 5Ghz).
  * @REG_CAPA_DC_HIGH_ENABLED: DC HIGH allowed.
+ * @REG_CAPA_11AX_DISABLED: 11ax is forbidden for this regulatory domain.
  */
 enum iwl_reg_capa_flags {
        REG_CAPA_BF_CCD_LOW_BAND        = BIT(0),
@@ -250,6 +251,7 @@ enum iwl_reg_capa_flags {
        REG_CAPA_MCS_9_ALLOWED          = BIT(5),
        REG_CAPA_40MHZ_FORBIDDEN        = BIT(7),
        REG_CAPA_DC_HIGH_ENABLED        = BIT(9),
+       REG_CAPA_11AX_DISABLED          = BIT(10),
 };
 
 static inline void iwl_nvm_print_channel_flags(struct device *dev, u32 level,
@@ -1115,6 +1117,9 @@ static u32 iwl_nvm_get_regdom_bw_flags(const u16 *nvm_chan,
                        flags |= NL80211_RRF_NO_160MHZ;
        }
 
+       if (cap_flags & REG_CAPA_11AX_DISABLED)
+               flags |= NL80211_RRF_NO_HE;
+
        return flags;
 }