aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEmmanuel Grumbach <emmanuel.grumbach@intel.com>2011-11-17 19:05:09 -0500
committerJohn W. Linville <linville@tuxdriver.com>2011-11-21 16:20:47 -0500
commit08d1700da05a2246ee0d9d2440d5c165615c352c (patch)
tree0a87a629a5d2cec30bddf1ea4cb57dae8a307e46
parent1f1d528977162a1a04aaecdc7f08a5b715a58810 (diff)
iwlwifi: check the HW when a queue is stuck
Add more information when a queue is stuck and actually get information from the scheduler instead of looking at internal variables. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-trans-pcie.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-trans-pcie.c b/drivers/net/wireless/iwlwifi/iwl-trans-pcie.c
index a1a58330273f..3f2ceb2033dc 100644
--- a/drivers/net/wireless/iwlwifi/iwl-trans-pcie.c
+++ b/drivers/net/wireless/iwlwifi/iwl-trans-pcie.c
@@ -1515,8 +1515,12 @@ static int iwl_trans_pcie_check_stuck_queue(struct iwl_trans *trans, int cnt)
1515 if (time_after(jiffies, timeout)) { 1515 if (time_after(jiffies, timeout)) {
1516 IWL_ERR(trans, "Queue %d stuck for %u ms.\n", q->id, 1516 IWL_ERR(trans, "Queue %d stuck for %u ms.\n", q->id,
1517 hw_params(trans).wd_timeout); 1517 hw_params(trans).wd_timeout);
1518 IWL_ERR(trans, "Current read_ptr %d write_ptr %d\n", 1518 IWL_ERR(trans, "Current SW read_ptr %d write_ptr %d\n",
1519 q->read_ptr, q->write_ptr); 1519 q->read_ptr, q->write_ptr);
1520 IWL_ERR(trans, "Current HW read_ptr %d write_ptr %d\n",
1521 iwl_read_prph(bus(trans), SCD_QUEUE_RDPTR(cnt))
1522 & (TFD_QUEUE_SIZE_MAX - 1),
1523 iwl_read_prph(bus(trans), SCD_QUEUE_WRPTR(cnt)));
1520 return 1; 1524 return 1;
1521 } 1525 }
1522 1526