|
@@ -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;
|