iwlwifi: update channel flags parser
authorLuca Coelho <luciano.coelho@intel.com>
Wed, 16 Aug 2017 07:46:52 +0000 (10:46 +0300)
committerLuca Coelho <luciano.coelho@intel.com>
Fri, 18 Aug 2017 14:13:36 +0000 (17:13 +0300)
There are some new flags in the channel flags that we don't know
about.  Also, the "WIDE" flag is very confusing, because it actually
means 20MHz bandwidth, which is not very wide.

Add the new flags and rename the confusing one.

Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c

index 5c08f4d40f6ac78fbdeb575e152742c9c0a3cef5..1172e4572a82042fe27ffc231e87d4a67cf6fa85 100644 (file)
@@ -183,22 +183,26 @@ static struct ieee80211_rate iwl_cfg80211_rates[] = {
  * @NVM_CHANNEL_INDOOR_ONLY: only indoor use is allowed
  * @NVM_CHANNEL_GO_CONCURRENT: GO operation is allowed when connected to BSS
  *     on same channel on 2.4 or same UNII band on 5.2
- * @NVM_CHANNEL_WIDE: 20 MHz channel okay (?)
- * @NVM_CHANNEL_40MHZ: 40 MHz channel okay (?)
- * @NVM_CHANNEL_80MHZ: 80 MHz channel okay (?)
- * @NVM_CHANNEL_160MHZ: 160 MHz channel okay (?)
+ * @NVM_CHANNEL_UNIFORM: uniform spreading required
+ * @NVM_CHANNEL_20MHZ: 20 MHz channel okay
+ * @NVM_CHANNEL_40MHZ: 40 MHz channel okay
+ * @NVM_CHANNEL_80MHZ: 80 MHz channel okay
+ * @NVM_CHANNEL_160MHZ: 160 MHz channel okay
+ * @NVM_CHANNEL_DC_HIGH: DC HIGH required/allowed (?)
  */
 enum iwl_nvm_channel_flags {
-       NVM_CHANNEL_VALID = BIT(0),
-       NVM_CHANNEL_IBSS = BIT(1),
-       NVM_CHANNEL_ACTIVE = BIT(3),
-       NVM_CHANNEL_RADAR = BIT(4),
-       NVM_CHANNEL_INDOOR_ONLY = BIT(5),
-       NVM_CHANNEL_GO_CONCURRENT = BIT(6),
-       NVM_CHANNEL_WIDE = BIT(8),
-       NVM_CHANNEL_40MHZ = BIT(9),
-       NVM_CHANNEL_80MHZ = BIT(10),
-       NVM_CHANNEL_160MHZ = BIT(11),
+       NVM_CHANNEL_VALID               = BIT(0),
+       NVM_CHANNEL_IBSS                = BIT(1),
+       NVM_CHANNEL_ACTIVE              = BIT(3),
+       NVM_CHANNEL_RADAR               = BIT(4),
+       NVM_CHANNEL_INDOOR_ONLY         = BIT(5),
+       NVM_CHANNEL_GO_CONCURRENT       = BIT(6),
+       NVM_CHANNEL_UNIFORM             = BIT(7),
+       NVM_CHANNEL_20MHZ               = BIT(8),
+       NVM_CHANNEL_40MHZ               = BIT(9),
+       NVM_CHANNEL_80MHZ               = BIT(10),
+       NVM_CHANNEL_160MHZ              = BIT(11),
+       NVM_CHANNEL_DC_HIGH             = BIT(12),
 };
 
 #define CHECK_AND_PRINT_I(x)   \
@@ -327,7 +331,7 @@ static int iwl_init_channel_map(struct device *dev, const struct iwl_cfg *cfg,
                        channel->flags = 0;
 
                IWL_DEBUG_EEPROM(dev,
-                                "Ch. %d [%sGHz] flags 0x%x %s%s%s%s%s%s%s%s%s%s(%ddBm): Ad-Hoc %ssupported\n",
+                                "Ch. %d [%sGHz] flags 0x%x %s%s%s%s%s%s%s%s%s%s%s%s(%ddBm): Ad-Hoc %ssupported\n",
                                 channel->hw_value,
                                 is_5ghz ? "5.2" : "2.4",
                                 ch_flags,
@@ -337,10 +341,12 @@ static int iwl_init_channel_map(struct device *dev, const struct iwl_cfg *cfg,
                                 CHECK_AND_PRINT_I(RADAR),
                                 CHECK_AND_PRINT_I(INDOOR_ONLY),
                                 CHECK_AND_PRINT_I(GO_CONCURRENT),
-                                CHECK_AND_PRINT_I(WIDE),
+                                CHECK_AND_PRINT_I(UNIFORM),
+                                CHECK_AND_PRINT_I(20MHZ),
                                 CHECK_AND_PRINT_I(40MHZ),
                                 CHECK_AND_PRINT_I(80MHZ),
                                 CHECK_AND_PRINT_I(160MHZ),
+                                CHECK_AND_PRINT_I(DC_HIGH),
                                 channel->max_power,
                                 ((ch_flags & NVM_CHANNEL_IBSS) &&
                                  !(ch_flags & NVM_CHANNEL_RADAR))
@@ -865,22 +871,25 @@ iwl_parse_nvm_mcc_info(struct device *dev, const struct iwl_cfg *cfg,
                prev_center_freq = center_freq;
 
                IWL_DEBUG_DEV(dev, IWL_DL_LAR,
-                             "Ch. %d [%sGHz] %s%s%s%s%s%s%s%s%s(0x%02x): Ad-Hoc %ssupported\n",
+                             "Ch. %d [%sGHz] %s%s%s%s%s%s%s%s%s%s%s%s(0x%02x): %s\n",
                              center_freq,
                              band == NL80211_BAND_5GHZ ? "5.2" : "2.4",
                              CHECK_AND_PRINT_I(VALID),
+                             CHECK_AND_PRINT_I(IBSS),
                              CHECK_AND_PRINT_I(ACTIVE),
                              CHECK_AND_PRINT_I(RADAR),
-                             CHECK_AND_PRINT_I(WIDE),
+                             CHECK_AND_PRINT_I(INDOOR_ONLY),
+                             CHECK_AND_PRINT_I(GO_CONCURRENT),
+                             CHECK_AND_PRINT_I(UNIFORM),
+                             CHECK_AND_PRINT_I(20MHZ),
                              CHECK_AND_PRINT_I(40MHZ),
                              CHECK_AND_PRINT_I(80MHZ),
                              CHECK_AND_PRINT_I(160MHZ),
-                             CHECK_AND_PRINT_I(INDOOR_ONLY),
-                             CHECK_AND_PRINT_I(GO_CONCURRENT),
+                             CHECK_AND_PRINT_I(DC_HIGH),
                              ch_flags,
                              ((ch_flags & NVM_CHANNEL_ACTIVE) &&
                               !(ch_flags & NVM_CHANNEL_RADAR))
-                                        ? "" : "not ");
+                                        ? "Ad-Hoc" : "");
        }
 
        regd->n_reg_rules = valid_rules;