Am 19.09.2014 um 18:02 schrieb Mauro Carvalho Chehab: > When both VBI and video are streaming, and video stream is stopped, > a subsequent trial to restart it will fail, because S_FMT will > return -EBUSY. > > That prevents applications like zvbi to work properly. > > Please notice that, while this fix it fully for zvbi, the > best is to get rid of streaming_users and res_get logic as a hole. > > However, this single-line patch is better to be merged at -stable. > > Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx> > > diff --git a/drivers/media/usb/em28xx/em28xx-video.c b/drivers/media/usb/em28xx/em28xx-video.c > index 08569cbccd95..d75e7f82dfb9 100644 > --- a/drivers/media/usb/em28xx/em28xx-video.c > +++ b/drivers/media/usb/em28xx/em28xx-video.c > @@ -1351,7 +1351,7 @@ static int vidioc_s_fmt_vid_cap(struct file *file, void *priv, > struct em28xx *dev = video_drvdata(file); > struct em28xx_v4l2 *v4l2 = dev->v4l2; > > - if (v4l2->streaming_users > 0) > + if (vb2_is_busy(&v4l2->vb_vidq)) Looks dangerous. Are you 100% sure that VIDIOC_S_FMT can have no effect on VBI capturing ? It seems to trigger writes to multiple registers... Regards, Frank > return -EBUSY; > > vidioc_try_fmt_vid_cap(file, priv, f); -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html