Thread (17 messages) 17 messages, 6 authors, 2016-07-07

Re: [Letux-kernel] [PATCH] drivers: led: is31fl319x: 6/9-channel light effect led driver

From: H. Nikolaus Schaller <hidden>
Date: 2016-04-20 08:54:01
Also in: linux-leds, lkml

Hi Jacek,
quoted
quoted
+static void is31fl319x_brightness_set(struct led_classdev *led_cdev,
+				   enum led_brightness brightness)
+{
+	struct is31fl319x_led *led = container_of(led_cdev,
+						  struct is31fl319x_led,
+						  led_cdev);
+	struct is31fl319x_chip *is31 = led->chip;
+	unsigned long flags;
+
+	spin_lock_irqsave(&is31->lock, flags);
+
+	if (brightness != is31fl319x_brightness_get(led_cdev)) {
Current brightness is cached in led_cdev->brightness.
Hm. I could not find the code line where it is cached.

And if I remember correctly (it is a while ago that we did develop
this driver) experiments didn't show that it is cached there. Or the
old value is not available inside the brightness setter but already
the new one. Something like that was the reason why we cache
it inside the driver.
I have added a printk inside is31fl319x_brightness_set but never got
a difference between brightness and led_cdev->brightness.

This seems to confirm that it is already set to the new value. Thus we
can't detect changes in brightness by comparing to the previous value.

Can you please confirm?

Otherwise the driver works well so that I am almost ready for posting
V2.

Thanks,
Nikolaus
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help