diff options
author | Fancy Fang <chen.fang@freescale.com> | 2014-04-02 02:51:16 -0400 |
---|---|---|
committer | Nitin Garg <nitin.garg@freescale.com> | 2014-04-16 09:58:15 -0400 |
commit | eb31153ebe9d98700aa203fb859ecd065692e61d (patch) | |
tree | 579d72e5d2eac52b942cd385c5bf16cccd1f7edf | |
parent | ea88b2a6c41c87ce11eb309536baa416c72ee7f2 (diff) |
ENGR00301270 [V4L2 Capture] PXP V4L2 output can't report absolute physical address.
Add absolute physical address report by V4L2 driver after
this buffer has been mapped, which is requested by some
multimedia applications.
Signed-off-by: Fancy Fang <chen.fang@freescale.com>
-rw-r--r-- | drivers/media/platform/mxc/output/mxc_pxp_v4l2.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/media/platform/mxc/output/mxc_pxp_v4l2.c b/drivers/media/platform/mxc/output/mxc_pxp_v4l2.c index 68f601eefa53..56a09d382320 100644 --- a/drivers/media/platform/mxc/output/mxc_pxp_v4l2.c +++ b/drivers/media/platform/mxc/output/mxc_pxp_v4l2.c | |||
@@ -643,9 +643,17 @@ static int pxp_reqbufs(struct file *file, void *priv, | |||
643 | static int pxp_querybuf(struct file *file, void *priv, | 643 | static int pxp_querybuf(struct file *file, void *priv, |
644 | struct v4l2_buffer *b) | 644 | struct v4l2_buffer *b) |
645 | { | 645 | { |
646 | int ret; | ||
646 | struct pxps *pxp = video_get_drvdata(video_devdata(file)); | 647 | struct pxps *pxp = video_get_drvdata(video_devdata(file)); |
647 | 648 | ||
648 | return videobuf_querybuf(&pxp->s0_vbq, b); | 649 | ret = videobuf_querybuf(&pxp->s0_vbq, b); |
650 | if (!ret) { | ||
651 | struct videobuf_buffer *vb = pxp->s0_vbq.bufs[b->index]; | ||
652 | if (b->flags & V4L2_BUF_FLAG_MAPPED) | ||
653 | b->m.offset = videobuf_to_dma_contig(vb); | ||
654 | } | ||
655 | |||
656 | return ret; | ||
649 | } | 657 | } |
650 | 658 | ||
651 | static int pxp_qbuf(struct file *file, void *priv, | 659 | static int pxp_qbuf(struct file *file, void *priv, |