diff options
author | Mauro Carvalho Chehab <mchehab@redhat.com> | 2012-12-11 08:28:37 -0500 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2012-12-11 08:28:37 -0500 |
commit | 77c53d0b56264a8fc5844e087ad15fffe20c299d (patch) | |
tree | 61925f42355feabc010c53172212742ec3651d4f /drivers/media/platform/s5p-mfc | |
parent | 9374020a78fce13a1cf2edf3d26f6dd7231b5c3d (diff) | |
parent | d8658bca2e5696df2b6c69bc5538f8fe54e4a01e (diff) |
Merge branch 'for_3.8-rc1' into v4l_for_linus
* for_3.8-rc1: (243 commits)
[media] omap3isp: Replace cpu_is_omap3630() with ISP revision check
[media] omap3isp: Prepare/unprepare clocks before/after enable/disable
[media] omap3isp: preview: Add support for 8-bit formats at the sink pad
[media] omap3isp: Replace printk with dev_*
[media] omap3isp: Find source pad from external entity
[media] omap3isp: Configure CSI-2 phy based on platform data
[media] omap3isp: Add PHY routing configuration
[media] omap3isp: Add CSI configuration registers from control block to ISP resources
[media] omap3isp: Remove unneeded module memory address definitions
[media] omap3isp: Use monotonic timestamps for statistics buffers
[media] uvcvideo: Fix control value clamping for unsigned integer controls
[media] uvcvideo: Mark first output terminal as default video node
[media] uvcvideo: Add VIDIOC_[GS]_PRIORITY support
[media] uvcvideo: Return -ENOTTY for unsupported ioctls
[media] uvcvideo: Set device_caps in VIDIOC_QUERYCAP
[media] uvcvideo: Don't fail when an unsupported format is requested
[media] uvcvideo: Return -EACCES when trying to access a read/write-only control
[media] uvcvideo: Set error_idx properly for extended controls API failures
[media] rtl28xxu: add NOXON DAB/DAB+ USB dongle rev 2
[media] fc2580: write some registers conditionally
...
Diffstat (limited to 'drivers/media/platform/s5p-mfc')
-rw-r--r-- | drivers/media/platform/s5p-mfc/s5p_mfc_dec.c | 14 | ||||
-rw-r--r-- | drivers/media/platform/s5p-mfc/s5p_mfc_enc.c | 16 | ||||
-rw-r--r-- | drivers/media/platform/s5p-mfc/s5p_mfc_pm.c | 2 |
3 files changed, 30 insertions, 2 deletions
diff --git a/drivers/media/platform/s5p-mfc/s5p_mfc_dec.c b/drivers/media/platform/s5p-mfc/s5p_mfc_dec.c index eb6a70b0f821..6dad9a74f61c 100644 --- a/drivers/media/platform/s5p-mfc/s5p_mfc_dec.c +++ b/drivers/media/platform/s5p-mfc/s5p_mfc_dec.c | |||
@@ -636,6 +636,19 @@ static int vidioc_dqbuf(struct file *file, void *priv, struct v4l2_buffer *buf) | |||
636 | return -EINVAL; | 636 | return -EINVAL; |
637 | } | 637 | } |
638 | 638 | ||
639 | /* Export DMA buffer */ | ||
640 | static int vidioc_expbuf(struct file *file, void *priv, | ||
641 | struct v4l2_exportbuffer *eb) | ||
642 | { | ||
643 | struct s5p_mfc_ctx *ctx = fh_to_ctx(priv); | ||
644 | |||
645 | if (eb->type == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE) | ||
646 | return vb2_expbuf(&ctx->vq_src, eb); | ||
647 | if (eb->type == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE) | ||
648 | return vb2_expbuf(&ctx->vq_dst, eb); | ||
649 | return -EINVAL; | ||
650 | } | ||
651 | |||
639 | /* Stream on */ | 652 | /* Stream on */ |
640 | static int vidioc_streamon(struct file *file, void *priv, | 653 | static int vidioc_streamon(struct file *file, void *priv, |
641 | enum v4l2_buf_type type) | 654 | enum v4l2_buf_type type) |
@@ -813,6 +826,7 @@ static const struct v4l2_ioctl_ops s5p_mfc_dec_ioctl_ops = { | |||
813 | .vidioc_querybuf = vidioc_querybuf, | 826 | .vidioc_querybuf = vidioc_querybuf, |
814 | .vidioc_qbuf = vidioc_qbuf, | 827 | .vidioc_qbuf = vidioc_qbuf, |
815 | .vidioc_dqbuf = vidioc_dqbuf, | 828 | .vidioc_dqbuf = vidioc_dqbuf, |
829 | .vidioc_expbuf = vidioc_expbuf, | ||
816 | .vidioc_streamon = vidioc_streamon, | 830 | .vidioc_streamon = vidioc_streamon, |
817 | .vidioc_streamoff = vidioc_streamoff, | 831 | .vidioc_streamoff = vidioc_streamoff, |
818 | .vidioc_g_crop = vidioc_g_crop, | 832 | .vidioc_g_crop = vidioc_g_crop, |
diff --git a/drivers/media/platform/s5p-mfc/s5p_mfc_enc.c b/drivers/media/platform/s5p-mfc/s5p_mfc_enc.c index 2af6d522f4ac..f92f6ddd739f 100644 --- a/drivers/media/platform/s5p-mfc/s5p_mfc_enc.c +++ b/drivers/media/platform/s5p-mfc/s5p_mfc_enc.c | |||
@@ -1165,6 +1165,19 @@ static int vidioc_dqbuf(struct file *file, void *priv, struct v4l2_buffer *buf) | |||
1165 | return ret; | 1165 | return ret; |
1166 | } | 1166 | } |
1167 | 1167 | ||
1168 | /* Export DMA buffer */ | ||
1169 | static int vidioc_expbuf(struct file *file, void *priv, | ||
1170 | struct v4l2_exportbuffer *eb) | ||
1171 | { | ||
1172 | struct s5p_mfc_ctx *ctx = fh_to_ctx(priv); | ||
1173 | |||
1174 | if (eb->type == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE) | ||
1175 | return vb2_expbuf(&ctx->vq_src, eb); | ||
1176 | if (eb->type == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE) | ||
1177 | return vb2_expbuf(&ctx->vq_dst, eb); | ||
1178 | return -EINVAL; | ||
1179 | } | ||
1180 | |||
1168 | /* Stream on */ | 1181 | /* Stream on */ |
1169 | static int vidioc_streamon(struct file *file, void *priv, | 1182 | static int vidioc_streamon(struct file *file, void *priv, |
1170 | enum v4l2_buf_type type) | 1183 | enum v4l2_buf_type type) |
@@ -1542,7 +1555,7 @@ int vidioc_encoder_cmd(struct file *file, void *priv, | |||
1542 | } | 1555 | } |
1543 | 1556 | ||
1544 | static int vidioc_subscribe_event(struct v4l2_fh *fh, | 1557 | static int vidioc_subscribe_event(struct v4l2_fh *fh, |
1545 | struct v4l2_event_subscription *sub) | 1558 | const struct v4l2_event_subscription *sub) |
1546 | { | 1559 | { |
1547 | switch (sub->type) { | 1560 | switch (sub->type) { |
1548 | case V4L2_EVENT_EOS: | 1561 | case V4L2_EVENT_EOS: |
@@ -1568,6 +1581,7 @@ static const struct v4l2_ioctl_ops s5p_mfc_enc_ioctl_ops = { | |||
1568 | .vidioc_querybuf = vidioc_querybuf, | 1581 | .vidioc_querybuf = vidioc_querybuf, |
1569 | .vidioc_qbuf = vidioc_qbuf, | 1582 | .vidioc_qbuf = vidioc_qbuf, |
1570 | .vidioc_dqbuf = vidioc_dqbuf, | 1583 | .vidioc_dqbuf = vidioc_dqbuf, |
1584 | .vidioc_expbuf = vidioc_expbuf, | ||
1571 | .vidioc_streamon = vidioc_streamon, | 1585 | .vidioc_streamon = vidioc_streamon, |
1572 | .vidioc_streamoff = vidioc_streamoff, | 1586 | .vidioc_streamoff = vidioc_streamoff, |
1573 | .vidioc_s_parm = vidioc_s_parm, | 1587 | .vidioc_s_parm = vidioc_s_parm, |
diff --git a/drivers/media/platform/s5p-mfc/s5p_mfc_pm.c b/drivers/media/platform/s5p-mfc/s5p_mfc_pm.c index 367db7552289..2895333866fc 100644 --- a/drivers/media/platform/s5p-mfc/s5p_mfc_pm.c +++ b/drivers/media/platform/s5p-mfc/s5p_mfc_pm.c | |||
@@ -28,7 +28,7 @@ static struct s5p_mfc_pm *pm; | |||
28 | static struct s5p_mfc_dev *p_dev; | 28 | static struct s5p_mfc_dev *p_dev; |
29 | 29 | ||
30 | #ifdef CLK_DEBUG | 30 | #ifdef CLK_DEBUG |
31 | atomic_t clk_ref; | 31 | static atomic_t clk_ref; |
32 | #endif | 32 | #endif |
33 | 33 | ||
34 | int s5p_mfc_init_pm(struct s5p_mfc_dev *dev) | 34 | int s5p_mfc_init_pm(struct s5p_mfc_dev *dev) |