Re: [PATCH v8] platform/x86: hp-wmi: Add multicolor LED support for HP keyboard backlight
From: Ilpo Järvinen
Date: Wed Jun 10 2026 - 08:19:25 EST
On Mon, 18 May 2026, Коненко Андрей Викторович wrote:
> >
> > I'm afraid the names are still wrong. Your patch results in e.g. :
> >
> > hp::kbd_backlight_zone-right
> >
> > where as per:
> >
> > https://lore.kernel.org/linux-leds/20260504145434.12746-1-johannes.goede@oss
> > .qualcomm.com/
> >
> > this should be:
> >
> > hp::kbd_zoned_backlight-right
> >
> > Regards,
> >
> > Hans
> >
>
> I would like to sincerely apologize for the mistake in understanding the
> documentation. I received feedback pointing out my error, corrected it
> accordingly, but unfortunately, there was still an oversight. After being
> notified of the second error, I have now thoroughly reviewed everything again
> and made all necessary corrections.
>
> I truly appreciate your patience and guidance throughout this process. Your
> feedback has been extremely helpful in helping me reach the correct
> understanding. I am committed to ensuring that all future submissions are
> fully compliant with the documentation requirements.
>
> Thank you for your time and understanding.
>
> ---
>
> From: Edip Hazuri <edip@xxxxxxxxx>
>
> Add support for the HP keyboard RGB backlight found on HP OMEN and
> HP Victus laptops. These keyboards expose per-zone RGB control through
> WMI commands.
>
> Register multicolor LED class devices for each keyboard zone (up to 4
> zones, depending on the keyboard type). Each zone exposes individual
> red, green, and blue channels via the multicolor LED subsystem.
>
> Also hardware-initiated brightness changes (e.g. via the keyboard
> backlight hotkey, mostly fn+f4) are reported.
>
> The color data is stored in a 128-byte color table managed by the
> firmware, with RGB values starting at offset 25, packed sequentially
> per zone.
>
> Signed-off-by: Konenko Andrey Viktorovich <admin@xxxxxxxxxx>
>
> ---
>
> Changes since v7:
> - The LED class device names changed to be consistent with the documentation.
>
> Changes since v6:
> - The LED class device names have been made more consistent with the
> documentation, in accordance with patch https://lore.kernel.org/linux-leds/
> 20260504145434.12746-1-johannes.goede@xxxxxxxxxxxxxxxx/
> underscores have been replaced with dashes where indicated.
>
> Changes since v5:
> - LED class device names changed from a number to using a descriptive name
> for each zone.
>
> v4: https://lore.kernel.org/all/20260303084022.7223-3-edip@xxxxxxxxx/
>
> Changes since v4:
> - Fix circular dependencies
>
> Changes since v3:
> - Merge the changes into a single commit
>
> Changes since v1:
> - Fix mentioned style errors
> - Add Kconfig dependencies
>
> ---
>
> drivers/platform/x86/hp/Kconfig | 2 +
> drivers/platform/x86/hp/hp-wmi.c | 284 ++++++++++++++++++++++++++++++-
> 2 files changed, 285 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/platform/x86/hp/Kconfig b/drivers/platform/x86/hp/Kconfig
> index dd51491b9bcd..2a1841cbec76 100644
> --- a/drivers/platform/x86/hp/Kconfig
> +++ b/drivers/platform/x86/hp/Kconfig
> @@ -45,6 +45,8 @@ config HP_WMI
> select INPUT_SPARSEKMAP
> select ACPI_PLATFORM_PROFILE
> select HWMON
> + select LEDS_CLASS
> + select LEDS_CLASS_MULTICOLOR
> help
> Say Y here if you want to support WMI-based hotkeys on HP laptops
> and
> to read data from WMI such as docking or ambient light sensor
> state.
> diff --git a/drivers/platform/x86/hp/hp-wmi.c b/drivers/platform/x86/hp/hp-
> wmi.c
> index d1cc6e7d176c..19da18f68337 100644
> --- a/drivers/platform/x86/hp/hp-wmi.c
> +++ b/drivers/platform/x86/hp/hp-wmi.c
> @@ -14,6 +14,7 @@
> #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
>
> #include <linux/acpi.h>
> +#include <linux/array_size.h>
> #include <linux/cleanup.h>
> #include <linux/compiler_attributes.h>
> #include <linux/dmi.h>
> @@ -23,6 +24,8 @@
> #include <linux/input.h>
> #include <linux/input/sparse-keymap.h>
> #include <linux/kernel.h>
> +#include <linux/led-class-multicolor.h>
> +#include <linux/leds.h>
> #include <linux/limits.h>
> #include <linux/minmax.h>
> #include <linux/module.h>
> @@ -57,6 +60,7 @@ enum hp_ec_offsets {
>
> #define HP_FAN_SPEED_AUTOMATIC 0x00
> #define HP_POWER_LIMIT_DEFAULT 0x00
> +#define HP_COLOR_TABLE_PADDING 25
> #define HP_POWER_LIMIT_NO_CHANGE 0xFF
>
> #define zero_if_sup(tmp) (zero_insize_support?0:sizeof(tmp)) // use when zero
> insize is required
Long lines in this patch seem corrupted.
--
i.