diff options
Diffstat (limited to 'linux/drivers/media/common/saa7146_video.c')
-rw-r--r-- | linux/drivers/media/common/saa7146_video.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/linux/drivers/media/common/saa7146_video.c b/linux/drivers/media/common/saa7146_video.c index c0f805907..01a11997a 100644 --- a/linux/drivers/media/common/saa7146_video.c +++ b/linux/drivers/media/common/saa7146_video.c @@ -116,7 +116,7 @@ static int try_win(struct saa7146_dev *dev, struct v4l2_window *win) DEB_D(("no fb fmt set.\n")); return -EINVAL; } - if (win->w.width < 64 || win->w.height < 64) { + if (win->w.width < 48 || win->w.height < 32) { DEB_D(("min width/height. (%d,%d)\n",win->w.width,win->w.height)); return -EINVAL; } @@ -735,6 +735,9 @@ static int video_end(struct saa7146_fh *fh) saa7146_write(dev, MC1, 0x00700000); vv->streaming = NULL; + + videobuf_queue_cancel(file,&fh->video_q); + spin_unlock_irqrestore(&dev->slock, flags); return 0; @@ -1171,8 +1174,8 @@ static int buffer_prepare(struct file *file, struct videobuf_buffer *vb, enum v4 DEB_CAP(("vbuf:%p\n",vb)); /* sanity checks */ - if (fh->video_fmt.width < 64 || - fh->video_fmt.height < 64 || + if (fh->video_fmt.width < 48 || + fh->video_fmt.height < 32 || fh->video_fmt.width > vv->standard->h_max_out || fh->video_fmt.height > vv->standard->v_max_out) { DEB_D(("w (%d) / h (%d) out of bounds.\n",fh->video_fmt.width,fh->video_fmt.height)); @@ -1349,8 +1352,6 @@ static void video_close(struct saa7146_dev *dev, struct saa7146_fh *fh, struct f if( fh == vv->streaming ) { video_end(fh); } - - videobuf_queue_cancel(file,&fh->video_q); } |