All of lore.kernel.org
 help / color / mirror / Atom feed
From: Antheas Kapenekakis <lkml@antheas.dev>
To: platform-driver-x86@vger.kernel.org, linux-input@vger.kernel.org
Cc: 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" <hansg@kernel.org>,
	"Ilpo Järvinen" <ilpo.jarvinen@linux.intel.com>,
	"Denis Benato" <benato.denis96@gmail.com>,
	"Antheas Kapenekakis" <lkml@antheas.dev>
Subject: [PATCH v10 01/11] HID: asus: simplify RGB init sequence
Date: Sat, 22 Nov 2025 12:00:22 +0100	[thread overview]
Message-ID: <20251122110032.4274-2-lkml@antheas.dev> (raw)
In-Reply-To: <20251122110032.4274-1-lkml@antheas.dev>

Currently, RGB initialization forks depending on whether a device is
NKEY. However, in reality both initialization forks are the same, other
than the NKEY initialization initializing the LED_REPORT_ID1,
LED_REPORT_ID2 endpoints, and the non-NKEY initialization having a
functionality check which is skipped for the NKEY path.

Therefore, merge the if blocks, gate the ID1/ID2 initializations
behind the NKEY quirk instead, and introduce the functionality check
for NKEY devices (it is supported by them).

There should be no functional change with this patch.

Signed-off-by: Antheas Kapenekakis <lkml@antheas.dev>
---
 drivers/hid/hid-asus.c | 52 ++++++++++++++++++------------------------
 1 file changed, 22 insertions(+), 30 deletions(-)

diff --git a/drivers/hid/hid-asus.c b/drivers/hid/hid-asus.c
index 472bca54642b..a82286a427b8 100644
--- a/drivers/hid/hid-asus.c
+++ b/drivers/hid/hid-asus.c
@@ -639,13 +639,20 @@ static int asus_kbd_register_leds(struct hid_device *hdev)
 	unsigned char kbd_func;
 	int ret;
 
