Hi Pavel,

On Thursday 22 April 2010 11:35:35 Pawel Osciak wrote:
> >Laurent Pinchart <laurent.pinch...@ideasonboard.com>
> >On Wednesday 21 April 2010 13:39:44 Pawel Osciak wrote:
> >> @@ -679,23 +682,20 @@ int videobuf_dqbuf(struct videobuf_queue *q,
> >> 
> >>    switch (buf->state) {
> >>    
> >>    case VIDEOBUF_ERROR:
> >>            dprintk(1, "dqbuf: state is error\n");
> >> 
> >> -          retval = -EIO;
> >> -          CALL(q, sync, q, buf);
> >> -          buf->state = VIDEOBUF_IDLE;
> >> 
> >>            break;
> >>    
> >>    case VIDEOBUF_DONE:
> >>            dprintk(1, "dqbuf: state is done\n");
> >> 
> >> -          CALL(q, sync, q, buf);
> >> -          buf->state = VIDEOBUF_IDLE;
> >> 
> >>            break;
> >>    
> >>    default:
> >>            dprintk(1, "dqbuf: state invalid\n");
> >>            retval = -EINVAL;
> >>            goto done;
> >>    
> >>    }
> >> 
> >> -  list_del(&buf->stream);
> >> -  memset(b, 0, sizeof(*b));
> >> +  CALL(q, sync, q, buf);
> >> 
> >>    videobuf_status(q, b, buf, q->type);
> >> 
> >> +  list_del(&buf->stream);
> >> +  buf->state = VIDEOBUF_IDLE;
> >> +  b->flags &= ~V4L2_BUF_FLAG_DONE;
> >
> >We do you clear the done flag here ?
> 
> The DONE flag is supposed to be cleared when dequeuing, but should
> be set when querying:
> 
> "When this flag is set, the buffer is currently on the outgoing queue,
> ready to be dequeued from the driver. Drivers set or clear this flag
> when the VIDIOC_QUERYBUF  ioctl is called. After calling the VIDIOC_QBUF
> or VIDIOC_DQBUF it is always cleared."
> 
> videobuf_status() is used for both QUERYBUF and DQBUF and making both
> work properly is not very straightforward without losing
> VIDEOBUF_DONE/VIDEOBUF_ERROR distinction (it becomes more clear when you
> analyze both cases).
> 
> My previous patch was doing it the other way around, but Hans' version
> seemed shorter and cleaner.

Thanks for pointing this out.

I have no more objection then,

Acked-by: Laurent Pinchart <laurent.pinch...@ideasonboard.com>

-- 
Regards,

Laurent Pinchart
--
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