diff options
author | Prabhakar Lad <prabhakar.csengg@gmail.com> | 2014-11-26 17:42:25 -0500 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@osg.samsung.com> | 2014-12-22 11:34:05 -0500 |
commit | 3d0aed38342b42bc532cc16cf4bf57a863f32df3 (patch) | |
tree | 864fe165cc09aaa5f0e3df9097c521d78a18c57d /drivers/media/platform/ti-vpe | |
parent | 2914e72681cdb3f310b0a0d570e9ac17b8c37d0c (diff) |
[media] media: ti-vpe: use vb2_ops_wait_prepare/finish helper
This patch drops driver specific wait_prepare() and
wait_finish() callbacks from vb2_ops and instead uses
the the helpers vb2_ops_wait_prepare/finish() provided
by the vb2 core, the lock member of the queue needs
to be initalized to a mutex so that vb2 helpers
vb2_ops_wait_prepare/finish() can make use of it.
Signed-off-by: Lad, Prabhakar <prabhakar.csengg@gmail.com>
Cc: Kukjin Kim <kgene.kim@samsung.com>
Signed-off-by: Kamil Debski <k.debski@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
Diffstat (limited to 'drivers/media/platform/ti-vpe')
-rw-r--r-- | drivers/media/platform/ti-vpe/vpe.c | 19 |
1 files changed, 5 insertions, 14 deletions
diff --git a/drivers/media/platform/ti-vpe/vpe.c b/drivers/media/platform/ti-vpe/vpe.c index d628d1a7cf9e..968fb63caf94 100644 --- a/drivers/media/platform/ti-vpe/vpe.c +++ b/drivers/media/platform/ti-vpe/vpe.c | |||
@@ -1913,30 +1913,19 @@ static void vpe_buf_queue(struct vb2_buffer *vb) | |||
1913 | v4l2_m2m_buf_queue(ctx->m2m_ctx, vb); | 1913 | v4l2_m2m_buf_queue(ctx->m2m_ctx, vb); |
1914 | } | 1914 | } |
1915 | 1915 | ||
1916 | static void vpe_wait_prepare(struct vb2_queue *q) | ||
1917 | { | ||
1918 | struct vpe_ctx *ctx = vb2_get_drv_priv(q); | ||
1919 | vpe_unlock(ctx); | ||
1920 | } | ||
1921 | |||
1922 | static void vpe_wait_finish(struct vb2_queue *q) | ||
1923 | { | ||
1924 | struct vpe_ctx *ctx = vb2_get_drv_priv(q); | ||
1925 | vpe_lock(ctx); | ||
1926 | } | ||
1927 | |||
1928 | static struct vb2_ops vpe_qops = { | 1916 | static struct vb2_ops vpe_qops = { |
1929 | .queue_setup = vpe_queue_setup, | 1917 | .queue_setup = vpe_queue_setup, |
1930 | .buf_prepare = vpe_buf_prepare, | 1918 | .buf_prepare = vpe_buf_prepare, |
1931 | .buf_queue = vpe_buf_queue, | 1919 | .buf_queue = vpe_buf_queue, |
1932 | .wait_prepare = vpe_wait_prepare, | 1920 | .wait_prepare = vb2_ops_wait_prepare, |
1933 | .wait_finish = vpe_wait_finish, | 1921 | .wait_finish = vb2_ops_wait_finish, |
1934 | }; | 1922 | }; |
1935 | 1923 | ||
1936 | static int queue_init(void *priv, struct vb2_queue *src_vq, | 1924 | static int queue_init(void *priv, struct vb2_queue *src_vq, |
1937 | struct vb2_queue *dst_vq) | 1925 | struct vb2_queue *dst_vq) |
1938 | { | 1926 | { |
1939 | struct vpe_ctx *ctx = priv; | 1927 | struct vpe_ctx *ctx = priv; |
1928 | struct vpe_dev *dev = ctx->dev; | ||
1940 | int ret; | 1929 | int ret; |
1941 | 1930 | ||
1942 | memset(src_vq, 0, sizeof(*src_vq)); | 1931 | memset(src_vq, 0, sizeof(*src_vq)); |
@@ -1947,6 +1936,7 @@ static int queue_init(void *priv, struct vb2_queue *src_vq, | |||
1947 | src_vq->ops = &vpe_qops; | 1936 | src_vq->ops = &vpe_qops; |
1948 | src_vq->mem_ops = &vb2_dma_contig_memops; | 1937 | src_vq->mem_ops = &vb2_dma_contig_memops; |
1949 | src_vq->timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_COPY; | 1938 | src_vq->timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_COPY; |
1939 | src_vq->lock = &dev->dev_mutex; | ||
1950 | 1940 | ||
1951 | ret = vb2_queue_init(src_vq); | 1941 | ret = vb2_queue_init(src_vq); |
1952 | if (ret) | 1942 | if (ret) |
@@ -1960,6 +1950,7 @@ static int queue_init(void *priv, struct vb2_queue *src_vq, | |||
1960 | dst_vq->ops = &vpe_qops; | 1950 | dst_vq->ops = &vpe_qops; |
1961 | dst_vq->mem_ops = &vb2_dma_contig_memops; | 1951 | dst_vq->mem_ops = &vb2_dma_contig_memops; |
1962 | dst_vq->timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_COPY; | 1952 | dst_vq->timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_COPY; |
1953 | dst_vq->lock = &dev->dev_mutex; | ||
1963 | 1954 | ||
1964 | return vb2_queue_init(dst_vq); | 1955 | return vb2_queue_init(dst_vq); |
1965 | } | 1956 | } |