Subject: Re: linux-next: manual merge of the drivers-x86 tree with the hid tree

From: Ilpo Järvinen <[email-masked]>
Date: Wed, 28 Jan 2026 14:13:48 +0200 (EET)

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.