Re: [PATCH v3 2/3] v4l: videobuf: Add support for V4L2_BUF_FLAG_ERROR

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Pavel,

On Thursday 22 April 2010 11:35:35 Pawel Osciak wrote:
> >Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx>
> >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.pinchart@xxxxxxxxxxxxxxxx>

-- 
Regards,

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

[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux