forked from Minki/linux
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:
parent
19bc5133da
commit
053fcb6014
@ -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);
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
@ -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--;
|
||||
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user