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

Commit a6eeed7b authored by Raghavendra Rao Ananta's avatar Raghavendra Rao Ananta
Browse files

esoc: Add flexibility to avoid soft-reset during modem error fatal



In the event of a modem error-fatal, and if the related SSR is set,
the esoc driver takes the path of doing a warm reboot of the
device. However, modern design requires that the communication
link to the modem is not lost and the fact that the reboot is
done by SDI.

As a result, a flexibility is added such that the modem doesn't
have to go through the warm reboot sequence, thus preserving
the link.

Change-Id: Id78b877b33cdd501972c9b3274284a6b4c73f291
Signed-off-by: default avatarRaghavendra Rao Ananta <rananta@codeaurora.org>
parent 26d70184
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -122,6 +122,8 @@ Optional driver parameters:
		This interval is the time it takes to toggle the reset of an external modem by
		holding down the reset pin. The value depends on the external modem's power
		management boot options. The default value is 203 milliseconds.
- qcom,esoc-skip-restart-for-mdm-crash: Boolean. If set, the esoc framework would skip the warm
		reboot phase during the momem crash.

Example:
	mdm0: qcom,mdm0 {
+8 −1
Original line number Diff line number Diff line
@@ -285,8 +285,12 @@ static int mdm_cmd_exe(enum esoc_cmd cmd, struct esoc_clink *esoc)
		}
		break;
	case ESOC_EXE_DEBUG:
		mdm->debug = 1;
		mdm->trig_cnt = 0;

		if (mdm->skip_restart_for_mdm_crash)
			break;

		mdm->debug = 1;
		mdm_toggle_soft_reset(mdm, false);
		/*
		 * wait for ramdumps to be collected
@@ -941,6 +945,9 @@ static int sdx50m_setup_hw(struct mdm_ctrl *mdm,
	if (ret)
		dev_info(mdm->dev, "esoc link info missing\n");

	mdm->skip_restart_for_mdm_crash = of_property_read_bool(node,
				"qcom,esoc-skip-restart-for-mdm-crash");

	esoc->clink_ops = clink_ops;
	esoc->parent = mdm->dev;
	esoc->owner = THIS_MODULE;
+1 −0
Original line number Diff line number Diff line
@@ -103,6 +103,7 @@ struct mdm_ctrl {
	struct coresight_cti *cti;
	int trig_cnt;
	const struct mdm_pon_ops *pon_ops;
	bool skip_restart_for_mdm_crash;
};

struct mdm_pon_ops {