Loading drivers/hid/hid-thingm.c +8 −38 Original line number Diff line number Diff line Loading @@ -159,7 +159,8 @@ static int thingm_init_rgb(struct thingm_rgb *rgb) rgb->red.ldev.brightness_set_blocking = thingm_led_set; rgb->red.rgb = rgb; err = led_classdev_register(&rgb->tdev->hdev->dev, &rgb->red.ldev); err = devm_led_classdev_register(&rgb->tdev->hdev->dev, &rgb->red.ldev); if (err) return err; Loading @@ -171,9 +172,10 @@ static int thingm_init_rgb(struct thingm_rgb *rgb) rgb->green.ldev.brightness_set_blocking = thingm_led_set; rgb->green.rgb = rgb; err = led_classdev_register(&rgb->tdev->hdev->dev, &rgb->green.ldev); err = devm_led_classdev_register(&rgb->tdev->hdev->dev, &rgb->green.ldev); if (err) goto unregister_red; return err; /* Register the blue diode */ snprintf(rgb->blue.name, sizeof(rgb->blue.name), Loading @@ -183,28 +185,11 @@ static int thingm_init_rgb(struct thingm_rgb *rgb) rgb->blue.ldev.brightness_set_blocking = thingm_led_set; rgb->blue.rgb = rgb; err = led_classdev_register(&rgb->tdev->hdev->dev, &rgb->blue.ldev); if (err) goto unregister_green; return 0; unregister_green: led_classdev_unregister(&rgb->green.ldev); unregister_red: led_classdev_unregister(&rgb->red.ldev); err = devm_led_classdev_register(&rgb->tdev->hdev->dev, &rgb->blue.ldev); return err; } static void thingm_remove_rgb(struct thingm_rgb *rgb) { led_classdev_unregister(&rgb->red.ldev); led_classdev_unregister(&rgb->green.ldev); led_classdev_unregister(&rgb->blue.ldev); } static int thingm_probe(struct hid_device *hdev, const struct hid_device_id *id) { struct thingm_device *tdev; Loading Loading @@ -259,12 +244,9 @@ static int thingm_probe(struct hid_device *hdev, const struct hid_device_id *id) rgb->tdev = tdev; rgb->num = tdev->fwinfo->first + i; err = thingm_init_rgb(rgb); if (err) { while (--i >= 0) thingm_remove_rgb(tdev->rgb + i); if (err) goto stop; } } return 0; stop: Loading @@ -273,17 +255,6 @@ error: return err; } static void thingm_remove(struct hid_device *hdev) { struct thingm_device *tdev = hid_get_drvdata(hdev); int i; hid_hw_stop(hdev); for (i = 0; i < tdev->fwinfo->numrgb; ++i) thingm_remove_rgb(tdev->rgb + i); } static const struct hid_device_id thingm_table[] = { { HID_USB_DEVICE(USB_VENDOR_ID_THINGM, USB_DEVICE_ID_BLINK1) }, { } Loading @@ -293,7 +264,6 @@ MODULE_DEVICE_TABLE(hid, thingm_table); static struct hid_driver thingm_driver = { .name = "thingm", .probe = thingm_probe, .remove = thingm_remove, .id_table = thingm_table, }; Loading Loading
drivers/hid/hid-thingm.c +8 −38 Original line number Diff line number Diff line Loading @@ -159,7 +159,8 @@ static int thingm_init_rgb(struct thingm_rgb *rgb) rgb->red.ldev.brightness_set_blocking = thingm_led_set; rgb->red.rgb = rgb; err = led_classdev_register(&rgb->tdev->hdev->dev, &rgb->red.ldev); err = devm_led_classdev_register(&rgb->tdev->hdev->dev, &rgb->red.ldev); if (err) return err; Loading @@ -171,9 +172,10 @@ static int thingm_init_rgb(struct thingm_rgb *rgb) rgb->green.ldev.brightness_set_blocking = thingm_led_set; rgb->green.rgb = rgb; err = led_classdev_register(&rgb->tdev->hdev->dev, &rgb->green.ldev); err = devm_led_classdev_register(&rgb->tdev->hdev->dev, &rgb->green.ldev); if (err) goto unregister_red; return err; /* Register the blue diode */ snprintf(rgb->blue.name, sizeof(rgb->blue.name), Loading @@ -183,28 +185,11 @@ static int thingm_init_rgb(struct thingm_rgb *rgb) rgb->blue.ldev.brightness_set_blocking = thingm_led_set; rgb->blue.rgb = rgb; err = led_classdev_register(&rgb->tdev->hdev->dev, &rgb->blue.ldev); if (err) goto unregister_green; return 0; unregister_green: led_classdev_unregister(&rgb->green.ldev); unregister_red: led_classdev_unregister(&rgb->red.ldev); err = devm_led_classdev_register(&rgb->tdev->hdev->dev, &rgb->blue.ldev); return err; } static void thingm_remove_rgb(struct thingm_rgb *rgb) { led_classdev_unregister(&rgb->red.ldev); led_classdev_unregister(&rgb->green.ldev); led_classdev_unregister(&rgb->blue.ldev); } static int thingm_probe(struct hid_device *hdev, const struct hid_device_id *id) { struct thingm_device *tdev; Loading Loading @@ -259,12 +244,9 @@ static int thingm_probe(struct hid_device *hdev, const struct hid_device_id *id) rgb->tdev = tdev; rgb->num = tdev->fwinfo->first + i; err = thingm_init_rgb(rgb); if (err) { while (--i >= 0) thingm_remove_rgb(tdev->rgb + i); if (err) goto stop; } } return 0; stop: Loading @@ -273,17 +255,6 @@ error: return err; } static void thingm_remove(struct hid_device *hdev) { struct thingm_device *tdev = hid_get_drvdata(hdev); int i; hid_hw_stop(hdev); for (i = 0; i < tdev->fwinfo->numrgb; ++i) thingm_remove_rgb(tdev->rgb + i); } static const struct hid_device_id thingm_table[] = { { HID_USB_DEVICE(USB_VENDOR_ID_THINGM, USB_DEVICE_ID_BLINK1) }, { } Loading @@ -293,7 +264,6 @@ MODULE_DEVICE_TABLE(hid, thingm_table); static struct hid_driver thingm_driver = { .name = "thingm", .probe = thingm_probe, .remove = thingm_remove, .id_table = thingm_table, }; Loading