diff options
| -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 134be89b15ea..f206398a5d54 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) |
| @@ -286,10 +286,10 @@ static void thingm_remove(struct hid_device *hdev) | |||
| 286 | struct thingm_device *tdev = hid_get_drvdata(hdev); | 286 | struct thingm_device *tdev = hid_get_drvdata(hdev); |
| 287 | int i; | 287 | int i; |
| 288 | 288 | ||
| 289 | hid_hw_stop(hdev); | ||
| 290 | |||
| 289 | for (i = 0; i < tdev->fwinfo->numrgb; ++i) | 291 | for (i = 0; i < tdev->fwinfo->numrgb; ++i) |
| 290 | thingm_remove_rgb(tdev->rgb + i); | 292 | thingm_remove_rgb(tdev->rgb + i); |
| 291 | |||
| 292 | hid_hw_stop(hdev); | ||
| 293 | } | 293 | } |
| 294 | 294 | ||
| 295 | static const struct hid_device_id thingm_table[] = { | 295 | static const struct hid_device_id thingm_table[] = { |
