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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to