@@ -1762,6 +1762,8 @@ static void __vb2_dqbuf(struct vb2_buffer *vb)
if (vb->state == VB2_BUF_STATE_DEQUEUED)
return;
+ call_vb_qop(vb, buf_finish, vb);
+
vb->state = VB2_BUF_STATE_DEQUEUED;
/* unmap DMABUF buffer */
@@ -1787,12 +1789,6 @@ static int vb2_internal_dqbuf(struct vb2_queue *q, struct v4l2_buffer *b, bool n
if (ret < 0)
return ret;
- ret = call_vb_qop(vb, buf_finish, vb);
- if (ret) {
- dprintk(1, "dqbuf: buffer finish failed\n");
- return ret;
- }
-
switch (vb->state) {
case VB2_BUF_STATE_DONE:
dprintk(3, "dqbuf: Returning done buffer\n");