All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] platform: x86: dell-laptop: use brightness_set_blocking for kbd_led_level_set
@ 2016-10-26 15:17 Hans de Goede
  2016-10-27 10:33 ` Pali Rohár
  0 siblings, 1 reply; 3+ messages in thread
From: Hans de Goede @ 2016-10-26 15:17 UTC (permalink / raw)
  To: Darren Hart, Matthew Garrett, Pali Rohár
  Cc: platform-driver-x86, Hans de Goede

kbd_led_level_set uses dell_smbios call which block, so the kbd_led
classdev should use the brightness_set_blocking callback.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
 drivers/platform/x86/dell-laptop.c | 26 ++++++++++++++------------
 1 file changed, 14 insertions(+), 12 deletions(-)

diff --git a/drivers/platform/x86/dell-laptop.c b/drivers/platform/x86/dell-laptop.c
index 3803da1..d43d2d7 100644
--- a/drivers/platform/x86/dell-laptop.c
+++ b/drivers/platform/x86/dell-laptop.c
@@ -1869,38 +1869,40 @@ static enum led_brightness kbd_led_level_get(struct led_classdev *led_cdev)
 	return 0;
 }
 
-static void kbd_led_level_set(struct led_classdev *led_cdev,
-			      enum led_brightness value)
+static int kbd_led_level_set(struct led_classdev *led_cdev,
+			     enum led_brightness value)
 {
 	struct kbd_state state;
 	struct kbd_state new_state;
 	u16 num;
+	int ret;
 
 	if (kbd_get_max_level()) {
-		if (kbd_get_state(&state))
-			return;
+		ret = kbd_get_state(&state);
+		if (ret)
+			return ret;
 		new_state = state;
-		if (kbd_set_level(&new_state, value))
-			return;
-		kbd_set_state_safe(&new_state, &state);
-		return;
+		ret = kbd_set_level(&new_state, value);
+		if (ret)
+			return ret;
+		return kbd_set_state_safe(&new_state, &state);
 	}
 
 	if (kbd_get_valid_token_counts()) {
 		for (num = kbd_token_bits; num != 0 && value > 0; --value)
 			num &= num - 1; /* clear the first bit set */
 		if (num == 0)
-			return;
-		kbd_set_token_bit(ffs(num) - 1);
-		return;
+			return 0;
+		return kbd_set_token_bit(ffs(num) - 1);
 	}
 
 	pr_warn("Keyboard brightness level control not supported\n");
+	return -ENXIO;
 }
 
 static struct led_classdev kbd_led = {
 	.name           = "dell::kbd_backlight",
-	.brightness_set = kbd_led_level_set,
+	.brightness_set_blocking = kbd_led_level_set,
 	.brightness_get = kbd_led_level_get,
 	.groups         = kbd_led_groups,
 };
-- 
2.9.3

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] platform: x86: dell-laptop: use brightness_set_blocking for kbd_led_level_set
  2016-10-26 15:17 [PATCH] platform: x86: dell-laptop: use brightness_set_blocking for kbd_led_level_set Hans de Goede
@ 2016-10-27 10:33 ` Pali Rohár
  2016-12-12 19:03   ` Darren Hart
  0 siblings, 1 reply; 3+ messages in thread
From: Pali Rohár @ 2016-10-27 10:33 UTC (permalink / raw)
  To: Hans de Goede; +Cc: Darren Hart, Matthew Garrett, platform-driver-x86

On Wednesday 26 October 2016 17:17:44 Hans de Goede wrote:
> kbd_led_level_set uses dell_smbios call which block, so the kbd_led
> classdev should use the brightness_set_blocking callback.
> 
> Signed-off-by: Hans de Goede <hdegoede@redhat.com>

Seems correct, Reviewed-by: Pali Rohár <pali.rohar@gmail.com>

-- 
Pali Rohár
pali.rohar@gmail.com

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] platform: x86: dell-laptop: use brightness_set_blocking for kbd_led_level_set
  2016-10-27 10:33 ` Pali Rohár
@ 2016-12-12 19:03   ` Darren Hart
  0 siblings, 0 replies; 3+ messages in thread
From: Darren Hart @ 2016-12-12 19:03 UTC (permalink / raw)
  To: Pali Rohár; +Cc: Hans de Goede, Matthew Garrett, platform-driver-x86

On Thu, Oct 27, 2016 at 12:33:48PM +0200, Pali Rohár wrote:
> On Wednesday 26 October 2016 17:17:44 Hans de Goede wrote:
> > kbd_led_level_set uses dell_smbios call which block, so the kbd_led
> > classdev should use the brightness_set_blocking callback.
> > 
> > Signed-off-by: Hans de Goede <hdegoede@redhat.com>
> 
> Seems correct, Reviewed-by: Pali Rohár <pali.rohar@gmail.com>

Queued to testing, thanks.

-- 
Darren Hart
Intel Open Source Technology Center

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2016-12-12 19:03 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-10-26 15:17 [PATCH] platform: x86: dell-laptop: use brightness_set_blocking for kbd_led_level_set Hans de Goede
2016-10-27 10:33 ` Pali Rohár
2016-12-12 19:03   ` Darren Hart

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.