aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/bcm27xx/patches-5.4/950-0905-media-v4l2-ctrl-Document-V4L2_CID_CAMERA_SENSOR_ROTA.patch
diff options
context:
space:
mode:
authorÁlvaro Fernández Rojas <noltari@gmail.com>2021-02-18 18:04:33 +0100
committerÁlvaro Fernández Rojas <noltari@gmail.com>2021-02-18 23:42:32 +0100
commitf07e572f6447465d8938679533d604e402b0f066 (patch)
treecb333bd2a67e59e7c07659514850a0fd55fc825e /target/linux/bcm27xx/patches-5.4/950-0905-media-v4l2-ctrl-Document-V4L2_CID_CAMERA_SENSOR_ROTA.patch
parent5d3a6fd970619dfc55f8259035c3027d7613a2a6 (diff)
downloadupstream-f07e572f6447465d8938679533d604e402b0f066.tar.gz
upstream-f07e572f6447465d8938679533d604e402b0f066.tar.bz2
upstream-f07e572f6447465d8938679533d604e402b0f066.zip
bcm27xx: import latest patches from the RPi foundation
bcm2708: boot tested on RPi B+ v1.2 bcm2709: boot tested on RPi 3B v1.2 and RPi 4B v1.1 4G bcm2710: boot tested on RPi 3B v1.2 bcm2711: boot tested on RPi 4B v1.1 4G Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Diffstat (limited to 'target/linux/bcm27xx/patches-5.4/950-0905-media-v4l2-ctrl-Document-V4L2_CID_CAMERA_SENSOR_ROTA.patch')
-rw-r--r--target/linux/bcm27xx/patches-5.4/950-0905-media-v4l2-ctrl-Document-V4L2_CID_CAMERA_SENSOR_ROTA.patch151
1 files changed, 151 insertions, 0 deletions
diff --git a/target/linux/bcm27xx/patches-5.4/950-0905-media-v4l2-ctrl-Document-V4L2_CID_CAMERA_SENSOR_ROTA.patch b/target/linux/bcm27xx/patches-5.4/950-0905-media-v4l2-ctrl-Document-V4L2_CID_CAMERA_SENSOR_ROTA.patch
new file mode 100644
index 0000000000..9be7e6a368
--- /dev/null
+++ b/target/linux/bcm27xx/patches-5.4/950-0905-media-v4l2-ctrl-Document-V4L2_CID_CAMERA_SENSOR_ROTA.patch
@@ -0,0 +1,151 @@
+From 00d84a43c7042b55e81d0818b0d1a6e44c6f79b5 Mon Sep 17 00:00:00 2001
+From: Jacopo Mondi <jacopo@jmondi.org>
+Date: Sat, 9 May 2020 11:04:47 +0200
+Subject: [PATCH] media: v4l2-ctrl: Document
+ V4L2_CID_CAMERA_SENSOR_ROTATION
+
+Add documentation for the V4L2_CID_CAMERA_SENSOR_ROTATION camera
+control. The newly added read-only control reports the rotation
+correction to be applied to images before displaying them to the user.
+
+Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>
+Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
+Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
+
+Commit 9926c2248740a632b0629fd8c07d0fc361dc15cc upstream
+
+Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
+---
+ .../media/uapi/v4l/ext-ctrls-camera.rst | 121 ++++++++++++++++++
+ 1 file changed, 121 insertions(+)
+
+--- a/Documentation/media/uapi/v4l/ext-ctrls-camera.rst
++++ b/Documentation/media/uapi/v4l/ext-ctrls-camera.rst
+@@ -540,6 +540,127 @@ enum v4l2_scene_mode -
+
+
+
++``V4L2_CID_CAMERA_SENSOR_ROTATION (integer)``
++ This read-only control describes the rotation correction in degrees in the
++ counter-clockwise direction to be applied to the captured images once
++ captured to memory to compensate for the camera sensor mounting rotation.
++
++ For a precise definition of the sensor mounting rotation refer to the
++ extensive description of the 'rotation' properties in the device tree
++ bindings file 'video-interfaces.txt'.
++
++ A few examples are below reported, using a shark swimming from left to
++ right in front of the user as the example scene to capture. ::
++
++ 0 X-axis
++ 0 +------------------------------------->
++ !
++ !
++ !
++ ! |\____)\___
++ ! ) _____ __`<
++ ! |/ )/
++ !
++ !
++ !
++ V
++ Y-axis
++
++ Example one - Webcam
++
++ Assuming you can bring your laptop with you while swimming with sharks,
++ the camera module of the laptop is installed on the user facing part of a
++ laptop screen casing, and is typically used for video calls. The captured
++ images are meant to be displayed in landscape mode (width > height) on the
++ laptop screen.
++
++ The camera is typically mounted upside-down to compensate the lens optical
++ inversion effect. In this case the value of the
++ V4L2_CID_CAMERA_SENSOR_ROTATION control is 0, no rotation is required to
++ display images correctly to the user.
++
++ If the camera sensor is not mounted upside-down it is required to compensate
++ the lens optical inversion effect and the value of the
++ V4L2_CID_CAMERA_SENSOR_ROTATION control is 180 degrees, as images will
++ result rotated when captured to memory. ::
++
++ +--------------------------------------+
++ ! !
++ ! !
++ ! !
++ ! __/(_____/| !
++ ! >.___ ____ ( !
++ ! \( \| !
++ ! !
++ ! !
++ ! !
++ +--------------------------------------+
++
++ A software rotation correction of 180 degrees has to be applied to correctly
++ display the image on the user screen. ::
++
++ +--------------------------------------+
++ ! !
++ ! !
++ ! !
++ ! |\____)\___ !
++ ! ) _____ __`< !
++ ! |/ )/ !
++ ! !
++ ! !
++ ! !
++ +--------------------------------------+
++
++ Example two - Phone camera
++
++ It is more handy to go and swim with sharks with only your mobile phone
++ with you and take pictures with the camera that is installed on the back
++ side of the device, facing away from the user. The captured images are meant
++ to be displayed in portrait mode (height > width) to match the device screen
++ orientation and the device usage orientation used when taking the picture.
++
++ The camera sensor is typically mounted with its pixel array longer side
++ aligned to the device longer side, upside-down mounted to compensate for
++ the lens optical inversion effect.
++
++ The images once captured to memory will be rotated and the value of the
++ V4L2_CID_CAMERA_SENSOR_ROTATION will report a 90 degree rotation. ::
++
++
++ +-------------------------------------+
++ | _ _ |
++ | \ / |
++ | | | |
++ | | | |
++ | | > |
++ | < | |
++ | | | |
++ | . |
++ | V |
++ +-------------------------------------+
++
++ A correction of 90 degrees in counter-clockwise direction has to be
++ applied to correctly display the image in portrait mode on the device
++ screen. ::
++
++ +--------------------+
++ | |
++ | |
++ | |
++ | |
++ | |
++ | |
++ | |\____)\___ |
++ | ) _____ __`< |
++ | |/ )/ |
++ | |
++ | |
++ | |
++ | |
++ | |
++ +--------------------+
++
++
+ .. [#f1]
+ This control may be changed to a menu control in the future, if more
+ options are required.