lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <a11fd918-d1bc-8a1f-c123-bcb0b4fa38a5@gmail.com>
Date:   Mon, 20 Feb 2023 00:16:04 +0530
From:   Rishit Bansal <rishitbansal0@...il.com>
To:     Hans de Goede <hdegoede@...hat.com>, Pavel Machek <pavel@....cz>,
        Rishit Bansal <rishitbansal0@...il.com>
Cc:     Mark Gross <markgross@...nel.org>, linux-kernel@...r.kernel.org,
        platform-driver-x86@...r.kernel.org,
        Linux LED Subsystem <linux-leds@...r.kernel.org>,
        Dan Murphy <dmurphy@...com>
Subject: Re: API for setting colors of RGB backlit keyboard zones (was [PATCH
 V3] platform/x86: hp-wmi: Support omen backlight control wmi-acpi methods)



On 19/02/23 18:50, Hans de Goede wrote:
> Hi,
> 
> On 2/18/23 12:48, Pavel Machek wrote:
>> Hi!
>>
>>
>>>> I do agree with you that we need to avoid kbd_backlight in the name to avoid causing existing upower code to have weird interactions with this (it supports / assumes there is only 1 kbd_backlight LED class device).
>>>>
>>>> So lets go with just these 4:
>>>>
>>>> /sys/class/leds/hp_omen::kbd_zoned_backlight-1/
>>>> /sys/class/leds/hp_omen::kbd_zoned_backlight-2/
>>>> /sys/class/leds/hp_omen::kbd_zoned_backlight-3/
>>>> /sys/class/leds/hp_omen::kbd_zoned_backlight-4/
>>>>
>>>> Using the _zoned_ between kbd and baclight to avoid confusing the existing upower code. Then once this has landed we can look into extending upower support for this.
>>>>
>>>> Note the requested documentation patch should probably also explain that the _zoned_ was done deliberately to make current upower code ignore the devices.
>>>>
>>
>>>
>>> This makes sense, I agree that the global LED file will cause more confusion
>>> and hacks in the code. I'll start working on the  _zoned_ naming scheme with
>>> 4 files + documentation changes and make a patch for this soon!
>>>
>>
>> /sys/class/leds/:rgb:kbd_zoned_backlight-4/ is better than what was
>> suggested above.
> 
> Ah yes using rgb for the color part of the name makes sense.
> 
>> But we already use _1 suffix to deduplicate the, so
>> I'm not sure this is best naming.
> 
> 
> 
> I guess we could try to actually name the zones, something like
> (no idea if this are indeed the 4 zones):
> 
> :rgb:kbd_zoned_backlight-main
> :rgb:kbd_zoned_backlight-wasd
> :rgb:kbd_zoned_backlight-cursor
> :rgb:kbd_zoned_backlight-numpad
> 
> Rishit any comments on this or improvements to it.

Here is an image of how the 4 zones on the keyboard look like 
(https://imgur.com/a/iQdRWCM). I think we can call them "left", 
"middle", "right", and "wasd":

:rgb:kbd_zoned_backlight-left
:rgb:kbd_zoned_backlight-middle
:rgb:kbd_zoned_backlight-right
:rgb:kbd_zoned_backlight-wasd


> 
>> There are keyboards with per-key backlight. How do you suggest to
>> solve those?
> 
> I really think those fall into a separate category, currently AFAIK
> all support for those use /dev/hidraw directly from userspace.
> 
> And any kernel API would need to likely be ioctl based, allowing
> setting all the LEDs in a single syscall otherwise setting the
> LEDs becomes to expensive / introduces to much latency when
> doing software driven animations. So I think the best thing to
> do there is to declare these out-of-scope for the classic
> sysfs based LED class API.

I agree with this as well, a separate API will be required for more 
complex use cases with per-key color control. For most  future cases 
with a limited number of zones, our current approach with multi LED 
"kbd_zoned" files should work out.

> 
> Regards,
> 
> Hans
> 
> 
> 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