Re: [PATCH v2 2/2] leds: Add control of the voltage/current regulator to the LED core

From: Jean-Jacques Hiblot
Date: Wed Jul 17 2019 - 09:14:37 EST


Hi Dan,

On 15/07/2019 20:59, Dan Murphy wrote:
JJ

On 7/15/19 10:56 AM, Jean-Jacques Hiblot wrote:
A LED is usually powered by a voltage/current regulator. Let the LED core
know about it. This allows the LED core to turn on or off the power supply
as needed.

This allows the LED core to turn on or off managed power supplies.



Signed-off-by: Jean-Jacques Hiblot <jjhiblot@xxxxxx>
---

ÂÂÂÂÂ if (led_cdev->flags & LED_BRIGHT_HW_CHANGED) {
ÂÂÂÂÂÂÂÂÂ ret = led_add_brightness_hw_changed(led_cdev);
ÂÂÂÂÂÂÂÂÂ if (ret) {
diff --git a/drivers/leds/led-core.c b/drivers/leds/led-core.c
index 7107cd7e87cf..a12b880b0a2f 100644
--- a/drivers/leds/led-core.c
+++ b/drivers/leds/led-core.c
@@ -23,6 +23,33 @@ EXPORT_SYMBOL_GPL(leds_list_lock);
 LIST_HEAD(leds_list);
 EXPORT_SYMBOL_GPL(leds_list);
 +static bool __led_need_regulator_update(struct led_classdev *led_cdev,
+ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ int brightness)
+{
+ÂÂÂ bool new_state = (brightness != LED_OFF);
+
+ÂÂÂ return led_cdev->regulator && led_cdev->regulator_state != new_state;
+}
+
+static int __led_handle_regulator(struct led_classdev *led_cdev,
+ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ int brightness)
+{
+ÂÂÂ int rc;

Should there be a check for the regulator pointer.

If (!led_cdev->regulator)

ÂÂÂ return 0;

Not required because __led_need_regulator_update() returns false if led_cdev->regulator is NULL.

Thanks for the review

JJ



Otherwise

Reviewed-by: Dan Murphy <dmurphy@xxxxxx>

<snip>