aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-4965-rs.c18
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-dev.h4
-rw-r--r--drivers/net/wireless/iwlwifi/iwl4965-base.c4
3 files changed, 22 insertions, 4 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-4965-rs.c b/drivers/net/wireless/iwlwifi/iwl-4965-rs.c
index 071c7b6ebef2..2adc2281c77c 100644
--- a/drivers/net/wireless/iwlwifi/iwl-4965-rs.c
+++ b/drivers/net/wireless/iwlwifi/iwl-4965-rs.c
@@ -1439,6 +1439,15 @@ static int rs_move_siso_to_other(struct iwl_priv *priv,
1439 } 1439 }
1440 break; 1440 break;
1441 case IWL_SISO_SWITCH_GI: 1441 case IWL_SISO_SWITCH_GI:
1442 if (!tbl->is_fat &&
1443 !(priv->current_ht_config.sgf &
1444 HT_SHORT_GI_20MHZ))
1445 break;
1446 if (tbl->is_fat &&
1447 !(priv->current_ht_config.sgf &
1448 HT_SHORT_GI_40MHZ))
1449 break;
1450
1442 IWL_DEBUG_RATE("LQ: SISO toggle SGI/NGI\n"); 1451 IWL_DEBUG_RATE("LQ: SISO toggle SGI/NGI\n");
1443 1452
1444 memcpy(search_tbl, tbl, sz); 1453 memcpy(search_tbl, tbl, sz);
@@ -1521,6 +1530,15 @@ static int rs_move_mimo_to_other(struct iwl_priv *priv,
1521 break; 1530 break;
1522 1531
1523 case IWL_MIMO_SWITCH_GI: 1532 case IWL_MIMO_SWITCH_GI:
1533 if (!tbl->is_fat &&
1534 !(priv->current_ht_config.sgf &
1535 HT_SHORT_GI_20MHZ))
1536 break;
1537 if (tbl->is_fat &&
1538 !(priv->current_ht_config.sgf &
1539 HT_SHORT_GI_40MHZ))
1540 break;
1541
1524 IWL_DEBUG_RATE("LQ: MIMO toggle SGI/NGI\n"); 1542 IWL_DEBUG_RATE("LQ: MIMO toggle SGI/NGI\n");
1525 1543
1526 /* Set up new search table for MIMO */ 1544 /* Set up new search table for MIMO */
diff --git a/drivers/net/wireless/iwlwifi/iwl-dev.h b/drivers/net/wireless/iwlwifi/iwl-dev.h
index 4106efd194e4..7a54682a3d86 100644
--- a/drivers/net/wireless/iwlwifi/iwl-dev.h
+++ b/drivers/net/wireless/iwlwifi/iwl-dev.h
@@ -610,8 +610,8 @@ struct iwl_hw_params {
610#endif 610#endif
611}; 611};
612 612
613#define HT_SHORT_GI_20MHZ_ONLY (1 << 0) 613#define HT_SHORT_GI_20MHZ (1 << 0)
614#define HT_SHORT_GI_40MHZ_ONLY (1 << 1) 614#define HT_SHORT_GI_40MHZ (1 << 1)
615 615
616 616
617#define IWL_RX_HDR(x) ((struct iwl4965_rx_frame_hdr *)(\ 617#define IWL_RX_HDR(x) ((struct iwl4965_rx_frame_hdr *)(\
diff --git a/drivers/net/wireless/iwlwifi/iwl4965-base.c b/drivers/net/wireless/iwlwifi/iwl4965-base.c
index dd2fd4055306..a532a9e576dc 100644
--- a/drivers/net/wireless/iwlwifi/iwl4965-base.c
+++ b/drivers/net/wireless/iwlwifi/iwl4965-base.c
@@ -700,9 +700,9 @@ static void iwl4965_ht_conf(struct iwl_priv *priv,
700 priv->ps_mode = (u8)((ht_conf->cap & IEEE80211_HT_CAP_MIMO_PS) >> 2); 700 priv->ps_mode = (u8)((ht_conf->cap & IEEE80211_HT_CAP_MIMO_PS) >> 2);
701 701
702 if (ht_conf->cap & IEEE80211_HT_CAP_SGI_20) 702 if (ht_conf->cap & IEEE80211_HT_CAP_SGI_20)
703 iwl_conf->sgf |= 0x1; 703 iwl_conf->sgf |= HT_SHORT_GI_20MHZ;
704 if (ht_conf->cap & IEEE80211_HT_CAP_SGI_40) 704 if (ht_conf->cap & IEEE80211_HT_CAP_SGI_40)
705 iwl_conf->sgf |= 0x2; 705 iwl_conf->sgf |= HT_SHORT_GI_40MHZ;
706 706
707 iwl_conf->is_green_field = !!(ht_conf->cap & IEEE80211_HT_CAP_GRN_FLD); 707 iwl_conf->is_green_field = !!(ht_conf->cap & IEEE80211_HT_CAP_GRN_FLD);
708 iwl_conf->max_amsdu_size = 708 iwl_conf->max_amsdu_size =