mirror of https://gitee.com/openkylin/linux.git
iwlwifi: dbg: make trigger functions type agnostic
As preparation for new trigger type, make iwl_fw_dbg_collect_desc agnostic to the trigger structure. Signed-off-by: Sara Sharon <sara.sharon@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
This commit is contained in:
parent
af303252bf
commit
ea7cb82938
|
@ -998,14 +998,9 @@ void iwl_fw_alive_error_dump(struct iwl_fw_runtime *fwrt)
|
|||
IWL_EXPORT_SYMBOL(iwl_fw_alive_error_dump);
|
||||
|
||||
int iwl_fw_dbg_collect_desc(struct iwl_fw_runtime *fwrt,
|
||||
const struct iwl_fw_dump_desc *desc,
|
||||
const struct iwl_fw_dbg_trigger_tlv *trigger)
|
||||
const struct iwl_fw_dump_desc *desc, void *trigger,
|
||||
unsigned int delay)
|
||||
{
|
||||
unsigned int delay = 0;
|
||||
|
||||
if (trigger)
|
||||
delay = msecs_to_jiffies(le32_to_cpu(trigger->stop_delay));
|
||||
|
||||
/*
|
||||
* If the loading of the FW completed successfully, the next step is to
|
||||
* get the SMEM config data. Thus, if fwrt->smem_cfg.num_lmacs is non
|
||||
|
@ -1047,31 +1042,35 @@ int iwl_fw_dbg_collect(struct iwl_fw_runtime *fwrt,
|
|||
struct iwl_fw_dbg_trigger_tlv *trigger)
|
||||
{
|
||||
struct iwl_fw_dump_desc *desc;
|
||||
unsigned int delay = 0;
|
||||
|
||||
if (trigger && !le16_to_cpu(trigger->occurrences))
|
||||
return 0;
|
||||
if (trigger) {
|
||||
u16 occurrences = le16_to_cpu(trigger->occurrences) - 1;
|
||||
|
||||
if (trigger && trigger->flags & IWL_FW_DBG_FORCE_RESTART) {
|
||||
IWL_WARN(fwrt, "Force restart: trigger %d fired.\n", trig);
|
||||
iwl_force_nmi(fwrt->trans);
|
||||
return 0;
|
||||
if (!le16_to_cpu(trigger->occurrences))
|
||||
return 0;
|
||||
|
||||
if (trigger->flags & IWL_FW_DBG_FORCE_RESTART) {
|
||||
IWL_WARN(fwrt, "Force restart: trigger %d fired.\n",
|
||||
trig);
|
||||
iwl_force_nmi(fwrt->trans);
|
||||
return 0;
|
||||
}
|
||||
|
||||
trigger->occurrences = cpu_to_le16(occurrences);
|
||||
delay = le16_to_cpu(trigger->trig_dis_ms);
|
||||
}
|
||||
|
||||
desc = kzalloc(sizeof(*desc) + len, GFP_ATOMIC);
|
||||
if (!desc)
|
||||
return -ENOMEM;
|
||||
|
||||
if (trigger) {
|
||||
u16 occurrences = le16_to_cpu(trigger->occurrences) - 1;
|
||||
|
||||
trigger->occurrences = cpu_to_le16(occurrences);
|
||||
}
|
||||
|
||||
desc->len = len;
|
||||
desc->trig_desc.type = cpu_to_le32(trig);
|
||||
memcpy(desc->trig_desc.data, str, len);
|
||||
|
||||
return iwl_fw_dbg_collect_desc(fwrt, desc, trigger);
|
||||
return iwl_fw_dbg_collect_desc(fwrt, desc, trigger, delay);
|
||||
}
|
||||
IWL_EXPORT_SYMBOL(iwl_fw_dbg_collect);
|
||||
|
||||
|
|
|
@ -107,7 +107,7 @@ static inline void iwl_fw_free_dump_desc(struct iwl_fw_runtime *fwrt)
|
|||
void iwl_fw_error_dump(struct iwl_fw_runtime *fwrt);
|
||||
int iwl_fw_dbg_collect_desc(struct iwl_fw_runtime *fwrt,
|
||||
const struct iwl_fw_dump_desc *desc,
|
||||
const struct iwl_fw_dbg_trigger_tlv *trigger);
|
||||
void *trigger, unsigned int delay);
|
||||
int iwl_fw_dbg_collect(struct iwl_fw_runtime *fwrt,
|
||||
enum iwl_fw_dbg_trigger trig,
|
||||
const char *str, size_t len,
|
||||
|
|
|
@ -1240,7 +1240,7 @@ void iwl_mvm_nic_restart(struct iwl_mvm *mvm, bool fw_error)
|
|||
*/
|
||||
if (!mvm->fw_restart && fw_error) {
|
||||
iwl_fw_dbg_collect_desc(&mvm->fwrt, &iwl_dump_desc_assert,
|
||||
NULL);
|
||||
NULL, 0);
|
||||
} else if (test_bit(IWL_MVM_STATUS_IN_HW_RESTART, &mvm->status)) {
|
||||
struct iwl_mvm_reprobe *reprobe;
|
||||
|
||||
|
|
Loading…
Reference in New Issue