diff options
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-4965-rs.c | 18 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-dev.h | 4 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl4965-base.c | 4 |
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 = |