aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/usb/stk1160/stk1160-v4l.c
diff options
context:
space:
mode:
authorJunghak Sung <jh1009.sung@samsung.com>2015-09-22 09:30:30 -0400
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>2015-10-01 08:04:43 -0400
commit2d7007153f0c9b1dd00c01894df7d26ddc32b79f (patch)
tree8320f9d22f45dd7dcea64088b50ff706bb0082b2 /drivers/media/usb/stk1160/stk1160-v4l.c
parentc139990e842d550db2f59bd4f5993bba90f140e0 (diff)
[media] media: videobuf2: Restructure vb2_buffer
Remove v4l2 stuff - v4l2_buf, v4l2_plane - from struct vb2_buffer. Add new member variables - bytesused, length, offset, userptr, fd, data_offset - to struct vb2_plane in order to cover all information of v4l2_plane. struct vb2_plane { <snip> unsigned int bytesused; unsigned int length; union { unsigned int offset; unsigned long userptr; int fd; } m; unsigned int data_offset; } Replace v4l2_buf with new member variables - index, type, memory - which are common fields for buffer management. struct vb2_buffer { <snip> unsigned int index; unsigned int type; unsigned int memory; unsigned int num_planes; struct vb2_plane planes[VIDEO_MAX_PLANES]; <snip> }; v4l2 specific fields - flags, field, timestamp, timecode, sequence - are moved to vb2_v4l2_buffer in videobuf2-v4l2.c struct vb2_v4l2_buffer { struct vb2_buffer vb2_buf; __u32 flags; __u32 field; struct timeval timestamp; struct v4l2_timecode timecode; __u32 sequence; }; Signed-off-by: Junghak Sung <jh1009.sung@samsung.com> Signed-off-by: Geunyoung Kim <nenggun.kim@samsung.com> Acked-by: Seung-Woo Kim <sw0312.kim@samsung.com> Acked-by: Inki Dae <inki.dae@samsung.com> 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/stk1160/stk1160-v4l.c')
-rw-r--r--drivers/media/usb/stk1160/stk1160-v4l.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/drivers/media/usb/stk1160/stk1160-v4l.c b/drivers/media/usb/stk1160/stk1160-v4l.c
index e12b10352871..10e35e6479ad 100644
--- a/drivers/media/usb/stk1160/stk1160-v4l.c
+++ b/drivers/media/usb/stk1160/stk1160-v4l.c
@@ -695,8 +695,9 @@ static void buffer_queue(struct vb2_buffer *vb)
695{ 695{
696 unsigned long flags; 696 unsigned long flags;
697 struct stk1160 *dev = vb2_get_drv_priv(vb->vb2_queue); 697 struct stk1160 *dev = vb2_get_drv_priv(vb->vb2_queue);
698 struct vb2_v4l2_buffer *vbuf = to_vb2_v4l2_buffer(vb);
698 struct stk1160_buffer *buf = 699 struct stk1160_buffer *buf =
699 container_of(vb, struct stk1160_buffer, vb); 700 container_of(vbuf, struct stk1160_buffer, vb);
700 701
701 spin_lock_irqsave(&dev->buf_lock, flags); 702 spin_lock_irqsave(&dev->buf_lock, flags);
702 if (!dev->udev) { 703 if (!dev->udev) {
@@ -704,7 +705,7 @@ static void buffer_queue(struct vb2_buffer *vb)
704 * If the device is disconnected return the buffer to userspace 705 * If the device is disconnected return the buffer to userspace
705 * directly. The next QBUF call will fail with -ENODEV. 706 * directly. The next QBUF call will fail with -ENODEV.
706 */ 707 */
707 vb2_buffer_done(&buf->vb, VB2_BUF_STATE_ERROR); 708 vb2_buffer_done(&buf->vb.vb2_buf, VB2_BUF_STATE_ERROR);
708 } else { 709 } else {
709 710
710 buf->mem = vb2_plane_vaddr(vb, 0); 711 buf->mem = vb2_plane_vaddr(vb, 0);
@@ -717,7 +718,7 @@ static void buffer_queue(struct vb2_buffer *vb)
717 * the buffer to userspace directly. 718 * the buffer to userspace directly.
718 */ 719 */
719 if (buf->length < dev->width * dev->height * 2) 720 if (buf->length < dev->width * dev->height * 2)
720 vb2_buffer_done(&buf->vb, VB2_BUF_STATE_ERROR); 721 vb2_buffer_done(&buf->vb.vb2_buf, VB2_BUF_STATE_ERROR);
721 else 722 else
722 list_add_tail(&buf->list, &dev->avail_bufs); 723 list_add_tail(&buf->list, &dev->avail_bufs);
723 724
@@ -769,9 +770,9 @@ void stk1160_clear_queue(struct stk1160 *dev)
769 buf = list_first_entry(&dev->avail_bufs, 770 buf = list_first_entry(&dev->avail_bufs,
770 struct stk1160_buffer, list); 771 struct stk1160_buffer, list);
771 list_del(&buf->list); 772 list_del(&buf->list);
772 vb2_buffer_done(&buf->vb, VB2_BUF_STATE_ERROR); 773 vb2_buffer_done(&buf->vb.vb2_buf, VB2_BUF_STATE_ERROR);
773 stk1160_dbg("buffer [%p/%d] aborted\n", 774 stk1160_dbg("buffer [%p/%d] aborted\n",
774 buf, buf->vb.v4l2_buf.index); 775 buf, buf->vb.vb2_buf.index);
775 } 776 }
776 777
777 /* It's important to release the current buffer */ 778 /* It's important to release the current buffer */
@@ -779,9 +780,9 @@ void stk1160_clear_queue(struct stk1160 *dev)
779 buf = dev->isoc_ctl.buf; 780 buf = dev->isoc_ctl.buf;
780 dev->isoc_ctl.buf = NULL; 781 dev->isoc_ctl.buf = NULL;
781 782
782 vb2_buffer_done(&buf->vb, VB2_BUF_STATE_ERROR); 783 vb2_buffer_done(&buf->vb.vb2_buf, VB2_BUF_STATE_ERROR);
783 stk1160_dbg("buffer [%p/%d] aborted\n", 784 stk1160_dbg("buffer [%p/%d] aborted\n",
784 buf, buf->vb.v4l2_buf.index); 785 buf, buf->vb.vb2_buf.index);
785 } 786 }
786 spin_unlock_irqrestore(&dev->buf_lock, flags); 787 spin_unlock_irqrestore(&dev->buf_lock, flags);
787} 788}