diff --git a/patches/asus2.patch b/patches/asus2.patch index 23cdb82..c2d60b4 100644 --- a/patches/asus2.patch +++ b/patches/asus2.patch @@ -1,7 +1,7 @@ -From 66a2ab4a176b432d441e7d90d620f6594de89e43 Mon Sep 17 00:00:00 2001 +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/27] Input: xpad - add support for ASUS ROG RAIKIRI PRO +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. @@ -27,10 +27,10 @@ index 0f23be98c56e..1b92729bd378 100644 2.47.1 -From 65991d72695e279390b0e68af59b852a2b5c6259 Mon Sep 17 00:00:00 2001 +From 75ffd91fb4a2da8683a438f0ea23a2fe20dd97ca Mon Sep 17 00:00:00 2001 From: "Luke D. Jones" Date: Fri, 24 May 2024 10:54:36 +1200 -Subject: [PATCH 02/27] platform/x86: asus-wmi: don't fail if platform_profile +Subject: [PATCH 02/28] 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 @@ -64,10 +64,10 @@ index 1101e5b2488e..293ecd228a5a 100644 2.47.1 -From 0da9e8de9be25f4e922fb24c44dc280721e42413 Mon Sep 17 00:00:00 2001 +From f1d69dd5412a06634a19db8daa0329d9ff585452 Mon Sep 17 00:00:00 2001 From: "Luke D. Jones" Date: Sun, 1 Sep 2024 14:30:37 +1200 -Subject: [PATCH 03/27] platform/x86: asus-wmi: Refactor Ally suspend/resume +Subject: [PATCH 03/28] 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. @@ -255,10 +255,10 @@ index 293ecd228a5a..acd0ec1d9aae 100644 2.47.1 -From d15ffbaf86af112d09cc553feed43605387be83d Mon Sep 17 00:00:00 2001 +From a1141dd063ffac579de9dce1e33695dc1be6fc57 Mon Sep 17 00:00:00 2001 From: "Luke D. Jones" Date: Sun, 22 Sep 2024 21:40:46 +1200 -Subject: [PATCH 04/27] platform/x86: asus-wmi: export symbols used for +Subject: [PATCH 04/28] platform/x86: asus-wmi: export symbols used for read/write WMI Export some rather helpful read/write WMI symbols using a namespace. @@ -366,10 +366,10 @@ index 365e119bebaa..6ea4dedfb85e 100644 2.47.1 -From b4c17bb1855a52dda5f324b5a26308adc20a3429 Mon Sep 17 00:00:00 2001 +From 7f65084989651f074bb3ff6ad440fd651d4a47bf Mon Sep 17 00:00:00 2001 From: "Luke D. Jones" Date: Sat, 21 Sep 2024 16:04:58 +1200 -Subject: [PATCH 05/27] hid-asus: Add MODULE_IMPORT_NS(ASUS_WMI) +Subject: [PATCH 05/28] 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. @@ -396,10 +396,10 @@ index a4b47319ad8e..9540e3e19cce 100644 2.47.1 -From 0a53978ad2c616b7adf33f8f7fdda776a5a0a57c Mon Sep 17 00:00:00 2001 +From 755e9eca472fb56ae53c2df8bde024e21ddc991c Mon Sep 17 00:00:00 2001 From: "Luke D. Jones" Date: Sun, 22 Sep 2024 21:39:43 +1200 -Subject: [PATCH 06/27] platform/x86: asus-armoury: move existing tunings to +Subject: [PATCH 06/28] platform/x86: asus-armoury: move existing tunings to asus-armoury module MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -1249,10 +1249,10 @@ index 6ea4dedfb85e..21313e1eb6c9 100644 2.47.1 -From 0f43ec1f59df37f227a9eaac231326e09be4fe3e Mon Sep 17 00:00:00 2001 +From 7d28e4b7e77a31accd21c9886cea99af28dd4038 Mon Sep 17 00:00:00 2001 From: "Luke D. Jones" Date: Thu, 19 Sep 2024 17:23:35 +1200 -Subject: [PATCH 07/27] platform/x86: asus-armoury: add panel_hd_mode attribute +Subject: [PATCH 07/28] platform/x86: asus-armoury: add panel_hd_mode attribute Add panel_hd_mode to toggle the panel mode between single and high definition modes. @@ -1311,10 +1311,10 @@ index 21313e1eb6c9..a6064995c2cc 100644 2.47.1 -From 8066b15e1f48352e674c29927def1c1fa3c5b48d Mon Sep 17 00:00:00 2001 +From 9065f2a2b500e211cd0893304b44d2a238e1b971 Mon Sep 17 00:00:00 2001 From: "Luke D. Jones" Date: Thu, 19 Sep 2024 17:19:37 +1200 -Subject: [PATCH 08/27] platform/x86: asus-armoury: add the ppt_* and nv_* +Subject: [PATCH 08/28] platform/x86: asus-armoury: add the ppt_* and nv_* tuning knobs Adds the ppt_* and nv_* tuning knobs that are available via WMI methods @@ -1592,10 +1592,10 @@ index b00d829c9da0..91ec6f4cb149 100644 2.47.1 -From cd0478042eb3c5b861ad94b80c93e63f7233f1a7 Mon Sep 17 00:00:00 2001 +From 885251ddad44ce0fa49de6b8e6796009df60421f Mon Sep 17 00:00:00 2001 From: "Luke D. Jones" Date: Sun, 2 Jun 2024 14:32:15 +1200 -Subject: [PATCH 09/27] platform/x86: asus-armoury: add dgpu tgp control +Subject: [PATCH 09/28] platform/x86: asus-armoury: add dgpu tgp control Implement the dgpu TGP control under the asus-armoury module using the fw_attributes class. @@ -1722,10 +1722,10 @@ index a6064995c2cc..8c755799eb60 100644 2.47.1 -From 6e5bc568440a4f46c1f3ad5c658177e5def0c71b Mon Sep 17 00:00:00 2001 +From ccea3439731ded372f9b71c3542d5eebc878ce2b Mon Sep 17 00:00:00 2001 From: "Luke D. Jones" Date: Sun, 2 Jun 2024 14:44:31 +1200 -Subject: [PATCH 10/27] platform/x86: asus-armoury: add apu-mem control support +Subject: [PATCH 10/28] 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. @@ -1888,10 +1888,10 @@ index 8c755799eb60..88bf250dc8ca 100644 2.47.1 -From 700829ff413e3ae984b97e78043abeddf924ebb9 Mon Sep 17 00:00:00 2001 +From 1508da1b03bedecbe0a991bece7c1797b14fe055 Mon Sep 17 00:00:00 2001 From: "Luke D. Jones" Date: Wed, 18 Sep 2024 21:19:12 +1200 -Subject: [PATCH 11/27] platform/x86: asus-armoury: add core count control +Subject: [PATCH 11/28] platform/x86: asus-armoury: add core count control Implement Intel core enablement under the asus-armoury module using the fw_attributes class. @@ -2237,10 +2237,10 @@ index 88bf250dc8ca..cc21e4272460 100644 2.47.1 -From f199d8a6671304cdad1bc64e8616fa816518e413 Mon Sep 17 00:00:00 2001 +From ed252adfb6011ca67f98bd47bb8842a7f2be2ee0 Mon Sep 17 00:00:00 2001 From: "Luke D. Jones" Date: Mon, 3 Jun 2024 12:04:41 +1200 -Subject: [PATCH 12/27] platform/x86: asus-wmi: deprecate bios features +Subject: [PATCH 12/28] 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. @@ -2858,10 +2858,10 @@ index 525629097b9f..d4981e08f44f 100644 2.47.1 -From 6d1521d36a9e675b28b6810a7472c9592f769718 Mon Sep 17 00:00:00 2001 +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/27] ALSA: hda/realtek: fixup ASUS GA605W +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. @@ -2872,10 +2872,10 @@ Signed-off-by: Luke D. Jones 1 file changed, 2 insertions(+) diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c -index 973671e0cdb0..bfb3e95ccfaf 100644 +index 192fc75b51e6..d88fc0ca893d 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c -@@ -10603,6 +10603,8 @@ static const struct hda_quirk alc269_fixup_tbl[] = { +@@ -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), @@ -2888,10 +2888,10 @@ index 973671e0cdb0..bfb3e95ccfaf 100644 2.47.1 -From 630e1c62a634a74b68ac1d6bcf8e5bcb5fc1a822 Mon Sep 17 00:00:00 2001 +From e44288e88b8fa2f4f2e33522e0b2666b467b31aa Mon Sep 17 00:00:00 2001 From: "Luke D. Jones" Date: Mon, 26 Aug 2024 12:49:35 +1200 -Subject: [PATCH 14/27] hid-asus-ally: Add joystick LED ring support +Subject: [PATCH 14/28] 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. @@ -3672,10 +3672,10 @@ index 9540e3e19cce..7c5269cd4d76 100644 2.47.1 -From 38832529751a0d5abaf4464a0117b4fb2899effa Mon Sep 17 00:00:00 2001 +From caab298317491b6b6b8a7a9000116e114cd860b6 Mon Sep 17 00:00:00 2001 From: "Luke D. Jones" Date: Wed, 2 Oct 2024 23:32:46 +1300 -Subject: [PATCH 15/27] hid-asus-ally: initial Ally-X gamepad +Subject: [PATCH 15/28] hid-asus-ally: initial Ally-X gamepad Signed-off-by: Luke D. Jones --- @@ -4159,10 +4159,10 @@ index eb8617c80c2a..458d02996bca 100644 2.47.1 -From 104603cbab4cce4ba09d11d3776920a4e6bc716c Mon Sep 17 00:00:00 2001 +From 13ccb06fd0af8663cc3d54699fd1caccb983a5a0 Mon Sep 17 00:00:00 2001 From: "Luke D. Jones" Date: Wed, 2 Oct 2024 23:51:36 +1300 -Subject: [PATCH 16/27] hid-asus-ally: initial gamepad configuration +Subject: [PATCH 16/28] hid-asus-ally: initial gamepad configuration Signed-off-by: Luke D. Jones --- @@ -4571,16 +4571,16 @@ index 458d02996bca..2b298ad4da0e 100644 2.47.1 -From 165dc43b72d144782a62290b389fce5819169847 Mon Sep 17 00:00:00 2001 +From e55ed327e70cd92738bf5b63efd92bb88f82c7bc Mon Sep 17 00:00:00 2001 From: "Luke D. Jones" Date: Sat, 5 Oct 2024 14:58:33 +1300 -Subject: [PATCH 17/27] hid-asus-ally: add button remap attributes +Subject: [PATCH 17/28] hid-asus-ally: add button remap attributes Signed-off-by: Luke D. Jones --- drivers/hid/hid-asus-ally.c | 393 ++++++++++++++++++++++++++++++++++-- - drivers/hid/hid-asus-ally.h | 197 ++++++++++++++++++ - 2 files changed, 572 insertions(+), 18 deletions(-) + drivers/hid/hid-asus-ally.h | 211 +++++++++++++++++++ + 2 files changed, 586 insertions(+), 18 deletions(-) diff --git a/drivers/hid/hid-asus-ally.c b/drivers/hid/hid-asus-ally.c index eed1bc84026d..56cc7abc397f 100644 @@ -5049,7 +5049,7 @@ index eed1bc84026d..56cc7abc397f 100644 hid_hw_stop(hdev); } diff --git a/drivers/hid/hid-asus-ally.h b/drivers/hid/hid-asus-ally.h -index 2b298ad4da0e..127db570a827 100644 +index 2b298ad4da0e..f985cbd698c3 100644 --- a/drivers/hid/hid-asus-ally.h +++ b/drivers/hid/hid-asus-ally.h @@ -33,11 +33,155 @@ enum xpad_cmd_len { @@ -5208,7 +5208,7 @@ index 2b298ad4da0e..127db570a827 100644 #define ALLY_DEVICE_ATTR_WO(_name, _sysfs_name) \ struct device_attribute dev_attr_##_name = \ -@@ -47,3 +191,56 @@ enum btn_pair_index { +@@ -47,3 +191,70 @@ enum btn_pair_index { #define ALLY_DEVICE_ATTR_RW(_name, _sysfs_name) \ struct device_attribute dev_attr_##_name = \ __ATTR(_sysfs_name, 0644, _name##_show, _name##_store) @@ -5257,22 +5257,36 @@ index 2b298ad4da0e..127db570a827 100644 + .attrs = _fname##_attrs, \ + } + -+#define ALLY_BTN_MAPPING(_fname, _mname) \ -+ ALLY_BTN_SHOW(btn_mapping_##_fname, _mname, false); \ -+ ALLY_BTN_STORE(btn_mapping_##_fname, _mname, false); \ -+ ALLY_BTN_SHOW(btn_mapping_##_fname##_macro, _mname, true); \ -+ ALLY_BTN_STORE(btn_mapping_##_fname##_macro, _mname, true); \ -+ ALLY_DEVICE_ATTR_RW(btn_mapping_##_fname, remap); \ -+ ALLY_DEVICE_ATTR_RW(btn_mapping_##_fname##_macro, macro_remap); \ -+ ALLY_BTN_ATTRS_GROUP(btn_##_fname, btn_mapping_##_fname) ++#define _ALLY_BTN_REMAP(_fname, _btn_name) \ ++ ALLY_BTN_SHOW(btn_mapping_##_fname##_remap, _btn_name, false); \ ++ ALLY_BTN_STORE(btn_mapping_##_fname##_remap, _btn_name, false); \ ++ ALLY_DEVICE_ATTR_RW(btn_mapping_##_fname##_remap, remap); ++ ++#define _ALLY_BTN_MACRO(_fname, _btn_name) \ ++ ALLY_BTN_SHOW(btn_mapping_##_fname##_macro, _btn_name, true); \ ++ ALLY_BTN_STORE(btn_mapping_##_fname##_macro, _btn_name, true); \ ++ ALLY_DEVICE_ATTR_RW(btn_mapping_##_fname##_macro, macro_remap); ++ ++#define ALLY_BTN_MAPPING(_fname, _btn_name) \ ++ _ALLY_BTN_REMAP(_fname, _btn_name) \ ++ _ALLY_BTN_MACRO(_fname, _btn_name) \ ++ static struct attribute *_fname##_attrs[] = { \ ++ &dev_attr_btn_mapping_##_fname##_remap.attr, \ ++ &dev_attr_btn_mapping_##_fname##_macro.attr, \ ++ NULL, \ ++ }; \ ++ static const struct attribute_group btn_mapping_##_fname##_attr_group = { \ ++ .name = __stringify(btn_##_fname), \ ++ .attrs = _fname##_attrs, \ ++ } -- 2.47.1 -From fd95feedfc41a2aec2ca2dba52fec8254a9bc501 Mon Sep 17 00:00:00 2001 +From 3a019f986fbec2ab488303f992fbe40389d26524 Mon Sep 17 00:00:00 2001 From: "Luke D. Jones" Date: Fri, 25 Oct 2024 08:56:54 +0200 -Subject: [PATCH 18/27] hid-asus-ally: add gamepad mode selection +Subject: [PATCH 18/28] hid-asus-ally: add gamepad mode selection --- drivers/hid/hid-asus-ally.c | 73 +++++++++++++++++++++++++++++++++++++ @@ -5367,7 +5381,7 @@ index 56cc7abc397f..7cecdc10ba2c 100644 NULL }; diff --git a/drivers/hid/hid-asus-ally.h b/drivers/hid/hid-asus-ally.h -index 127db570a827..caec424c52e3 100644 +index f985cbd698c3..f7e21be50d8e 100644 --- a/drivers/hid/hid-asus-ally.h +++ b/drivers/hid/hid-asus-ally.h @@ -20,6 +20,7 @@ enum xpad_mode { @@ -5390,19 +5404,19 @@ index 127db570a827..caec424c52e3 100644 2.47.1 -From fc9b88f3382162a9fe6ec9f221ac762b27d548e0 Mon Sep 17 00:00:00 2001 +From fe383c22dd2899f08b03f8040af07d2163647c39 Mon Sep 17 00:00:00 2001 From: "Luke D. Jones" Date: Sat, 5 Oct 2024 15:40:09 +1300 -Subject: [PATCH 19/27] hid-asus-ally: Turbo settings for buttons +Subject: [PATCH 19/28] hid-asus-ally: Turbo settings for buttons Signed-off-by: Luke D. Jones --- - drivers/hid/hid-asus-ally.c | 80 ++++++++++++++++++++++++++++--------- - drivers/hid/hid-asus-ally.h | 58 ++++++++++++++++++++++++++- - 2 files changed, 118 insertions(+), 20 deletions(-) + drivers/hid/hid-asus-ally.c | 72 +++++++++++++++++++++++++++++-------- + drivers/hid/hid-asus-ally.h | 50 ++++++++++++++++++++++++++ + 2 files changed, 108 insertions(+), 14 deletions(-) diff --git a/drivers/hid/hid-asus-ally.c b/drivers/hid/hid-asus-ally.c -index 7cecdc10ba2c..7f0000a2db3c 100644 +index 7cecdc10ba2c..b0fcad91f2b7 100644 --- a/drivers/hid/hid-asus-ally.c +++ b/drivers/hid/hid-asus-ally.c @@ -233,6 +233,7 @@ static const char* btn_to_name(u64 key) @@ -5470,12 +5484,10 @@ index 7cecdc10ba2c..7f0000a2db3c 100644 if (ret < 0) return ret; -@@ -581,24 +625,24 @@ static ssize_t gamepad_apply_all_store(struct device *dev, struct device_attribu - ALLY_DEVICE_ATTR_WO(gamepad_apply_all, apply_all); - +@@ -583,22 +627,22 @@ ALLY_DEVICE_ATTR_WO(gamepad_apply_all, apply_all); /* button map attributes, regular and macro*/ --ALLY_BTN_MAPPING(m1, btn_m1); --ALLY_BTN_MAPPING(m2, btn_m2); + ALLY_BTN_MAPPING(m1, btn_m1); + ALLY_BTN_MAPPING(m2, btn_m2); -ALLY_BTN_MAPPING(a, btn_a); -ALLY_BTN_MAPPING(b, btn_b); -ALLY_BTN_MAPPING(x, btn_x); @@ -5490,31 +5502,27 @@ index 7cecdc10ba2c..7f0000a2db3c 100644 -ALLY_BTN_MAPPING(dpad_d, dpad_down); -ALLY_BTN_MAPPING(dpad_l, dpad_left); -ALLY_BTN_MAPPING(dpad_r, dpad_right); --ALLY_BTN_MAPPING(view, btn_view); --ALLY_BTN_MAPPING(menu, btn_menu); -+ALLY_BTN_MAPPING_NO_TURBO(m1, btn_m1); -+ALLY_BTN_MAPPING_NO_TURBO(m2, btn_m2); -+ALLY_BTN_MAPPING_NO_TURBO(view, btn_view); -+ALLY_BTN_MAPPING_NO_TURBO(menu, btn_menu); -+ALLY_BTN_MAPPING_WITH_TURBO(a, btn_a); -+ALLY_BTN_MAPPING_WITH_TURBO(b, btn_b); -+ALLY_BTN_MAPPING_WITH_TURBO(x, btn_x); -+ALLY_BTN_MAPPING_WITH_TURBO(y, btn_y); -+ALLY_BTN_MAPPING_WITH_TURBO(lb, btn_lb); -+ALLY_BTN_MAPPING_WITH_TURBO(rb, btn_rb); -+ALLY_BTN_MAPPING_WITH_TURBO(ls, btn_ls); -+ALLY_BTN_MAPPING_WITH_TURBO(rs, btn_rs); -+ALLY_BTN_MAPPING_WITH_TURBO(lt, btn_lt); -+ALLY_BTN_MAPPING_WITH_TURBO(rt, btn_rt); -+ALLY_BTN_MAPPING_WITH_TURBO(dpad_u, dpad_up); -+ALLY_BTN_MAPPING_WITH_TURBO(dpad_d, dpad_down); -+ALLY_BTN_MAPPING_WITH_TURBO(dpad_l, dpad_left); -+ALLY_BTN_MAPPING_WITH_TURBO(dpad_r, dpad_right); + ALLY_BTN_MAPPING(view, btn_view); + ALLY_BTN_MAPPING(menu, btn_menu); ++ALLY_TURBO_BTN_MAPPING(a, btn_a); ++ALLY_TURBO_BTN_MAPPING(b, btn_b); ++ALLY_TURBO_BTN_MAPPING(x, btn_x); ++ALLY_TURBO_BTN_MAPPING(y, btn_y); ++ALLY_TURBO_BTN_MAPPING(lb, btn_lb); ++ALLY_TURBO_BTN_MAPPING(rb, btn_rb); ++ALLY_TURBO_BTN_MAPPING(ls, btn_ls); ++ALLY_TURBO_BTN_MAPPING(rs, btn_rs); ++ALLY_TURBO_BTN_MAPPING(lt, btn_lt); ++ALLY_TURBO_BTN_MAPPING(rt, btn_rt); ++ALLY_TURBO_BTN_MAPPING(dpad_u, dpad_up); ++ALLY_TURBO_BTN_MAPPING(dpad_d, dpad_down); ++ALLY_TURBO_BTN_MAPPING(dpad_l, dpad_left); ++ALLY_TURBO_BTN_MAPPING(dpad_r, dpad_right); static void _gamepad_set_xpad_default(struct ally_gamepad_cfg *ally_cfg) { diff --git a/drivers/hid/hid-asus-ally.h b/drivers/hid/hid-asus-ally.h -index caec424c52e3..4e60e4c8f6d9 100644 +index f7e21be50d8e..63a3b5caa71c 100644 --- a/drivers/hid/hid-asus-ally.h +++ b/drivers/hid/hid-asus-ally.h @@ -24,6 +24,7 @@ enum xpad_cmd { @@ -5571,49 +5579,35 @@ index caec424c52e3..4e60e4c8f6d9 100644 #define ALLY_BTN_ATTRS_GROUP(_name, _fname) \ static struct attribute *_fname##_attrs[] = { \ &dev_attr_##_fname.attr, \ -@@ -238,11 +271,32 @@ enum btn_pair_index { - .attrs = _fname##_attrs, \ +@@ -260,3 +293,20 @@ enum btn_pair_index { + .name = __stringify(btn_##_fname), \ + .attrs = _fname##_attrs, \ } - --#define ALLY_BTN_MAPPING(_fname, _mname) \ -+#define ALLY_BTN_ATTRS_GROUP_WITH_TURBO(_name, _fname) \ -+ static struct attribute *_fname##_attrs[] = { \ -+ &dev_attr_##_fname.attr, \ -+ &dev_attr_##_fname##_macro.attr, \ -+ &dev_attr_##_fname##_turbo.attr, \ -+ }; \ -+ static const struct attribute_group _fname##_attr_group = { \ -+ .name = __stringify(_name), \ -+ .attrs = _fname##_attrs, \ ++ ++#define ALLY_TURBO_BTN_MAPPING(_fname, _btn_name) \ ++ _ALLY_BTN_REMAP(_fname, _btn_name) \ ++ _ALLY_BTN_MACRO(_fname, _btn_name) \ ++ ALLY_TURBO_SHOW(btn_mapping_##_fname##_turbo, _btn_name); \ ++ ALLY_TURBO_STORE(btn_mapping_##_fname##_turbo, _btn_name); \ ++ ALLY_DEVICE_ATTR_RW(btn_mapping_##_fname##_turbo, turbo); \ ++ static struct attribute *_fname##_turbo_attrs[] = { \ ++ &dev_attr_btn_mapping_##_fname##_remap.attr, \ ++ &dev_attr_btn_mapping_##_fname##_macro.attr, \ ++ &dev_attr_btn_mapping_##_fname##_turbo.attr, \ ++ NULL, \ ++ }; \ ++ static const struct attribute_group btn_mapping_##_fname##_attr_group = { \ ++ .name = __stringify(btn_##_fname), \ ++ .attrs = _fname##_turbo_attrs, \ + } -+ -+#define _ALLY_BTN_MAPPING(_fname, _mname) \ - ALLY_BTN_SHOW(btn_mapping_##_fname, _mname, false); \ - ALLY_BTN_STORE(btn_mapping_##_fname, _mname, false); \ - ALLY_BTN_SHOW(btn_mapping_##_fname##_macro, _mname, true); \ - ALLY_BTN_STORE(btn_mapping_##_fname##_macro, _mname, true); \ - ALLY_DEVICE_ATTR_RW(btn_mapping_##_fname, remap); \ -- ALLY_DEVICE_ATTR_RW(btn_mapping_##_fname##_macro, macro_remap); \ -+ ALLY_DEVICE_ATTR_RW(btn_mapping_##_fname##_macro, macro_remap); -+ -+#define ALLY_BTN_MAPPING_NO_TURBO(_fname, _mname) \ -+ _ALLY_BTN_MAPPING(_fname, _mname) \ - ALLY_BTN_ATTRS_GROUP(btn_##_fname, btn_mapping_##_fname) -+ -+#define ALLY_BTN_MAPPING_WITH_TURBO(_fname, _mname) \ -+ _ALLY_BTN_MAPPING(_fname, _mname) \ -+ ALLY_TURBO_SHOW(btn_mapping_##_fname##_turbo, _mname); \ -+ ALLY_TURBO_STORE(btn_mapping_##_fname##_turbo, _mname); \ -+ ALLY_DEVICE_ATTR_RW(btn_mapping_##_fname##_turbo, turbo); \ -+ ALLY_BTN_ATTRS_GROUP_WITH_TURBO(btn_##_fname, btn_mapping_##_fname) -- 2.47.1 -From dccdc1d80c57aa05d88ab2a06244f7c8ac509e03 Mon Sep 17 00:00:00 2001 +From 5dd0a575d36ce31154d93e76193b91cda0888137 Mon Sep 17 00:00:00 2001 From: "Luke D. Jones" Date: Sat, 5 Oct 2024 20:46:00 +1300 -Subject: [PATCH 20/27] hid-asus-ally: add vibration intensity settings +Subject: [PATCH 20/28] hid-asus-ally: add vibration intensity settings Signed-off-by: Luke D. Jones --- @@ -5622,7 +5616,7 @@ Signed-off-by: Luke D. Jones 2 files changed, 99 insertions(+) diff --git a/drivers/hid/hid-asus-ally.c b/drivers/hid/hid-asus-ally.c -index 7f0000a2db3c..cdc45e2c79b4 100644 +index b0fcad91f2b7..724bf3e8639a 100644 --- a/drivers/hid/hid-asus-ally.c +++ b/drivers/hid/hid-asus-ally.c @@ -267,6 +267,11 @@ struct ally_gamepad_cfg { @@ -5747,7 +5741,7 @@ index 7f0000a2db3c..cdc45e2c79b4 100644 if (sysfs_create_groups(&hdev->dev.kobj, gamepad_device_attr_groups)) { err = -ENODEV; diff --git a/drivers/hid/hid-asus-ally.h b/drivers/hid/hid-asus-ally.h -index 4e60e4c8f6d9..eea4696850fa 100644 +index 63a3b5caa71c..6ac79ad3c5f2 100644 --- a/drivers/hid/hid-asus-ally.h +++ b/drivers/hid/hid-asus-ally.h @@ -22,6 +22,7 @@ enum xpad_mode { @@ -5781,10 +5775,10 @@ index 4e60e4c8f6d9..eea4696850fa 100644 2.47.1 -From 9a27e314332661084ebb2ef819bee1d205fe0f3d Mon Sep 17 00:00:00 2001 +From b060d13d6fdd1f7bf488d72fa705517fc0fd1545 Mon Sep 17 00:00:00 2001 From: "Luke D. Jones" Date: Sat, 5 Oct 2024 21:32:41 +1300 -Subject: [PATCH 21/27] hid-asus-ally: add JS deadzones +Subject: [PATCH 21/28] hid-asus-ally: add JS deadzones Signed-off-by: Luke D. Jones --- @@ -5793,7 +5787,7 @@ Signed-off-by: Luke D. Jones 2 files changed, 123 insertions(+) diff --git a/drivers/hid/hid-asus-ally.c b/drivers/hid/hid-asus-ally.c -index cdc45e2c79b4..9bb9ac3ce87b 100644 +index 724bf3e8639a..a813b2972a66 100644 --- a/drivers/hid/hid-asus-ally.c +++ b/drivers/hid/hid-asus-ally.c @@ -257,6 +257,11 @@ struct btn_mapping { @@ -5923,7 +5917,7 @@ index cdc45e2c79b4..9bb9ac3ce87b 100644 drvdata.gamepad_cfg = ally_cfg; // Must asign before attr group setup if (sysfs_create_groups(&hdev->dev.kobj, gamepad_device_attr_groups)) { diff --git a/drivers/hid/hid-asus-ally.h b/drivers/hid/hid-asus-ally.h -index eea4696850fa..76ba5fcd593a 100644 +index 6ac79ad3c5f2..3dc14a5226f3 100644 --- a/drivers/hid/hid-asus-ally.h +++ b/drivers/hid/hid-asus-ally.h @@ -22,6 +22,7 @@ enum xpad_mode { @@ -5990,10 +5984,10 @@ index eea4696850fa..76ba5fcd593a 100644 2.47.1 -From 1d825d14c04e872369d9418beb2c5c9225f8af4c Mon Sep 17 00:00:00 2001 +From 0e1e99bd457064942e9023bb823b56a14892be0f Mon Sep 17 00:00:00 2001 From: "Luke D. Jones" Date: Sat, 5 Oct 2024 21:37:27 +1300 -Subject: [PATCH 22/27] hid-asus-ally: add trigger deadzones +Subject: [PATCH 22/28] hid-asus-ally: add trigger deadzones Signed-off-by: Luke D. Jones --- @@ -6002,7 +5996,7 @@ Signed-off-by: Luke D. Jones 2 files changed, 44 insertions(+) diff --git a/drivers/hid/hid-asus-ally.c b/drivers/hid/hid-asus-ally.c -index 9bb9ac3ce87b..2e34cb47972e 100644 +index a813b2972a66..fc5620e63b06 100644 --- a/drivers/hid/hid-asus-ally.c +++ b/drivers/hid/hid-asus-ally.c @@ -281,6 +281,8 @@ struct ally_gamepad_cfg { @@ -6092,7 +6086,7 @@ index 9bb9ac3ce87b..2e34cb47972e 100644 &btn_mapping_m2_attr_group, &btn_mapping_a_attr_group, diff --git a/drivers/hid/hid-asus-ally.h b/drivers/hid/hid-asus-ally.h -index 76ba5fcd593a..f103b5ecff36 100644 +index 3dc14a5226f3..32ed5caa3759 100644 --- a/drivers/hid/hid-asus-ally.h +++ b/drivers/hid/hid-asus-ally.h @@ -23,6 +23,7 @@ enum xpad_cmd { @@ -6107,10 +6101,10 @@ index 76ba5fcd593a..f103b5ecff36 100644 2.47.1 -From ba3ecac043234bc54f2a2296f1884ae37b3af2cf Mon Sep 17 00:00:00 2001 +From e60cb0bb587e7b6c549353000a2fd0eff019aaef Mon Sep 17 00:00:00 2001 From: "Luke D. Jones" Date: Sun, 6 Oct 2024 19:49:24 +1300 -Subject: [PATCH 23/27] hid-asus-ally: add anti-deadzones +Subject: [PATCH 23/28] hid-asus-ally: add anti-deadzones Signed-off-by: Luke D. Jones --- @@ -6119,7 +6113,7 @@ Signed-off-by: Luke D. Jones 2 files changed, 112 insertions(+) diff --git a/drivers/hid/hid-asus-ally.c b/drivers/hid/hid-asus-ally.c -index 2e34cb47972e..3e4d9b19dc41 100644 +index fc5620e63b06..9d8bd0afaa68 100644 --- a/drivers/hid/hid-asus-ally.c +++ b/drivers/hid/hid-asus-ally.c @@ -283,6 +283,9 @@ struct ally_gamepad_cfg { @@ -6269,7 +6263,7 @@ index 2e34cb47972e..3e4d9b19dc41 100644 drvdata.gamepad_cfg = ally_cfg; // Must asign before attr group setup if (sysfs_create_groups(&hdev->dev.kobj, gamepad_device_attr_groups)) { diff --git a/drivers/hid/hid-asus-ally.h b/drivers/hid/hid-asus-ally.h -index f103b5ecff36..9c13de73749c 100644 +index 32ed5caa3759..69f59592dd50 100644 --- a/drivers/hid/hid-asus-ally.h +++ b/drivers/hid/hid-asus-ally.h @@ -28,6 +28,7 @@ enum xpad_cmd { @@ -6292,10 +6286,10 @@ index f103b5ecff36..9c13de73749c 100644 2.47.1 -From 104a4ed73a1e93728a31776c56c5cc6108347068 Mon Sep 17 00:00:00 2001 +From f3d319113cf5e4b203476d329b6a1d30a555752f Mon Sep 17 00:00:00 2001 From: "Luke D. Jones" Date: Sun, 6 Oct 2024 21:22:40 +1300 -Subject: [PATCH 24/27] hid-asus-ally: add JS response curves +Subject: [PATCH 24/28] hid-asus-ally: add JS response curves Signed-off-by: Luke D. Jones --- @@ -6304,7 +6298,7 @@ Signed-off-by: Luke D. Jones 2 files changed, 141 insertions(+) diff --git a/drivers/hid/hid-asus-ally.c b/drivers/hid/hid-asus-ally.c -index 3e4d9b19dc41..4d9954362625 100644 +index 9d8bd0afaa68..9f9a7516b774 100644 --- a/drivers/hid/hid-asus-ally.c +++ b/drivers/hid/hid-asus-ally.c @@ -5,8 +5,10 @@ @@ -6466,7 +6460,7 @@ index 3e4d9b19dc41..4d9954362625 100644 drvdata.gamepad_cfg = ally_cfg; // Must asign before attr group setup if (sysfs_create_groups(&hdev->dev.kobj, gamepad_device_attr_groups)) { diff --git a/drivers/hid/hid-asus-ally.h b/drivers/hid/hid-asus-ally.h -index 9c13de73749c..518d8db3af5e 100644 +index 69f59592dd50..c83817589082 100644 --- a/drivers/hid/hid-asus-ally.h +++ b/drivers/hid/hid-asus-ally.h @@ -28,6 +28,7 @@ enum xpad_cmd { @@ -6532,10 +6526,10 @@ index 9c13de73749c..518d8db3af5e 100644 2.47.1 -From dfd576d639ef514857a6672615d83ad89a70dbf4 Mon Sep 17 00:00:00 2001 +From e63cb120c18461beca50d4890fd92141a7b6f001 Mon Sep 17 00:00:00 2001 From: "Luke D. Jones" Date: Thu, 10 Oct 2024 11:15:36 +1300 -Subject: [PATCH 25/27] hid-asus-ally: add calibrations (wip) +Subject: [PATCH 25/28] hid-asus-ally: add calibrations (wip) Signed-off-by: Luke D. Jones --- @@ -6543,7 +6537,7 @@ Signed-off-by: Luke D. Jones 1 file changed, 95 insertions(+) diff --git a/drivers/hid/hid-asus-ally.c b/drivers/hid/hid-asus-ally.c -index 4d9954362625..03603695c484 100644 +index 9f9a7516b774..5a8458e232d3 100644 --- a/drivers/hid/hid-asus-ally.c +++ b/drivers/hid/hid-asus-ally.c @@ -275,6 +275,28 @@ struct response_curve { @@ -6680,10 +6674,10 @@ index 4d9954362625..03603695c484 100644 2.47.1 -From 61a794cdbe346387f73238f62ebdc6e778cd44dd Mon Sep 17 00:00:00 2001 +From a112e37e12870d8ca40da77d24e4e4de056e9d11 Mon Sep 17 00:00:00 2001 From: "Luke D. Jones" Date: Wed, 6 Nov 2024 00:27:03 +0300 -Subject: [PATCH 26/27] debug by default +Subject: [PATCH 26/28] debug by default --- drivers/hid/hid-asus-ally.c | 2 ++ @@ -6691,7 +6685,7 @@ Subject: [PATCH 26/27] debug by default 2 files changed, 4 insertions(+) diff --git a/drivers/hid/hid-asus-ally.c b/drivers/hid/hid-asus-ally.c -index 03603695c484..d2fbb08babdb 100644 +index 5a8458e232d3..d59316001f50 100644 --- a/drivers/hid/hid-asus-ally.c +++ b/drivers/hid/hid-asus-ally.c @@ -19,6 +19,8 @@ @@ -6720,10 +6714,10 @@ index 69e79446c411..fb4ae804521d 100644 2.47.1 -From ddf01b6d179acae59c0eff5a23823b0723681d07 Mon Sep 17 00:00:00 2001 +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/27] Tmp: add GA605W & H7606W to AMD-PMF quirks. +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. @@ -6763,3 +6757,81 @@ index 7cde5733b9ca..02b9d0b49092 100644 -- 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 +