Hi Ricardo, On 10/04/2013 03:49 PM, Ricardo Ribalda Delgado wrote: > A video device opened and streaming in io emulator mode can only stop > streamming if its file descriptor is closed. > > There are some parameters that can only be changed if the device is not > streaming. Also, the power consumption of a device streaming could be > different than one not streaming. > > With this patch a video device opened in io emulator can be stopped on > demand. Why would you want this? If you can call STREAMOFF, why not use stream I/O all the way? That's much more efficient than read() anyway. Unless there is a very good use-case, I don't see a good reason for mixing file I/O with streaming I/O ioctls. Regards, Hans > > Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@xxxxxxxxx> > --- > drivers/media/v4l2-core/videobuf2-core.c | 11 ++++++----- > 1 file changed, 6 insertions(+), 5 deletions(-) > > diff --git a/drivers/media/v4l2-core/videobuf2-core.c b/drivers/media/v4l2-core/videobuf2-core.c > index 9fc4bab..097fba8 100644 > --- a/drivers/media/v4l2-core/videobuf2-core.c > +++ b/drivers/media/v4l2-core/videobuf2-core.c > @@ -1686,6 +1686,7 @@ int vb2_streamon(struct vb2_queue *q, enum v4l2_buf_type type) > } > EXPORT_SYMBOL_GPL(vb2_streamon); > > +static int __vb2_cleanup_fileio(struct vb2_queue *q); > > /** > * vb2_streamoff - stop streaming > @@ -1704,11 +1705,6 @@ EXPORT_SYMBOL_GPL(vb2_streamon); > */ > int vb2_streamoff(struct vb2_queue *q, enum v4l2_buf_type type) > { > - if (q->fileio) { > - dprintk(1, "streamoff: file io in progress\n"); > - return -EBUSY; > - } > - > if (type != q->type) { > dprintk(1, "streamoff: invalid stream type\n"); > return -EINVAL; > @@ -1719,6 +1715,11 @@ int vb2_streamoff(struct vb2_queue *q, enum v4l2_buf_type type) > return -EINVAL; > } > > + if (q->fileio) { > + __vb2_cleanup_fileio(q); > + return 0; > + } > + > /* > * Cancel will pause streaming and remove all buffers from the driver > * and videobuf, effectively returning control over them to userspace. > -- 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