diff options
Diffstat (limited to 'drivers/hid/hid-thingm.c')
-rw-r--r-- | drivers/hid/hid-thingm.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/hid/hid-thingm.c b/drivers/hid/hid-thingm.c index f91f97144ace..b95d3978c272 100644 --- a/drivers/hid/hid-thingm.c +++ b/drivers/hid/hid-thingm.c | |||
@@ -208,10 +208,10 @@ unregister_red: | |||
208 | 208 | ||
209 | static void thingm_remove_rgb(struct thingm_rgb *rgb) | 209 | static void thingm_remove_rgb(struct thingm_rgb *rgb) |
210 | { | 210 | { |
211 | flush_work(&rgb->work); | ||
212 | led_classdev_unregister(&rgb->red.ldev); | 211 | led_classdev_unregister(&rgb->red.ldev); |
213 | led_classdev_unregister(&rgb->green.ldev); | 212 | led_classdev_unregister(&rgb->green.ldev); |
214 | led_classdev_unregister(&rgb->blue.ldev); | 213 | led_classdev_unregister(&rgb->blue.ldev); |
214 | flush_work(&rgb->work); | ||
215 | } | 215 | } |
216 | 216 | ||
217 | static int thingm_probe(struct hid_device *hdev, const struct hid_device_id *id) | 217 | static int thingm_probe(struct hid_device *hdev, const struct hid_device_id *id) |
@@ -287,10 +287,10 @@ static void thingm_remove(struct hid_device *hdev) | |||
287 | struct thingm_device *tdev = hid_get_drvdata(hdev); | 287 | struct thingm_device *tdev = hid_get_drvdata(hdev); |
288 | int i; | 288 | int i; |
289 | 289 | ||
290 | hid_hw_stop(hdev); | ||
291 | |||
290 | for (i = 0; i < tdev->fwinfo->numrgb; ++i) | 292 | for (i = 0; i < tdev->fwinfo->numrgb; ++i) |
291 | thingm_remove_rgb(tdev->rgb + i); | 293 | thingm_remove_rgb(tdev->rgb + i); |
292 | |||
293 | hid_hw_stop(hdev); | ||
294 | } | 294 | } |
295 | 295 | ||
296 | static const struct hid_device_id thingm_table[] = { | 296 | static const struct hid_device_id thingm_table[] = { |