]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
HID: lenovo: Use KEY_PERFORMANCE instead of ACPI's platform_profile
authorJanne Grunau <j@jannau.net>
Mon, 1 Sep 2025 10:20:07 +0000 (12:20 +0200)
committerJiri Kosina <jkosina@suse.com>
Fri, 12 Sep 2025 14:59:05 +0000 (16:59 +0200)
Commit 84c9d2a968c82 ("HID: lenovo: Support for ThinkPad-X12-TAB-1/2 Kbd
Fn keys") added a dependency on ACPI's platform_profile. This should not
be done for generic USB devices as this prevents using the devices on
non ACPI devices like Apple silicon Macs and other non-ACPI arm64
systems. An attempt to allow using platform_profile on non-ACPI systems
was rejected in [1] and instead platform_profile was made to fail during
init in commit dd133162c9cf ("ACPI: platform_profile: Avoid initializing
on non-ACPI platforms").
So remove the broken dependency and instead let's user space handle this
keycode by sending the new KEY_PERFORMANCE. Stable backport depends on
commit 89c5214639294 ("Input: add keycode for performance mode key").

[1]: https://lore.kernel.org/linux-acpi/CAJZ5v0icRdTSToaKbdf=MdRin4NyB2MstUVaQo8VR6-n7DkVMQ@mail.gmail.com/

Cc: regressions@lists.linux.dev
Cc: stable@vger.kernel.org
Fixes: 84c9d2a968c82 ("HID: lenovo: Support for ThinkPad-X12-TAB-1/2 Kbd Fn keys")
Signed-off-by: Janne Grunau <j@jannau.net>
Signed-off-by: Jiri Kosina <jkosina@suse.com>
drivers/hid/Kconfig
drivers/hid/hid-lenovo.c

index 79997553d8f9871c6f0402c9199b453e6fea8828..b934523593d95d087d59112740634011b3d83386 100644 (file)
@@ -597,8 +597,6 @@ config HID_LED
 
 config HID_LENOVO
        tristate "Lenovo / Thinkpad devices"
-       depends on ACPI
-       select ACPI_PLATFORM_PROFILE
        select NEW_LEDS
        select LEDS_CLASS
        help
index b3121fa7a72d73f2b9ac12f36bc3d87c2649c69b..654879814f97aaf876ac16c00bf9efca22d116f3 100644 (file)
@@ -32,8 +32,6 @@
 #include <linux/leds.h>
 #include <linux/workqueue.h>
 
-#include <linux/platform_profile.h>
-
 #include "hid-ids.h"
 
 /* Userspace expects F20 for mic-mute KEY_MICMUTE does not work */
@@ -734,7 +732,7 @@ static int lenovo_raw_event_TP_X12_tab(struct hid_device *hdev, u32 raw_data)
                                report_key_event(input, KEY_RFKILL);
                                return 1;
                        }
-                       platform_profile_cycle();
+                       report_key_event(input, KEY_PERFORMANCE);
                        return 1;
                case TP_X12_RAW_HOTKEY_FN_F10:
                        /* TAB1 has PICKUP Phone and TAB2 use Snipping tool*/