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

Commit d1967ce6 authored by Shahar S Matityahu's avatar Shahar S Matityahu Committed by Luca Coelho
Browse files

iwlwifi: add sync_nmi to trans ops



Allow modules from outside pcie to call sync_nmi.

Signed-off-by: default avatarShahar S Matityahu <shahar.s.matityahu@intel.com>
Signed-off-by: default avatarLuca Coelho <luciano.coelho@intel.com>
parent 475c6bde
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -618,6 +618,7 @@ struct iwl_trans_ops {
	struct iwl_trans_dump_data *(*dump_data)(struct iwl_trans *trans,
						 u32 dump_mask);
	void (*debugfs_cleanup)(struct iwl_trans *trans);
	void (*sync_nmi)(struct iwl_trans *trans);
};

/**
@@ -1245,6 +1246,12 @@ static inline void iwl_trans_fw_error(struct iwl_trans *trans)

}

static inline void iwl_trans_sync_nmi(struct iwl_trans *trans)
{
	if (trans->ops->sync_nmi)
		trans->ops->sync_nmi(trans);
}

/*****************************************************
 * transport helper functions
 *****************************************************/
+1 −1
Original line number Diff line number Diff line
@@ -1043,7 +1043,7 @@ static inline bool iwl_pcie_dbg_on(struct iwl_trans *trans)

void iwl_trans_pcie_rf_kill(struct iwl_trans *trans, bool state);
void iwl_trans_pcie_dump_regs(struct iwl_trans *trans);
void iwl_trans_sync_nmi(struct iwl_trans *trans);
void iwl_trans_pcie_sync_nmi(struct iwl_trans *trans);

#ifdef CONFIG_IWLWIFI_DEBUGFS
int iwl_trans_pcie_dbgfs_register(struct iwl_trans *trans);
+3 −2
Original line number Diff line number Diff line
@@ -3318,7 +3318,8 @@ static void iwl_trans_pcie_resume(struct iwl_trans *trans)
	.unref = iwl_trans_pcie_unref,					\
	.dump_data = iwl_trans_pcie_dump_data,				\
	.d3_suspend = iwl_trans_pcie_d3_suspend,			\
	.d3_resume = iwl_trans_pcie_d3_resume
	.d3_resume = iwl_trans_pcie_d3_resume,				\
	.sync_nmi = iwl_trans_pcie_sync_nmi

#ifdef CONFIG_PM_SLEEP
#define IWL_TRANS_PM_OPS						\
@@ -3637,7 +3638,7 @@ struct iwl_trans *iwl_trans_pcie_alloc(struct pci_dev *pdev,
	return ERR_PTR(ret);
}

void iwl_trans_sync_nmi(struct iwl_trans *trans)
void iwl_trans_pcie_sync_nmi(struct iwl_trans *trans)
{
	unsigned long timeout = jiffies + IWL_TRANS_NMI_TIMEOUT;

+1 −1
Original line number Diff line number Diff line
@@ -965,7 +965,7 @@ static int iwl_pcie_gen2_send_hcmd_sync(struct iwl_trans *trans,
			       cmd_str);
		ret = -ETIMEDOUT;

		iwl_trans_sync_nmi(trans);
		iwl_trans_pcie_sync_nmi(trans);
		goto cancel;
	}

+1 −1
Original line number Diff line number Diff line
@@ -1960,7 +1960,7 @@ static int iwl_pcie_send_hcmd_sync(struct iwl_trans *trans,
			       iwl_get_cmd_string(trans, cmd->id));
		ret = -ETIMEDOUT;

		iwl_trans_sync_nmi(trans);
		iwl_trans_pcie_sync_nmi(trans);
		goto cancel;
	}