V4L/DVB (6602): V4L: Convert videobuf drivers to videobuf_stop

Drivers were using cookie cutter code for stopping the read/stream.  Use the
new videobuf_stop function which is lock safe.

Signed-off-by: Brandon Philips <bphilips@suse.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
This commit is contained in:
Brandon Philips 2007-11-13 20:11:26 -03:00 committed by Mauro Carvalho Chehab
parent 19bc5133da
commit 053fcb6014
6 changed files with 6 additions and 20 deletions

View File

@ -3827,10 +3827,7 @@ static int bttv_release(struct inode *inode, struct file *file)
/* stop vbi capture */
if (check_btres(fh, RESOURCE_VBI)) {
if (fh->vbi.streaming)
videobuf_streamoff(&fh->vbi);
if (fh->vbi.reading)
videobuf_read_stop(&fh->vbi);
videobuf_stop(&fh->vbi);
free_btres(btv,fh,RESOURCE_VBI);
}

View File

@ -1085,10 +1085,7 @@ static int mpeg_release(struct inode *inode, struct file *file)
cx8802_cancel_buffers(fh->dev);
/* stop mpeg capture */
if (fh->mpegq.streaming)
videobuf_streamoff(&fh->mpegq);
if (fh->mpegq.reading)
videobuf_read_stop(&fh->mpegq);
videobuf_stop(&fh->mpegq);
videobuf_mmap_free(&fh->mpegq);
file->private_data = NULL;

View File

@ -851,10 +851,7 @@ static int video_release(struct inode *inode, struct file *file)
/* stop vbi capture */
if (res_check(fh, RESOURCE_VBI)) {
if (fh->vbiq.streaming)
videobuf_streamoff(&fh->vbiq);
if (fh->vbiq.reading)
videobuf_read_stop(&fh->vbiq);
videobuf_stop(&fh->vbiq);
res_free(dev,fh,RESOURCE_VBI);
}

View File

@ -110,11 +110,8 @@ static int ts_release(struct inode *inode, struct file *file)
{
struct saa7134_dev *dev = file->private_data;
if (dev->empress_tsq.streaming)
videobuf_streamoff(&dev->empress_tsq);
mutex_lock(&dev->empress_tsq.lock);
if (dev->empress_tsq.reading)
videobuf_read_stop(&dev->empress_tsq);
videobuf_stop(&dev->empress_tsq);
videobuf_mmap_free(&dev->empress_tsq);
dev->empress_users--;

View File

@ -1445,10 +1445,7 @@ static int video_release(struct inode *inode, struct file *file)
/* stop vbi capture */
if (res_check(fh, RESOURCE_VBI)) {
if (fh->vbi.streaming)
videobuf_streamoff(&fh->vbi);
if (fh->vbi.reading)
videobuf_read_stop(&fh->vbi);
videobuf_stop(&fh->vbi);
res_free(dev,fh,RESOURCE_VBI);
}

View File

@ -1076,6 +1076,7 @@ static int vivi_release(struct inode *inode, struct file *file)
int minor = iminor(inode);
vivi_stop_thread(vidq);
videobuf_stop(&fh->vb_vidq);
videobuf_mmap_free(&fh->vb_vidq);
kfree (fh);