Hi all,
I was wondering how acceptable is to requeue a buffer in a dqbuf call
if the videbuf_dqbuf returns error?
See, here's our current omap3 camera dqbuf function code:
static int vidioc_dqbuf(struct file *file, void *fh, struct v4l2_buffer *b)
{
struct omap34xxcam_fh *ofh = fh;
int rval;
videobuf_dqbuf_again:
rval = videobuf_dqbuf(&ofh->vbq, b, file->f_flags & O_NONBLOCK);
/*
* This is a hack. We don't want to show -EIO to the user
* space. Requeue the buffer and try again if we're not doing
* this in non-blocking mode.
*/
if (rval == -EIO) {
videobuf_qbuf(&ofh->vbq, b);
if (!(file->f_flags & O_NONBLOCK))
goto videobuf_dqbuf_again;
/*
* We don't have a videobuf_buffer now --- maybe next
* time...
*/
rval = -EAGAIN;
}
return rval;
}
Is anything wrong with doing this? Or perhaphs something better to do?
Regards,
Sergio--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html