From 703b54ebc488a9c008e91ff6286d68e38cf92336 Mon Sep 17 00:00:00 2001 From: Subbaraman Narayanamurthy Date: Thu, 12 Oct 2017 21:04:30 -0700 Subject: [PATCH] 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: Subbaraman Narayanamurthy --- drivers/leds/leds-qpnp-wled.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/leds/leds-qpnp-wled.c b/drivers/leds/leds-qpnp-wled.c index c422b9e09c54..b8e16088455f 100644 --- a/drivers/leds/leds-qpnp-wled.c +++ b/drivers/leds/leds-qpnp-wled.c @@ -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; }