From: Denis Benato <benato.denis96@gmail.com>
To: Antheas Kapenekakis <lkml@antheas.dev>
Cc: "Ilpo Järvinen" <ilpo.jarvinen@linux.intel.com>,
platform-driver-x86@vger.kernel.org, linux-input@vger.kernel.org,
LKML <linux-kernel@vger.kernel.org>,
"Jiri Kosina" <jikos@kernel.org>,
"Benjamin Tissoires" <bentiss@kernel.org>,
"Corentin Chary" <corentin.chary@gmail.com>,
"Luke D . Jones" <luke@ljones.dev>,
"Hans de Goede" <hdegoede@redhat.com>
Subject: Re: [PATCH v8 05/10] HID: asus: initialize LED endpoint early for old NKEY keyboards
Date: Wed, 19 Nov 2025 02:21:28 +0100 [thread overview]
Message-ID: <e204d129-0ac8-48fb-a178-12466350079e@gmail.com> (raw)
In-Reply-To: <CAGwozwEF8bhbhgYe9cyg0JgcKsXstNZubPV9HCapwxMvw_2OhQ@mail.gmail.com>
On 11/19/25 02:11, Antheas Kapenekakis wrote:
> On Wed, 19 Nov 2025 at 01:54, Denis Benato <benato.denis96@gmail.com> wrote:
>>
>> On 11/18/25 13:10, Ilpo Järvinen wrote:
>>> On Sat, 1 Nov 2025, Antheas Kapenekakis wrote:
>>>
>>>> These keyboards have always had initialization in the kernel for 0x5d.
>>>> At this point, it is hard to verify again and we risk regressions by
>>>> removing this. Therefore, initialize with 0x5d as well.
>> See patch 1: unless I missed something you can retain the two
>> FEATURE_KBD_LED_REPORT_IDx behind the same exact quirk:
>> why are we adding a quirk to replace a quirk that was removed
>> in patch 1?
>>
>> You are basically doing the pretty-much-but-not-quite
>> equivalent of what the driver was doing before.
>>>> Signed-off-by: Antheas Kapenekakis <lkml@antheas.dev>
>>>> ---
>>>> drivers/hid/hid-asus.c | 15 +++++++++++++--
>>>> 1 file changed, 13 insertions(+), 2 deletions(-)
>>>>
>>>> diff --git a/drivers/hid/hid-asus.c b/drivers/hid/hid-asus.c
>>>> index 726f5d8e22d1..221c7195e885 100644
>>>> --- a/drivers/hid/hid-asus.c
>>>> +++ b/drivers/hid/hid-asus.c
>>>> @@ -91,6 +91,7 @@ MODULE_DESCRIPTION("Asus HID Keyboard and TouchPad");
>>>> #define QUIRK_ROG_CLAYMORE_II_KEYBOARD BIT(12)
>>>> #define QUIRK_ROG_ALLY_XPAD BIT(13)
>>>> #define QUIRK_SKIP_REPORT_FIXUP BIT(14)
>>>> +#define QUIRK_ROG_NKEY_LEGACY BIT(15)
>>>>
>>>> #define I2C_KEYBOARD_QUIRKS (QUIRK_FIX_NOTEBOOK_REPORT | \
>>>> QUIRK_NO_INIT_REPORTS | \
>>>> @@ -669,6 +670,16 @@ static int asus_kbd_register_leds(struct hid_device *hdev)
>>>> if (ret < 0)
>>>> return ret;
>>>>
>>>> + if (drvdata->quirks & QUIRK_ROG_NKEY_LEGACY) {
>>>> + /*
>>>> + * These keyboards might need 0x5d for shortcuts to work.
>>>> + * As it has been more than 5 years, it is hard to verify.
>>>> + */
>>>> + ret = asus_kbd_init(hdev, FEATURE_KBD_LED_REPORT_ID1);
>>>> + if (ret < 0)
>>>> + return ret;
>>>> + }
>>>> +
>>>> /* Get keyboard functions */
>>>> ret = asus_kbd_get_functions(hdev, &kbd_func, FEATURE_KBD_REPORT_ID);
>>>> if (ret < 0)
>>>> @@ -1409,10 +1420,10 @@ static const struct hid_device_id asus_devices[] = {
>>>> QUIRK_USE_KBD_BACKLIGHT },
>>>> { HID_USB_DEVICE(USB_VENDOR_ID_ASUSTEK,
>>>> USB_DEVICE_ID_ASUSTEK_ROG_NKEY_KEYBOARD),
>>>> - QUIRK_USE_KBD_BACKLIGHT | QUIRK_ROG_NKEY_KEYBOARD },
>>>> + QUIRK_USE_KBD_BACKLIGHT | QUIRK_ROG_NKEY_KEYBOARD | QUIRK_ROG_NKEY_LEGACY },
>>>> { HID_USB_DEVICE(USB_VENDOR_ID_ASUSTEK,
>>>> USB_DEVICE_ID_ASUSTEK_ROG_NKEY_KEYBOARD2),
>>>> - QUIRK_USE_KBD_BACKLIGHT | QUIRK_ROG_NKEY_KEYBOARD },
>>>> + QUIRK_USE_KBD_BACKLIGHT | QUIRK_ROG_NKEY_KEYBOARD | QUIRK_ROG_NKEY_LEGACY },
>>>> { HID_USB_DEVICE(USB_VENDOR_ID_ASUSTEK,
>>>> USB_DEVICE_ID_ASUSTEK_ROG_Z13_LIGHTBAR),
>>>> QUIRK_USE_KBD_BACKLIGHT | QUIRK_ROG_NKEY_KEYBOARD },
>>> You should do FEATURE_KBD_LED_REPORT_ID1 refactoring together, not remove
>>> + add back in different patches.
>> Granted I still have no idea why that was removed in the first place?
>> Then re-added but losing FEATURE_KBD_LED_REPORT_ID1 ?
>>
>> What's the problem with FEATURE_KBD_LED_REPORT_ID1?
>>
>>> I suppose the cleanest would be to add a new patch as first which moves
>>> asus_kbd_init() outside of if/else so you can make this refactoring of
>>> FEATURE_KBD_LED_REPORT_ID1 in the 2nd patch.
>> Again I am missing the point in moving these...
>>> I note there's still contention with this series overall.
>>>
>> There are a few things that have pretty much the potential of making
>> some laptops act funny due to tinkering with initializations commands.
>>
>> The rename will break some tools, but other than that, granted I have yet
>> to check the rest of the patchset, looks reasonable to me.
>>
>> Perhaps I am not entirely happy with how things are worded in
>> a few instances, but it's a minor issue.
> Hi Denis,
> please refrain from repeating yourself, in the same email and across
> emails, and repeating comments that are already addressed by Ilpo. As
> that makes it hard to track and respond to your comments.
My repetitions are due to confusion with different aspects of what
you are doing, but I'll try to be less repetitive.
Also I don't think I have said the very same exact things as
Ilpo, unless I misunderstood something.
> As noted in this chain, the plan for the next version is to include
> ID2 in this quirk and instead of removing it in the simplify patch,
> use a gate by the ROG quirk that is then replaced by a gate from this
> quirk.
Yeah but I also asked (perhaps too many times?) what's up with _ID1
and the whole reasoning behind this because as it stands now
you are replacing X with Y, only to do Z without making clear to me
the reason of Y, therefore Z also suffers from the same problem.
> This completely addresses your comment. The legacy quirk only applies
> to a subset of devices, so it is not the same with this series
> applied.
And the reason for this difference is exactly what I am asking for.
I have been trying to suggest things to describe and actions
to take/specific code changes to ensure we agree...
> Antheas
>
next prev parent reply other threads:[~2025-11-19 1:21 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-11-01 10:47 [PATCH v8 00/10] HID: asus: Fix ASUS ROG Laptop's Keyboard backlight handling Antheas Kapenekakis
2025-11-01 10:47 ` [PATCH v8 01/10] HID: asus: simplify RGB init sequence Antheas Kapenekakis
2025-11-18 12:23 ` Ilpo Järvinen
2025-11-18 13:07 ` Antheas Kapenekakis
2025-11-18 23:17 ` Denis Benato
2025-11-01 10:47 ` [PATCH v8 02/10] HID: asus: use same report_id in response Antheas Kapenekakis
2025-11-18 23:20 ` Denis Benato
2025-11-01 10:47 ` [PATCH v8 03/10] HID: asus: fortify keyboard handshake Antheas Kapenekakis
2025-11-18 23:43 ` Denis Benato
2025-11-18 23:46 ` Antheas Kapenekakis
2025-11-18 23:46 ` luke
2025-11-19 1:46 ` Denis Benato
2025-11-19 7:22 ` Ilpo Järvinen
2025-11-01 10:47 ` [PATCH v8 04/10] HID: asus: prevent binding to all HID devices on ROG Antheas Kapenekakis
2025-11-19 0:38 ` Denis Benato
2025-11-19 1:45 ` Antheas Kapenekakis
2025-11-19 2:33 ` Denis Benato
2025-11-19 8:00 ` Ilpo Järvinen
2025-11-01 10:47 ` [PATCH v8 05/10] HID: asus: initialize LED endpoint early for old NKEY keyboards Antheas Kapenekakis
2025-11-18 12:10 ` Ilpo Järvinen
2025-11-19 0:54 ` Denis Benato
2025-11-19 1:11 ` Antheas Kapenekakis
2025-11-19 1:21 ` Denis Benato [this message]
2025-11-19 1:27 ` Antheas Kapenekakis
2025-11-19 7:55 ` Ilpo Järvinen
2025-11-01 10:47 ` [PATCH v8 06/10] platform/x86: asus-wmi: Add support for multiple kbd led handlers Antheas Kapenekakis
2025-11-01 10:47 ` [PATCH v8 07/10] HID: asus: listen to the asus-wmi brightness device instead of creating one Antheas Kapenekakis
2025-11-01 10:47 ` [PATCH v8 08/10] platform/x86: asus-wmi: remove unused keyboard backlight quirk Antheas Kapenekakis
2025-11-01 10:47 ` [PATCH v8 09/10] platform/x86: asus-wmi: add keyboard brightness event handler Antheas Kapenekakis
2025-11-01 10:47 ` [PATCH v8 10/10] HID: asus: add support for the asus-wmi brightness handler Antheas Kapenekakis
2025-11-12 12:44 ` [PATCH v8 00/10] HID: asus: Fix ASUS ROG Laptop's Keyboard backlight handling Antheas Kapenekakis
2025-11-12 13:21 ` Ilpo Järvinen
2025-11-12 13:41 ` Antheas Kapenekakis
2025-11-12 19:51 ` Denis Benato
2025-11-12 22:08 ` Antheas Kapenekakis
2025-11-12 23:22 ` Antheas Kapenekakis
2025-11-13 0:45 ` Denis Benato
2025-11-13 1:14 ` Denis Benato
2025-11-13 8:44 ` Antheas Kapenekakis
2025-11-13 20:23 ` luke
2025-11-13 21:17 ` Antheas Kapenekakis
2025-11-13 22:09 ` luke
2025-11-13 22:41 ` Antheas Kapenekakis
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=e204d129-0ac8-48fb-a178-12466350079e@gmail.com \
--to=benato.denis96@gmail.com \
--cc=bentiss@kernel.org \
--cc=corentin.chary@gmail.com \
--cc=hdegoede@redhat.com \
--cc=ilpo.jarvinen@linux.intel.com \
--cc=jikos@kernel.org \
--cc=linux-input@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lkml@antheas.dev \
--cc=luke@ljones.dev \
--cc=platform-driver-x86@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).