Re: [PATCH] HID: hid-steelseries fix led class build issue

From: Randy Dunlap
Date: Thu May 02 2013 - 17:51:18 EST


On 05/01/13 23:27, Simon Wood wrote:
> 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.

OK, that builds. Thanks.

Missing lines: your Signed-off-by:
and
Reported-by: Randy Dunlap <rdunlap@xxxxxxxxxxxxx>
Acked-by: Randy Dunlap <rdunlap@xxxxxxxxxxxxx>


> ---
> drivers/hid/hid-steelseries.c | 9 ++++++---
> 1 file changed, 6 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/hid/hid-steelseries.c b/drivers/hid/hid-steelseries.c
> index 2ed995c..dbd5e2e 100644
> --- a/drivers/hid/hid-steelseries.c
> +++ b/drivers/hid/hid-steelseries.c
> @@ -19,7 +19,8 @@
> #include "usbhid/usbhid.h"
> #include "hid-ids.h"
>
> -#if defined(CONFIG_LEDS_CLASS) || defined(CONFIG_LEDS_CLASS_MODULE)
> +#if defined(CONFIG_LEDS_CLASS) || \
> + (defined(CONFIG_LEDS_CLASS_MODULE) && defined(CONFIG_HID_STEELSERIES_MODULE))
> #define SRWS1_NUMBER_LEDS 15
> struct steelseries_srws1_data {
> __u16 led_state;
> @@ -108,7 +109,8 @@ static __u8 steelseries_srws1_rdesc_fixed[] = {
> 0xC0 /* End Collection */
> };
>
> -#if defined(CONFIG_LEDS_CLASS) || defined(CONFIG_LEDS_CLASS_MODULE)
> +#if defined(CONFIG_LEDS_CLASS) || \
> + (defined(CONFIG_LEDS_CLASS_MODULE) && defined(CONFIG_HID_STEELSERIES_MODULE))
> static void steelseries_srws1_set_leds(struct hid_device *hdev, __u16 leds)
> {
> struct list_head *report_list = &hdev->report_enum[HID_OUTPUT_REPORT].report_list;
> @@ -371,7 +373,8 @@ MODULE_DEVICE_TABLE(hid, steelseries_srws1_devices);
> static struct hid_driver steelseries_srws1_driver = {
> .name = "steelseries_srws1",
> .id_table = steelseries_srws1_devices,
> -#if defined(CONFIG_LEDS_CLASS) || defined(CONFIG_LEDS_CLASS_MODULE)
> +#if defined(CONFIG_LEDS_CLASS) || \
> + (defined(CONFIG_LEDS_CLASS_MODULE) && defined(CONFIG_HID_STEELSERIES_MODULE))
> .probe = steelseries_srws1_probe,
> .remove = steelseries_srws1_remove,
> #endif
>


--
~Randy
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/