Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

HID: hid-steelseries fix led class build issue

Fixes 'undefined reference' issue when hid-steelseries is built in,
but led-class is a module.
--
drivers/built-in.o: In function `steelseries_srws1_remove':
hid-steelseries.c:(.text+0x3b97a1): undefined reference to `led_classdev_unregister'
drivers/built-in.o: In function `steelseries_srws1_probe':
hid-steelseries.c:(.text+0x3b9c51): undefined reference to `led_classdev_register'
hid-steelseries.c:(.text+0x3b9ce5): undefined reference to `led_classdev_register'
hid-steelseries.c:(.text+0x3b9d4b): undefined reference to `led_classdev_unregister'
--

Patch allows LED control when led-class is built in, or both hid-steelseries
_and_ led-class are both modules.

Reported-by: Randy Dunlap <rdunlap@infradead.org>
Signed-off-by: Simon Wood <simon@mungewell.org>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>

authored by

Simon Wood and committed by
Jiri Kosina
b52b5061 c1e0ac19

+6 -3
+6 -3
drivers/hid/hid-steelseries.c
··· 18 18 19 19 #include "hid-ids.h" 20 20 21 - #if defined(CONFIG_LEDS_CLASS) || defined(CONFIG_LEDS_CLASS_MODULE) 21 + #if IS_BUILTIN(CONFIG_LEDS_CLASS) || \ 22 + (IS_MODULE(CONFIG_LEDS_CLASS) && IS_MODULE(CONFIG_HID_STEELSERIES)) 22 23 #define SRWS1_NUMBER_LEDS 15 23 24 struct steelseries_srws1_data { 24 25 __u16 led_state; ··· 108 107 0xC0 /* End Collection */ 109 108 }; 110 109 111 - #if defined(CONFIG_LEDS_CLASS) || defined(CONFIG_LEDS_CLASS_MODULE) 110 + #if IS_BUILTIN(CONFIG_LEDS_CLASS) || \ 111 + (IS_MODULE(CONFIG_LEDS_CLASS) && IS_MODULE(CONFIG_HID_STEELSERIES)) 112 112 static void steelseries_srws1_set_leds(struct hid_device *hdev, __u16 leds) 113 113 { 114 114 struct list_head *report_list = &hdev->report_enum[HID_OUTPUT_REPORT].report_list; ··· 372 370 static struct hid_driver steelseries_srws1_driver = { 373 371 .name = "steelseries_srws1", 374 372 .id_table = steelseries_srws1_devices, 375 - #if defined(CONFIG_LEDS_CLASS) || defined(CONFIG_LEDS_CLASS_MODULE) 373 + #if IS_BUILTIN(CONFIG_LEDS_CLASS) || \ 374 + (IS_MODULE(CONFIG_LEDS_CLASS) && IS_MODULE(CONFIG_HID_STEELSERIES)) 376 375 .probe = steelseries_srws1_probe, 377 376 .remove = steelseries_srws1_remove, 378 377 #endif