aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/brcm2708/patches-3.10/0137-V4L2-Improve-G_FBUF-handling-so-we-pass-conformance.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/brcm2708/patches-3.10/0137-V4L2-Improve-G_FBUF-handling-so-we-pass-conformance.patch')
-rw-r--r--target/linux/brcm2708/patches-3.10/0137-V4L2-Improve-G_FBUF-handling-so-we-pass-conformance.patch37
1 files changed, 37 insertions, 0 deletions
diff --git a/target/linux/brcm2708/patches-3.10/0137-V4L2-Improve-G_FBUF-handling-so-we-pass-conformance.patch b/target/linux/brcm2708/patches-3.10/0137-V4L2-Improve-G_FBUF-handling-so-we-pass-conformance.patch
new file mode 100644
index 0000000000..5e4ea73c24
--- /dev/null
+++ b/target/linux/brcm2708/patches-3.10/0137-V4L2-Improve-G_FBUF-handling-so-we-pass-conformance.patch
@@ -0,0 +1,37 @@
+From 6f5cc6eb60f7db36b94b9c960b5330464b4e729f Mon Sep 17 00:00:00 2001
+From: Dave Stevenson <dsteve@broadcom.com>
+Date: Mon, 9 Dec 2013 17:30:09 +0000
+Subject: [PATCH 137/174] V4L2: Improve G_FBUF handling so we pass conformance
+
+Return some sane numbers for get framebuffer so that
+we pass conformance.
+
+Signed-off-by: Dave Stevenson <dsteve@broadcom.com>
+---
+ drivers/media/platform/bcm2835/bcm2835-camera.c | 14 +++++++++++---
+ 1 file changed, 11 insertions(+), 3 deletions(-)
+
+--- a/drivers/media/platform/bcm2835/bcm2835-camera.c
++++ b/drivers/media/platform/bcm2835/bcm2835-camera.c
+@@ -664,10 +664,18 @@ static int vidioc_g_fbuf(struct file *fi
+ {
+ /* The video overlay must stay within the framebuffer and can't be
+ positioned independently. */
++ struct bm2835_mmal_dev *dev = video_drvdata(file);
++ struct vchiq_mmal_port *preview_port =
++ &dev->component[MMAL_COMPONENT_CAMERA]->
++ output[MMAL_CAMERA_PORT_PREVIEW];
+ a->flags = V4L2_FBUF_FLAG_OVERLAY;
+-
+- /* todo: v4l2_framebuffer still needs more info filling in
+- * in order to pass the v4l2-compliance test. */
++ a->fmt.width = preview_port->es.video.width;
++ a->fmt.height = preview_port->es.video.height;
++ a->fmt.pixelformat = V4L2_PIX_FMT_YUV420;
++ a->fmt.bytesperline = (preview_port->es.video.width * 3)>>1;
++ a->fmt.sizeimage = (preview_port->es.video.width *
++ preview_port->es.video.height * 3)>>1;
++ a->fmt.colorspace = V4L2_COLORSPACE_SMPTE170M;
+
+ return 0;
+ }