aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi/iwl-agn.c
diff options
context:
space:
mode:
authorReinette Chatre <reinette.chatre@intel.com>2010-02-23 17:02:52 -0500
committerReinette Chatre <reinette.chatre@intel.com>2010-02-23 17:02:52 -0500
commitab9bdc34d68dafc6fea0ba733231f1c9696ce9c4 (patch)
tree594f6df57abaae7e4f5c07a841d0603dcb2be1fb /drivers/net/wireless/iwlwifi/iwl-agn.c
parent4a6967b88af02eebeedfbb91bc09160750225bb5 (diff)
Revert "iwlwifi: Monitor and recover the aggregation TX flow failure"
This reverts commit 1db5950f1d0b82e07371b211a48317b8972da063. The goal of "iwlwifi: Monitor and recover the aggregation TX flow failure" is to first detect when data transmission stalls and then to recover from this situation with a reset of the radio or the firmware, depending on how bad the transmission failures are. Unfortunately we have found that this change causes excessive resets with its current detection algorithm. It also performs its recovery action when none is really needed, like when we are not associated. Revert this change until the issues have been addressed. Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-agn.c')
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-agn.c14
1 files changed, 1 insertions, 13 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.c b/drivers/net/wireless/iwlwifi/iwl-agn.c
index c5b724eaf306..1fac015efc19 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn.c
@@ -2941,21 +2941,10 @@ static int iwl_mac_ampdu_action(struct ieee80211_hw *hw,
2941 return ret; 2941 return ret;
2942 case IEEE80211_AMPDU_TX_START: 2942 case IEEE80211_AMPDU_TX_START:
2943 IWL_DEBUG_HT(priv, "start Tx\n"); 2943 IWL_DEBUG_HT(priv, "start Tx\n");
2944 ret = iwl_tx_agg_start(priv, sta->addr, tid, ssn); 2944 return iwl_tx_agg_start(priv, sta->addr, tid, ssn);
2945 if (ret == 0) {
2946 priv->agg_tids_count++;
2947 IWL_DEBUG_HT(priv, "priv->agg_tids_count = %u\n",
2948 priv->agg_tids_count);
2949 }
2950 return ret;
2951 case IEEE80211_AMPDU_TX_STOP: 2945 case IEEE80211_AMPDU_TX_STOP:
2952 IWL_DEBUG_HT(priv, "stop Tx\n"); 2946 IWL_DEBUG_HT(priv, "stop Tx\n");
2953 ret = iwl_tx_agg_stop(priv, sta->addr, tid); 2947 ret = iwl_tx_agg_stop(priv, sta->addr, tid);
2954 if ((ret == 0) && (priv->agg_tids_count > 0)) {
2955 priv->agg_tids_count--;
2956 IWL_DEBUG_HT(priv, "priv->agg_tids_count = %u\n",
2957 priv->agg_tids_count);
2958 }
2959 if (test_bit(STATUS_EXIT_PENDING, &priv->status)) 2948 if (test_bit(STATUS_EXIT_PENDING, &priv->status))
2960 return 0; 2949 return 0;
2961 else 2950 else
@@ -3376,7 +3365,6 @@ static int iwl_init_drv(struct iwl_priv *priv)
3376 priv->iw_mode = NL80211_IFTYPE_STATION; 3365 priv->iw_mode = NL80211_IFTYPE_STATION;
3377 priv->current_ht_config.smps = IEEE80211_SMPS_STATIC; 3366 priv->current_ht_config.smps = IEEE80211_SMPS_STATIC;
3378 priv->missed_beacon_threshold = IWL_MISSED_BEACON_THRESHOLD_DEF; 3367 priv->missed_beacon_threshold = IWL_MISSED_BEACON_THRESHOLD_DEF;
3379 priv->agg_tids_count = 0;
3380 3368
3381 /* initialize force reset */ 3369 /* initialize force reset */
3382 priv->force_reset[IWL_RF_RESET].reset_duration = 3370 priv->force_reset[IWL_RF_RESET].reset_duration =