diff --git a/patches/asus2.patch b/patches/asus2.patch index c2d60b4..0722891 100644 --- a/patches/asus2.patch +++ b/patches/asus2.patch @@ -1,36 +1,7 @@ -From 318ba1ff9a044051536a4e4938b8e38a6ffe9bac Mon Sep 17 00:00:00 2001 -From: "Luke D. Jones" -Date: Fri, 7 Jun 2024 15:58:01 +1200 -Subject: [PATCH 01/28] Input: xpad - add support for ASUS ROG RAIKIRI PRO - -Add the VID/PID for ASUS ROG RAIKIRI PRO to -xpad_device and the VID to xpad_table. - -Signed-off-by: Luke D. Jones ---- - drivers/hid/hid-ids.h | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h -index 0f23be98c56e..1b92729bd378 100644 ---- a/drivers/hid/hid-ids.h -+++ b/drivers/hid/hid-ids.h -@@ -210,6 +210,7 @@ - #define USB_DEVICE_ID_ASUSTEK_ROG_NKEY_KEYBOARD2 0x19b6 - #define USB_DEVICE_ID_ASUSTEK_ROG_NKEY_KEYBOARD3 0x1a30 - #define USB_DEVICE_ID_ASUSTEK_ROG_Z13_LIGHTBAR 0x18c6 -+#define USB_DEVICE_ID_ASUSTEK_ROG_RAIKIRI_PAD 0x1abb - #define USB_DEVICE_ID_ASUSTEK_ROG_NKEY_ALLY 0x1abe - #define USB_DEVICE_ID_ASUSTEK_ROG_NKEY_ALLY_X 0x1b4c - #define USB_DEVICE_ID_ASUSTEK_ROG_CLAYMORE_II_KEYBOARD 0x196b --- -2.47.1 - - -From 75ffd91fb4a2da8683a438f0ea23a2fe20dd97ca Mon Sep 17 00:00:00 2001 +From 701954edb42b4dcf79f52a74cfcda69ff54a5c20 Mon Sep 17 00:00:00 2001 From: "Luke D. Jones" Date: Fri, 24 May 2024 10:54:36 +1200 -Subject: [PATCH 02/28] platform/x86: asus-wmi: don't fail if platform_profile +Subject: [PATCH 02/29] platform/x86: asus-wmi: don't fail if platform_profile already registered On some newer laptops it appears that an AMD driver can register a @@ -48,10 +19,10 @@ Signed-off-by: Luke D. Jones 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c -index 1101e5b2488e..293ecd228a5a 100644 +index 8bd187e8b47f..2a13466efaa9 100644 --- a/drivers/platform/x86/asus-wmi.c +++ b/drivers/platform/x86/asus-wmi.c -@@ -4769,7 +4769,7 @@ static int asus_wmi_add(struct platform_device *pdev) +@@ -4747,7 +4747,7 @@ static int asus_wmi_add(struct platform_device *pdev) goto fail_fan_boost_mode; err = platform_profile_setup(asus); @@ -64,10 +35,10 @@ index 1101e5b2488e..293ecd228a5a 100644 2.47.1 -From f1d69dd5412a06634a19db8daa0329d9ff585452 Mon Sep 17 00:00:00 2001 +From d33e3b4f8bd485888236355f7d0975d91a9110d0 Mon Sep 17 00:00:00 2001 From: "Luke D. Jones" Date: Sun, 1 Sep 2024 14:30:37 +1200 -Subject: [PATCH 03/28] platform/x86: asus-wmi: Refactor Ally suspend/resume +Subject: [PATCH 03/29] platform/x86: asus-wmi: Refactor Ally suspend/resume The CSEE method from ACPI is now called only on module load. This fixes an issues with USB device loss on Ally 1 after reboot. @@ -89,7 +60,7 @@ Signed-off-by: Luke D. Jones 1 file changed, 48 insertions(+), 38 deletions(-) diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c -index 293ecd228a5a..acd0ec1d9aae 100644 +index 2a13466efaa9..eed807dfcb6c 100644 --- a/drivers/platform/x86/asus-wmi.c +++ b/drivers/platform/x86/asus-wmi.c @@ -142,16 +142,20 @@ module_param(fnlock_default, bool, 0444); @@ -136,7 +107,7 @@ index 293ecd228a5a..acd0ec1d9aae 100644 /* WMI ************************************************************************/ static int asus_wmi_evaluate_method3(u32 method_id, -@@ -4729,6 +4732,17 @@ static int asus_wmi_add(struct platform_device *pdev) +@@ -4707,6 +4710,17 @@ static int asus_wmi_add(struct platform_device *pdev) if (err) goto fail_platform; @@ -154,7 +125,7 @@ index 293ecd228a5a..acd0ec1d9aae 100644 /* ensure defaults for tunables */ asus->ppt_pl2_sppt = 5; asus->ppt_pl1_spl = 5; -@@ -4741,8 +4755,6 @@ static int asus_wmi_add(struct platform_device *pdev) +@@ -4719,8 +4733,6 @@ static int asus_wmi_add(struct platform_device *pdev) asus->egpu_enable_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_EGPU); asus->dgpu_disable_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_DGPU); asus->kbd_rgb_state_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_TUF_RGB_STATE); @@ -163,7 +134,7 @@ index 293ecd228a5a..acd0ec1d9aae 100644 if (asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_MINI_LED_MODE)) asus->mini_led_dev_id = ASUS_WMI_DEVID_MINI_LED_MODE; -@@ -4933,34 +4945,6 @@ static int asus_hotk_resume(struct device *device) +@@ -4911,34 +4923,6 @@ static int asus_hotk_resume(struct device *device) return 0; } @@ -198,7 +169,7 @@ index 293ecd228a5a..acd0ec1d9aae 100644 static int asus_hotk_restore(struct device *device) { struct asus_wmi *asus = dev_get_drvdata(device); -@@ -5001,11 +4985,32 @@ static int asus_hotk_restore(struct device *device) +@@ -4979,11 +4963,32 @@ static int asus_hotk_restore(struct device *device) return 0; } @@ -232,7 +203,7 @@ index 293ecd228a5a..acd0ec1d9aae 100644 .prepare = asus_hotk_prepare, }; -@@ -5033,6 +5038,10 @@ static int asus_wmi_probe(struct platform_device *pdev) +@@ -5011,6 +5016,10 @@ static int asus_wmi_probe(struct platform_device *pdev) return ret; } @@ -243,7 +214,7 @@ index 293ecd228a5a..acd0ec1d9aae 100644 return asus_wmi_add(pdev); } -@@ -5065,6 +5074,7 @@ EXPORT_SYMBOL_GPL(asus_wmi_register_driver); +@@ -5043,6 +5052,7 @@ EXPORT_SYMBOL_GPL(asus_wmi_register_driver); void asus_wmi_unregister_driver(struct asus_wmi_driver *driver) { @@ -255,10 +226,10 @@ index 293ecd228a5a..acd0ec1d9aae 100644 2.47.1 -From a1141dd063ffac579de9dce1e33695dc1be6fc57 Mon Sep 17 00:00:00 2001 +From 88042da6e79ac54e52c84f3b4e0239fdfa25335d Mon Sep 17 00:00:00 2001 From: "Luke D. Jones" Date: Sun, 22 Sep 2024 21:40:46 +1200 -Subject: [PATCH 04/28] platform/x86: asus-wmi: export symbols used for +Subject: [PATCH 04/29] platform/x86: asus-wmi: export symbols used for read/write WMI Export some rather helpful read/write WMI symbols using a namespace. @@ -274,7 +245,7 @@ Reviewed-by: Mario Limonciello 2 files changed, 51 insertions(+), 3 deletions(-) diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c -index acd0ec1d9aae..6da2c7715a9f 100644 +index eed807dfcb6c..93bbc2421366 100644 --- a/drivers/platform/x86/asus-wmi.c +++ b/drivers/platform/x86/asus-wmi.c @@ -388,7 +388,7 @@ int asus_wmi_evaluate_method(u32 method_id, u32 arg0, u32 arg1, u32 *retval) @@ -282,7 +253,7 @@ index acd0ec1d9aae..6da2c7715a9f 100644 return asus_wmi_evaluate_method3(method_id, arg0, arg1, 0, retval); } -EXPORT_SYMBOL_GPL(asus_wmi_evaluate_method); -+EXPORT_SYMBOL_NS_GPL(asus_wmi_evaluate_method, ASUS_WMI); ++EXPORT_SYMBOL_NS_GPL(asus_wmi_evaluate_method, "ASUS_WMI"); static int asus_wmi_evaluate_method5(u32 method_id, u32 arg0, u32 arg1, u32 arg2, u32 arg3, u32 arg4, u32 *retval) @@ -314,7 +285,7 @@ index acd0ec1d9aae..6da2c7715a9f 100644 + + return 0; +} -+EXPORT_SYMBOL_NS_GPL(asus_wmi_get_devstate_dsts, ASUS_WMI); ++EXPORT_SYMBOL_NS_GPL(asus_wmi_get_devstate_dsts, "ASUS_WMI"); + +/** + * asus_wmi_set_devstate() - Set the WMI function state. @@ -335,7 +306,7 @@ index acd0ec1d9aae..6da2c7715a9f 100644 return asus_wmi_evaluate_method(ASUS_WMI_METHODID_DEVS, dev_id, ctrl_param, retval); } -+EXPORT_SYMBOL_NS_GPL(asus_wmi_set_devstate, ASUS_WMI); ++EXPORT_SYMBOL_NS_GPL(asus_wmi_set_devstate, "ASUS_WMI"); /* Helper for special devices with magic return codes */ static int asus_wmi_get_devstate_bits(struct asus_wmi *asus, @@ -366,10 +337,10 @@ index 365e119bebaa..6ea4dedfb85e 100644 2.47.1 -From 7f65084989651f074bb3ff6ad440fd651d4a47bf Mon Sep 17 00:00:00 2001 +From 88a3a655ded776243761ebf0912a9a83bfa7fe52 Mon Sep 17 00:00:00 2001 From: "Luke D. Jones" Date: Sat, 21 Sep 2024 16:04:58 +1200 -Subject: [PATCH 05/28] hid-asus: Add MODULE_IMPORT_NS(ASUS_WMI) +Subject: [PATCH 05/29] hid-asus: Add MODULE_IMPORT_NS(ASUS_WMI) A small change to asus_wmi_evaluate_method() was introduced during asus-armoury driver development to put the exports behind a namespace. @@ -383,23 +354,23 @@ Acked-by: Jiri Kosina 1 file changed, 1 insertion(+) diff --git a/drivers/hid/hid-asus.c b/drivers/hid/hid-asus.c -index a4b47319ad8e..9540e3e19cce 100644 +index 506c6f377e7d..e6030e013939 100644 --- a/drivers/hid/hid-asus.c +++ b/drivers/hid/hid-asus.c @@ -1301,4 +1301,5 @@ static struct hid_driver asus_driver = { }; module_hid_driver(asus_driver); -+MODULE_IMPORT_NS(ASUS_WMI); ++MODULE_IMPORT_NS("ASUS_WMI"); MODULE_LICENSE("GPL"); -- 2.47.1 -From 755e9eca472fb56ae53c2df8bde024e21ddc991c Mon Sep 17 00:00:00 2001 +From ffa88b3d61d2ecf4760cf613cf0c736090d8010c Mon Sep 17 00:00:00 2001 From: "Luke D. Jones" Date: Sun, 22 Sep 2024 21:39:43 +1200 -Subject: [PATCH 06/28] platform/x86: asus-armoury: move existing tunings to +Subject: [PATCH 06/29] platform/x86: asus-armoury: move existing tunings to asus-armoury module MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -443,10 +414,10 @@ Signed-off-by: Luke D. Jones create mode 100644 drivers/platform/x86/asus-armoury.h diff --git a/drivers/platform/x86/Kconfig b/drivers/platform/x86/Kconfig -index 3875abba5a79..80ec8b45022d 100644 +index 0258dd879d64..294364cc7478 100644 --- a/drivers/platform/x86/Kconfig +++ b/drivers/platform/x86/Kconfig -@@ -265,6 +265,18 @@ config ASUS_WIRELESS +@@ -267,6 +267,18 @@ config ASUS_WIRELESS If you choose to compile this driver as a module the module will be called asus-wireless. @@ -479,7 +450,7 @@ index e1b142947067..fe3e7e7dede8 100644 obj-$(CONFIG_ASUS_TF103C_DOCK) += asus-tf103c-dock.o diff --git a/drivers/platform/x86/asus-armoury.c b/drivers/platform/x86/asus-armoury.c new file mode 100644 -index 000000000000..0dd0af6c97e4 +index 000000000000..e6b64418f77b --- /dev/null +++ b/drivers/platform/x86/asus-armoury.c @@ -0,0 +1,573 @@ @@ -1051,7 +1022,7 @@ index 000000000000..0dd0af6c97e4 +module_init(asus_fw_init); +module_exit(asus_fw_exit); + -+MODULE_IMPORT_NS(ASUS_WMI); ++MODULE_IMPORT_NS("ASUS_WMI"); +MODULE_AUTHOR("Luke Jones "); +MODULE_DESCRIPTION("ASUS BIOS Configuration Driver"); +MODULE_LICENSE("GPL"); @@ -1210,7 +1181,7 @@ index 000000000000..b00d829c9da0 + +#endif /* _ASUS_BIOSCFG_H_ */ diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c -index 6da2c7715a9f..525629097b9f 100644 +index 93bbc2421366..ff8f0f47696c 100644 --- a/drivers/platform/x86/asus-wmi.c +++ b/drivers/platform/x86/asus-wmi.c @@ -55,8 +55,6 @@ module_param(fnlock_default, bool, 0444); @@ -1249,10 +1220,10 @@ index 6ea4dedfb85e..21313e1eb6c9 100644 2.47.1 -From 7d28e4b7e77a31accd21c9886cea99af28dd4038 Mon Sep 17 00:00:00 2001 +From a987017d8c7e5445f521ea683f1686bf80ce5f26 Mon Sep 17 00:00:00 2001 From: "Luke D. Jones" Date: Thu, 19 Sep 2024 17:23:35 +1200 -Subject: [PATCH 07/28] platform/x86: asus-armoury: add panel_hd_mode attribute +Subject: [PATCH 07/29] platform/x86: asus-armoury: add panel_hd_mode attribute Add panel_hd_mode to toggle the panel mode between single and high definition modes. @@ -1265,7 +1236,7 @@ Reviewed-by: Mario Limonciello 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/platform/x86/asus-armoury.c b/drivers/platform/x86/asus-armoury.c -index 0dd0af6c97e4..e6bfb98420dd 100644 +index e6b64418f77b..b8b9440e0c31 100644 --- a/drivers/platform/x86/asus-armoury.c +++ b/drivers/platform/x86/asus-armoury.c @@ -107,7 +107,8 @@ static struct kobj_attribute pending_reboot = __ATTR_RO(pending_reboot); @@ -1311,10 +1282,10 @@ index 21313e1eb6c9..a6064995c2cc 100644 2.47.1 -From 9065f2a2b500e211cd0893304b44d2a238e1b971 Mon Sep 17 00:00:00 2001 +From abd20481883aba301d432eb3f9431c61aefec535 Mon Sep 17 00:00:00 2001 From: "Luke D. Jones" Date: Thu, 19 Sep 2024 17:19:37 +1200 -Subject: [PATCH 08/28] platform/x86: asus-armoury: add the ppt_* and nv_* +Subject: [PATCH 08/29] platform/x86: asus-armoury: add the ppt_* and nv_* tuning knobs Adds the ppt_* and nv_* tuning knobs that are available via WMI methods @@ -1323,12 +1294,12 @@ and adds proper min/max levels plus defaults. Signed-off-by: Luke D. Jones Reviewed-by: Mario Limonciello --- - drivers/platform/x86/asus-armoury.c | 135 ++++++++++++++++++++++++++++ + drivers/platform/x86/asus-armoury.c | 134 ++++++++++++++++++++++++++++ drivers/platform/x86/asus-armoury.h | 65 ++++++++++++++ - 2 files changed, 200 insertions(+) + 2 files changed, 199 insertions(+) diff --git a/drivers/platform/x86/asus-armoury.c b/drivers/platform/x86/asus-armoury.c -index e6bfb98420dd..18b911040e57 100644 +index b8b9440e0c31..9e9c57cc742f 100644 --- a/drivers/platform/x86/asus-armoury.c +++ b/drivers/platform/x86/asus-armoury.c @@ -52,12 +52,40 @@ @@ -1347,9 +1318,9 @@ index e6bfb98420dd..18b911040e57 100644 + + u32 ppt_pl1_spl; // cpu + u32 ppt_pl2_sppt; // cpu ++ u32 ppt_pl3_fppt; // cpu + u32 ppt_apu_sppt; // plat + u32 ppt_platform_sppt; // plat -+ u32 ppt_fppt; // cpu + + u32 nv_boost_default; + u32 nv_boost_min; @@ -1380,14 +1351,14 @@ index e6bfb98420dd..18b911040e57 100644 + cpu_min, cpu_max, 1, "Set the CPU slow package limit"); +ATTR_GROUP_ROG_TUNABLE(ppt_pl2_sppt, "ppt_pl2_sppt", ASUS_WMI_DEVID_PPT_PL2_SPPT, cpu_default, + cpu_min, cpu_max, 1, "Set the CPU fast package limit"); ++ATTR_GROUP_ROG_TUNABLE(ppt_pl3_fppt, "ppt_pl3_fppt", ASUS_WMI_DEVID_PPT_FPPT, cpu_default, cpu_min, ++ cpu_max, 1, "Set the CPU slow package limit"); +ATTR_GROUP_ROG_TUNABLE(ppt_apu_sppt, "ppt_apu_sppt", ASUS_WMI_DEVID_PPT_APU_SPPT, + platform_default, platform_min, platform_max, 1, + "Set the CPU slow package limit"); +ATTR_GROUP_ROG_TUNABLE(ppt_platform_sppt, "ppt_platform_sppt", ASUS_WMI_DEVID_PPT_PLAT_SPPT, + platform_default, platform_min, platform_max, 1, + "Set the CPU slow package limit"); -+ATTR_GROUP_ROG_TUNABLE(ppt_fppt, "ppt_fppt", ASUS_WMI_DEVID_PPT_FPPT, cpu_default, cpu_min, -+ cpu_max, 1, "Set the CPU slow package limit"); +ATTR_GROUP_ROG_TUNABLE(nv_dynamic_boost, "nv_dynamic_boost", ASUS_WMI_DEVID_NV_DYN_BOOST, + nv_boost_default, nv_boost_min, nv_boost_max, 1, + "Set the Nvidia dynamic boost limit"); @@ -1404,16 +1375,16 @@ index e6bfb98420dd..18b911040e57 100644 + { &ppt_pl1_spl_attr_group, ASUS_WMI_DEVID_PPT_PL1_SPL }, + { &ppt_pl2_sppt_attr_group, ASUS_WMI_DEVID_PPT_PL2_SPPT }, ++ { &ppt_pl3_fppt_attr_group, ASUS_WMI_DEVID_PPT_FPPT }, + { &ppt_apu_sppt_attr_group, ASUS_WMI_DEVID_PPT_APU_SPPT }, + { &ppt_platform_sppt_attr_group, ASUS_WMI_DEVID_PPT_PLAT_SPPT }, -+ { &ppt_fppt_attr_group, ASUS_WMI_DEVID_PPT_FPPT }, + { &nv_dynamic_boost_attr_group, ASUS_WMI_DEVID_NV_DYN_BOOST }, + { &nv_temp_target_attr_group, ASUS_WMI_DEVID_NV_THERM_TARGET }, + { &charge_mode_attr_group, ASUS_WMI_DEVID_CHARGE_MODE }, { &boot_sound_attr_group, ASUS_WMI_DEVID_BOOT_SOUND }, { &mcu_powersave_attr_group, ASUS_WMI_DEVID_MCU_POWERSAVE }, -@@ -532,6 +587,80 @@ static int asus_fw_attr_add(void) +@@ -532,6 +587,79 @@ static int asus_fw_attr_add(void) /* Init / exit ****************************************************************/ @@ -1475,10 +1446,9 @@ index e6bfb98420dd..18b911040e57 100644 + + rog->ppt_pl1_spl = cpu_default; + rog->ppt_pl2_sppt = cpu_default; ++ rog->ppt_pl3_fppt = cpu_default; + rog->ppt_apu_sppt = cpu_default; -+ + rog->ppt_platform_sppt = platform_default; -+ rog->ppt_fppt = cpu_default; + + rog->nv_boost_default = NVIDIA_BOOST_MAX; + rog->nv_boost_min = NVIDIA_BOOST_MIN; @@ -1494,7 +1464,7 @@ index e6bfb98420dd..18b911040e57 100644 static int __init asus_fw_init(void) { char *wmi_uid; -@@ -548,6 +677,12 @@ static int __init asus_fw_init(void) +@@ -548,6 +676,12 @@ static int __init asus_fw_init(void) if (!strcmp(wmi_uid, ASUS_ACPI_UID_ASUSWMI)) return -ENODEV; @@ -1592,10 +1562,10 @@ index b00d829c9da0..91ec6f4cb149 100644 2.47.1 -From 885251ddad44ce0fa49de6b8e6796009df60421f Mon Sep 17 00:00:00 2001 +From 961fd02b999977441e0f621b335a42048665949f Mon Sep 17 00:00:00 2001 From: "Luke D. Jones" Date: Sun, 2 Jun 2024 14:32:15 +1200 -Subject: [PATCH 09/28] platform/x86: asus-armoury: add dgpu tgp control +Subject: [PATCH 09/29] platform/x86: asus-armoury: add dgpu tgp control Implement the dgpu TGP control under the asus-armoury module using the fw_attributes class. @@ -1609,7 +1579,7 @@ Signed-off-by: Luke D. Jones 3 files changed, 42 insertions(+) diff --git a/drivers/platform/x86/asus-armoury.c b/drivers/platform/x86/asus-armoury.c -index 18b911040e57..10ab258855c4 100644 +index 9e9c57cc742f..5d7e4643813e 100644 --- a/drivers/platform/x86/asus-armoury.c +++ b/drivers/platform/x86/asus-armoury.c @@ -45,6 +45,9 @@ @@ -1648,7 +1618,7 @@ index 18b911040e57..10ab258855c4 100644 ATTR_GROUP_ENUM_INT_RO(charge_mode, "charge_mode", ASUS_WMI_DEVID_CHARGE_MODE, "0;1;2", "Show the current mode of charging"); @@ -485,6 +499,8 @@ static const struct asus_attr_group armoury_attr_groups[] = { - { &ppt_fppt_attr_group, ASUS_WMI_DEVID_PPT_FPPT }, + { &ppt_platform_sppt_attr_group, ASUS_WMI_DEVID_PPT_PLAT_SPPT }, { &nv_dynamic_boost_attr_group, ASUS_WMI_DEVID_NV_DYN_BOOST }, { &nv_temp_target_attr_group, ASUS_WMI_DEVID_NV_THERM_TARGET }, + { &dgpu_base_tgp_attr_group, ASUS_WMI_DEVID_DGPU_BASE_TGP }, @@ -1656,7 +1626,7 @@ index 18b911040e57..10ab258855c4 100644 { &charge_mode_attr_group, ASUS_WMI_DEVID_CHARGE_MODE }, { &boot_sound_attr_group, ASUS_WMI_DEVID_BOOT_SOUND }, -@@ -659,6 +675,11 @@ static void init_rog_tunables(struct rog_tunables *rog) +@@ -658,6 +674,11 @@ static void init_rog_tunables(struct rog_tunables *rog) rog->nv_temp_min = NVIDIA_TEMP_MIN; rog->nv_temp_max = NVIDIA_TEMP_MAX; rog->nv_temp_target = NVIDIA_TEMP_MIN; @@ -1722,10 +1692,10 @@ index a6064995c2cc..8c755799eb60 100644 2.47.1 -From ccea3439731ded372f9b71c3542d5eebc878ce2b Mon Sep 17 00:00:00 2001 +From 6e39a84d8a15975a08a4d91cc0561079c7b86c3d Mon Sep 17 00:00:00 2001 From: "Luke D. Jones" Date: Sun, 2 Jun 2024 14:44:31 +1200 -Subject: [PATCH 10/28] platform/x86: asus-armoury: add apu-mem control support +Subject: [PATCH 10/29] platform/x86: asus-armoury: add apu-mem control support Implement the APU memory size control under the asus-armoury module using the fw_attributes class. @@ -1741,7 +1711,7 @@ Reviewed-by: Mario Limonciello 2 files changed, 115 insertions(+) diff --git a/drivers/platform/x86/asus-armoury.c b/drivers/platform/x86/asus-armoury.c -index 10ab258855c4..271dadc4c75d 100644 +index 5d7e4643813e..386f4236f5f8 100644 --- a/drivers/platform/x86/asus-armoury.c +++ b/drivers/platform/x86/asus-armoury.c @@ -446,6 +446,119 @@ static ssize_t egpu_enable_current_value_store(struct kobject *kobj, struct kobj @@ -1888,10 +1858,10 @@ index 8c755799eb60..88bf250dc8ca 100644 2.47.1 -From 1508da1b03bedecbe0a991bece7c1797b14fe055 Mon Sep 17 00:00:00 2001 +From fd1f1c947e97fe066986d82aea4986990764ccc8 Mon Sep 17 00:00:00 2001 From: "Luke D. Jones" Date: Wed, 18 Sep 2024 21:19:12 +1200 -Subject: [PATCH 11/28] platform/x86: asus-armoury: add core count control +Subject: [PATCH 11/29] platform/x86: asus-armoury: add core count control Implement Intel core enablement under the asus-armoury module using the fw_attributes class. @@ -1908,7 +1878,7 @@ Reviewed-by: Mario Limonciello 3 files changed, 258 insertions(+) diff --git a/drivers/platform/x86/asus-armoury.c b/drivers/platform/x86/asus-armoury.c -index 271dadc4c75d..69e79446c411 100644 +index 386f4236f5f8..f09811d76b45 100644 --- a/drivers/platform/x86/asus-armoury.c +++ b/drivers/platform/x86/asus-armoury.c @@ -40,6 +40,24 @@ @@ -2164,7 +2134,7 @@ index 271dadc4c75d..69e79446c411 100644 { &charge_mode_attr_group, ASUS_WMI_DEVID_CHARGE_MODE }, { &boot_sound_attr_group, ASUS_WMI_DEVID_BOOT_SOUND }, -@@ -817,6 +1035,14 @@ static int __init asus_fw_init(void) +@@ -816,6 +1034,14 @@ static int __init asus_fw_init(void) return -ENOMEM; init_rog_tunables(asus_armoury.rog_tunables); @@ -2237,10 +2207,10 @@ index 88bf250dc8ca..cc21e4272460 100644 2.47.1 -From ed252adfb6011ca67f98bd47bb8842a7f2be2ee0 Mon Sep 17 00:00:00 2001 +From 95ee3427398d33b92d44e36c7986e4155fa93095 Mon Sep 17 00:00:00 2001 From: "Luke D. Jones" Date: Mon, 3 Jun 2024 12:04:41 +1200 -Subject: [PATCH 12/28] platform/x86: asus-wmi: deprecate bios features +Subject: [PATCH 12/29] platform/x86: asus-wmi: deprecate bios features With the existence of the asus-armoury module the attributes no-longer need to live under the /sys/devices/platform/asus-nb-wmi/ path. @@ -2397,10 +2367,10 @@ index 28144371a0f1..765d50b0d9df 100644 * 0 - False, * 1 - True diff --git a/drivers/platform/x86/Kconfig b/drivers/platform/x86/Kconfig -index 80ec8b45022d..d0fc68d93f48 100644 +index 294364cc7478..b160173a530e 100644 --- a/drivers/platform/x86/Kconfig +++ b/drivers/platform/x86/Kconfig -@@ -299,6 +299,15 @@ config ASUS_WMI +@@ -301,6 +301,15 @@ config ASUS_WMI To compile this driver as a module, choose M here: the module will be called asus-wmi. @@ -2417,7 +2387,7 @@ index 80ec8b45022d..d0fc68d93f48 100644 tristate "Asus Notebook WMI Driver" depends on ASUS_WMI diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c -index 525629097b9f..d4981e08f44f 100644 +index ff8f0f47696c..6bd89cd0acdf 100644 --- a/drivers/platform/x86/asus-wmi.c +++ b/drivers/platform/x86/asus-wmi.c @@ -286,11 +286,12 @@ struct asus_wmi { @@ -2737,15 +2707,15 @@ index 525629097b9f..d4981e08f44f 100644 /* Quirks *********************************************************************/ -@@ -3807,6 +3870,7 @@ static int throttle_thermal_policy_switch_next(struct asus_wmi *asus) - return 0; +@@ -3785,6 +3848,7 @@ static int throttle_thermal_policy_set_default(struct asus_wmi *asus) + return throttle_thermal_policy_write(asus); } +#if IS_ENABLED(CONFIG_ASUS_WMI_DEPRECATED_ATTRS) static ssize_t throttle_thermal_policy_show(struct device *dev, struct device_attribute *attr, char *buf) { -@@ -3850,6 +3914,7 @@ static ssize_t throttle_thermal_policy_store(struct device *dev, +@@ -3828,6 +3892,7 @@ static ssize_t throttle_thermal_policy_store(struct device *dev, * Throttle thermal policy: 0 - default, 1 - overboost, 2 - silent */ static DEVICE_ATTR_RW(throttle_thermal_policy); @@ -2753,7 +2723,7 @@ index 525629097b9f..d4981e08f44f 100644 /* Platform profile ***********************************************************/ static int asus_wmi_platform_profile_get(struct platform_profile_handler *pprof, -@@ -4447,27 +4512,29 @@ static struct attribute *platform_attributes[] = { +@@ -4425,27 +4490,29 @@ static struct attribute *platform_attributes[] = { &dev_attr_camera.attr, &dev_attr_cardr.attr, &dev_attr_touchpad.attr, @@ -2801,7 +2771,7 @@ index 525629097b9f..d4981e08f44f 100644 NULL }; -@@ -4489,7 +4556,11 @@ static umode_t asus_sysfs_is_visible(struct kobject *kobj, +@@ -4467,7 +4534,11 @@ static umode_t asus_sysfs_is_visible(struct kobject *kobj, devid = ASUS_WMI_DEVID_LID_RESUME; else if (attr == &dev_attr_als_enable.attr) devid = ASUS_WMI_DEVID_ALS_ENABLE; @@ -2814,7 +2784,7 @@ index 525629097b9f..d4981e08f44f 100644 devid = ASUS_WMI_DEVID_CHARGE_MODE; else if (attr == &dev_attr_egpu_enable.attr) ok = asus->egpu_enable_available; -@@ -4527,6 +4598,7 @@ static umode_t asus_sysfs_is_visible(struct kobject *kobj, +@@ -4505,6 +4576,7 @@ static umode_t asus_sysfs_is_visible(struct kobject *kobj, ok = asus->mini_led_dev_id != 0; else if (attr == &dev_attr_available_mini_led_mode.attr) ok = asus->mini_led_dev_id != 0; @@ -2822,7 +2792,7 @@ index 525629097b9f..d4981e08f44f 100644 if (devid != -1) { ok = !(asus_wmi_get_devstate_simple(asus, devid) < 0); -@@ -4778,6 +4850,7 @@ static int asus_wmi_add(struct platform_device *pdev) +@@ -4756,6 +4828,7 @@ static int asus_wmi_add(struct platform_device *pdev) } /* ensure defaults for tunables */ @@ -2830,7 +2800,7 @@ index 525629097b9f..d4981e08f44f 100644 asus->ppt_pl2_sppt = 5; asus->ppt_pl1_spl = 5; asus->ppt_apu_sppt = 5; -@@ -4799,17 +4872,18 @@ static int asus_wmi_add(struct platform_device *pdev) +@@ -4777,17 +4850,18 @@ static int asus_wmi_add(struct platform_device *pdev) asus->gpu_mux_dev = ASUS_WMI_DEVID_GPU_MUX; else if (asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_GPU_MUX_VIVO)) asus->gpu_mux_dev = ASUS_WMI_DEVID_GPU_MUX_VIVO; @@ -2858,40 +2828,10 @@ index 525629097b9f..d4981e08f44f 100644 2.47.1 -From c353db0dd524535c9e123529c90e99ed3d25fb49 Mon Sep 17 00:00:00 2001 -From: "Luke D. Jones" -Date: Thu, 10 Oct 2024 09:52:45 +1300 -Subject: [PATCH 13/28] ALSA: hda/realtek: fixup ASUS GA605W - -The GA605W laptop has almost the exact same codec setup as the GA403 -and so the same quirks apply to it. - -Signed-off-by: Luke D. Jones ---- - sound/pci/hda/patch_realtek.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c -index 192fc75b51e6..d88fc0ca893d 100644 ---- a/sound/pci/hda/patch_realtek.c -+++ b/sound/pci/hda/patch_realtek.c -@@ -10604,6 +10604,8 @@ static const struct hda_quirk alc269_fixup_tbl[] = { - SND_PCI_QUIRK(0x1043, 0x1e1f, "ASUS Vivobook 15 X1504VAP", ALC2XX_FIXUP_HEADSET_MIC), - SND_PCI_QUIRK(0x1043, 0x1e51, "ASUS Zephyrus M15", ALC294_FIXUP_ASUS_GU502_PINS), - SND_PCI_QUIRK(0x1043, 0x1e5e, "ASUS ROG Strix G513", ALC294_FIXUP_ASUS_G513_PINS), -+ SND_PCI_QUIRK(0x1043, 0x1e63, "ASUS H7606W", ALC285_FIXUP_ASUS_GA403U_HEADSET_MIC), -+ SND_PCI_QUIRK(0x1043, 0x1e83, "ASUS GA605W", ALC285_FIXUP_ASUS_GA403U_HEADSET_MIC), - SND_PCI_QUIRK(0x1043, 0x1e8e, "ASUS Zephyrus G15", ALC289_FIXUP_ASUS_GA401), - SND_PCI_QUIRK(0x1043, 0x1eb3, "ASUS Ally RCLA72", ALC287_FIXUP_TAS2781_I2C), - SND_PCI_QUIRK(0x1043, 0x1ed3, "ASUS HN7306W", ALC287_FIXUP_CS35L41_I2C_2), --- -2.47.1 - - -From e44288e88b8fa2f4f2e33522e0b2666b467b31aa Mon Sep 17 00:00:00 2001 +From ab778daeb11f674e02e49ddb867610da892449e0 Mon Sep 17 00:00:00 2001 From: "Luke D. Jones" Date: Mon, 26 Aug 2024 12:49:35 +1200 -Subject: [PATCH 14/28] hid-asus-ally: Add joystick LED ring support +Subject: [PATCH 13/29] hid-asus-ally: Add joystick LED ring support Adds basic support for the joystick RGB LED rings as a multicolour LED device with 4 LEDs. @@ -2908,7 +2848,7 @@ Signed-off-by: Luke D. Jones create mode 100644 drivers/hid/hid-asus-ally.h diff --git a/drivers/hid/Kconfig b/drivers/hid/Kconfig -index f8a56d631242..d477df3a3f35 100644 +index 4d2a89d65b65..89357822c27b 100644 --- a/drivers/hid/Kconfig +++ b/drivers/hid/Kconfig @@ -164,6 +164,15 @@ config HID_ASUS @@ -2928,7 +2868,7 @@ index f8a56d631242..d477df3a3f35 100644 tristate "Aureal" help diff --git a/drivers/hid/Makefile b/drivers/hid/Makefile -index 496dab54c73a..5fa65e1e1e3b 100644 +index 24de45f3677d..f338c9eb4600 100644 --- a/drivers/hid/Makefile +++ b/drivers/hid/Makefile @@ -31,6 +31,7 @@ obj-$(CONFIG_HID_APPLE) += hid-apple.o @@ -3615,7 +3555,7 @@ index 000000000000..eb8617c80c2a + xpad_cmd_len_adz = 0x02, +}; diff --git a/drivers/hid/hid-asus.c b/drivers/hid/hid-asus.c -index 9540e3e19cce..7c5269cd4d76 100644 +index e6030e013939..ef18f721e2ff 100644 --- a/drivers/hid/hid-asus.c +++ b/drivers/hid/hid-asus.c @@ -52,6 +52,10 @@ MODULE_DESCRIPTION("Asus HID Keyboard and TouchPad"); @@ -3672,10 +3612,10 @@ index 9540e3e19cce..7c5269cd4d76 100644 2.47.1 -From caab298317491b6b6b8a7a9000116e114cd860b6 Mon Sep 17 00:00:00 2001 +From c1fa1ae4de0cc611b264f3452fd24fe3cca0a2b8 Mon Sep 17 00:00:00 2001 From: "Luke D. Jones" Date: Wed, 2 Oct 2024 23:32:46 +1300 -Subject: [PATCH 15/28] hid-asus-ally: initial Ally-X gamepad +Subject: [PATCH 14/29] hid-asus-ally: initial Ally-X gamepad Signed-off-by: Luke D. Jones --- @@ -4159,10 +4099,10 @@ index eb8617c80c2a..458d02996bca 100644 2.47.1 -From 13ccb06fd0af8663cc3d54699fd1caccb983a5a0 Mon Sep 17 00:00:00 2001 +From 9ba17e350f65373bd366c8465bb8f26d98d4a405 Mon Sep 17 00:00:00 2001 From: "Luke D. Jones" Date: Wed, 2 Oct 2024 23:51:36 +1300 -Subject: [PATCH 16/28] hid-asus-ally: initial gamepad configuration +Subject: [PATCH 15/29] hid-asus-ally: initial gamepad configuration Signed-off-by: Luke D. Jones --- @@ -4571,10 +4511,10 @@ index 458d02996bca..2b298ad4da0e 100644 2.47.1 -From e55ed327e70cd92738bf5b63efd92bb88f82c7bc Mon Sep 17 00:00:00 2001 +From 84b34f27d809c52e7d220f30d4cc20fe0b64a332 Mon Sep 17 00:00:00 2001 From: "Luke D. Jones" Date: Sat, 5 Oct 2024 14:58:33 +1300 -Subject: [PATCH 17/28] hid-asus-ally: add button remap attributes +Subject: [PATCH 16/29] hid-asus-ally: add button remap attributes Signed-off-by: Luke D. Jones --- @@ -5283,10 +5223,10 @@ index 2b298ad4da0e..f985cbd698c3 100644 2.47.1 -From 3a019f986fbec2ab488303f992fbe40389d26524 Mon Sep 17 00:00:00 2001 +From 2f3abc431a0d61a3b391f050929a8bd2ff22fbf3 Mon Sep 17 00:00:00 2001 From: "Luke D. Jones" Date: Fri, 25 Oct 2024 08:56:54 +0200 -Subject: [PATCH 18/28] hid-asus-ally: add gamepad mode selection +Subject: [PATCH 17/29] hid-asus-ally: add gamepad mode selection --- drivers/hid/hid-asus-ally.c | 73 +++++++++++++++++++++++++++++++++++++ @@ -5404,10 +5344,10 @@ index f985cbd698c3..f7e21be50d8e 100644 2.47.1 -From fe383c22dd2899f08b03f8040af07d2163647c39 Mon Sep 17 00:00:00 2001 +From 061aa0f79b14ea7ac01a0703132f2717506297d8 Mon Sep 17 00:00:00 2001 From: "Luke D. Jones" Date: Sat, 5 Oct 2024 15:40:09 +1300 -Subject: [PATCH 19/28] hid-asus-ally: Turbo settings for buttons +Subject: [PATCH 18/29] hid-asus-ally: Turbo settings for buttons Signed-off-by: Luke D. Jones --- @@ -5604,10 +5544,10 @@ index f7e21be50d8e..63a3b5caa71c 100644 2.47.1 -From 5dd0a575d36ce31154d93e76193b91cda0888137 Mon Sep 17 00:00:00 2001 +From 34494abc5037b770f9f7c4cf2d3c7ff3d972b5a2 Mon Sep 17 00:00:00 2001 From: "Luke D. Jones" Date: Sat, 5 Oct 2024 20:46:00 +1300 -Subject: [PATCH 20/28] hid-asus-ally: add vibration intensity settings +Subject: [PATCH 19/29] hid-asus-ally: add vibration intensity settings Signed-off-by: Luke D. Jones --- @@ -5775,10 +5715,10 @@ index 63a3b5caa71c..6ac79ad3c5f2 100644 2.47.1 -From b060d13d6fdd1f7bf488d72fa705517fc0fd1545 Mon Sep 17 00:00:00 2001 +From f925a380b924029b0009db07a05a1ded5d21afdf Mon Sep 17 00:00:00 2001 From: "Luke D. Jones" Date: Sat, 5 Oct 2024 21:32:41 +1300 -Subject: [PATCH 21/28] hid-asus-ally: add JS deadzones +Subject: [PATCH 20/29] hid-asus-ally: add JS deadzones Signed-off-by: Luke D. Jones --- @@ -5984,10 +5924,10 @@ index 6ac79ad3c5f2..3dc14a5226f3 100644 2.47.1 -From 0e1e99bd457064942e9023bb823b56a14892be0f Mon Sep 17 00:00:00 2001 +From 9cf3fa400f89e0f0845907544cde3c4abe11b0d3 Mon Sep 17 00:00:00 2001 From: "Luke D. Jones" Date: Sat, 5 Oct 2024 21:37:27 +1300 -Subject: [PATCH 22/28] hid-asus-ally: add trigger deadzones +Subject: [PATCH 21/29] hid-asus-ally: add trigger deadzones Signed-off-by: Luke D. Jones --- @@ -6101,10 +6041,10 @@ index 3dc14a5226f3..32ed5caa3759 100644 2.47.1 -From e60cb0bb587e7b6c549353000a2fd0eff019aaef Mon Sep 17 00:00:00 2001 +From 33d060c292e0be3c1f73c983494c33e252ae6496 Mon Sep 17 00:00:00 2001 From: "Luke D. Jones" Date: Sun, 6 Oct 2024 19:49:24 +1300 -Subject: [PATCH 23/28] hid-asus-ally: add anti-deadzones +Subject: [PATCH 22/29] hid-asus-ally: add anti-deadzones Signed-off-by: Luke D. Jones --- @@ -6286,10 +6226,10 @@ index 32ed5caa3759..69f59592dd50 100644 2.47.1 -From f3d319113cf5e4b203476d329b6a1d30a555752f Mon Sep 17 00:00:00 2001 +From 67683991b856661858d72befcf50e1af469d34f3 Mon Sep 17 00:00:00 2001 From: "Luke D. Jones" Date: Sun, 6 Oct 2024 21:22:40 +1300 -Subject: [PATCH 24/28] hid-asus-ally: add JS response curves +Subject: [PATCH 23/29] hid-asus-ally: add JS response curves Signed-off-by: Luke D. Jones --- @@ -6526,10 +6466,10 @@ index 69f59592dd50..c83817589082 100644 2.47.1 -From e63cb120c18461beca50d4890fd92141a7b6f001 Mon Sep 17 00:00:00 2001 +From b492b11b9d1a233423d8b38b0f49712d7f8ca00a Mon Sep 17 00:00:00 2001 From: "Luke D. Jones" Date: Thu, 10 Oct 2024 11:15:36 +1300 -Subject: [PATCH 25/28] hid-asus-ally: add calibrations (wip) +Subject: [PATCH 24/29] hid-asus-ally: add calibrations (wip) Signed-off-by: Luke D. Jones --- @@ -6674,10 +6614,10 @@ index 9f9a7516b774..5a8458e232d3 100644 2.47.1 -From a112e37e12870d8ca40da77d24e4e4de056e9d11 Mon Sep 17 00:00:00 2001 +From be811003d716d94cc0465313677ed275d18911d7 Mon Sep 17 00:00:00 2001 From: "Luke D. Jones" Date: Wed, 6 Nov 2024 00:27:03 +0300 -Subject: [PATCH 26/28] debug by default +Subject: [PATCH 25/29] debug by default --- drivers/hid/hid-asus-ally.c | 2 ++ @@ -6698,7 +6638,7 @@ index 5a8458e232d3..d59316001f50 100644 #define FEATURE_REPORT_ID 0x0d #define FEATURE_ROG_ALLY_REPORT_ID 0x5a diff --git a/drivers/platform/x86/asus-armoury.c b/drivers/platform/x86/asus-armoury.c -index 69e79446c411..fb4ae804521d 100644 +index f09811d76b45..4dac91d02278 100644 --- a/drivers/platform/x86/asus-armoury.c +++ b/drivers/platform/x86/asus-armoury.c @@ -27,6 +27,8 @@ @@ -6713,125 +6653,3 @@ index 69e79446c411..fb4ae804521d 100644 -- 2.47.1 - -From de3341e021d14f75ae701dc6463036ef84e37024 Mon Sep 17 00:00:00 2001 -From: "Luke D. Jones" -Date: Tue, 17 Dec 2024 09:31:08 +1300 -Subject: [PATCH 27/28] Tmp: add GA605W & H7606W to AMD-PMF quirks. - -This will not be submitted upstream as the entire -quirk system is being removed in 6.14 kernel. - -Signed-off-by: Luke D. Jones ---- - drivers/platform/x86/amd/pmf/pmf-quirks.c | 16 ++++++++++++++++ - 1 file changed, 16 insertions(+) - -diff --git a/drivers/platform/x86/amd/pmf/pmf-quirks.c b/drivers/platform/x86/amd/pmf/pmf-quirks.c -index 7cde5733b9ca..02b9d0b49092 100644 ---- a/drivers/platform/x86/amd/pmf/pmf-quirks.c -+++ b/drivers/platform/x86/amd/pmf/pmf-quirks.c -@@ -29,6 +29,22 @@ static const struct dmi_system_id fwbug_list[] = { - }, - .driver_data = &quirk_no_sps_bug, - }, -+ { -+ .ident = "ROG Zephyrus G16", -+ .matches = { -+ DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."), -+ DMI_MATCH(DMI_PRODUCT_NAME, "GA605W"), -+ }, -+ .driver_data = &quirk_no_sps_bug, -+ }, -+ { -+ .ident = "ProArt P16", -+ .matches = { -+ DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."), -+ DMI_MATCH(DMI_PRODUCT_NAME, "H7606W"), -+ }, -+ .driver_data = &quirk_no_sps_bug, -+ }, - { - .ident = "ROG Ally X", - .matches = { --- -2.47.1 - - -From 66a01bb83e65e9b78731507954eed6e2a7f3b767 Mon Sep 17 00:00:00 2001 -From: "Luke D. Jones" -Date: Mon, 6 Jan 2025 11:22:43 +1300 -Subject: [PATCH 28/28] hid-asus: Disable OOBE mode on the ProArt P16 - -Signed-off-by: Luke D. Jones ---- - drivers/hid/hid-asus.c | 29 ++++++++++++++++++++++ - include/linux/platform_data/x86/asus-wmi.h | 5 ++++ - 2 files changed, 34 insertions(+) - -diff --git a/drivers/hid/hid-asus.c b/drivers/hid/hid-asus.c -index 7c5269cd4d76..c077d8817004 100644 ---- a/drivers/hid/hid-asus.c -+++ b/drivers/hid/hid-asus.c -@@ -437,6 +437,26 @@ static int asus_kbd_get_functions(struct hid_device *hdev, - return ret; - } - -+static int asus_kbd_disable_oobe(struct hid_device *hdev) -+{ -+ const u8 init[][6] = { -+ // Use size of largest array for array dimension -+ { FEATURE_KBD_REPORT_ID, 0x05, 0x20, 0x31, 0x00, 0x08 }, -+ { FEATURE_KBD_REPORT_ID, 0xBA, 0xC5, 0xC4 }, -+ { FEATURE_KBD_REPORT_ID, 0xD0, 0x8F, 0x01 }, -+ { FEATURE_KBD_REPORT_ID, 0xD0, 0x85, 0xFF } -+ }; -+ int ret; -+ -+ for (size_t i = 0; i < ARRAY_SIZE(init); i++) { -+ ret = asus_kbd_set_report(hdev, init[i], sizeof(init[i])); -+ if (ret < 0) -+ return ret; -+ } -+ -+ return 0; -+} -+ - static void asus_schedule_work(struct asus_kbd_leds *led) - { - unsigned long flags; -@@ -539,6 +559,15 @@ 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")) { -+ hid_info(hdev, "Laptop requires disabling the OOBE mode for LED use"); -+ ret = asus_kbd_disable_oobe(hdev); -+ if (ret < 0) -+ return ret; -+ else -+ hid_info(hdev, "Disabled OOBE mode"); -+ } - } else { - /* Initialize keyboard */ - ret = asus_kbd_init(hdev, FEATURE_KBD_REPORT_ID); -diff --git a/include/linux/platform_data/x86/asus-wmi.h b/include/linux/platform_data/x86/asus-wmi.h -index cc21e4272460..c427b6c20d3f 100644 ---- a/include/linux/platform_data/x86/asus-wmi.h -+++ b/include/linux/platform_data/x86/asus-wmi.h -@@ -206,6 +206,11 @@ static const struct dmi_system_id asus_use_hid_led_dmi_ids[] = { - DMI_MATCH(DMI_PRODUCT_FAMILY, "ROG Flow"), - }, - }, -+ { -+ .matches = { -+ DMI_MATCH(DMI_PRODUCT_FAMILY, "ProArt P16"), -+ }, -+ }, - { - .matches = { - DMI_MATCH(DMI_BOARD_NAME, "GA403U"), --- -2.47.1 -