Re: [PATCH v5 2/6] leds: triggers: Add a keyboard backlight trigger

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Hans,

Thanks for the patch.

I think we need less generic trigger name.
With present name we pretend that all kbd-backlight controllers
can change LED brightness autonomously.

How about kbd-backlight-pollable ?

Best regards,
Jacek Anaszewski

On 11/17/2016 11:24 PM, Hans de Goede wrote:
> Add a trigger to control keyboard backlight LED devices. Note that in
> some cases the keyboard backlight control is hardwired (taken care of
> in firmware outside of the kernels control), in that case this triggers
> main purpose is to allow userspace to monitor these changes.
>
> The ledtrig_kbd_backlight function has a set_brightness parameter to
> differentiate between full backlight control through the trigger
> (set_brightness set to true) or change notification only (false).
>
> Note the Kconfig option for this is a bool because the code is so
> small that it is not worth the overhead of being a module.
>
> Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx>
> ---
> Changes in v5:
> -This is a new patch in v5 of this patch-set (replacing earlier attempts
>  at similar functionality)
> ---
>  drivers/leds/trigger/Kconfig                 | 10 ++++++++
>  drivers/leds/trigger/Makefile                |  1 +
>  drivers/leds/trigger/ledtrig-kbd-backlight.c | 38 ++++++++++++++++++++++++++++
>  include/linux/leds.h                         |  8 ++++++
>  4 files changed, 57 insertions(+)
>  create mode 100644 drivers/leds/trigger/ledtrig-kbd-backlight.c
>
> diff --git a/drivers/leds/trigger/Kconfig b/drivers/leds/trigger/Kconfig
> index 3f9ddb9..350e2c7 100644
> --- a/drivers/leds/trigger/Kconfig
> +++ b/drivers/leds/trigger/Kconfig
> @@ -67,6 +67,16 @@ config LEDS_TRIGGER_BACKLIGHT
>
>  	  If unsure, say N.
>
> +config LEDS_TRIGGER_KBD_BACKLIGHT
> +	bool "LED keyboard backlight Trigger"
> +	depends on LEDS_TRIGGERS
> +	help
> +	  This trigger can control keyboard backlight LED devices,
> +	  it also allows user-space to monitor keyboard backlight brightness
> +	  changes done through e.g. hotkeys on some laptops.
> +
> +	  If unsure, say Y.
> +
>  config LEDS_TRIGGER_CPU
>  	bool "LED CPU Trigger"
>  	depends on LEDS_TRIGGERS
> diff --git a/drivers/leds/trigger/Makefile b/drivers/leds/trigger/Makefile
> index a72c43c..be6b249 100644
> --- a/drivers/leds/trigger/Makefile
> +++ b/drivers/leds/trigger/Makefile
> @@ -4,6 +4,7 @@ obj-$(CONFIG_LEDS_TRIGGER_DISK)		+= ledtrig-disk.o
>  obj-$(CONFIG_LEDS_TRIGGER_MTD)		+= ledtrig-mtd.o
>  obj-$(CONFIG_LEDS_TRIGGER_HEARTBEAT)	+= ledtrig-heartbeat.o
>  obj-$(CONFIG_LEDS_TRIGGER_BACKLIGHT)	+= ledtrig-backlight.o
> +obj-$(CONFIG_LEDS_TRIGGER_KBD_BACKLIGHT) += ledtrig-kbd-backlight.o
>  obj-$(CONFIG_LEDS_TRIGGER_GPIO)		+= ledtrig-gpio.o
>  obj-$(CONFIG_LEDS_TRIGGER_CPU)		+= ledtrig-cpu.o
>  obj-$(CONFIG_LEDS_TRIGGER_DEFAULT_ON)	+= ledtrig-default-on.o
> diff --git a/drivers/leds/trigger/ledtrig-kbd-backlight.c b/drivers/leds/trigger/ledtrig-kbd-backlight.c
> new file mode 100644
> index 0000000..353ee92
> --- /dev/null
> +++ b/drivers/leds/trigger/ledtrig-kbd-backlight.c
> @@ -0,0 +1,38 @@
> +/*
> + * LED Trigger for keyboard backlight control
> + *
> + * Copyright 2016, Hans de Goede <hdegoede@xxxxxxxxxx>
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License version 2 as
> + * published by the Free Software Foundation.
> + *
> + */
> +
> +#include <linux/module.h>
> +#include <linux/kernel.h>
> +#include <linux/init.h>
> +#include <linux/device.h>
> +#include <linux/leds.h>
> +#include "../leds.h"
> +
> +static struct led_trigger kbd_backlight_trigger = {
> +	.name     = "kbd-backlight",
> +	.activate = led_trigger_add_current_brightness,
> +	.deactivate = led_trigger_remove_current_brightness,
> +};
> +
> +void ledtrig_kbd_backlight(bool set_brightness, enum led_brightness brightness)
> +{
> +	if (set_brightness)
> +		led_trigger_event(&kbd_backlight_trigger, brightness);
> +
> +	led_trigger_notify_current_brightness_change(&kbd_backlight_trigger);
> +}
> +EXPORT_SYMBOL_GPL(ledtrig_kbd_backlight);
> +
> +static int __init kbd_backlight_trig_init(void)
> +{
> +	return led_trigger_register(&kbd_backlight_trigger);
> +}
> +device_initcall(kbd_backlight_trig_init);
> diff --git a/include/linux/leds.h b/include/linux/leds.h
> index d3eb992..870b8c2 100644
> --- a/include/linux/leds.h
> +++ b/include/linux/leds.h
> @@ -353,6 +353,14 @@ static inline void ledtrig_flash_ctrl(bool on) {}
>  static inline void ledtrig_torch_ctrl(bool on) {}
>  #endif
>
> +#ifdef CONFIG_LEDS_TRIGGER_KBD_BACKLIGHT
> +extern void ledtrig_kbd_backlight(bool set_brightness,
> +				  enum led_brightness brightness);
> +#else
> +static inline void ledtrig_kbd_backlight(bool set_brightness,
> +					 enum led_brightness brightness) {}
> +#endif
> +
>  /*
>   * Generic LED platform data for describing LED names and default triggers.
>   */
>



------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most 
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
ibm-acpi-devel mailing list
ibm-acpi-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.sourceforge.net/lists/listinfo/ibm-acpi-devel



[Index of Archives]     [Linux ACPI]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Photo]     [Yosemite Photos]     [Yosemite Advice]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Device Mapper]

  Powered by Linux