Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b0114714 authored by Johannes Berg's avatar Johannes Berg
Browse files

iwlwifi: mvm: allow firmware crashes to wake system for debug



When the D3 firmware crashes, it can be helpful for debugging to
resume the system to get the SRAM snapshot to see why it crashed.
Allow enabling this with a debugfs option.

Reviewed-by: default avatarEmmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
parent a2d0909a
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -1026,6 +1026,12 @@ static int __iwl_mvm_suspend(struct ieee80211_hw *hw,
	if (ret)
		goto out;

#ifdef CONFIG_IWLWIFI_DEBUGFS
	if (mvm->d3_wake_sysassert)
		d3_cfg_cmd_data.wakeup_flags |=
			cpu_to_le32(IWL_WAKEUP_D3_CONFIG_FW_ERROR);
#endif

	/* must be last -- this switches firmware state */
	ret = iwl_mvm_send_cmd(mvm, &d3_cfg_cmd);
	if (ret)
+3 −0
Original line number Diff line number Diff line
@@ -939,6 +939,9 @@ int iwl_mvm_dbgfs_register(struct iwl_mvm *mvm, struct dentry *dbgfs_dir)
#ifdef CONFIG_PM_SLEEP
	MVM_DEBUGFS_ADD_FILE(d3_sram, mvm->debugfs_dir, S_IRUSR | S_IWUSR);
	MVM_DEBUGFS_ADD_FILE(d3_test, mvm->debugfs_dir, S_IRUSR);
	if (!debugfs_create_bool("d3_wake_sysassert", S_IRUSR | S_IWUSR,
				 mvm->debugfs_dir, &mvm->d3_wake_sysassert))
		goto err;
#endif

	/*
+1 −0
Original line number Diff line number Diff line
@@ -460,6 +460,7 @@ struct iwl_mvm {
#ifdef CONFIG_PM_SLEEP
	int gtk_ivlen, gtk_icvlen, ptk_ivlen, ptk_icvlen;
#ifdef CONFIG_IWLWIFI_DEBUGFS
	u32 d3_wake_sysassert; /* must be u32 for debugfs_create_bool */
	bool d3_test_active;
	bool store_d3_resume_sram;
	void *d3_resume_sram;