aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi
diff options
context:
space:
mode:
authorWey-Yi Guy <wey-yi.w.guy@intel.com>2009-08-07 18:41:38 -0400
committerJohn W. Linville <linville@tuxdriver.com>2009-08-14 09:13:46 -0400
commit7aafef1c6e2e24f9a10dc2972bf0ee70624ccc47 (patch)
tree98cee2e028bc7fe7ea6fb2bac2a39780e78919d5 /drivers/net/wireless/iwlwifi
parent3d816c77ecb05d3a3e974a205e53392e5353553e (diff)
iwlwifi: name changed from "fat" to "ht40"
Rename "fat" to "ht40" The term "fat channel" is deprecated in favor of "HT40" Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com> Signed-off-by: Reinette Chatre <reinette.chatre@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi')
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-1000.c4
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-3945-hw.h2
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-3945.c4
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-4965-hw.h6
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-4965.c42
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-5000.c10
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-6000.c4
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-agn-rs.c67
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-commands.h22
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-core.c24
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-core.h2
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-dev.h22
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-eeprom.c54
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-eeprom.h34
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-power.c2
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-rx.c4
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-sta.c6
17 files changed, 155 insertions, 154 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-1000.c b/drivers/net/wireless/iwlwifi/iwl-1000.c
index cf3fbc6b98ef..191718a0c545 100644
--- a/drivers/net/wireless/iwlwifi/iwl-1000.c
+++ b/drivers/net/wireless/iwlwifi/iwl-1000.c
@@ -117,8 +117,8 @@ static struct iwl_lib_ops iwl1000_lib = {
117 EEPROM_5000_REG_BAND_3_CHANNELS, 117 EEPROM_5000_REG_BAND_3_CHANNELS,
118 EEPROM_5000_REG_BAND_4_CHANNELS, 118 EEPROM_5000_REG_BAND_4_CHANNELS,
119 EEPROM_5000_REG_BAND_5_CHANNELS, 119 EEPROM_5000_REG_BAND_5_CHANNELS,
120 EEPROM_5000_REG_BAND_24_FAT_CHANNELS, 120 EEPROM_5000_REG_BAND_24_HT40_CHANNELS,
121 EEPROM_5000_REG_BAND_52_FAT_CHANNELS 121 EEPROM_5000_REG_BAND_52_HT40_CHANNELS
122 }, 122 },
123 .verify_signature = iwlcore_eeprom_verify_signature, 123 .verify_signature = iwlcore_eeprom_verify_signature,
124 .acquire_semaphore = iwlcore_eeprom_acquire_semaphore, 124 .acquire_semaphore = iwlcore_eeprom_acquire_semaphore,
diff --git a/drivers/net/wireless/iwlwifi/iwl-3945-hw.h b/drivers/net/wireless/iwlwifi/iwl-3945-hw.h
index b569c6f38e5c..16772780c5b0 100644
--- a/drivers/net/wireless/iwlwifi/iwl-3945-hw.h
+++ b/drivers/net/wireless/iwlwifi/iwl-3945-hw.h
@@ -176,7 +176,7 @@ struct iwl3945_eeprom {
176 * in EEPROM containing EEPROM_CHANNEL_* usage flags (LSB) and max regulatory 176 * in EEPROM containing EEPROM_CHANNEL_* usage flags (LSB) and max regulatory
177 * txpower (MSB). 177 * txpower (MSB).
178 * 178 *
179 * Entries immediately below are for 20 MHz channel width. FAT (40 MHz) 179 * Entries immediately below are for 20 MHz channel width. HT40 (40 MHz)
180 * channels (only for 4965, not supported by 3945) appear later in the EEPROM. 180 * channels (only for 4965, not supported by 3945) appear later in the EEPROM.
181 * 181 *
182 * 2.4 GHz channels 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 182 * 2.4 GHz channels 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14
diff --git a/drivers/net/wireless/iwlwifi/iwl-3945.c b/drivers/net/wireless/iwlwifi/iwl-3945.c
index 7ad020747252..9e33507661d3 100644
--- a/drivers/net/wireless/iwlwifi/iwl-3945.c
+++ b/drivers/net/wireless/iwlwifi/iwl-3945.c
@@ -2851,8 +2851,8 @@ static struct iwl_lib_ops iwl3945_lib = {
2851 EEPROM_REGULATORY_BAND_3_CHANNELS, 2851 EEPROM_REGULATORY_BAND_3_CHANNELS,
2852 EEPROM_REGULATORY_BAND_4_CHANNELS, 2852 EEPROM_REGULATORY_BAND_4_CHANNELS,
2853 EEPROM_REGULATORY_BAND_5_CHANNELS, 2853 EEPROM_REGULATORY_BAND_5_CHANNELS,
2854 EEPROM_REGULATORY_BAND_NO_FAT, 2854 EEPROM_REGULATORY_BAND_NO_HT40,
2855 EEPROM_REGULATORY_BAND_NO_FAT, 2855 EEPROM_REGULATORY_BAND_NO_HT40,
2856 }, 2856 },
2857 .verify_signature = iwlcore_eeprom_verify_signature, 2857 .verify_signature = iwlcore_eeprom_verify_signature,
2858 .acquire_semaphore = iwl3945_eeprom_acquire_semaphore, 2858 .acquire_semaphore = iwl3945_eeprom_acquire_semaphore,
diff --git a/drivers/net/wireless/iwlwifi/iwl-4965-hw.h b/drivers/net/wireless/iwlwifi/iwl-4965-hw.h
index a71a489096ff..b34322a32458 100644
--- a/drivers/net/wireless/iwlwifi/iwl-4965-hw.h
+++ b/drivers/net/wireless/iwlwifi/iwl-4965-hw.h
@@ -188,7 +188,7 @@ static inline int iwl4965_hw_valid_rtc_data_addr(u32 addr)
188 * 188 *
189 * 1) Regulatory information (max txpower and channel usage flags) is provided 189 * 1) Regulatory information (max txpower and channel usage flags) is provided
190 * separately for each channel that can possibly supported by 4965. 190 * separately for each channel that can possibly supported by 4965.
191 * 40 MHz wide (.11n fat) channels are listed separately from 20 MHz 191 * 40 MHz wide (.11n HT40) channels are listed separately from 20 MHz
192 * (legacy) channels. 192 * (legacy) channels.
193 * 193 *
194 * See struct iwl4965_eeprom_channel for format, and struct iwl4965_eeprom 194 * See struct iwl4965_eeprom_channel for format, and struct iwl4965_eeprom
@@ -251,8 +251,8 @@ static inline int iwl4965_hw_valid_rtc_data_addr(u32 addr)
251 * no reduction (such as with regulatory txpower limits) is required. 251 * no reduction (such as with regulatory txpower limits) is required.
252 * 252 *
253 * Saturation and Backoff values apply equally to 20 Mhz (legacy) channel 253 * Saturation and Backoff values apply equally to 20 Mhz (legacy) channel
254 * widths and 40 Mhz (.11n fat) channel widths; there is no separate 254 * widths and 40 Mhz (.11n HT40) channel widths; there is no separate
255 * factory measurement for fat channels. 255 * factory measurement for ht40 channels.
256 * 256 *
257 * The result of this step is the final target txpower. The rest of 257 * The result of this step is the final target txpower. The rest of
258 * the steps figure out the proper settings for the device to achieve 258 * the steps figure out the proper settings for the device to achieve
diff --git a/drivers/net/wireless/iwlwifi/iwl-4965.c b/drivers/net/wireless/iwlwifi/iwl-4965.c
index 62436a90ba89..f02023eea41c 100644
--- a/drivers/net/wireless/iwlwifi/iwl-4965.c
+++ b/drivers/net/wireless/iwlwifi/iwl-4965.c
@@ -317,7 +317,7 @@ restart:
317 queue_work(priv->workqueue, &priv->restart); 317 queue_work(priv->workqueue, &priv->restart);
318} 318}
319 319
320static bool is_fat_channel(__le32 rxon_flags) 320static bool is_ht40_channel(__le32 rxon_flags)
321{ 321{
322 int chan_mod = le32_to_cpu(rxon_flags & RXON_FLG_CHANNEL_MODE_MSK) 322 int chan_mod = le32_to_cpu(rxon_flags & RXON_FLG_CHANNEL_MODE_MSK)
323 >> RXON_FLG_CHANNEL_MODE_POS; 323 >> RXON_FLG_CHANNEL_MODE_POS;
@@ -806,7 +806,7 @@ static int iwl4965_hw_set_hw_params(struct iwl_priv *priv)
806 priv->hw_params.max_data_size = IWL49_RTC_DATA_SIZE; 806 priv->hw_params.max_data_size = IWL49_RTC_DATA_SIZE;
807 priv->hw_params.max_inst_size = IWL49_RTC_INST_SIZE; 807 priv->hw_params.max_inst_size = IWL49_RTC_INST_SIZE;
808 priv->hw_params.max_bsm_size = BSM_SRAM_SIZE; 808 priv->hw_params.max_bsm_size = BSM_SRAM_SIZE;
809 priv->hw_params.fat_channel = BIT(IEEE80211_BAND_5GHZ); 809 priv->hw_params.ht40_channel = BIT(IEEE80211_BAND_5GHZ);
810 810
811 priv->hw_params.rx_wrt_ptr_reg = FH_RSCSR_CHNL0_WPTR; 811 priv->hw_params.rx_wrt_ptr_reg = FH_RSCSR_CHNL0_WPTR;
812 812
@@ -1266,7 +1266,7 @@ static const struct gain_entry gain_table[2][108] = {
1266}; 1266};
1267 1267
1268static int iwl4965_fill_txpower_tbl(struct iwl_priv *priv, u8 band, u16 channel, 1268static int iwl4965_fill_txpower_tbl(struct iwl_priv *priv, u8 band, u16 channel,
1269 u8 is_fat, u8 ctrl_chan_high, 1269 u8 is_ht40, u8 ctrl_chan_high,
1270 struct iwl4965_tx_power_db *tx_power_tbl) 1270 struct iwl4965_tx_power_db *tx_power_tbl)
1271{ 1271{
1272 u8 saturation_power; 1272 u8 saturation_power;
@@ -1298,8 +1298,8 @@ static int iwl4965_fill_txpower_tbl(struct iwl_priv *priv, u8 band, u16 channel,
1298 user_target_power = 2 * priv->tx_power_user_lmt; 1298 user_target_power = 2 * priv->tx_power_user_lmt;
1299 1299
1300 /* Get current (RXON) channel, band, width */ 1300 /* Get current (RXON) channel, band, width */
1301 IWL_DEBUG_TXPOWER(priv, "chan %d band %d is_fat %d\n", channel, band, 1301 IWL_DEBUG_TXPOWER(priv, "chan %d band %d is_ht40 %d\n", channel, band,
1302 is_fat); 1302 is_ht40);
1303 1303
1304 ch_info = iwl_get_channel_info(priv, priv->band, channel); 1304 ch_info = iwl_get_channel_info(priv, priv->band, channel);
1305 1305
@@ -1318,7 +1318,7 @@ static int iwl4965_fill_txpower_tbl(struct iwl_priv *priv, u8 band, u16 channel,
1318 IWL_DEBUG_TXPOWER(priv, "channel %d belongs to txatten group %d\n", 1318 IWL_DEBUG_TXPOWER(priv, "channel %d belongs to txatten group %d\n",
1319 channel, txatten_grp); 1319 channel, txatten_grp);
1320 1320
1321 if (is_fat) { 1321 if (is_ht40) {
1322 if (ctrl_chan_high) 1322 if (ctrl_chan_high)
1323 channel -= 2; 1323 channel -= 2;
1324 else 1324 else
@@ -1342,8 +1342,8 @@ static int iwl4965_fill_txpower_tbl(struct iwl_priv *priv, u8 band, u16 channel,
1342 1342
1343 /* regulatory txpower limits ... reg_limit values are in half-dBm, 1343 /* regulatory txpower limits ... reg_limit values are in half-dBm,
1344 * max_power_avg values are in dBm, convert * 2 */ 1344 * max_power_avg values are in dBm, convert * 2 */
1345 if (is_fat) 1345 if (is_ht40)
1346 reg_limit = ch_info->fat_max_power_avg * 2; 1346 reg_limit = ch_info->ht40_max_power_avg * 2;
1347 else 1347 else
1348 reg_limit = ch_info->max_power_avg * 2; 1348 reg_limit = ch_info->max_power_avg * 2;
1349 1349
@@ -1509,7 +1509,7 @@ static int iwl4965_fill_txpower_tbl(struct iwl_priv *priv, u8 band, u16 channel,
1509/** 1509/**
1510 * iwl4965_send_tx_power - Configure the TXPOWER level user limit 1510 * iwl4965_send_tx_power - Configure the TXPOWER level user limit
1511 * 1511 *
1512 * Uses the active RXON for channel, band, and characteristics (fat, high) 1512 * Uses the active RXON for channel, band, and characteristics (ht40, high)
1513 * The power limit is taken from priv->tx_power_user_lmt. 1513 * The power limit is taken from priv->tx_power_user_lmt.
1514 */ 1514 */
1515static int iwl4965_send_tx_power(struct iwl_priv *priv) 1515static int iwl4965_send_tx_power(struct iwl_priv *priv)
@@ -1517,7 +1517,7 @@ static int iwl4965_send_tx_power(struct iwl_priv *priv)
1517 struct iwl4965_txpowertable_cmd cmd = { 0 }; 1517 struct iwl4965_txpowertable_cmd cmd = { 0 };
1518 int ret; 1518 int ret;
1519 u8 band = 0; 1519 u8 band = 0;
1520 bool is_fat = false; 1520 bool is_ht40 = false;
1521 u8 ctrl_chan_high = 0; 1521 u8 ctrl_chan_high = 0;
1522 1522
1523 if (test_bit(STATUS_SCANNING, &priv->status)) { 1523 if (test_bit(STATUS_SCANNING, &priv->status)) {
@@ -1530,9 +1530,9 @@ static int iwl4965_send_tx_power(struct iwl_priv *priv)
1530 1530
1531 band = priv->band == IEEE80211_BAND_2GHZ; 1531 band = priv->band == IEEE80211_BAND_2GHZ;
1532 1532
1533 is_fat = is_fat_channel(priv->active_rxon.flags); 1533 is_ht40 = is_ht40_channel(priv->active_rxon.flags);
1534 1534
1535 if (is_fat && 1535 if (is_ht40 &&
1536 (priv->active_rxon.flags & RXON_FLG_CTRL_CHANNEL_LOC_HI_MSK)) 1536 (priv->active_rxon.flags & RXON_FLG_CTRL_CHANNEL_LOC_HI_MSK))
1537 ctrl_chan_high = 1; 1537 ctrl_chan_high = 1;
1538 1538
@@ -1541,7 +1541,7 @@ static int iwl4965_send_tx_power(struct iwl_priv *priv)
1541 1541
1542 ret = iwl4965_fill_txpower_tbl(priv, band, 1542 ret = iwl4965_fill_txpower_tbl(priv, band,
1543 le16_to_cpu(priv->active_rxon.channel), 1543 le16_to_cpu(priv->active_rxon.channel),
1544 is_fat, ctrl_chan_high, &cmd.tx_power); 1544 is_ht40, ctrl_chan_high, &cmd.tx_power);
1545 if (ret) 1545 if (ret)
1546 goto out; 1546 goto out;
1547 1547
@@ -1595,7 +1595,7 @@ static int iwl4965_hw_channel_switch(struct iwl_priv *priv, u16 channel)
1595{ 1595{
1596 int rc; 1596 int rc;
1597 u8 band = 0; 1597 u8 band = 0;
1598 bool is_fat = false; 1598 bool is_ht40 = false;
1599 u8 ctrl_chan_high = 0; 1599 u8 ctrl_chan_high = 0;
1600 struct iwl4965_channel_switch_cmd cmd = { 0 }; 1600 struct iwl4965_channel_switch_cmd cmd = { 0 };
1601 const struct iwl_channel_info *ch_info; 1601 const struct iwl_channel_info *ch_info;
@@ -1604,9 +1604,9 @@ static int iwl4965_hw_channel_switch(struct iwl_priv *priv, u16 channel)
1604 1604
1605 ch_info = iwl_get_channel_info(priv, priv->band, channel); 1605 ch_info = iwl_get_channel_info(priv, priv->band, channel);
1606 1606
1607 is_fat = is_fat_channel(priv->staging_rxon.flags); 1607 is_ht40 = is_ht40_channel(priv->staging_rxon.flags);
1608 1608
1609 if (is_fat && 1609 if (is_ht40 &&
1610 (priv->active_rxon.flags & RXON_FLG_CTRL_CHANNEL_LOC_HI_MSK)) 1610 (priv->active_rxon.flags & RXON_FLG_CTRL_CHANNEL_LOC_HI_MSK))
1611 ctrl_chan_high = 1; 1611 ctrl_chan_high = 1;
1612 1612
@@ -1621,7 +1621,7 @@ static int iwl4965_hw_channel_switch(struct iwl_priv *priv, u16 channel)
1621 else 1621 else
1622 cmd.expect_beacon = 1; 1622 cmd.expect_beacon = 1;
1623 1623
1624 rc = iwl4965_fill_txpower_tbl(priv, band, channel, is_fat, 1624 rc = iwl4965_fill_txpower_tbl(priv, band, channel, is_ht40,
1625 ctrl_chan_high, &cmd.tx_power); 1625 ctrl_chan_high, &cmd.tx_power);
1626 if (rc) { 1626 if (rc) {
1627 IWL_DEBUG_11H(priv, "error:%d fill txpower_tbl\n", rc); 1627 IWL_DEBUG_11H(priv, "error:%d fill txpower_tbl\n", rc);
@@ -1688,8 +1688,8 @@ static int iwl4965_hw_get_temperature(struct iwl_priv *priv)
1688 u32 R4; 1688 u32 R4;
1689 1689
1690 if (test_bit(STATUS_TEMPERATURE, &priv->status) && 1690 if (test_bit(STATUS_TEMPERATURE, &priv->status) &&
1691 (priv->statistics.flag & STATISTICS_REPLY_FLG_FAT_MODE_MSK)) { 1691 (priv->statistics.flag & STATISTICS_REPLY_FLG_HT40_MODE_MSK)) {
1692 IWL_DEBUG_TEMP(priv, "Running FAT temperature calibration\n"); 1692 IWL_DEBUG_TEMP(priv, "Running HT40 temperature calibration\n");
1693 R1 = (s32)le32_to_cpu(priv->card_alive_init.therm_r1[1]); 1693 R1 = (s32)le32_to_cpu(priv->card_alive_init.therm_r1[1]);
1694 R2 = (s32)le32_to_cpu(priv->card_alive_init.therm_r2[1]); 1694 R2 = (s32)le32_to_cpu(priv->card_alive_init.therm_r2[1]);
1695 R3 = (s32)le32_to_cpu(priv->card_alive_init.therm_r3[1]); 1695 R3 = (s32)le32_to_cpu(priv->card_alive_init.therm_r3[1]);
@@ -2330,8 +2330,8 @@ static struct iwl_lib_ops iwl4965_lib = {
2330 EEPROM_REGULATORY_BAND_3_CHANNELS, 2330 EEPROM_REGULATORY_BAND_3_CHANNELS,
2331 EEPROM_REGULATORY_BAND_4_CHANNELS, 2331 EEPROM_REGULATORY_BAND_4_CHANNELS,
2332 EEPROM_REGULATORY_BAND_5_CHANNELS, 2332 EEPROM_REGULATORY_BAND_5_CHANNELS,
2333 EEPROM_4965_REGULATORY_BAND_24_FAT_CHANNELS, 2333 EEPROM_4965_REGULATORY_BAND_24_HT40_CHANNELS,
2334 EEPROM_4965_REGULATORY_BAND_52_FAT_CHANNELS 2334 EEPROM_4965_REGULATORY_BAND_52_HT40_CHANNELS
2335 }, 2335 },
2336 .verify_signature = iwlcore_eeprom_verify_signature, 2336 .verify_signature = iwlcore_eeprom_verify_signature,
2337 .acquire_semaphore = iwlcore_eeprom_acquire_semaphore, 2337 .acquire_semaphore = iwlcore_eeprom_acquire_semaphore,
diff --git a/drivers/net/wireless/iwlwifi/iwl-5000.c b/drivers/net/wireless/iwlwifi/iwl-5000.c
index 87957c052839..755c184b3ecb 100644
--- a/drivers/net/wireless/iwlwifi/iwl-5000.c
+++ b/drivers/net/wireless/iwlwifi/iwl-5000.c
@@ -845,7 +845,7 @@ int iwl5000_hw_set_hw_params(struct iwl_priv *priv)
845 } 845 }
846 846
847 priv->hw_params.max_bsm_size = 0; 847 priv->hw_params.max_bsm_size = 0;
848 priv->hw_params.fat_channel = BIT(IEEE80211_BAND_2GHZ) | 848 priv->hw_params.ht40_channel = BIT(IEEE80211_BAND_2GHZ) |
849 BIT(IEEE80211_BAND_5GHZ); 849 BIT(IEEE80211_BAND_5GHZ);
850 priv->hw_params.rx_wrt_ptr_reg = FH_RSCSR_CHNL0_WPTR; 850 priv->hw_params.rx_wrt_ptr_reg = FH_RSCSR_CHNL0_WPTR;
851 851
@@ -1547,8 +1547,8 @@ struct iwl_lib_ops iwl5000_lib = {
1547 EEPROM_5000_REG_BAND_3_CHANNELS, 1547 EEPROM_5000_REG_BAND_3_CHANNELS,
1548 EEPROM_5000_REG_BAND_4_CHANNELS, 1548 EEPROM_5000_REG_BAND_4_CHANNELS,
1549 EEPROM_5000_REG_BAND_5_CHANNELS, 1549 EEPROM_5000_REG_BAND_5_CHANNELS,
1550 EEPROM_5000_REG_BAND_24_FAT_CHANNELS, 1550 EEPROM_5000_REG_BAND_24_HT40_CHANNELS,
1551 EEPROM_5000_REG_BAND_52_FAT_CHANNELS 1551 EEPROM_5000_REG_BAND_52_HT40_CHANNELS
1552 }, 1552 },
1553 .verify_signature = iwlcore_eeprom_verify_signature, 1553 .verify_signature = iwlcore_eeprom_verify_signature,
1554 .acquire_semaphore = iwlcore_eeprom_acquire_semaphore, 1554 .acquire_semaphore = iwlcore_eeprom_acquire_semaphore,
@@ -1597,8 +1597,8 @@ static struct iwl_lib_ops iwl5150_lib = {
1597 EEPROM_5000_REG_BAND_3_CHANNELS, 1597 EEPROM_5000_REG_BAND_3_CHANNELS,
1598 EEPROM_5000_REG_BAND_4_CHANNELS, 1598 EEPROM_5000_REG_BAND_4_CHANNELS,
1599 EEPROM_5000_REG_BAND_5_CHANNELS, 1599 EEPROM_5000_REG_BAND_5_CHANNELS,
1600 EEPROM_5000_REG_BAND_24_FAT_CHANNELS, 1600 EEPROM_5000_REG_BAND_24_HT40_CHANNELS,
1601 EEPROM_5000_REG_BAND_52_FAT_CHANNELS 1601 EEPROM_5000_REG_BAND_52_HT40_CHANNELS
1602 }, 1602 },
1603 .verify_signature = iwlcore_eeprom_verify_signature, 1603 .verify_signature = iwlcore_eeprom_verify_signature,
1604 .acquire_semaphore = iwlcore_eeprom_acquire_semaphore, 1604 .acquire_semaphore = iwlcore_eeprom_acquire_semaphore,
diff --git a/drivers/net/wireless/iwlwifi/iwl-6000.c b/drivers/net/wireless/iwlwifi/iwl-6000.c
index 4450943d3dac..c3ec6c20cc94 100644
--- a/drivers/net/wireless/iwlwifi/iwl-6000.c
+++ b/drivers/net/wireless/iwlwifi/iwl-6000.c
@@ -118,8 +118,8 @@ static struct iwl_lib_ops iwl6000_lib = {
118 EEPROM_5000_REG_BAND_3_CHANNELS, 118 EEPROM_5000_REG_BAND_3_CHANNELS,
119 EEPROM_5000_REG_BAND_4_CHANNELS, 119 EEPROM_5000_REG_BAND_4_CHANNELS,
120 EEPROM_5000_REG_BAND_5_CHANNELS, 120 EEPROM_5000_REG_BAND_5_CHANNELS,
121 EEPROM_5000_REG_BAND_24_FAT_CHANNELS, 121 EEPROM_5000_REG_BAND_24_HT40_CHANNELS,
122 EEPROM_5000_REG_BAND_52_FAT_CHANNELS 122 EEPROM_5000_REG_BAND_52_HT40_CHANNELS
123 }, 123 },
124 .verify_signature = iwlcore_eeprom_verify_signature, 124 .verify_signature = iwlcore_eeprom_verify_signature,
125 .acquire_semaphore = iwlcore_eeprom_acquire_semaphore, 125 .acquire_semaphore = iwlcore_eeprom_acquire_semaphore,
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-rs.c b/drivers/net/wireless/iwlwifi/iwl-agn-rs.c
index 52a4810274e9..0c3ed23ed775 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn-rs.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn-rs.c
@@ -97,7 +97,7 @@ struct iwl_scale_tbl_info {
97 enum iwl_table_type lq_type; 97 enum iwl_table_type lq_type;
98 u8 ant_type; 98 u8 ant_type;
99 u8 is_SGI; /* 1 = short guard interval */ 99 u8 is_SGI; /* 1 = short guard interval */
100 u8 is_fat; /* 1 = 40 MHz channel width */ 100 u8 is_ht40; /* 1 = 40 MHz channel width */
101 u8 is_dup; /* 1 = duplicated data streams */ 101 u8 is_dup; /* 1 = duplicated data streams */
102 u8 action; /* change modulation; IWL_[LEGACY/SISO/MIMO]_SWITCH_* */ 102 u8 action; /* change modulation; IWL_[LEGACY/SISO/MIMO]_SWITCH_* */
103 u8 max_search; /* maximun number of tables we can search */ 103 u8 max_search; /* maximun number of tables we can search */
@@ -539,11 +539,11 @@ static u32 rate_n_flags_from_tbl(struct iwl_priv *priv,
539 RATE_MCS_ANT_ABC_MSK); 539 RATE_MCS_ANT_ABC_MSK);
540 540
541 if (is_Ht(tbl->lq_type)) { 541 if (is_Ht(tbl->lq_type)) {
542 if (tbl->is_fat) { 542 if (tbl->is_ht40) {
543 if (tbl->is_dup) 543 if (tbl->is_dup)
544 rate_n_flags |= RATE_MCS_DUP_MSK; 544 rate_n_flags |= RATE_MCS_DUP_MSK;
545 else 545 else
546 rate_n_flags |= RATE_MCS_FAT_MSK; 546 rate_n_flags |= RATE_MCS_HT40_MSK;
547 } 547 }
548 if (tbl->is_SGI) 548 if (tbl->is_SGI)
549 rate_n_flags |= RATE_MCS_SGI_MSK; 549 rate_n_flags |= RATE_MCS_SGI_MSK;
@@ -579,7 +579,7 @@ static int rs_get_tbl_info_from_mcs(const u32 rate_n_flags,
579 return -EINVAL; 579 return -EINVAL;
580 } 580 }
581 tbl->is_SGI = 0; /* default legacy setup */ 581 tbl->is_SGI = 0; /* default legacy setup */
582 tbl->is_fat = 0; 582 tbl->is_ht40 = 0;
583 tbl->is_dup = 0; 583 tbl->is_dup = 0;
584 tbl->ant_type = (ant_msk >> RATE_MCS_ANT_POS); 584 tbl->ant_type = (ant_msk >> RATE_MCS_ANT_POS);
585 tbl->lq_type = LQ_NONE; 585 tbl->lq_type = LQ_NONE;
@@ -598,9 +598,9 @@ static int rs_get_tbl_info_from_mcs(const u32 rate_n_flags,
598 if (rate_n_flags & RATE_MCS_SGI_MSK) 598 if (rate_n_flags & RATE_MCS_SGI_MSK)
599 tbl->is_SGI = 1; 599 tbl->is_SGI = 1;
600 600
601 if ((rate_n_flags & RATE_MCS_FAT_MSK) || 601 if ((rate_n_flags & RATE_MCS_HT40_MSK) ||
602 (rate_n_flags & RATE_MCS_DUP_MSK)) 602 (rate_n_flags & RATE_MCS_DUP_MSK))
603 tbl->is_fat = 1; 603 tbl->is_ht40 = 1;
604 604
605 if (rate_n_flags & RATE_MCS_DUP_MSK) 605 if (rate_n_flags & RATE_MCS_DUP_MSK)
606 tbl->is_dup = 1; 606 tbl->is_dup = 1;
@@ -776,7 +776,7 @@ static u32 rs_get_lower_rate(struct iwl_lq_sta *lq_sta,
776 if (num_of_ant(tbl->ant_type) > 1) 776 if (num_of_ant(tbl->ant_type) > 1)
777 tbl->ant_type = ANT_A;/*FIXME:RS*/ 777 tbl->ant_type = ANT_A;/*FIXME:RS*/
778 778
779 tbl->is_fat = 0; 779 tbl->is_ht40 = 0;
780 tbl->is_SGI = 0; 780 tbl->is_SGI = 0;
781 tbl->max_search = IWL_MAX_SEARCH; 781 tbl->max_search = IWL_MAX_SEARCH;
782 } 782 }
@@ -880,7 +880,7 @@ static void rs_tx_status(void *priv_r, struct ieee80211_supported_band *sband,
880 880
881 if ((info->status.rates[0].idx < 0) || 881 if ((info->status.rates[0].idx < 0) ||
882 (tbl_type.is_SGI != !!(info->status.rates[0].flags & IEEE80211_TX_RC_SHORT_GI)) || 882 (tbl_type.is_SGI != !!(info->status.rates[0].flags & IEEE80211_TX_RC_SHORT_GI)) ||
883 (tbl_type.is_fat != !!(info->status.rates[0].flags & IEEE80211_TX_RC_40_MHZ_WIDTH)) || 883 (tbl_type.is_ht40 != !!(info->status.rates[0].flags & IEEE80211_TX_RC_40_MHZ_WIDTH)) ||
884 (tbl_type.is_dup != !!(info->status.rates[0].flags & IEEE80211_TX_RC_DUP_DATA)) || 884 (tbl_type.is_dup != !!(info->status.rates[0].flags & IEEE80211_TX_RC_DUP_DATA)) ||
885 (tbl_type.ant_type != info->antenna_sel_tx) || 885 (tbl_type.ant_type != info->antenna_sel_tx) ||
886 (!!(tx_rate & RATE_MCS_HT_MSK) != !!(info->status.rates[0].flags & IEEE80211_TX_RC_MCS)) || 886 (!!(tx_rate & RATE_MCS_HT_MSK) != !!(info->status.rates[0].flags & IEEE80211_TX_RC_MCS)) ||
@@ -1049,7 +1049,7 @@ static void rs_set_expected_tpt_table(struct iwl_lq_sta *lq_sta,
1049 else 1049 else
1050 tbl->expected_tpt = expected_tpt_A; 1050 tbl->expected_tpt = expected_tpt_A;
1051 } else if (is_siso(tbl->lq_type)) { 1051 } else if (is_siso(tbl->lq_type)) {
1052 if (tbl->is_fat && !lq_sta->is_dup) 1052 if (tbl->is_ht40 && !lq_sta->is_dup)
1053 if (tbl->is_SGI) 1053 if (tbl->is_SGI)
1054 tbl->expected_tpt = expected_tpt_siso40MHzSGI; 1054 tbl->expected_tpt = expected_tpt_siso40MHzSGI;
1055 else 1055 else
@@ -1059,7 +1059,7 @@ static void rs_set_expected_tpt_table(struct iwl_lq_sta *lq_sta,
1059 else 1059 else
1060 tbl->expected_tpt = expected_tpt_siso20MHz; 1060 tbl->expected_tpt = expected_tpt_siso20MHz;
1061 } else if (is_mimo2(tbl->lq_type)) { 1061 } else if (is_mimo2(tbl->lq_type)) {
1062 if (tbl->is_fat && !lq_sta->is_dup) 1062 if (tbl->is_ht40 && !lq_sta->is_dup)
1063 if (tbl->is_SGI) 1063 if (tbl->is_SGI)
1064 tbl->expected_tpt = expected_tpt_mimo2_40MHzSGI; 1064 tbl->expected_tpt = expected_tpt_mimo2_40MHzSGI;
1065 else 1065 else
@@ -1069,7 +1069,7 @@ static void rs_set_expected_tpt_table(struct iwl_lq_sta *lq_sta,
1069 else 1069 else
1070 tbl->expected_tpt = expected_tpt_mimo2_20MHz; 1070 tbl->expected_tpt = expected_tpt_mimo2_20MHz;
1071 } else if (is_mimo3(tbl->lq_type)) { 1071 } else if (is_mimo3(tbl->lq_type)) {
1072 if (tbl->is_fat && !lq_sta->is_dup) 1072 if (tbl->is_ht40 && !lq_sta->is_dup)
1073 if (tbl->is_SGI) 1073 if (tbl->is_SGI)
1074 tbl->expected_tpt = expected_tpt_mimo3_40MHzSGI; 1074 tbl->expected_tpt = expected_tpt_mimo3_40MHzSGI;
1075 else 1075 else
@@ -1217,13 +1217,13 @@ static int rs_switch_to_mimo2(struct iwl_priv *priv,
1217 tbl->max_search = IWL_MAX_SEARCH; 1217 tbl->max_search = IWL_MAX_SEARCH;
1218 rate_mask = lq_sta->active_mimo2_rate; 1218 rate_mask = lq_sta->active_mimo2_rate;
1219 1219
1220 if (iwl_is_fat_tx_allowed(priv, &sta->ht_cap)) 1220 if (iwl_is_ht40_tx_allowed(priv, &sta->ht_cap))
1221 tbl->is_fat = 1; 1221 tbl->is_ht40 = 1;
1222 else 1222 else
1223 tbl->is_fat = 0; 1223 tbl->is_ht40 = 0;
1224 1224
1225 /* FIXME: - don't toggle SGI here 1225 /* FIXME: - don't toggle SGI here
1226 if (tbl->is_fat) { 1226 if (tbl->is_ht40) {
1227 if (priv->current_ht_config.sgf & HT_SHORT_GI_40MHZ_ONLY) 1227 if (priv->current_ht_config.sgf & HT_SHORT_GI_40MHZ_ONLY)
1228 tbl->is_SGI = 1; 1228 tbl->is_SGI = 1;
1229 else 1229 else
@@ -1283,13 +1283,13 @@ static int rs_switch_to_mimo3(struct iwl_priv *priv,
1283 tbl->max_search = IWL_MAX_11N_MIMO3_SEARCH; 1283 tbl->max_search = IWL_MAX_11N_MIMO3_SEARCH;
1284 rate_mask = lq_sta->active_mimo3_rate; 1284 rate_mask = lq_sta->active_mimo3_rate;
1285 1285
1286 if (iwl_is_fat_tx_allowed(priv, &sta->ht_cap)) 1286 if (iwl_is_ht40_tx_allowed(priv, &sta->ht_cap))
1287 tbl->is_fat = 1; 1287 tbl->is_ht40 = 1;
1288 else 1288 else
1289 tbl->is_fat = 0; 1289 tbl->is_ht40 = 0;
1290 1290
1291 /* FIXME: - don't toggle SGI here 1291 /* FIXME: - don't toggle SGI here
1292 if (tbl->is_fat) { 1292 if (tbl->is_ht40) {
1293 if (priv->current_ht_config.sgf & HT_SHORT_GI_40MHZ_ONLY) 1293 if (priv->current_ht_config.sgf & HT_SHORT_GI_40MHZ_ONLY)
1294 tbl->is_SGI = 1; 1294 tbl->is_SGI = 1;
1295 else 1295 else
@@ -1342,13 +1342,13 @@ static int rs_switch_to_siso(struct iwl_priv *priv,
1342 tbl->max_search = IWL_MAX_SEARCH; 1342 tbl->max_search = IWL_MAX_SEARCH;
1343 rate_mask = lq_sta->active_siso_rate; 1343 rate_mask = lq_sta->active_siso_rate;
1344 1344
1345 if (iwl_is_fat_tx_allowed(priv, &sta->ht_cap)) 1345 if (iwl_is_ht40_tx_allowed(priv, &sta->ht_cap))
1346 tbl->is_fat = 1; 1346 tbl->is_ht40 = 1;
1347 else 1347 else
1348 tbl->is_fat = 0; 1348 tbl->is_ht40 = 0;
1349 1349
1350 /* FIXME: - don't toggle SGI here 1350 /* FIXME: - don't toggle SGI here
1351 if (tbl->is_fat) { 1351 if (tbl->is_ht40) {
1352 if (priv->current_ht_config.sgf & HT_SHORT_GI_40MHZ_ONLY) 1352 if (priv->current_ht_config.sgf & HT_SHORT_GI_40MHZ_ONLY)
1353 tbl->is_SGI = 1; 1353 tbl->is_SGI = 1;
1354 else 1354 else
@@ -1586,11 +1586,11 @@ static int rs_move_siso_to_other(struct iwl_priv *priv,
1586 goto out; 1586 goto out;
1587 break; 1587 break;
1588 case IWL_SISO_SWITCH_GI: 1588 case IWL_SISO_SWITCH_GI:
1589 if (!tbl->is_fat && 1589 if (!tbl->is_ht40 &&
1590 !(priv->current_ht_config.sgf & 1590 !(priv->current_ht_config.sgf &
1591 HT_SHORT_GI_20MHZ)) 1591 HT_SHORT_GI_20MHZ))
1592 break; 1592 break;
1593 if (tbl->is_fat && 1593 if (tbl->is_ht40 &&
1594 !(priv->current_ht_config.sgf & 1594 !(priv->current_ht_config.sgf &
1595 HT_SHORT_GI_40MHZ)) 1595 HT_SHORT_GI_40MHZ))
1596 break; 1596 break;
@@ -1726,11 +1726,11 @@ static int rs_move_mimo2_to_other(struct iwl_priv *priv,
1726 break; 1726 break;
1727 1727
1728 case IWL_MIMO2_SWITCH_GI: 1728 case IWL_MIMO2_SWITCH_GI:
1729 if (!tbl->is_fat && 1729 if (!tbl->is_ht40 &&
1730 !(priv->current_ht_config.sgf & 1730 !(priv->current_ht_config.sgf &
1731 HT_SHORT_GI_20MHZ)) 1731 HT_SHORT_GI_20MHZ))
1732 break; 1732 break;
1733 if (tbl->is_fat && 1733 if (tbl->is_ht40 &&
1734 !(priv->current_ht_config.sgf & 1734 !(priv->current_ht_config.sgf &
1735 HT_SHORT_GI_40MHZ)) 1735 HT_SHORT_GI_40MHZ))
1736 break; 1736 break;
@@ -1890,11 +1890,11 @@ static int rs_move_mimo3_to_other(struct iwl_priv *priv,
1890 break; 1890 break;
1891 1891
1892 case IWL_MIMO3_SWITCH_GI: 1892 case IWL_MIMO3_SWITCH_GI:
1893 if (!tbl->is_fat && 1893 if (!tbl->is_ht40 &&
1894 !(priv->current_ht_config.sgf & 1894 !(priv->current_ht_config.sgf &
1895 HT_SHORT_GI_20MHZ)) 1895 HT_SHORT_GI_20MHZ))
1896 break; 1896 break;
1897 if (tbl->is_fat && 1897 if (tbl->is_ht40 &&
1898 !(priv->current_ht_config.sgf & 1898 !(priv->current_ht_config.sgf &
1899 HT_SHORT_GI_40MHZ)) 1899 HT_SHORT_GI_40MHZ))
1900 break; 1900 break;
@@ -2576,7 +2576,7 @@ static void rs_get_rate(void *priv_r, struct ieee80211_sta *sta, void *priv_sta,
2576 info->control.rates[0].flags |= IEEE80211_TX_RC_SHORT_GI; 2576 info->control.rates[0].flags |= IEEE80211_TX_RC_SHORT_GI;
2577 if (lq_sta->last_rate_n_flags & RATE_MCS_DUP_MSK) 2577 if (lq_sta->last_rate_n_flags & RATE_MCS_DUP_MSK)
2578 info->control.rates[0].flags |= IEEE80211_TX_RC_DUP_DATA; 2578 info->control.rates[0].flags |= IEEE80211_TX_RC_DUP_DATA;
2579 if (lq_sta->last_rate_n_flags & RATE_MCS_FAT_MSK) 2579 if (lq_sta->last_rate_n_flags & RATE_MCS_HT40_MSK)
2580 info->control.rates[0].flags |= IEEE80211_TX_RC_40_MHZ_WIDTH; 2580 info->control.rates[0].flags |= IEEE80211_TX_RC_40_MHZ_WIDTH;
2581 if (lq_sta->last_rate_n_flags & RATE_MCS_GF_MSK) 2581 if (lq_sta->last_rate_n_flags & RATE_MCS_GF_MSK)
2582 info->control.rates[0].flags |= IEEE80211_TX_RC_GREEN_FIELD; 2582 info->control.rates[0].flags |= IEEE80211_TX_RC_GREEN_FIELD;
@@ -2963,7 +2963,7 @@ static ssize_t rs_sta_dbgfs_scale_table_read(struct file *file,
2963 (is_siso(tbl->lq_type)) ? "SISO" : 2963 (is_siso(tbl->lq_type)) ? "SISO" :
2964 ((is_mimo2(tbl->lq_type)) ? "MIMO2" : "MIMO3")); 2964 ((is_mimo2(tbl->lq_type)) ? "MIMO2" : "MIMO3"));
2965 desc += sprintf(buff+desc, " %s", 2965 desc += sprintf(buff+desc, " %s",
2966 (tbl->is_fat) ? "40MHz" : "20MHz"); 2966 (tbl->is_ht40) ? "40MHz" : "20MHz");
2967 desc += sprintf(buff+desc, " %s %s\n", (tbl->is_SGI) ? "SGI" : "", 2967 desc += sprintf(buff+desc, " %s %s\n", (tbl->is_SGI) ? "SGI" : "",
2968 (lq_sta->is_green) ? "GF enabled" : ""); 2968 (lq_sta->is_green) ? "GF enabled" : "");
2969 } 2969 }
@@ -3028,12 +3028,13 @@ static ssize_t rs_sta_dbgfs_stats_table_read(struct file *file,
3028 return -ENOMEM; 3028 return -ENOMEM;
3029 3029
3030 for (i = 0; i < LQ_SIZE; i++) { 3030 for (i = 0; i < LQ_SIZE; i++) {
3031 desc += sprintf(buff+desc, "%s type=%d SGI=%d FAT=%d DUP=%d GF=%d\n" 3031 desc += sprintf(buff+desc,
3032 "%s type=%d SGI=%d HT40=%d DUP=%d GF=%d\n"
3032 "rate=0x%X\n", 3033 "rate=0x%X\n",
3033 lq_sta->active_tbl == i ? "*" : "x", 3034 lq_sta->active_tbl == i ? "*" : "x",
3034 lq_sta->lq_info[i].lq_type, 3035 lq_sta->lq_info[i].lq_type,
3035 lq_sta->lq_info[i].is_SGI, 3036 lq_sta->lq_info[i].is_SGI,
3036 lq_sta->lq_info[i].is_fat, 3037 lq_sta->lq_info[i].is_ht40,
3037 lq_sta->lq_info[i].is_dup, 3038 lq_sta->lq_info[i].is_dup,
3038 lq_sta->is_green, 3039 lq_sta->is_green,
3039 lq_sta->lq_info[i].current_rate); 3040 lq_sta->lq_info[i].current_rate);
diff --git a/drivers/net/wireless/iwlwifi/iwl-commands.h b/drivers/net/wireless/iwlwifi/iwl-commands.h
index 39ede5727fe4..6188c54113b0 100644
--- a/drivers/net/wireless/iwlwifi/iwl-commands.h
+++ b/drivers/net/wireless/iwlwifi/iwl-commands.h
@@ -283,7 +283,7 @@ struct iwl3945_power_per_rate {
283 * 1) Dual stream (MIMO) 283 * 1) Dual stream (MIMO)
284 * 2) Triple stream (MIMO) 284 * 2) Triple stream (MIMO)
285 * 285 *
286 * 5: Value of 0x20 in bits 7:0 indicates 6 Mbps FAT duplicate data 286 * 5: Value of 0x20 in bits 7:0 indicates 6 Mbps HT40 duplicate data
287 * 287 *
288 * Legacy OFDM rate format for bits 7:0 (bit 8 must be "0", bit 9 "0"): 288 * Legacy OFDM rate format for bits 7:0 (bit 8 must be "0", bit 9 "0"):
289 * 3-0: 0xD) 6 Mbps 289 * 3-0: 0xD) 6 Mbps
@@ -320,11 +320,11 @@ struct iwl3945_power_per_rate {
320#define RATE_MCS_GF_POS 10 320#define RATE_MCS_GF_POS 10
321#define RATE_MCS_GF_MSK 0x400 321#define RATE_MCS_GF_MSK 0x400
322 322
323/* Bit 11: (1) Use 40Mhz FAT chnl width, (0) use 20 MHz legacy chnl width */ 323/* Bit 11: (1) Use 40Mhz HT40 chnl width, (0) use 20 MHz legacy chnl width */
324#define RATE_MCS_FAT_POS 11 324#define RATE_MCS_HT40_POS 11
325#define RATE_MCS_FAT_MSK 0x800 325#define RATE_MCS_HT40_MSK 0x800
326 326
327/* Bit 12: (1) Duplicate data on both 20MHz chnls. FAT (bit 11) must be set. */ 327/* Bit 12: (1) Duplicate data on both 20MHz chnls. HT40 (bit 11) must be set. */
328#define RATE_MCS_DUP_POS 12 328#define RATE_MCS_DUP_POS 12
329#define RATE_MCS_DUP_MSK 0x1000 329#define RATE_MCS_DUP_MSK 0x1000
330 330
@@ -459,7 +459,7 @@ struct iwl_init_alive_resp {
459 459
460 /* calibration values from "initialize" uCode */ 460 /* calibration values from "initialize" uCode */
461 __le32 voltage; /* signed, higher value is lower voltage */ 461 __le32 voltage; /* signed, higher value is lower voltage */
462 __le32 therm_r1[2]; /* signed, 1st for normal, 2nd for FAT channel*/ 462 __le32 therm_r1[2]; /* signed, 1st for normal, 2nd for HT40 */
463 __le32 therm_r2[2]; /* signed */ 463 __le32 therm_r2[2]; /* signed */
464 __le32 therm_r3[2]; /* signed */ 464 __le32 therm_r3[2]; /* signed */
465 __le32 therm_r4[2]; /* signed */ 465 __le32 therm_r4[2]; /* signed */
@@ -610,7 +610,7 @@ enum {
610#define RXON_FLG_HT_OPERATING_MODE_POS (23) 610#define RXON_FLG_HT_OPERATING_MODE_POS (23)
611 611
612#define RXON_FLG_HT_PROT_MSK cpu_to_le32(0x1 << 23) 612#define RXON_FLG_HT_PROT_MSK cpu_to_le32(0x1 << 23)
613#define RXON_FLG_FAT_PROT_MSK cpu_to_le32(0x2 << 23) 613#define RXON_FLG_HT40_PROT_MSK cpu_to_le32(0x2 << 23)
614 614
615#define RXON_FLG_CHANNEL_MODE_POS (25) 615#define RXON_FLG_CHANNEL_MODE_POS (25)
616#define RXON_FLG_CHANNEL_MODE_MSK cpu_to_le32(0x3 << 25) 616#define RXON_FLG_CHANNEL_MODE_MSK cpu_to_le32(0x3 << 25)
@@ -891,7 +891,7 @@ struct iwl_qosparam_cmd {
891#define STA_FLG_AGG_MPDU_8US_MSK cpu_to_le32(1 << 18) 891#define STA_FLG_AGG_MPDU_8US_MSK cpu_to_le32(1 << 18)
892#define STA_FLG_MAX_AGG_SIZE_POS (19) 892#define STA_FLG_MAX_AGG_SIZE_POS (19)
893#define STA_FLG_MAX_AGG_SIZE_MSK cpu_to_le32(3 << 19) 893#define STA_FLG_MAX_AGG_SIZE_MSK cpu_to_le32(3 << 19)
894#define STA_FLG_FAT_EN_MSK cpu_to_le32(1 << 21) 894#define STA_FLG_HT40_EN_MSK cpu_to_le32(1 << 21)
895#define STA_FLG_MIMO_DIS_MSK cpu_to_le32(1 << 22) 895#define STA_FLG_MIMO_DIS_MSK cpu_to_le32(1 << 22)
896#define STA_FLG_AGG_MPDU_DENSITY_POS (23) 896#define STA_FLG_AGG_MPDU_DENSITY_POS (23)
897#define STA_FLG_AGG_MPDU_DENSITY_MSK cpu_to_le32(7 << 23) 897#define STA_FLG_AGG_MPDU_DENSITY_MSK cpu_to_le32(7 << 23)
@@ -1984,10 +1984,10 @@ struct iwl_link_qual_agg_params {
1984 * a) Use this same initial rate for first 3 entries. 1984 * a) Use this same initial rate for first 3 entries.
1985 * b) Find next lower available rate using same mode (SISO or MIMO), 1985 * b) Find next lower available rate using same mode (SISO or MIMO),
1986 * use for next 3 entries. If no lower rate available, switch to 1986 * use for next 3 entries. If no lower rate available, switch to
1987 * legacy mode (no FAT channel, no MIMO, no short guard interval). 1987 * legacy mode (no HT40 channel, no MIMO, no short guard interval).
1988 * c) If using MIMO, set command's mimo_delimiter to number of entries 1988 * c) If using MIMO, set command's mimo_delimiter to number of entries
1989 * using MIMO (3 or 6). 1989 * using MIMO (3 or 6).
1990 * d) After trying 2 HT rates, switch to legacy mode (no FAT channel, 1990 * d) After trying 2 HT rates, switch to legacy mode (no HT40 channel,
1991 * no MIMO, no short guard interval), at the next lower bit rate 1991 * no MIMO, no short guard interval), at the next lower bit rate
1992 * (e.g. if second HT bit rate was 54, try 48 legacy), and follow 1992 * (e.g. if second HT bit rate was 54, try 48 legacy), and follow
1993 * legacy procedure for remaining table entries. 1993 * legacy procedure for remaining table entries.
@@ -3017,7 +3017,7 @@ struct iwl_statistics_cmd {
3017 * one channel that has just been scanned. 3017 * one channel that has just been scanned.
3018 */ 3018 */
3019#define STATISTICS_REPLY_FLG_BAND_24G_MSK cpu_to_le32(0x2) 3019#define STATISTICS_REPLY_FLG_BAND_24G_MSK cpu_to_le32(0x2)
3020#define STATISTICS_REPLY_FLG_FAT_MODE_MSK cpu_to_le32(0x8) 3020#define STATISTICS_REPLY_FLG_HT40_MODE_MSK cpu_to_le32(0x8)
3021 3021
3022struct iwl3945_notif_statistics { 3022struct iwl3945_notif_statistics {
3023 __le32 flag; 3023 __le32 flag;
diff --git a/drivers/net/wireless/iwlwifi/iwl-core.c b/drivers/net/wireless/iwlwifi/iwl-core.c
index 30f1953208ee..5315d347a004 100644
--- a/drivers/net/wireless/iwlwifi/iwl-core.c
+++ b/drivers/net/wireless/iwlwifi/iwl-core.c
@@ -105,7 +105,7 @@ void iwl_hwrate_to_tx_control(struct iwl_priv *priv, u32 rate_n_flags,
105 r->flags |= IEEE80211_TX_RC_MCS; 105 r->flags |= IEEE80211_TX_RC_MCS;
106 if (rate_n_flags & RATE_MCS_GF_MSK) 106 if (rate_n_flags & RATE_MCS_GF_MSK)
107 r->flags |= IEEE80211_TX_RC_GREEN_FIELD; 107 r->flags |= IEEE80211_TX_RC_GREEN_FIELD;
108 if (rate_n_flags & RATE_MCS_FAT_MSK) 108 if (rate_n_flags & RATE_MCS_HT40_MSK)
109 r->flags |= IEEE80211_TX_RC_40_MHZ_WIDTH; 109 r->flags |= IEEE80211_TX_RC_40_MHZ_WIDTH;
110 if (rate_n_flags & RATE_MCS_DUP_MSK) 110 if (rate_n_flags & RATE_MCS_DUP_MSK)
111 r->flags |= IEEE80211_TX_RC_DUP_DATA; 111 r->flags |= IEEE80211_TX_RC_DUP_DATA;
@@ -400,7 +400,7 @@ static void iwlcore_init_ht_hw_capab(const struct iwl_priv *priv,
400 (WLAN_HT_CAP_SM_PS_DISABLED << 2)); 400 (WLAN_HT_CAP_SM_PS_DISABLED << 2));
401 401
402 max_bit_rate = MAX_BIT_RATE_20_MHZ; 402 max_bit_rate = MAX_BIT_RATE_20_MHZ;
403 if (priv->hw_params.fat_channel & BIT(band)) { 403 if (priv->hw_params.ht40_channel & BIT(band)) {
404 ht_info->cap |= IEEE80211_HT_CAP_SUP_WIDTH_20_40; 404 ht_info->cap |= IEEE80211_HT_CAP_SUP_WIDTH_20_40;
405 ht_info->cap |= IEEE80211_HT_CAP_SGI_40; 405 ht_info->cap |= IEEE80211_HT_CAP_SGI_40;
406 ht_info->mcs.rx_mask[4] = 0x01; 406 ht_info->mcs.rx_mask[4] = 0x01;
@@ -540,7 +540,7 @@ int iwlcore_init_geos(struct iwl_priv *priv)
540 if (ch->flags & EEPROM_CHANNEL_RADAR) 540 if (ch->flags & EEPROM_CHANNEL_RADAR)
541 geo_ch->flags |= IEEE80211_CHAN_RADAR; 541 geo_ch->flags |= IEEE80211_CHAN_RADAR;
542 542
543 geo_ch->flags |= ch->fat_extension_channel; 543 geo_ch->flags |= ch->ht40_extension_channel;
544 544
545 if (ch->max_power_avg > priv->tx_power_channel_lmt) 545 if (ch->max_power_avg > priv->tx_power_channel_lmt)
546 priv->tx_power_channel_lmt = ch->max_power_avg; 546 priv->tx_power_channel_lmt = ch->max_power_avg;
@@ -604,16 +604,16 @@ static u8 iwl_is_channel_extension(struct iwl_priv *priv,
604 return 0; 604 return 0;
605 605
606 if (extension_chan_offset == IEEE80211_HT_PARAM_CHA_SEC_ABOVE) 606 if (extension_chan_offset == IEEE80211_HT_PARAM_CHA_SEC_ABOVE)
607 return !(ch_info->fat_extension_channel & 607 return !(ch_info->ht40_extension_channel &
608 IEEE80211_CHAN_NO_HT40PLUS); 608 IEEE80211_CHAN_NO_HT40PLUS);
609 else if (extension_chan_offset == IEEE80211_HT_PARAM_CHA_SEC_BELOW) 609 else if (extension_chan_offset == IEEE80211_HT_PARAM_CHA_SEC_BELOW)
610 return !(ch_info->fat_extension_channel & 610 return !(ch_info->ht40_extension_channel &
611 IEEE80211_CHAN_NO_HT40MINUS); 611 IEEE80211_CHAN_NO_HT40MINUS);
612 612
613 return 0; 613 return 0;
614} 614}
615 615
616u8 iwl_is_fat_tx_allowed(struct iwl_priv *priv, 616u8 iwl_is_ht40_tx_allowed(struct iwl_priv *priv,
617 struct ieee80211_sta_ht_cap *sta_ht_inf) 617 struct ieee80211_sta_ht_cap *sta_ht_inf)
618{ 618{
619 struct iwl_ht_info *iwl_ht_conf = &priv->current_ht_config; 619 struct iwl_ht_info *iwl_ht_conf = &priv->current_ht_config;
@@ -637,7 +637,7 @@ u8 iwl_is_fat_tx_allowed(struct iwl_priv *priv,
637 le16_to_cpu(priv->staging_rxon.channel), 637 le16_to_cpu(priv->staging_rxon.channel),
638 iwl_ht_conf->extension_chan_offset); 638 iwl_ht_conf->extension_chan_offset);
639} 639}
640EXPORT_SYMBOL(iwl_is_fat_tx_allowed); 640EXPORT_SYMBOL(iwl_is_ht40_tx_allowed);
641 641
642static u16 iwl_adjust_beacon_interval(u16 beacon_val, u16 max_beacon_val) 642static u16 iwl_adjust_beacon_interval(u16 beacon_val, u16 max_beacon_val)
643{ 643{
@@ -866,7 +866,7 @@ void iwl_set_rxon_ht(struct iwl_priv *priv, struct iwl_ht_info *ht_info)
866 if (!ht_info->is_ht) { 866 if (!ht_info->is_ht) {
867 rxon->flags &= ~(RXON_FLG_CHANNEL_MODE_MSK | 867 rxon->flags &= ~(RXON_FLG_CHANNEL_MODE_MSK |
868 RXON_FLG_CTRL_CHANNEL_LOC_HI_MSK | 868 RXON_FLG_CTRL_CHANNEL_LOC_HI_MSK |
869 RXON_FLG_FAT_PROT_MSK | 869 RXON_FLG_HT40_PROT_MSK |
870 RXON_FLG_HT_PROT_MSK); 870 RXON_FLG_HT_PROT_MSK);
871 return; 871 return;
872 } 872 }
@@ -877,12 +877,12 @@ void iwl_set_rxon_ht(struct iwl_priv *priv, struct iwl_ht_info *ht_info)
877 rxon->flags |= cpu_to_le32(ht_info->ht_protection << RXON_FLG_HT_OPERATING_MODE_POS); 877 rxon->flags |= cpu_to_le32(ht_info->ht_protection << RXON_FLG_HT_OPERATING_MODE_POS);
878 878
879 /* Set up channel bandwidth: 879 /* Set up channel bandwidth:
880 * 20 MHz only, 20/40 mixed or pure 40 if fat ok */ 880 * 20 MHz only, 20/40 mixed or pure 40 if ht40 ok */
881 /* clear the HT channel mode before set the mode */ 881 /* clear the HT channel mode before set the mode */
882 rxon->flags &= ~(RXON_FLG_CHANNEL_MODE_MSK | 882 rxon->flags &= ~(RXON_FLG_CHANNEL_MODE_MSK |
883 RXON_FLG_CTRL_CHANNEL_LOC_HI_MSK); 883 RXON_FLG_CTRL_CHANNEL_LOC_HI_MSK);
884 if (iwl_is_fat_tx_allowed(priv, NULL)) { 884 if (iwl_is_ht40_tx_allowed(priv, NULL)) {
885 /* pure 40 fat */ 885 /* pure ht40 */
886 if (ht_info->ht_protection == IEEE80211_HT_OP_MODE_PROTECTION_20MHZ) { 886 if (ht_info->ht_protection == IEEE80211_HT_OP_MODE_PROTECTION_20MHZ) {
887 rxon->flags |= RXON_FLG_CHANNEL_MODE_PURE_40; 887 rxon->flags |= RXON_FLG_CHANNEL_MODE_PURE_40;
888 /* Note: control channel is opposite of extension channel */ 888 /* Note: control channel is opposite of extension channel */
@@ -2428,7 +2428,7 @@ static void iwl_ht_conf(struct iwl_priv *priv,
2428 else if (conf_is_ht40_plus(&priv->hw->conf)) 2428 else if (conf_is_ht40_plus(&priv->hw->conf))
2429 iwl_conf->extension_chan_offset = IEEE80211_HT_PARAM_CHA_SEC_ABOVE; 2429 iwl_conf->extension_chan_offset = IEEE80211_HT_PARAM_CHA_SEC_ABOVE;
2430 2430
2431 /* If no above or below channel supplied disable FAT channel */ 2431 /* If no above or below channel supplied disable HT40 channel */
2432 if (iwl_conf->extension_chan_offset != IEEE80211_HT_PARAM_CHA_SEC_ABOVE && 2432 if (iwl_conf->extension_chan_offset != IEEE80211_HT_PARAM_CHA_SEC_ABOVE &&
2433 iwl_conf->extension_chan_offset != IEEE80211_HT_PARAM_CHA_SEC_BELOW) 2433 iwl_conf->extension_chan_offset != IEEE80211_HT_PARAM_CHA_SEC_BELOW)
2434 iwl_conf->supported_chan_width = 0; 2434 iwl_conf->supported_chan_width = 0;
diff --git a/drivers/net/wireless/iwlwifi/iwl-core.h b/drivers/net/wireless/iwlwifi/iwl-core.h
index 10ddcdda1041..dd66148a7899 100644
--- a/drivers/net/wireless/iwlwifi/iwl-core.h
+++ b/drivers/net/wireless/iwlwifi/iwl-core.h
@@ -264,7 +264,7 @@ int iwl_full_rxon_required(struct iwl_priv *priv);
264void iwl_set_rxon_chain(struct iwl_priv *priv); 264void iwl_set_rxon_chain(struct iwl_priv *priv);
265int iwl_set_rxon_channel(struct iwl_priv *priv, struct ieee80211_channel *ch); 265int iwl_set_rxon_channel(struct iwl_priv *priv, struct ieee80211_channel *ch);
266void iwl_set_rxon_ht(struct iwl_priv *priv, struct iwl_ht_info *ht_info); 266void iwl_set_rxon_ht(struct iwl_priv *priv, struct iwl_ht_info *ht_info);
267u8 iwl_is_fat_tx_allowed(struct iwl_priv *priv, 267u8 iwl_is_ht40_tx_allowed(struct iwl_priv *priv,
268 struct ieee80211_sta_ht_cap *sta_ht_inf); 268 struct ieee80211_sta_ht_cap *sta_ht_inf);
269void iwl_set_flags_for_band(struct iwl_priv *priv, enum ieee80211_band band); 269void iwl_set_flags_for_band(struct iwl_priv *priv, enum ieee80211_band band);
270void iwl_connection_init_rx_config(struct iwl_priv *priv, int mode); 270void iwl_connection_init_rx_config(struct iwl_priv *priv, int mode);
diff --git a/drivers/net/wireless/iwlwifi/iwl-dev.h b/drivers/net/wireless/iwlwifi/iwl-dev.h
index 1bf3e4ccc5d9..624656a2bbaa 100644
--- a/drivers/net/wireless/iwlwifi/iwl-dev.h
+++ b/drivers/net/wireless/iwlwifi/iwl-dev.h
@@ -277,8 +277,8 @@ struct iwl_channel_info {
277 struct iwl4965_channel_tgd_info tgd; 277 struct iwl4965_channel_tgd_info tgd;
278 struct iwl4965_channel_tgh_info tgh; 278 struct iwl4965_channel_tgh_info tgh;
279 struct iwl_eeprom_channel eeprom; /* EEPROM regulatory limit */ 279 struct iwl_eeprom_channel eeprom; /* EEPROM regulatory limit */
280 struct iwl_eeprom_channel fat_eeprom; /* EEPROM regulatory limit for 280 struct iwl_eeprom_channel ht40_eeprom; /* EEPROM regulatory limit for
281 * FAT channel */ 281 * HT40 channel */
282 282
283 u8 channel; /* channel number */ 283 u8 channel; /* channel number */
284 u8 flags; /* flags copied from EEPROM */ 284 u8 flags; /* flags copied from EEPROM */
@@ -291,13 +291,13 @@ struct iwl_channel_info {
291 u8 band_index; /* 0-4, maps channel to band1/2/3/4/5 */ 291 u8 band_index; /* 0-4, maps channel to band1/2/3/4/5 */
292 enum ieee80211_band band; 292 enum ieee80211_band band;
293 293
294 /* FAT channel info */ 294 /* HT40 channel info */
295 s8 fat_max_power_avg; /* (dBm) regul. eeprom, normal Tx, any rate */ 295 s8 ht40_max_power_avg; /* (dBm) regul. eeprom, normal Tx, any rate */
296 s8 fat_curr_txpow; /* (dBm) regulatory/spectrum/user (not h/w) */ 296 s8 ht40_curr_txpow; /* (dBm) regulatory/spectrum/user (not h/w) */
297 s8 fat_min_power; /* always 0 */ 297 s8 ht40_min_power; /* always 0 */
298 s8 fat_scan_power; /* (dBm) eeprom, direct scans, any rate */ 298 s8 ht40_scan_power; /* (dBm) eeprom, direct scans, any rate */
299 u8 fat_flags; /* flags copied from EEPROM */ 299 u8 ht40_flags; /* flags copied from EEPROM */
300 u8 fat_extension_channel; /* HT_IE_EXT_CHANNEL_* */ 300 u8 ht40_extension_channel; /* HT_IE_EXT_CHANNEL_* */
301 301
302 /* Radio/DSP gain settings for each "normal" data Tx rate. 302 /* Radio/DSP gain settings for each "normal" data Tx rate.
303 * These include, in addition to RF and DSP gain, a few fields for 303 * These include, in addition to RF and DSP gain, a few fields for
@@ -649,7 +649,7 @@ struct iwl_sensitivity_ranges {
649 * @rx_wrt_ptr_reg: FH{39}_RSCSR_CHNL0_WPTR 649 * @rx_wrt_ptr_reg: FH{39}_RSCSR_CHNL0_WPTR
650 * @max_stations: 650 * @max_stations:
651 * @bcast_sta_id: 651 * @bcast_sta_id:
652 * @fat_channel: is 40MHz width possible in band 2.4 652 * @ht40_channel: is 40MHz width possible in band 2.4
653 * BIT(IEEE80211_BAND_5GHZ) BIT(IEEE80211_BAND_5GHZ) 653 * BIT(IEEE80211_BAND_5GHZ) BIT(IEEE80211_BAND_5GHZ)
654 * @sw_crypto: 0 for hw, 1 for sw 654 * @sw_crypto: 0 for hw, 1 for sw
655 * @max_xxx_size: for ucode uses 655 * @max_xxx_size: for ucode uses
@@ -673,7 +673,7 @@ struct iwl_hw_params {
673 u32 max_pkt_size; 673 u32 max_pkt_size;
674 u8 max_stations; 674 u8 max_stations;
675 u8 bcast_sta_id; 675 u8 bcast_sta_id;
676 u8 fat_channel; 676 u8 ht40_channel;
677 u8 max_beacon_itrvl; /* in 1024 ms */ 677 u8 max_beacon_itrvl; /* in 1024 ms */
678 u32 max_inst_size; 678 u32 max_inst_size;
679 u32 max_data_size; 679 u32 max_data_size;
diff --git a/drivers/net/wireless/iwlwifi/iwl-eeprom.c b/drivers/net/wireless/iwlwifi/iwl-eeprom.c
index 51eed7226669..78c4a324a3b5 100644
--- a/drivers/net/wireless/iwlwifi/iwl-eeprom.c
+++ b/drivers/net/wireless/iwlwifi/iwl-eeprom.c
@@ -127,11 +127,11 @@ static const u8 iwl_eeprom_band_5[] = { /* 5725-5825MHz */
127 145, 149, 153, 157, 161, 165 127 145, 149, 153, 157, 161, 165
128}; 128};
129 129
130static const u8 iwl_eeprom_band_6[] = { /* 2.4 FAT channel */ 130static const u8 iwl_eeprom_band_6[] = { /* 2.4 ht40 channel */
131 1, 2, 3, 4, 5, 6, 7 131 1, 2, 3, 4, 5, 6, 7
132}; 132};
133 133
134static const u8 iwl_eeprom_band_7[] = { /* 5.2 FAT channel */ 134static const u8 iwl_eeprom_band_7[] = { /* 5.2 ht40 channel */
135 36, 44, 52, 60, 100, 108, 116, 124, 132, 149, 157 135 36, 44, 52, 60, 100, 108, 116, 124, 132, 149, 157
136}; 136};
137 137
@@ -462,13 +462,13 @@ static void iwl_init_band_reference(const struct iwl_priv *priv,
462 iwl_eeprom_query_addr(priv, offset); 462 iwl_eeprom_query_addr(priv, offset);
463 *eeprom_ch_index = iwl_eeprom_band_5; 463 *eeprom_ch_index = iwl_eeprom_band_5;
464 break; 464 break;
465 case 6: /* 2.4GHz FAT channels */ 465 case 6: /* 2.4GHz ht40 channels */
466 *eeprom_ch_count = ARRAY_SIZE(iwl_eeprom_band_6); 466 *eeprom_ch_count = ARRAY_SIZE(iwl_eeprom_band_6);
467 *eeprom_ch_info = (struct iwl_eeprom_channel *) 467 *eeprom_ch_info = (struct iwl_eeprom_channel *)
468 iwl_eeprom_query_addr(priv, offset); 468 iwl_eeprom_query_addr(priv, offset);
469 *eeprom_ch_index = iwl_eeprom_band_6; 469 *eeprom_ch_index = iwl_eeprom_band_6;
470 break; 470 break;
471 case 7: /* 5 GHz FAT channels */ 471 case 7: /* 5 GHz ht40 channels */
472 *eeprom_ch_count = ARRAY_SIZE(iwl_eeprom_band_7); 472 *eeprom_ch_count = ARRAY_SIZE(iwl_eeprom_band_7);
473 *eeprom_ch_info = (struct iwl_eeprom_channel *) 473 *eeprom_ch_info = (struct iwl_eeprom_channel *)
474 iwl_eeprom_query_addr(priv, offset); 474 iwl_eeprom_query_addr(priv, offset);
@@ -484,14 +484,14 @@ static void iwl_init_band_reference(const struct iwl_priv *priv,
484 ? # x " " : "") 484 ? # x " " : "")
485 485
486/** 486/**
487 * iwl_set_fat_chan_info - Copy fat channel info into driver's priv. 487 * iwl_set_ht40_chan_info - Copy ht40 channel info into driver's priv.
488 * 488 *
489 * Does not set up a command, or touch hardware. 489 * Does not set up a command, or touch hardware.
490 */ 490 */
491static int iwl_set_fat_chan_info(struct iwl_priv *priv, 491static int iwl_set_ht40_chan_info(struct iwl_priv *priv,
492 enum ieee80211_band band, u16 channel, 492 enum ieee80211_band band, u16 channel,
493 const struct iwl_eeprom_channel *eeprom_ch, 493 const struct iwl_eeprom_channel *eeprom_ch,
494 u8 fat_extension_channel) 494 u8 ht40_extension_channel)
495{ 495{
496 struct iwl_channel_info *ch_info; 496 struct iwl_channel_info *ch_info;
497 497
@@ -501,7 +501,7 @@ static int iwl_set_fat_chan_info(struct iwl_priv *priv,
501 if (!is_channel_valid(ch_info)) 501 if (!is_channel_valid(ch_info))
502 return -1; 502 return -1;
503 503
504 IWL_DEBUG_INFO(priv, "FAT Ch. %d [%sGHz] %s%s%s%s%s(0x%02x %ddBm):" 504 IWL_DEBUG_INFO(priv, "HT40 Ch. %d [%sGHz] %s%s%s%s%s(0x%02x %ddBm):"
505 " Ad-Hoc %ssupported\n", 505 " Ad-Hoc %ssupported\n",
506 ch_info->channel, 506 ch_info->channel,
507 is_channel_a_band(ch_info) ? 507 is_channel_a_band(ch_info) ?
@@ -517,13 +517,13 @@ static int iwl_set_fat_chan_info(struct iwl_priv *priv,
517 && !(eeprom_ch->flags & EEPROM_CHANNEL_RADAR)) ? 517 && !(eeprom_ch->flags & EEPROM_CHANNEL_RADAR)) ?
518 "" : "not "); 518 "" : "not ");
519 519
520 ch_info->fat_eeprom = *eeprom_ch; 520 ch_info->ht40_eeprom = *eeprom_ch;
521 ch_info->fat_max_power_avg = eeprom_ch->max_power_avg; 521 ch_info->ht40_max_power_avg = eeprom_ch->max_power_avg;
522 ch_info->fat_curr_txpow = eeprom_ch->max_power_avg; 522 ch_info->ht40_curr_txpow = eeprom_ch->max_power_avg;
523 ch_info->fat_min_power = 0; 523 ch_info->ht40_min_power = 0;
524 ch_info->fat_scan_power = eeprom_ch->max_power_avg; 524 ch_info->ht40_scan_power = eeprom_ch->max_power_avg;
525 ch_info->fat_flags = eeprom_ch->flags; 525 ch_info->ht40_flags = eeprom_ch->flags;
526 ch_info->fat_extension_channel = fat_extension_channel; 526 ch_info->ht40_extension_channel = ht40_extension_channel;
527 527
528 return 0; 528 return 0;
529} 529}
@@ -589,9 +589,9 @@ int iwl_init_channel_map(struct iwl_priv *priv)
589 /* Copy the run-time flags so they are there even on 589 /* Copy the run-time flags so they are there even on
590 * invalid channels */ 590 * invalid channels */
591 ch_info->flags = eeprom_ch_info[ch].flags; 591 ch_info->flags = eeprom_ch_info[ch].flags;
592 /* First write that fat is not enabled, and then enable 592 /* First write that ht40 is not enabled, and then enable
593 * one by one */ 593 * one by one */
594 ch_info->fat_extension_channel = 594 ch_info->ht40_extension_channel =
595 (IEEE80211_CHAN_NO_HT40PLUS | 595 (IEEE80211_CHAN_NO_HT40PLUS |
596 IEEE80211_CHAN_NO_HT40MINUS); 596 IEEE80211_CHAN_NO_HT40MINUS);
597 597
@@ -642,17 +642,17 @@ int iwl_init_channel_map(struct iwl_priv *priv)
642 } 642 }
643 } 643 }
644 644
645 /* Check if we do have FAT channels */ 645 /* Check if we do have HT40 channels */
646 if (priv->cfg->ops->lib->eeprom_ops.regulatory_bands[5] == 646 if (priv->cfg->ops->lib->eeprom_ops.regulatory_bands[5] ==
647 EEPROM_REGULATORY_BAND_NO_FAT && 647 EEPROM_REGULATORY_BAND_NO_HT40 &&
648 priv->cfg->ops->lib->eeprom_ops.regulatory_bands[6] == 648 priv->cfg->ops->lib->eeprom_ops.regulatory_bands[6] ==
649 EEPROM_REGULATORY_BAND_NO_FAT) 649 EEPROM_REGULATORY_BAND_NO_HT40)
650 return 0; 650 return 0;
651 651
652 /* Two additional EEPROM bands for 2.4 and 5 GHz FAT channels */ 652 /* Two additional EEPROM bands for 2.4 and 5 GHz HT40 channels */
653 for (band = 6; band <= 7; band++) { 653 for (band = 6; band <= 7; band++) {
654 enum ieee80211_band ieeeband; 654 enum ieee80211_band ieeeband;
655 u8 fat_extension_chan; 655 u8 ht40_extension_chan;
656 656
657 iwl_init_band_reference(priv, band, &eeprom_ch_count, 657 iwl_init_band_reference(priv, band, &eeprom_ch_count,
658 &eeprom_ch_info, &eeprom_ch_index); 658 &eeprom_ch_info, &eeprom_ch_index);
@@ -669,19 +669,19 @@ int iwl_init_channel_map(struct iwl_priv *priv)
669 (eeprom_ch_index[ch] == 6) || 669 (eeprom_ch_index[ch] == 6) ||
670 (eeprom_ch_index[ch] == 7))) 670 (eeprom_ch_index[ch] == 7)))
671 /* both are allowed: above and below */ 671 /* both are allowed: above and below */
672 fat_extension_chan = 0; 672 ht40_extension_chan = 0;
673 else 673 else
674 fat_extension_chan = 674 ht40_extension_chan =
675 IEEE80211_CHAN_NO_HT40MINUS; 675 IEEE80211_CHAN_NO_HT40MINUS;
676 676
677 /* Set up driver's info for lower half */ 677 /* Set up driver's info for lower half */
678 iwl_set_fat_chan_info(priv, ieeeband, 678 iwl_set_ht40_chan_info(priv, ieeeband,
679 eeprom_ch_index[ch], 679 eeprom_ch_index[ch],
680 &(eeprom_ch_info[ch]), 680 &(eeprom_ch_info[ch]),
681 fat_extension_chan); 681 ht40_extension_chan);
682 682
683 /* Set up driver's info for upper half */ 683 /* Set up driver's info for upper half */
684 iwl_set_fat_chan_info(priv, ieeeband, 684 iwl_set_ht40_chan_info(priv, ieeeband,
685 (eeprom_ch_index[ch] + 4), 685 (eeprom_ch_index[ch] + 4),
686 &(eeprom_ch_info[ch]), 686 &(eeprom_ch_info[ch]),
687 IEEE80211_CHAN_NO_HT40PLUS); 687 IEEE80211_CHAN_NO_HT40PLUS);
diff --git a/drivers/net/wireless/iwlwifi/iwl-eeprom.h b/drivers/net/wireless/iwlwifi/iwl-eeprom.h
index 195b4ef12c27..05d4fc4451dc 100644
--- a/drivers/net/wireless/iwlwifi/iwl-eeprom.h
+++ b/drivers/net/wireless/iwlwifi/iwl-eeprom.h
@@ -88,10 +88,10 @@ struct iwl_priv;
88 * requirement for establishing a new network for legal operation on channels 88 * requirement for establishing a new network for legal operation on channels
89 * requiring RADAR detection or restricting ACTIVE scanning. 89 * requiring RADAR detection or restricting ACTIVE scanning.
90 * 90 *
91 * NOTE: "WIDE" flag does not indicate anything about "FAT" 40 MHz channels. 91 * NOTE: "WIDE" flag does not indicate anything about "HT40" 40 MHz channels.
92 * It only indicates that 20 MHz channel use is supported; FAT channel 92 * It only indicates that 20 MHz channel use is supported; HT40 channel
93 * usage is indicated by a separate set of regulatory flags for each 93 * usage is indicated by a separate set of regulatory flags for each
94 * FAT channel pair. 94 * HT40 channel pair.
95 * 95 *
96 * NOTE: Using a channel inappropriately will result in a uCode error! 96 * NOTE: Using a channel inappropriately will result in a uCode error!
97 */ 97 */
@@ -112,7 +112,7 @@ enum {
112#define EEPROM_SKU_CAP_HW_RF_KILL_ENABLE (1 << 1) 112#define EEPROM_SKU_CAP_HW_RF_KILL_ENABLE (1 << 1)
113 113
114/* *regulatory* channel data format in eeprom, one for each channel. 114/* *regulatory* channel data format in eeprom, one for each channel.
115 * There are separate entries for FAT (40 MHz) vs. normal (20 MHz) channels. */ 115 * There are separate entries for HT40 (40 MHz) vs. normal (20 MHz) channels. */
116struct iwl_eeprom_channel { 116struct iwl_eeprom_channel {
117 u8 flags; /* EEPROM_CHANNEL_* flags copied from EEPROM */ 117 u8 flags; /* EEPROM_CHANNEL_* flags copied from EEPROM */
118 s8 max_power_avg; /* max power (dBm) on this chnl, limit 31 */ 118 s8 max_power_avg; /* max power (dBm) on this chnl, limit 31 */
@@ -170,9 +170,9 @@ struct iwl_eeprom_channel {
170 | INDIRECT_ADDRESS | INDIRECT_REGULATORY) /* 22 bytes */ 170 | INDIRECT_ADDRESS | INDIRECT_REGULATORY) /* 22 bytes */
171#define EEPROM_5000_REG_BAND_5_CHANNELS ((0x74)\ 171#define EEPROM_5000_REG_BAND_5_CHANNELS ((0x74)\
172 | INDIRECT_ADDRESS | INDIRECT_REGULATORY) /* 12 bytes */ 172 | INDIRECT_ADDRESS | INDIRECT_REGULATORY) /* 12 bytes */
173#define EEPROM_5000_REG_BAND_24_FAT_CHANNELS ((0x82)\ 173#define EEPROM_5000_REG_BAND_24_HT40_CHANNELS ((0x82)\
174 | INDIRECT_ADDRESS | INDIRECT_REGULATORY) /* 14 bytes */ 174 | INDIRECT_ADDRESS | INDIRECT_REGULATORY) /* 14 bytes */
175#define EEPROM_5000_REG_BAND_52_FAT_CHANNELS ((0x92)\ 175#define EEPROM_5000_REG_BAND_52_HT40_CHANNELS ((0x92)\
176 | INDIRECT_ADDRESS | INDIRECT_REGULATORY) /* 22 bytes */ 176 | INDIRECT_ADDRESS | INDIRECT_REGULATORY) /* 22 bytes */
177 177
178/* 5050 Specific */ 178/* 5050 Specific */
@@ -313,7 +313,7 @@ struct iwl_eeprom_calib_info {
313 * in EEPROM containing EEPROM_CHANNEL_* usage flags (LSB) and max regulatory 313 * in EEPROM containing EEPROM_CHANNEL_* usage flags (LSB) and max regulatory
314 * txpower (MSB). 314 * txpower (MSB).
315 * 315 *
316 * Entries immediately below are for 20 MHz channel width. FAT (40 MHz) 316 * Entries immediately below are for 20 MHz channel width. HT40 (40 MHz)
317 * channels (only for 4965, not supported by 3945) appear later in the EEPROM. 317 * channels (only for 4965, not supported by 3945) appear later in the EEPROM.
318 * 318 *
319 * 2.4 GHz channels 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 319 * 2.4 GHz channels 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14
@@ -352,29 +352,29 @@ struct iwl_eeprom_calib_info {
352#define EEPROM_REGULATORY_BAND_5_CHANNELS (2*0x99) /* 12 bytes */ 352#define EEPROM_REGULATORY_BAND_5_CHANNELS (2*0x99) /* 12 bytes */
353 353
354/* 354/*
355 * 2.4 GHz FAT channels 1 (5), 2 (6), 3 (7), 4 (8), 5 (9), 6 (10), 7 (11) 355 * 2.4 GHz HT40 channels 1 (5), 2 (6), 3 (7), 4 (8), 5 (9), 6 (10), 7 (11)
356 * 356 *
357 * The channel listed is the center of the lower 20 MHz half of the channel. 357 * The channel listed is the center of the lower 20 MHz half of the channel.
358 * The overall center frequency is actually 2 channels (10 MHz) above that, 358 * The overall center frequency is actually 2 channels (10 MHz) above that,
359 * and the upper half of each FAT channel is centered 4 channels (20 MHz) away 359 * and the upper half of each HT40 channel is centered 4 channels (20 MHz) away
360 * from the lower half; e.g. the upper half of FAT channel 1 is channel 5, 360 * from the lower half; e.g. the upper half of HT40 channel 1 is channel 5,
361 * and the overall FAT channel width centers on channel 3. 361 * and the overall HT40 channel width centers on channel 3.
362 * 362 *
363 * NOTE: The RXON command uses 20 MHz channel numbers to specify the 363 * NOTE: The RXON command uses 20 MHz channel numbers to specify the
364 * control channel to which to tune. RXON also specifies whether the 364 * control channel to which to tune. RXON also specifies whether the
365 * control channel is the upper or lower half of a FAT channel. 365 * control channel is the upper or lower half of a HT40 channel.
366 * 366 *
367 * NOTE: 4965 does not support FAT channels on 2.4 GHz. 367 * NOTE: 4965 does not support HT40 channels on 2.4 GHz.
368 */ 368 */
369#define EEPROM_4965_REGULATORY_BAND_24_FAT_CHANNELS (2*0xA0) /* 14 bytes */ 369#define EEPROM_4965_REGULATORY_BAND_24_HT40_CHANNELS (2*0xA0) /* 14 bytes */
370 370
371/* 371/*
372 * 5.2 GHz FAT channels 36 (40), 44 (48), 52 (56), 60 (64), 372 * 5.2 GHz HT40 channels 36 (40), 44 (48), 52 (56), 60 (64),
373 * 100 (104), 108 (112), 116 (120), 124 (128), 132 (136), 149 (153), 157 (161) 373 * 100 (104), 108 (112), 116 (120), 124 (128), 132 (136), 149 (153), 157 (161)
374 */ 374 */
375#define EEPROM_4965_REGULATORY_BAND_52_FAT_CHANNELS (2*0xA8) /* 22 bytes */ 375#define EEPROM_4965_REGULATORY_BAND_52_HT40_CHANNELS (2*0xA8) /* 22 bytes */
376 376
377#define EEPROM_REGULATORY_BAND_NO_FAT (0) 377#define EEPROM_REGULATORY_BAND_NO_HT40 (0)
378 378
379struct iwl_eeprom_ops { 379struct iwl_eeprom_ops {
380 const u32 regulatory_bands[7]; 380 const u32 regulatory_bands[7];
diff --git a/drivers/net/wireless/iwlwifi/iwl-power.c b/drivers/net/wireless/iwlwifi/iwl-power.c
index 00937b3ee8ec..594b5c2540b5 100644
--- a/drivers/net/wireless/iwlwifi/iwl-power.c
+++ b/drivers/net/wireless/iwlwifi/iwl-power.c
@@ -583,7 +583,7 @@ static void iwl_advance_tt_handler(struct iwl_priv *priv, s32 temp)
583 /* disable HT */ 583 /* disable HT */
584 rxon->flags &= ~(RXON_FLG_CHANNEL_MODE_MSK | 584 rxon->flags &= ~(RXON_FLG_CHANNEL_MODE_MSK |
585 RXON_FLG_CTRL_CHANNEL_LOC_HI_MSK | 585 RXON_FLG_CTRL_CHANNEL_LOC_HI_MSK |
586 RXON_FLG_FAT_PROT_MSK | 586 RXON_FLG_HT40_PROT_MSK |
587 RXON_FLG_HT_PROT_MSK); 587 RXON_FLG_HT_PROT_MSK);
588 else { 588 else {
589 /* check HT capability and set 589 /* check HT capability and set
diff --git a/drivers/net/wireless/iwlwifi/iwl-rx.c b/drivers/net/wireless/iwlwifi/iwl-rx.c
index 98f014276e6d..9e63f9d149ed 100644
--- a/drivers/net/wireless/iwlwifi/iwl-rx.c
+++ b/drivers/net/wireless/iwlwifi/iwl-rx.c
@@ -544,8 +544,8 @@ void iwl_rx_statistics(struct iwl_priv *priv,
544 change = ((priv->statistics.general.temperature != 544 change = ((priv->statistics.general.temperature !=
545 pkt->u.stats.general.temperature) || 545 pkt->u.stats.general.temperature) ||
546 ((priv->statistics.flag & 546 ((priv->statistics.flag &
547 STATISTICS_REPLY_FLG_FAT_MODE_MSK) != 547 STATISTICS_REPLY_FLG_HT40_MODE_MSK) !=
548 (pkt->u.stats.flag & STATISTICS_REPLY_FLG_FAT_MODE_MSK))); 548 (pkt->u.stats.flag & STATISTICS_REPLY_FLG_HT40_MODE_MSK)));
549 549
550 memcpy(&priv->statistics, &pkt->u.stats, sizeof(priv->statistics)); 550 memcpy(&priv->statistics, &pkt->u.stats, sizeof(priv->statistics));
551 551
diff --git a/drivers/net/wireless/iwlwifi/iwl-sta.c b/drivers/net/wireless/iwlwifi/iwl-sta.c
index def12545d9a9..c6633fec8216 100644
--- a/drivers/net/wireless/iwlwifi/iwl-sta.c
+++ b/drivers/net/wireless/iwlwifi/iwl-sta.c
@@ -214,10 +214,10 @@ static void iwl_set_ht_add_station(struct iwl_priv *priv, u8 index,
214 sta_flags |= cpu_to_le32( 214 sta_flags |= cpu_to_le32(
215 (u32)sta_ht_inf->ampdu_density << STA_FLG_AGG_MPDU_DENSITY_POS); 215 (u32)sta_ht_inf->ampdu_density << STA_FLG_AGG_MPDU_DENSITY_POS);
216 216
217 if (iwl_is_fat_tx_allowed(priv, sta_ht_inf)) 217 if (iwl_is_ht40_tx_allowed(priv, sta_ht_inf))
218 sta_flags |= STA_FLG_FAT_EN_MSK; 218 sta_flags |= STA_FLG_HT40_EN_MSK;
219 else 219 else
220 sta_flags &= ~STA_FLG_FAT_EN_MSK; 220 sta_flags &= ~STA_FLG_HT40_EN_MSK;
221 221
222 priv->stations[index].sta.station_flags = sta_flags; 222 priv->stations[index].sta.station_flags = sta_flags;
223 done: 223 done: