aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFancy Fang <chen.fang@freescale.com>2014-04-02 02:51:16 -0400
committerNitin Garg <nitin.garg@freescale.com>2014-04-16 09:58:15 -0400
commiteb31153ebe9d98700aa203fb859ecd065692e61d (patch)
tree579d72e5d2eac52b942cd385c5bf16cccd1f7edf
parentea88b2a6c41c87ce11eb309536baa416c72ee7f2 (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.c10
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,
643static int pxp_querybuf(struct file *file, void *priv, 643static 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
651static int pxp_qbuf(struct file *file, void *priv, 659static int pxp_qbuf(struct file *file, void *priv,