* @rx_chains_num: Number of RX chains
  * @valid_tx_ant: usable antennas for TX
  * @valid_rx_ant: usable antennas for RX
- * @ht40_channel: is 40MHz width possible: BIT(IEEE80211_BAND_XXX)
  * @sku: sku read from EEPROM
  * @ct_kill_threshold: temperature threshold - in hw dependent unit
  * @ct_kill_exit_threshold: when to reeable the device - in hw dependent unit
        u8  rx_chains_num;
        u8  valid_tx_ant;
        u8  valid_rx_ant;
-       u8  ht40_channel;
        bool use_rts_for_aggregation;
        u16 sku;
        u32 ct_kill_threshold;
 
 
 static void iwl1000_hw_set_hw_params(struct iwl_priv *priv)
 {
-       priv->hw_params.ht40_channel =  BIT(IEEE80211_BAND_2GHZ);
-
        iwl1000_set_ct_threshold(priv);
 
        /* Set initial sensitivity parameters */
 
 static void iwl2000_hw_set_hw_params(struct iwl_priv *priv)
 {
-       priv->hw_params.ht40_channel =  BIT(IEEE80211_BAND_2GHZ);
-
        iwl2000_set_ct_threshold(priv);
 
        /* Set initial sensitivity parameters */
 
 static void iwl5000_hw_set_hw_params(struct iwl_priv *priv)
 {
-       priv->hw_params.ht40_channel =  BIT(IEEE80211_BAND_2GHZ) |
-                                       BIT(IEEE80211_BAND_5GHZ);
-
        iwl5000_set_ct_threshold(priv);
 
        /* Set initial sensitivity parameters */
 
 static void iwl5150_hw_set_hw_params(struct iwl_priv *priv)
 {
-       priv->hw_params.ht40_channel =  BIT(IEEE80211_BAND_2GHZ) |
-                                       BIT(IEEE80211_BAND_5GHZ);
-
        iwl5150_set_ct_threshold(priv);
 
        /* Set initial sensitivity parameters */
 
 static void iwl6000_hw_set_hw_params(struct iwl_priv *priv)
 {
-       priv->hw_params.ht40_channel =  BIT(IEEE80211_BAND_2GHZ) |
-                                       BIT(IEEE80211_BAND_5GHZ);
-
        iwl6000_set_ct_threshold(priv);
 
        /* Set initial sensitivity parameters */
 
        u8 tx_chains_num = priv->hw_params.tx_chains_num;
 
        ht_info->cap = 0;
+       ht_info->ht_supported = false;
        memset(&ht_info->mcs, 0, sizeof(ht_info->mcs));
 
+       if (!priv->cfg->ht_params)
+               return;
+
        ht_info->ht_supported = true;
 
-       if (priv->cfg->ht_params &&
-           priv->cfg->ht_params->ht_greenfield_support)
+       if (priv->cfg->ht_params->ht_greenfield_support)
                ht_info->cap |= IEEE80211_HT_CAP_GRN_FLD;
        ht_info->cap |= IEEE80211_HT_CAP_SGI_20;
        max_bit_rate = MAX_BIT_RATE_20_MHZ;
-       if (priv->hw_params.ht40_channel & BIT(band)) {
+       if (priv->cfg->ht_params->ht40_bands & BIT(band)) {
                ht_info->cap |= IEEE80211_HT_CAP_SUP_WIDTH_20_40;
                ht_info->cap |= IEEE80211_HT_CAP_SGI_40;
                ht_info->mcs.rx_mask[4] = 0x01;
 
        bool bt_sco_disable;
        bool bt_session_2;
 };
+
 /*
  * @use_rts_for_aggregation: use rts/cts protection for HT traffic
+ * @ht40_bands: bitmap of bands (using %IEEE80211_BAND_*) that support HT40
  */
 struct iwl_ht_params {
+       enum ieee80211_smps_mode smps_mode;
        const bool ht_greenfield_support; /* if used set to true */
        bool use_rts_for_aggregation;
-       enum ieee80211_smps_mode smps_mode;
+       u8 ht40_bands;
 };
 
 /**
 
 static const struct iwl_ht_params iwl1000_ht_params = {
        .ht_greenfield_support = true,
        .use_rts_for_aggregation = true, /* use rts/cts protection */
+       .ht40_bands = BIT(IEEE80211_BAND_2GHZ),
 };
 
 #define IWL_DEVICE_1000                                                \
 
 static const struct iwl_ht_params iwl2000_ht_params = {
        .ht_greenfield_support = true,
        .use_rts_for_aggregation = true, /* use rts/cts protection */
+       .ht40_bands = BIT(IEEE80211_BAND_2GHZ),
 };
 
 static const struct iwl_bt_params iwl2030_bt_params = {
 
 
 static const struct iwl_ht_params iwl5000_ht_params = {
        .ht_greenfield_support = true,
+       .ht40_bands = BIT(IEEE80211_BAND_2GHZ) | BIT(IEEE80211_BAND_5GHZ),
 };
 
 #define IWL_DEVICE_5000                                                \
 
 static const struct iwl_ht_params iwl6000_ht_params = {
        .ht_greenfield_support = true,
        .use_rts_for_aggregation = true, /* use rts/cts protection */
+       .ht40_bands = BIT(IEEE80211_BAND_2GHZ) | BIT(IEEE80211_BAND_5GHZ),
 };
 
 static const struct iwl_bt_params iwl6000_bt_params = {