[media] em28xx: use common function for video and vbi buffer completion
authorFrank Schaefer <fschaefer.oss@googlemail.com>
Sat, 8 Dec 2012 14:31:25 +0000 (11:31 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Sat, 22 Dec 2012 22:50:59 +0000 (20:50 -0200)
Signed-off-by: Frank Schäfer <fschaefer.oss@googlemail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/usb/em28xx/em28xx-video.c

index db27499ecaa233de37a7e1f2db8c4b89b8addff0..f9f24215b56cf6d9f9c685bdcf4dda8e8bd88d8c 100644 (file)
@@ -154,37 +154,15 @@ static struct v4l2_queryctrl ac97_qctrl[] = {
    ------------------------------------------------------------------*/
 
 /*
- * Announces that a buffer were filled and request the next
+ * Finish the current buffer
  */
-static inline void buffer_filled(struct em28xx *dev,
-                                 struct em28xx_dmaqueue *dma_q,
-                                 struct em28xx_buffer *buf)
+static inline void finish_buffer(struct em28xx *dev,
+                                struct em28xx_buffer *buf)
 {
-       /* Advice that buffer was filled */
        em28xx_isocdbg("[%p/%d] wakeup\n", buf, buf->vb.i);
        buf->vb.state = VIDEOBUF_DONE;
        buf->vb.field_count++;
        v4l2_get_timestamp(&buf->vb.ts);
-
-       dev->usb_ctl.vid_buf = NULL;
-
-       list_del(&buf->vb.queue);
-       wake_up(&buf->vb.done);
-}
-
-static inline void vbi_buffer_filled(struct em28xx *dev,
-                                    struct em28xx_dmaqueue *dma_q,
-                                    struct em28xx_buffer *buf)
-{
-       /* Advice that buffer was filled */
-       em28xx_isocdbg("[%p/%d] wakeup\n", buf, buf->vb.i);
-
-       buf->vb.state = VIDEOBUF_DONE;
-       buf->vb.field_count++;
-       v4l2_get_timestamp(&buf->vb.ts);
-
-       dev->usb_ctl.vbi_buf = NULL;
-
        list_del(&buf->vb.queue);
        wake_up(&buf->vb.done);
 }
@@ -485,9 +463,7 @@ static inline int em28xx_urb_data_copy(struct em28xx *dev, struct urb *urb)
                                if (dev->vbi_read == 0 && dev->top_field) {
                                        /* Brand new frame */
                                        if (vbi_buf != NULL)
-                                               vbi_buffer_filled(dev,
-                                                                 vbi_dma_q,
-                                                                 vbi_buf);
+                                               finish_buffer(dev, vbi_buf);
                                        vbi_buf = get_next_buf(dev, vbi_dma_q);
                                        dev->usb_ctl.vbi_buf = vbi_buf;
                                        if (vbi_buf == NULL)
@@ -524,7 +500,7 @@ static inline int em28xx_urb_data_copy(struct em28xx *dev, struct urb *urb)
                        dev->capture_type = 2;
                        if (dev->progressive || dev->top_field) {
                                if (buf != NULL)
-                                       buffer_filled(dev, dma_q, buf);
+                                       finish_buffer(dev, buf);
                                buf = get_next_buf(dev, dma_q);
                                dev->usb_ctl.vid_buf = buf;
                                if (buf == NULL)