summaryrefslogtreecommitdiffstats
path: root/drivers/media
diff options
context:
space:
mode:
authorJean-Francois Moine <moinejf@free.fr>2008-09-03 17:12:17 -0300
committerMauro Carvalho Chehab <mchehab@redhat.com>2008-09-03 18:37:37 -0300
commita1e8288b1d80130119692818b46694660f28e03a (patch)
tree188130051e7c5205d45fce5c87f22f3bc9a8f913 /drivers/media
parentde00448f708a2fd705f9c5ccdfa383dbf3dcef92 (diff)
downloadlinux-a1e8288b1d80130119692818b46694660f28e03a.tar.gz
linux-a1e8288b1d80130119692818b46694660f28e03a.tar.bz2
linux-a1e8288b1d80130119692818b46694660f28e03a.zip
V4L/DVB (8824): gspca: Too much code removed in the suspend/resume changeset.
- the stream must stop when the main application closes the device. Signed-off-by: Jean-Francois Moine <moinejf@free.fr> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media')
-rw-r--r--drivers/media/video/gspca/gspca.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/media/video/gspca/gspca.c b/drivers/media/video/gspca/gspca.c
index fe096e76e5c3..42b0b83d0953 100644
--- a/drivers/media/video/gspca/gspca.c
+++ b/drivers/media/video/gspca/gspca.c
@@ -806,6 +806,11 @@ static int dev_close(struct inode *inode, struct file *file)
/* if the file did the capture, free the streaming resources */
if (gspca_dev->capt_file == file) {
+ if (gspca_dev->streaming) {
+ mutex_lock(&gspca_dev->usb_lock);
+ gspca_stream_off(gspca_dev);
+ mutex_unlock(&gspca_dev->usb_lock);
+ }
frame_free(gspca_dev);
gspca_dev->capt_file = NULL;
gspca_dev->memory = GSPCA_MEMORY_NO;