diff options
Diffstat (limited to 'drivers/media/video/cx231xx/cx231xx-cards.c')
-rw-r--r-- | drivers/media/video/cx231xx/cx231xx-cards.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/drivers/media/video/cx231xx/cx231xx-cards.c b/drivers/media/video/cx231xx/cx231xx-cards.c index 1f2fbbfebc76..7577e6e50136 100644 --- a/drivers/media/video/cx231xx/cx231xx-cards.c +++ b/drivers/media/video/cx231xx/cx231xx-cards.c | |||
@@ -1337,6 +1337,8 @@ static void cx231xx_usb_disconnect(struct usb_interface *interface) | |||
1337 | if (!dev->udev) | 1337 | if (!dev->udev) |
1338 | return; | 1338 | return; |
1339 | 1339 | ||
1340 | dev->state |= DEV_DISCONNECTED; | ||
1341 | |||
1340 | flush_request_modules(dev); | 1342 | flush_request_modules(dev); |
1341 | 1343 | ||
1342 | /* wait until all current v4l2 io is finished then deallocate | 1344 | /* wait until all current v4l2 io is finished then deallocate |
@@ -1354,16 +1356,13 @@ static void cx231xx_usb_disconnect(struct usb_interface *interface) | |||
1354 | /* Even having users, it is safe to remove the RC i2c driver */ | 1356 | /* Even having users, it is safe to remove the RC i2c driver */ |
1355 | cx231xx_ir_exit(dev); | 1357 | cx231xx_ir_exit(dev); |
1356 | 1358 | ||
1357 | dev->state |= DEV_MISCONFIGURED; | ||
1358 | if (dev->USE_ISO) | 1359 | if (dev->USE_ISO) |
1359 | cx231xx_uninit_isoc(dev); | 1360 | cx231xx_uninit_isoc(dev); |
1360 | else | 1361 | else |
1361 | cx231xx_uninit_bulk(dev); | 1362 | cx231xx_uninit_bulk(dev); |
1362 | dev->state |= DEV_DISCONNECTED; | ||
1363 | wake_up_interruptible(&dev->wait_frame); | 1363 | wake_up_interruptible(&dev->wait_frame); |
1364 | wake_up_interruptible(&dev->wait_stream); | 1364 | wake_up_interruptible(&dev->wait_stream); |
1365 | } else { | 1365 | } else { |
1366 | dev->state |= DEV_DISCONNECTED; | ||
1367 | } | 1366 | } |
1368 | 1367 | ||
1369 | cx231xx_close_extension(dev); | 1368 | cx231xx_close_extension(dev); |