-	if (drvdata->quirks & QUIRK_ROG_NKEY_KEYBOARD) {
-		/* Initialize keyboard */
-		ret = asus_kbd_init(hdev, FEATURE_KBD_REPORT_ID);
-		if (ret < 0)
-			return ret;
+	ret = asus_kbd_init(hdev, FEATURE_KBD_REPORT_ID);
+	if (ret < 0)
+		return ret;
 
-		/* The LED endpoint is initialised in two HID */
+	/* Get keyboard functions */
+	ret = asus_kbd_get_functions(hdev, &kbd_func, FEATURE_KBD_REPORT_ID);
+	if (ret < 0)
+		return ret;
+
+	/* Check for backlight support */
+	if (!(kbd_func & SUPPORT_KBD_BACKLIGHT))
+		return -ENODEV;
+
+	if (drvdata->quirks & QUIRK_ROG_NKEY_KEYBOARD) {
 		ret = asus_kbd_init(hdev, FEATURE_KBD_LED_REPORT_ID1);
 		if (ret < 0)
 			return ret;
@@ -653,34 +660,19 @@ static int asus_kbd_register_leds(struct hid_device *hdev)
 		ret = asus_kbd_init(hdev, FEATURE_KBD_LED_REPORT_ID2);
 		if (ret < 0)
 			return ret;
+	}
 
-		if (dmi_match(DMI_PRODUCT_FAMILY, "ProArt P16")) {
-			ret = asus_kbd_disable_oobe(hdev);
-			if (ret < 0)
-				return ret;
-		}
-
-		if (drvdata->quirks & QUIRK_ROG_ALLY_XPAD) {
-			intf = to_usb_interface(hdev->dev.parent);
-			udev = interface_to_usbdev(intf);
-			validate_mcu_fw_version(hdev,
-				le16_to_cpu(udev->descriptor.idProduct));
-		}
-
-	} else {
-		/* Initialize keyboard */
-		ret = asus_kbd_init(hdev, FEATURE_KBD_REPORT_ID);
-		if (ret < 0)
-			return ret;
-
-		/* Get keyboard functions */
-		ret = asus_kbd_get_functions(hdev, &kbd_func, FEATURE_KBD_REPORT_ID);
+	if (dmi_match(DMI_PRODUCT_FAMILY, "ProArt P16")) {
+		ret = asus_kbd_disable_oobe(hdev);
 		if (ret < 0)
 			return ret;
+	}
 
-		/* Check for backlight support */
-		if (!(kbd_func & SUPPORT_KBD_BACKLIGHT))
-			return -ENODEV;
+	if (drvdata->quirks & QUIRK_ROG_ALLY_XPAD) {
+		intf = to_usb_interface(hdev->dev.parent);
+		udev = interface_to_usbdev(intf);
+		validate_mcu_fw_version(
+			hdev, le16_to_cpu(udev->descriptor.idProduct));
 	}
 
 	drvdata->kbd_backlight = devm_kzalloc(&hdev->dev,
-- 
2.52.0



  reply	other threads:[~2025-11-22 11:01 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-11-22 11:00 [PATCH v10 00/11] HID: asus: Fix ASUS ROG Laptop's Keyboard backlight handling Antheas Kapenekakis
2025-11-22 11:00 ` Antheas Kapenekakis [this message]
2025-11-22 11:00 ` [PATCH v10 02/11] HID: asus: initialize additional endpoints only for legacy devices Antheas Kapenekakis
2025-11-26 20:27   ` Denis Benato
2025-11-22 11:00 ` [PATCH v10 03/11] HID: asus: use same report_id in response Antheas Kapenekakis
2025-11-22 11:00 ` [PATCH v10 04/11] HID: asus: fortify keyboard handshake Antheas Kapenekakis
2025-11-22 13:13   ` Denis Benato
2025-11-26 20:09   ` Denis Benato
2025-12-02 11:17   ` Benjamin Tissoires
2025-11-22 11:00 ` [PATCH v10 05/11] HID: asus: move vendor initialization to probe Antheas Kapenekakis
2025-12-08 17:11   ` Ilpo Järvinen
2025-12-09  9:12     ` Antheas Kapenekakis
2025-12-09  9:14       ` Ilpo Järvinen
2025-11-22 11:00 ` [PATCH v10 06/11] HID: asus: early return for ROG devices Antheas Kapenekakis
2025-11-22 11:00 ` [PATCH v10 07/11] platform/x86: asus-wmi: Add support for multiple kbd led handlers Antheas Kapenekakis
2025-12-08 17:09   ` Ilpo Järvinen
2025-11-22 11:00 ` [PATCH v10 08/11] HID: asus: listen to the asus-wmi brightness device instead of creating one Antheas Kapenekakis
2025-11-26 20:19   ` Denis Benato
2025-12-02 11:23   ` Benjamin Tissoires
2025-11-22 11:00 ` [PATCH v10 09/11] platform/x86: asus-wmi: remove unused keyboard backlight quirk Antheas Kapenekakis
2025-11-26 20:19   ` Denis Benato
2025-11-22 11:00 ` [PATCH v10 10/11] platform/x86: asus-wmi: add keyboard brightness event handler Antheas Kapenekakis
2025-11-26 20:23   ` Denis Benato
2025-11-26 20:39     ` Antheas Kapenekakis
2025-12-01  8:58       ` Antheas Kapenekakis
2025-12-01  9:52         ` Ilpo Järvinen
2025-12-01 11:44           ` Antheas Kapenekakis
2025-12-02 11:26             ` Benjamin Tissoires
2025-11-22 11:00 ` [PATCH v10 11/11] HID: asus: add support for the asus-wmi brightness handler Antheas Kapenekakis
2025-11-26 13:37 ` [PATCH v10 00/11] HID: asus: Fix ASUS ROG Laptop's Keyboard backlight handling Antheas Kapenekakis
2025-11-26 15:23   ` Ilpo Järvinen
2025-11-26 15:28     ` Antheas Kapenekakis
2025-11-26 15:29       ` Antheas Kapenekakis
2025-11-26 15:31         ` Ilpo Järvinen
2025-11-26 19:58           ` Denis Benato
2025-11-26 17:34     ` Hans de Goede
2025-11-26 19:57       ` Denis Benato
2025-12-02 11:28 ` Benjamin Tissoires

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=20251122110032.4274-2-lkml@antheas.dev \
    --to=lkml@antheas.dev \
    --cc=benato.denis96@gmail.com \
    --cc=bentiss@kernel.org \
    --cc=corentin.chary@gmail.com \
    --cc=hansg@kernel.org \
    --cc=ilpo.jarvinen@linux.intel.com \
    --cc=jikos@kernel.org \
    --cc=linux-input@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.