]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
HID: hid-lenovo-go: fix LEDS dependencies
authorArnd Bergmann <arnd@arndb.de>
Tue, 24 Mar 2026 19:20:28 +0000 (20:20 +0100)
committerJiri Kosina <jkosina@suse.com>
Fri, 27 Mar 2026 10:54:08 +0000 (11:54 +0100)
The newly added hid-lenovo-go and hid-lenovo-go-s drivers attempt to
'select LEDS_CLASS', which has a dependency on NEW_LEDS, causing a build
failure when NEW_LEDS itself it disabled:

WARNING: unmet direct dependencies detected for LEDS_CLASS
  Depends on [n]: NEW_LEDS [=n]
  Selected by [m]:
  - HID_LENOVO_GO [=m] && HID_SUPPORT [=y] && HID [=m] && USB_HID [=m]
  - HID_LENOVO_GO_S [=m] && HID_SUPPORT [=y] && HID [=m] && USB_HID [=m]

WARNING: unmet direct dependencies detected for LEDS_CLASS_MULTICOLOR
  Depends on [n]: NEW_LEDS [=n] && LEDS_CLASS [=m]
  Selected by [m]:
  - HID_LENOVO_GO [=m] && HID_SUPPORT [=y] && HID [=m] && USB_HID [=m]
  - HID_LENOVO_GO_S [=m] && HID_SUPPORT [=y] && HID [=m] && USB_HID [=m]
ERROR: modpost: "led_set_brightness_nopm" [drivers/leds/led-class.ko] undefined!
ERROR: modpost: "led_set_brightness" [drivers/leds/led-class.ko] undefined!
ERROR: modpost: "led_get_color_name" [drivers/leds/led-class-multicolor.ko] undefined!
ERROR: modpost: "led_set_brightness" [drivers/leds/led-class-multicolor.ko] undefined!

Device drivers generally should not select other subsystems like this, as
that tends to cause dependency problems including loops in the dependency
graph.

Change these two and the older hid-lenovo driver to behave the same way as all
other HID drivers and use 'depends on LEDS_CLASS' or 'depends on LEDS_CLASS_MULTICOLOR'
instead, which itself has NEW_LEDS and LEDS_CLASS as dependencies.

Fixes: a23f3497bf20 ("HID: hid-lenovo-go-s: Add Lenovo Legion Go S Series HID Driver")
Fixes: d69ccfcbc955 ("HID: hid-lenovo-go: Add Lenovo Legion Go Series HID Driver")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Reviewed-by: Mark Pearson <mpearson-lenovo@squebb.ca>
Signed-off-by: Jiri Kosina <jkosina@suse.com>
drivers/hid/Kconfig

index 10c12d8e65579b4728da854ebfbe0f874f7c4b1c..f658ed0168ea01a4cf71a0743288eddacbf8b378 100644 (file)
@@ -610,8 +610,7 @@ config HID_LED
 
 config HID_LENOVO
        tristate "Lenovo / Thinkpad devices"
-       select NEW_LEDS
-       select LEDS_CLASS
+       depends on LEDS_CLASS
        help
        Support for IBM/Lenovo devices that are not fully compliant with HID standard.
 
@@ -626,8 +625,7 @@ config HID_LENOVO
 config HID_LENOVO_GO
        tristate "HID Driver for Lenovo Legion Go Series Controllers"
        depends on USB_HID
-       select LEDS_CLASS
-       select LEDS_CLASS_MULTICOLOR
+       depends on LEDS_CLASS_MULTICOLOR
        help
        Support for Lenovo Legion Go devices with detachable controllers.
 
@@ -638,8 +636,7 @@ config HID_LENOVO_GO
 config HID_LENOVO_GO_S
        tristate "HID Driver for Lenovo Legion Go S Controller"
        depends on USB_HID
-       select LEDS_CLASS
-       select LEDS_CLASS_MULTICOLOR
+       depends on LEDS_CLASS_MULTICOLOR
        help
        Support for Lenovo Legion Go S Handheld Console Controller.