mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-19 22:17:10 +07:00
iwlwifi: pcie: stop the firmware when we restart it
In case the firmware didn't assert but we want to restart it, e.g. we didn't get the reply for a host command, or the Tx queues are stuck, we should stop the firmware by provoking an interrupt. This allows to better debug the firmware in these bad scenarios. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
This commit is contained in:
parent
1270c416e1
commit
cfadc3ffcc
@ -207,7 +207,7 @@ static void iwl_pcie_txq_stuck_timer(unsigned long data)
|
|||||||
IWL_ERR(trans, "scratch %d = 0x%08x\n", i,
|
IWL_ERR(trans, "scratch %d = 0x%08x\n", i,
|
||||||
le32_to_cpu(txq->scratchbufs[i].scratch));
|
le32_to_cpu(txq->scratchbufs[i].scratch));
|
||||||
|
|
||||||
iwl_trans_fw_error(trans);
|
iwl_write_prph(trans, DEVICE_SET_NMI_REG, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -1024,7 +1024,7 @@ static void iwl_pcie_cmdq_reclaim(struct iwl_trans *trans, int txq_id, int idx)
|
|||||||
if (nfreed++ > 0) {
|
if (nfreed++ > 0) {
|
||||||
IWL_ERR(trans, "HCMD skipped: index (%d) %d %d\n",
|
IWL_ERR(trans, "HCMD skipped: index (%d) %d %d\n",
|
||||||
idx, q->write_ptr, q->read_ptr);
|
idx, q->write_ptr, q->read_ptr);
|
||||||
iwl_trans_fw_error(trans);
|
iwl_write_prph(trans, DEVICE_SET_NMI_REG, 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1583,6 +1583,7 @@ static int iwl_pcie_send_hcmd_sync(struct iwl_trans *trans,
|
|||||||
get_cmd_string(trans_pcie, cmd->id));
|
get_cmd_string(trans_pcie, cmd->id));
|
||||||
ret = -ETIMEDOUT;
|
ret = -ETIMEDOUT;
|
||||||
|
|
||||||
|
iwl_write_prph(trans, DEVICE_SET_NMI_REG, 1);
|
||||||
iwl_trans_fw_error(trans);
|
iwl_trans_fw_error(trans);
|
||||||
|
|
||||||
goto cancel;
|
goto cancel;
|
||||||
|
Loading…
Reference in New Issue
Block a user