diff options
author | Hans Verkuil <hverkuil@xs4all.nl> | 2015-03-13 10:41:39 -0300 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@osg.samsung.com> | 2015-04-02 18:28:59 -0300 |
commit | 8a55ddd94c3a763f701f003fd56e39f7c317063d (patch) | |
tree | a8044d562eb4abe603318a3e61eb3e7ce6c5b83b /drivers/media/usb/au0828/au0828-video.c | |
parent | ba445432e384f86c1d8a4bff4b6f9ebc19d1b19c (diff) | |
download | blackbird-obmc-linux-8a55ddd94c3a763f701f003fd56e39f7c317063d.tar.gz blackbird-obmc-linux-8a55ddd94c3a763f701f003fd56e39f7c317063d.zip |
[media] au0828: fix broken streaming
Commit c5036d61e0bed3f4f51391a145638b426825e69c ("media: au0828: drop
vbi_buffer_filled() and re-use buffer_filled()") broke video and vbi streaming.
The vb2_buffer struct was copied instead of taking a pointer to it, but
vb2_buffer_done() needs the real object, not a copy, since it is hooking
the buffer into a different list.
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
Diffstat (limited to 'drivers/media/usb/au0828/au0828-video.c')
-rw-r--r-- | drivers/media/usb/au0828/au0828-video.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/drivers/media/usb/au0828/au0828-video.c b/drivers/media/usb/au0828/au0828-video.c index bf990a931d4e..1a362a041ab3 100644 --- a/drivers/media/usb/au0828/au0828-video.c +++ b/drivers/media/usb/au0828/au0828-video.c @@ -302,20 +302,20 @@ static inline void buffer_filled(struct au0828_dev *dev, struct au0828_dmaqueue *dma_q, struct au0828_buffer *buf) { - struct vb2_buffer vb = buf->vb; - struct vb2_queue *q = vb.vb2_queue; + struct vb2_buffer *vb = &buf->vb; + struct vb2_queue *q = vb->vb2_queue; /* Advice that buffer was filled */ au0828_isocdbg("[%p/%d] wakeup\n", buf, buf->top_field); if (q->type == V4L2_BUF_TYPE_VIDEO_CAPTURE) - vb.v4l2_buf.sequence = dev->frame_count++; + vb->v4l2_buf.sequence = dev->frame_count++; else - vb.v4l2_buf.sequence = dev->vbi_frame_count++; + vb->v4l2_buf.sequence = dev->vbi_frame_count++; - vb.v4l2_buf.field = V4L2_FIELD_INTERLACED; - v4l2_get_timestamp(&vb.v4l2_buf.timestamp); - vb2_buffer_done(&vb, VB2_BUF_STATE_DONE); + vb->v4l2_buf.field = V4L2_FIELD_INTERLACED; + v4l2_get_timestamp(&vb->v4l2_buf.timestamp); + vb2_buffer_done(vb, VB2_BUF_STATE_DONE); } /* |