From d06911ff634a3543d3b8f16c8af90a4e9a1c52c8 Mon Sep 17 00:00:00 2001 From: Shyam Kumar Thella Date: Wed, 5 Feb 2020 16:11:28 +0530 Subject: [PATCH] leds: qti-flash: Fix updating flags when disabling flash/torch device Currently when brightness is zeroed-out for a flash/torch device its "configured" flag is set to false. Hence the flash/torch device is ignored when its switch is disabled. This leads to the corresponding LED channel left enabled. Fix this by setting "configured" flag to false only when led strobe is de-asserted. Change-Id: I46c640d3e0db8611343e2e67321db820161dd144 Signed-off-by: Shyam Kumar Thella --- drivers/leds/leds-qti-flash.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/leds/leds-qti-flash.c b/drivers/leds/leds-qti-flash.c index b2a382bbc498..10fb266c1351 100644 --- a/drivers/leds/leds-qti-flash.c +++ b/drivers/leds/leds-qti-flash.c @@ -257,6 +257,8 @@ static int qti_flash_led_strobe(struct flash_node_data *fnode, if (rc < 0) goto error; + fnode->configured = false; + if (led->ref_count) led->ref_count--; @@ -353,7 +355,7 @@ static int qti_flash_led_disable(struct flash_node_data *fnode) if (rc < 0) goto out; - fnode->configured = false; + fnode->current_ma = 0; out: spin_unlock(&led->lock);