From 1da421c5fcb460d6d7a573c85bf27a1ed2b3c464 Mon Sep 17 00:00:00 2001 From: Owen Williams Date: Mon, 7 Oct 2024 22:07:41 -0400 Subject: [PATCH] Update clevo-keyboard for Linux 6.11 In the 6.11 kernel, platform::remove was changed to return void instead of int (https://github.com/torvalds/linux/commit/0edb555a65d1ef047a9805051c36922b52a38a9d). Change the corresponding `remove` methods to return void. Since they previously did not return a nonzero error code, this is not a behavior change. --- src/clevo_keyboard.h | 9 +++++++++ src/uniwill_keyboard.h | 7 ++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/clevo_keyboard.h b/src/clevo_keyboard.h index b7f559c..397b043 100644 --- a/src/clevo_keyboard.h +++ b/src/clevo_keyboard.h @@ -19,6 +19,7 @@ #ifndef CLEVO_KEYBOARD_H #define CLEVO_KEYBOARD_H +#include #include "tuxedo_keyboard_common.h" #include "clevo_interfaces.h" #include "clevo_leds.h" @@ -358,12 +359,20 @@ static void clevo_keyboard_remove_device_interface(struct platform_device *dev) } } +#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 11, 0) static int clevo_keyboard_remove(struct platform_device *dev) { clevo_keyboard_remove_device_interface(dev); clevo_leds_remove(dev); return 0; } +#else +static void clevo_keyboard_remove(struct platform_device *dev) +{ + clevo_keyboard_remove_device_interface(dev); + clevo_leds_remove(dev); +} +#endif static int clevo_keyboard_suspend(struct platform_device *dev, pm_message_t state) { diff --git a/src/uniwill_keyboard.h b/src/uniwill_keyboard.h index 07ed829..2c55fb8 100644 --- a/src/uniwill_keyboard.h +++ b/src/uniwill_keyboard.h @@ -1214,7 +1214,11 @@ static int uniwill_keyboard_probe(struct platform_device *dev) return 0; } +#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 11, 0) static int uniwill_keyboard_remove(struct platform_device *dev) +#else +static void uniwill_keyboard_remove(struct platform_device *dev) +#endif { if (uw_charging_prio_loaded) sysfs_remove_group(&dev->dev.kobj, &uw_charging_prio_attr_group); @@ -1238,8 +1242,9 @@ static int uniwill_keyboard_remove(struct platform_device *dev) // Disable manual mode uniwill_write_ec_ram(0x0741, 0x00); - +#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 11, 0) return 0; +#endif } static int uniwill_keyboard_suspend(struct platform_device *dev, pm_message_t state)