Hi all,
Today's linux-next merge of the drivers-x86 tree got a conflict in:
drivers/hid/hid-asus.c
between commits:
f631011e36b87 ("HID: hid-asus: Implement fn lock for Asus ProArt P16")
06501b557faec ("HID: asus: Replace magic number with HID_UP_ASUSVENDOR constant")
from the hid tree and commits:
3415a1beb3d87 ("HID: asus: initialize additional endpoints only for certain devices")
8baca948f6aad ("HID: asus: move vendor initialization to probe")
from the drivers-x86 tree.
I fixed it up (see below) and can carry the fix as necessary. This
is now fixed as far as linux-next is concerned, but any non trivial
conflicts should be mentioned to your upstream maintainer when your tree
is submitted for merging. You may also want to consider cooperating
with the maintainer of the conflicting tree to minimise any particularly
complex conflicts.
diff --cc drivers/hid/hid-asus.c
index df7c03dde67fa,f5c8df20b88bf..0000000000000
--- a/drivers/hid/hid-asus.c
+++ b/drivers/hid/hid-asus.c
@@@ -101,7 -90,7 +101,8 @@@ MODULE_DESCRIPTION("Asus HID Keyboard a
#define QUIRK_ROG_NKEY_KEYBOARD BIT(11)
#define QUIRK_ROG_CLAYMORE_II_KEYBOARD BIT(12)
#define QUIRK_ROG_ALLY_XPAD BIT(13)
-#define QUIRK_ROG_NKEY_ID1ID2_INIT BIT(14)
+#define QUIRK_HID_FN_LOCK BIT(14)
++#define QUIRK_ROG_NKEY_ID1ID2_INIT BIT(15)
#define I2C_KEYBOARD_QUIRKS (QUIRK_FIX_NOTEBOOK_REPORT | \
QUIRK_NO_INIT_REPORTS | \
@@@ -1490,10 -1372,10 +1464,10 @@@ static const struct hid_device_id asus_
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_ID1ID2_INIT },
{ HID_USB_DEVICE(USB_VENDOR_ID_ASUSTEK,
USB_DEVICE_ID_ASUSTEK_ROG_NKEY_KEYBOARD2),
- QUIRK_USE_KBD_BACKLIGHT | QUIRK_ROG_NKEY_KEYBOARD | QUIRK_HID_FN_LOCK },
- QUIRK_USE_KBD_BACKLIGHT | QUIRK_ROG_NKEY_KEYBOARD | QUIRK_ROG_NKEY_ID1ID2_INIT },
++ QUIRK_USE_KBD_BACKLIGHT | QUIRK_ROG_NKEY_KEYBOARD | QUIRK_HID_FN_LOCK | QUIRK_ROG_NKEY_ID1ID2_INIT },
{ HID_USB_DEVICE(USB_VENDOR_ID_ASUSTEK,
USB_DEVICE_ID_ASUSTEK_ROG_Z13_LIGHTBAR),
QUIRK_USE_KBD_BACKLIGHT | QUIRK_ROG_NKEY_KEYBOARD },
index 876529df0d6ae..1b9793f7c07ed 100644
--- a/drivers/hid/hid-asus.c
+++ b/drivers/hid/hid-asus.c
@@ -959,6 +959,12 @@ static int asus_input_configured(struct hid_device *hdev, struct hid_input *hi)
}
}
+ if (drvdata->quirks & QUIRK_HID_FN_LOCK) {
+ drvdata->fn_lock = true;
+ INIT_WORK(&drvdata->fn_lock_sync_work, asus_sync_fn_lock);
+ asus_kbd_set_fn_lock(hdev, true);
+ }
+
if (drvdata->tp) {
int ret;
--
2.47.3
On Tue, 27 Jan 2026, Mark Brown wrote:
> Hi all,
I don't know why Benjamin didn't appear as a receipient here.
> Today's linux-next merge of the drivers-x86 tree got a conflict in:
>
> drivers/hid/hid-asus.c
>
> between commits:
>
> f631011e36b87 ("HID: hid-asus: Implement fn lock for Asus ProArt P16")
> 06501b557faec ("HID: asus: Replace magic number with HID_UP_ASUSVENDOR constant")
>
> from the hid tree and commits:
>
> 3415a1beb3d87 ("HID: asus: initialize additional endpoints only for certain devices")
> 8baca948f6aad ("HID: asus: move vendor initialization to probe")
>
> from the drivers-x86 tree.
>
> I fixed it up (see below) and can carry the fix as necessary. This
> is now fixed as far as linux-next is concerned, but any non trivial
> conflicts should be mentioned to your upstream maintainer when your tree
> is submitted for merging. You may also want to consider cooperating
> with the maintainer of the conflicting tree to minimise any particularly
> complex conflicts.
Thanks for the heads up.
I moved this asus kbd series into a separate branch and merged that into
my for-next branch. I could create an IB PR for that branch if HID
maintainers so prefer, though admittedly the conflict doesn't look
particularly complex.
> diff --cc drivers/hid/hid-asus.c
> index df7c03dde67fa,f5c8df20b88bf..0000000000000
> --- a/drivers/hid/hid-asus.c
> +++ b/drivers/hid/hid-asus.c
> @@@ -101,7 -90,7 +101,8 @@@ MODULE_DESCRIPTION("Asus HID Keyboard a
> #define QUIRK_ROG_NKEY_KEYBOARD BIT(11)
> #define QUIRK_ROG_CLAYMORE_II_KEYBOARD BIT(12)
> #define QUIRK_ROG_ALLY_XPAD BIT(13)
> -#define QUIRK_ROG_NKEY_ID1ID2_INIT BIT(14)
> +#define QUIRK_HID_FN_LOCK BIT(14)
> ++#define QUIRK_ROG_NKEY_ID1ID2_INIT BIT(15)
>
> #define I2C_KEYBOARD_QUIRKS (QUIRK_FIX_NOTEBOOK_REPORT | \
> QUIRK_NO_INIT_REPORTS | \
> @@@ -1490,10 -1372,10 +1464,10 @@@ static const struct hid_device_id asus_
> 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_ID1ID2_INIT },
> { HID_USB_DEVICE(USB_VENDOR_ID_ASUSTEK,
> USB_DEVICE_ID_ASUSTEK_ROG_NKEY_KEYBOARD2),
> - QUIRK_USE_KBD_BACKLIGHT | QUIRK_ROG_NKEY_KEYBOARD | QUIRK_HID_FN_LOCK },
> - QUIRK_USE_KBD_BACKLIGHT | QUIRK_ROG_NKEY_KEYBOARD | QUIRK_ROG_NKEY_ID1ID2_INIT },
> ++ QUIRK_USE_KBD_BACKLIGHT | QUIRK_ROG_NKEY_KEYBOARD | QUIRK_HID_FN_LOCK | QUIRK_ROG_NKEY_ID1ID2_INIT },
> { HID_USB_DEVICE(USB_VENDOR_ID_ASUSTEK,
> USB_DEVICE_ID_ASUSTEK_ROG_Z13_LIGHTBAR),
> QUIRK_USE_KBD_BACKLIGHT | QUIRK_ROG_NKEY_KEYBOARD },
>
> index 876529df0d6ae..1b9793f7c07ed 100644
> --- a/drivers/hid/hid-asus.c
> +++ b/drivers/hid/hid-asus.c
> @@ -959,6 +959,12 @@ static int asus_input_configured(struct hid_device *hdev, struct hid_input *hi)
> }
> }
>
> + if (drvdata->quirks & QUIRK_HID_FN_LOCK) {
> + drvdata->fn_lock = true;
> + INIT_WORK(&drvdata->fn_lock_sync_work, asus_sync_fn_lock);
> + asus_kbd_set_fn_lock(hdev, true);
> + }
> +
> if (drvdata->tp) {
> int ret;
>
>
--
i.
On Wed, 28 Jan 2026, Ilpo Järvinen wrote: > I moved this asus kbd series into a separate branch and merged that into > my for-next branch. I could create an IB PR for that branch if HID > maintainers so prefer, though admittedly the conflict doesn't look > particularly complex. Yeah, the conflict is trivial, and Linus likes to see conflicts between trees himself. The one of us who sends pull request to Linus should just point it out in pull request. Thanks, -- Jiri Kosina SUSE Labs
© 2016 - 2026 Red Hat, Inc.