diff options
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-agn-rs.c')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-agn-rs.c | 23 |
1 files changed, 10 insertions, 13 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-rs.c b/drivers/net/wireless/iwlwifi/iwl-agn-rs.c index cd1bff590491..e10e0ca09ce9 100644 --- a/drivers/net/wireless/iwlwifi/iwl-agn-rs.c +++ b/drivers/net/wireless/iwlwifi/iwl-agn-rs.c | |||
@@ -1133,8 +1133,7 @@ static int rs_switch_to_mimo2(struct iwl_priv *priv, | |||
1133 | s32 rate; | 1133 | s32 rate; |
1134 | s8 is_green = lq_sta->is_green; | 1134 | s8 is_green = lq_sta->is_green; |
1135 | 1135 | ||
1136 | if (!(conf->flags & IEEE80211_CONF_SUPPORT_HT_MODE) || | 1136 | if (!conf->ht.enabled || !sta->ht_cap.ht_supported) |
1137 | !sta->ht_cap.ht_supported) | ||
1138 | return -1; | 1137 | return -1; |
1139 | 1138 | ||
1140 | if (((sta->ht_cap.cap & IEEE80211_HT_CAP_SM_PS) >> 2) | 1139 | if (((sta->ht_cap.cap & IEEE80211_HT_CAP_SM_PS) >> 2) |
@@ -1201,8 +1200,7 @@ static int rs_switch_to_siso(struct iwl_priv *priv, | |||
1201 | u8 is_green = lq_sta->is_green; | 1200 | u8 is_green = lq_sta->is_green; |
1202 | s32 rate; | 1201 | s32 rate; |
1203 | 1202 | ||
1204 | if (!(conf->flags & IEEE80211_CONF_SUPPORT_HT_MODE) || | 1203 | if (!conf->ht.enabled || !sta->ht_cap.ht_supported) |
1205 | !sta->ht_cap.ht_supported) | ||
1206 | return -1; | 1204 | return -1; |
1207 | 1205 | ||
1208 | IWL_DEBUG_RATE("LQ: try to switch to SISO\n"); | 1206 | IWL_DEBUG_RATE("LQ: try to switch to SISO\n"); |
@@ -2001,9 +1999,8 @@ lq_update: | |||
2001 | * stay with best antenna legacy modulation for a while | 1999 | * stay with best antenna legacy modulation for a while |
2002 | * before next round of mode comparisons. */ | 2000 | * before next round of mode comparisons. */ |
2003 | tbl1 = &(lq_sta->lq_info[lq_sta->active_tbl]); | 2001 | tbl1 = &(lq_sta->lq_info[lq_sta->active_tbl]); |
2004 | if (is_legacy(tbl1->lq_type) && | 2002 | if (is_legacy(tbl1->lq_type) && !conf->ht.enabled && |
2005 | (!(conf->flags & IEEE80211_CONF_SUPPORT_HT_MODE)) && | 2003 | lq_sta->action_counter >= 1) { |
2006 | (lq_sta->action_counter >= 1)) { | ||
2007 | lq_sta->action_counter = 0; | 2004 | lq_sta->action_counter = 0; |
2008 | IWL_DEBUG_RATE("LQ: STAY in legacy table\n"); | 2005 | IWL_DEBUG_RATE("LQ: STAY in legacy table\n"); |
2009 | rs_set_stay_in_table(priv, 1, lq_sta); | 2006 | rs_set_stay_in_table(priv, 1, lq_sta); |
@@ -2238,19 +2235,19 @@ static void rs_rate_init(void *priv_r, struct ieee80211_supported_band *sband, | |||
2238 | * active_siso_rate mask includes 9 MBits (bit 5), and CCK (bits 0-3), | 2235 | * active_siso_rate mask includes 9 MBits (bit 5), and CCK (bits 0-3), |
2239 | * supp_rates[] does not; shift to convert format, force 9 MBits off. | 2236 | * supp_rates[] does not; shift to convert format, force 9 MBits off. |
2240 | */ | 2237 | */ |
2241 | lq_sta->active_siso_rate = conf->ht_cap.mcs.rx_mask[0] << 1; | 2238 | lq_sta->active_siso_rate = sta->ht_cap.mcs.rx_mask[0] << 1; |
2242 | lq_sta->active_siso_rate |= conf->ht_cap.mcs.rx_mask[0] & 0x1; | 2239 | lq_sta->active_siso_rate |= sta->ht_cap.mcs.rx_mask[0] & 0x1; |
2243 | lq_sta->active_siso_rate &= ~((u16)0x2); | 2240 | lq_sta->active_siso_rate &= ~((u16)0x2); |
2244 | lq_sta->active_siso_rate <<= IWL_FIRST_OFDM_RATE; | 2241 | lq_sta->active_siso_rate <<= IWL_FIRST_OFDM_RATE; |
2245 | 2242 | ||
2246 | /* Same here */ | 2243 | /* Same here */ |
2247 | lq_sta->active_mimo2_rate = conf->ht_cap.mcs.rx_mask[1] << 1; | 2244 | lq_sta->active_mimo2_rate = sta->ht_cap.mcs.rx_mask[1] << 1; |
2248 | lq_sta->active_mimo2_rate |= conf->ht_cap.mcs.rx_mask[1] & 0x1; | 2245 | lq_sta->active_mimo2_rate |= sta->ht_cap.mcs.rx_mask[1] & 0x1; |
2249 | lq_sta->active_mimo2_rate &= ~((u16)0x2); | 2246 | lq_sta->active_mimo2_rate &= ~((u16)0x2); |
2250 | lq_sta->active_mimo2_rate <<= IWL_FIRST_OFDM_RATE; | 2247 | lq_sta->active_mimo2_rate <<= IWL_FIRST_OFDM_RATE; |
2251 | 2248 | ||
2252 | lq_sta->active_mimo3_rate = conf->ht_cap.mcs.rx_mask[2] << 1; | 2249 | lq_sta->active_mimo3_rate = sta->ht_cap.mcs.rx_mask[2] << 1; |
2253 | lq_sta->active_mimo3_rate |= conf->ht_cap.mcs.rx_mask[2] & 0x1; | 2250 | lq_sta->active_mimo3_rate |= sta->ht_cap.mcs.rx_mask[2] & 0x1; |
2254 | lq_sta->active_mimo3_rate &= ~((u16)0x2); | 2251 | lq_sta->active_mimo3_rate &= ~((u16)0x2); |
2255 | lq_sta->active_mimo3_rate <<= IWL_FIRST_OFDM_RATE; | 2252 | lq_sta->active_mimo3_rate <<= IWL_FIRST_OFDM_RATE; |
2256 | 2253 | ||