Thread (1 message) 1 message, 1 author, 2021-05-11

Re: Linux kernel: updating acer-wmi

From: Andy Shevchenko <hidden>
Date: 2021-05-11 14:07:06
Also in: linux-leds, platform-driver-x86

Thanks for your email.

Do not send personal emails on OSS related matters, please.

+Cc: mailing list and certain maintainers

On Tue, May 11, 2021 at 4:59 PM Jafar Akhondali
[off-list ref] wrote:
Hi,
The Acer predator helios 300 series features a RGB 4-zone backlight keyboard, that is currently controllable only in Windows. The manager uses a specific WMI interface which currently is not yet implemented in the Linux kernel.
I've implemented the support for RGB WMI on acer-wmi.c file by reverse engineering the PredatorSense(the official application on Windows which controls gaming functions for Acer Predator series), exploring WMI functions, and decompiling WQ buffers. But I still need your help as this is my first contribution to the Linux kernel for the correct place for the user-space communication method.

The RGB keyboard-backlight method accepts a 16bytes(u8[16]) array input for controlling different modes, colors, speed, light intensity, direction, etc. What is the most suitable way and place for controlling these parameters via using space?

My first choice was the "leds.h" subsystem, but it does not support array inputs, thus if I want to use this, I'll need to use 16 different subsystems which don't look right.

Another choice is using ioctl operation, but I'm not sure where I should place it. For example "/sys/kernel", "/sys/devices/", "/sys/module" or ... ?

Any working examples are extremely appreciated and will help me alot.

It is also worth mentioning that the mentioned WMI supports other gaming functions such as fan control, CPU\GPU overclocking, etc. But they are currently out of scope of my implementation.
-- 
With Best Regards,
Andy Shevchenko
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help