Re: [PATCH V6 RESEND] HID: ASUS: Add support for ASUS N-Key keyboard

From: Hans de Goede
Date: Fri Oct 09 2020 - 09:37:31 EST


Hi,

On 10/9/20 3:14 PM, Andy Shevchenko wrote:
On Fri, Oct 09, 2020 at 11:38:55AM +0200, Jiri Kosina wrote:
On Thu, 24 Sep 2020, Luke D Jones wrote:

The ASUS N-Key keyboard uses the productId of 0x1866 and is used in
almost all modern ASUS gaming laptops with slight changes to the
firmware. This patch enables: Fn+key hotkeys, keyboard backlight
brightness control, and notify asus-wmi to toggle "fan-mode".

The keyboard has many of the same key outputs as the existing G752
keyboard including a few extras, and varies a little between laptop
models. The key-sets have been split and sub-grouped so that there
will not be conflict between key event codes used.

An existing key event used across some keyboards for "Mic Toggle"
has been changed to emit "F20" as this is what all the main
desktop environments are using.

Additionally this keyboard requires the LED interface to be
intitialised before such things as keyboard backlight control work.

Misc changes in scope: update some hardcoded comparisons to use an
available define.

Signed-off-by: Luke D Jones <luke@xxxxxxxxxx>

Thanks for the patch. Looks good to me in general, one small nit before
this can be merged as a whole ...

---
drivers/hid/hid-asus.c | 188 ++++++++++++++++++---
drivers/hid/hid-ids.h | 1 +
include/linux/platform_data/x86/asus-wmi.h | 2 +

... I'd like to get Ack from Andy (CCing) on the addition below to
asus-wmi.h.

There is a new sheriff in town (Hans and Mark).
My personal opinion it is good to go.

Acked-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>

I'm afraid that a quick review by me has found multiple issues with
this patch. I'm going to take a quick break now, I'll email a
detailed review after that.

Regards,

Hans



[ ... snip ... ]
diff --git a/include/linux/platform_data/x86/asus-wmi.h b/include/linux/platform_data/x86/asus-wmi.h
index 897b8332a39f..05253cfe786c 100644
--- a/include/linux/platform_data/x86/asus-wmi.h
+++ b/include/linux/platform_data/x86/asus-wmi.h
@@ -27,6 +27,8 @@
#define ASUS_WMI_METHODID_INIT 0x54494E49 /* INITialize */
#define ASUS_WMI_METHODID_HKEY 0x59454B48 /* Hot KEY ?? */

+#define ASUS_WMI_METHODID_NOTIF 0x00100021 /* Notify method ?? */
+
#define ASUS_WMI_UNSUPPORTED_METHOD 0xFFFFFFFE

/* Wireless */