* [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.