summaryrefslogtreecommitdiffstats
path: root/drivers/media
diff options
context:
space:
mode:
authorFrank Schaefer <fschaefer.oss@googlemail.com>2012-12-08 11:31:25 -0300
committerMauro Carvalho Chehab <mchehab@redhat.com>2012-12-22 20:50:59 -0200
commit948a49aa692e12cc33558e407898c467b22bf9b4 (patch)
treeedea818d4d5b2e9d552f12801ecd1106bc0a342f /drivers/media
parent24a6d8497f7e64a8870018ed1ed561755b2075ec (diff)
downloadlinux-948a49aa692e12cc33558e407898c467b22bf9b4.tar.bz2
[media] em28xx: use common function for video and vbi buffer completion
Signed-off-by: Frank Schäfer <fschaefer.oss@googlemail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media')
-rw-r--r--drivers/media/usb/em28xx/em28xx-video.c34
1 files changed, 5 insertions, 29 deletions
diff --git a/drivers/media/usb/em28xx/em28xx-video.c b/drivers/media/usb/em28xx/em28xx-video.c
index db27499ecaa2..f9f24215b56c 100644
--- a/drivers/media/usb/em28xx/em28xx-video.c
+++ b/drivers/media/usb/em28xx/em28xx-video.c
@@ -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)