aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi/iwl-4965.c
diff options
context:
space:
mode:
authorStanislaw Gruszka <sgruszka@redhat.com>2010-12-03 09:41:48 -0500
committerJohn W. Linville <linville@tuxdriver.com>2010-12-06 16:01:29 -0500
commit22de94de7de78b8de2fb1f2df5aa85b5556cfcfd (patch)
treef965d5f907ffc039ca146c22a5c2e87744cbc604 /drivers/net/wireless/iwlwifi/iwl-4965.c
parentabc471dc31be15f9fee5ec77f25d31b927d334b9 (diff)
iwlwifi: jiffies based tx queues watchdog
This patch replace monitor/recover timer by watchdog based on time stamp. New code allow to discover hangs more precisely. Timeout values are currently doubled monitoring period values of previous timer. This have to be tuned based of firmware timing capabilities. Tested on 3945, 4965, 5300, 6300. Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com> Acked-by: Wey-Yi Guy <wey-yi.w.guy@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-4965.c')
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-4965.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-4965.c b/drivers/net/wireless/iwlwifi/iwl-4965.c
index 6788ceb37686..3f1e5f1bf847 100644
--- a/drivers/net/wireless/iwlwifi/iwl-4965.c
+++ b/drivers/net/wireless/iwlwifi/iwl-4965.c
@@ -2198,6 +2198,7 @@ static void iwl4965_rx_reply_tx(struct iwl_priv *priv,
2198 return; 2198 return;
2199 } 2199 }
2200 2200
2201 txq->time_stamp = jiffies;
2201 info = IEEE80211_SKB_CB(txq->txb[txq->q.read_ptr].skb); 2202 info = IEEE80211_SKB_CB(txq->txb[txq->q.read_ptr].skb);
2202 memset(&info->status, 0, sizeof(info->status)); 2203 memset(&info->status, 0, sizeof(info->status));
2203 2204
@@ -2554,7 +2555,6 @@ static struct iwl_lib_ops iwl4965_lib = {
2554 .bt_stats_read = iwl_ucode_bt_stats_read, 2555 .bt_stats_read = iwl_ucode_bt_stats_read,
2555 .reply_tx_error = iwl_reply_tx_error_read, 2556 .reply_tx_error = iwl_reply_tx_error_read,
2556 }, 2557 },
2557 .recover_from_tx_stall = iwl_bg_monitor_recover,
2558 .check_plcp_health = iwl_good_plcp_health, 2558 .check_plcp_health = iwl_good_plcp_health,
2559}; 2559};
2560 2560
@@ -2609,7 +2609,7 @@ static struct iwl_base_params iwl4965_base_params = {
2609 .led_compensation = 61, 2609 .led_compensation = 61,
2610 .chain_noise_num_beacons = IWL4965_CAL_NUM_BEACONS, 2610 .chain_noise_num_beacons = IWL4965_CAL_NUM_BEACONS,
2611 .plcp_delta_threshold = IWL_MAX_PLCP_ERR_THRESHOLD_DEF, 2611 .plcp_delta_threshold = IWL_MAX_PLCP_ERR_THRESHOLD_DEF,
2612 .monitor_recover_period = IWL_DEF_MONITORING_PERIOD, 2612 .wd_timeout = IWL_DEF_WD_TIMEOUT,
2613 .temperature_kelvin = true, 2613 .temperature_kelvin = true,
2614 .max_event_log_size = 512, 2614 .max_event_log_size = 512,
2615 .tx_power_by_driver = true, 2615 .tx_power_by_driver = true,