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 5c08f4d..1172e45 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;