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

Commit 15624d91 authored by Subbaraman Narayanamurthy's avatar Subbaraman Narayanamurthy
Browse files

leds: qpnp-wled: Disable module permanently when OVP fault persists



Currently, auto calibration will be invoked if an OVP fault is
triggered because of an incorrect sink configuration. However,
there are certain hardware platforms where the display panel is
not used. It is hard to differentiate such platforms as they
will be using the same device tree configuration or parameters
related to display panel passed through the bootloader.

Disable the module permanently and also keep the OVP fault
interrupt disabled when a valid sink configuration is not found
by auto calibration.

Change-Id: I302322020e8d6d4f92901dac468602c357967e18
Signed-off-by: default avatarSubbaraman Narayanamurthy <subbaram@codeaurora.org>
parent 644b09ac
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -402,6 +402,7 @@ struct qpnp_wled {
	bool			ovp_irq_disabled;
	bool			auto_calib_enabled;
	bool			auto_calib_done;
	bool			module_dis_perm;
	ktime_t			start_ovp_fault_time;
};

@@ -598,6 +599,9 @@ static int qpnp_wled_module_en(struct qpnp_wled *wled,
{
	int rc;

	if (wled->module_dis_perm)
		return 0;

	rc = qpnp_wled_masked_write_reg(wled,
			QPNP_WLED_MODULE_EN_REG(base_addr),
			QPNP_WLED_MODULE_EN_MASK,
@@ -1215,6 +1219,7 @@ static int wled_auto_calibrate(struct qpnp_wled *wled)

	if (!sink_config) {
		pr_warn("No valid WLED sinks found\n");
		wled->module_dis_perm = true;
		goto failed_calib;
	}