mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-27 01:11:14 +00:00
62b7f5931c
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>
(cherry-picked from commit f07e572f64
)
90 lines
3.2 KiB
Diff
90 lines
3.2 KiB
Diff
From d25d713f7bfe272cbeaac90769eb88fee382b2e9 Mon Sep 17 00:00:00 2001
|
|
From: Jacopo Mondi <jacopo@jmondi.org>
|
|
Date: Sat, 9 May 2020 11:04:48 +0200
|
|
Subject: [PATCH] media: v4l2-ctrls: Add camera orientation and
|
|
rotation
|
|
|
|
Add support for the newly defined V4L2_CID_CAMERA_ORIENTATION
|
|
and V4L2_CID_CAMERA_SENSOR_ROTATION read-only controls used to report
|
|
the camera device mounting position and orientation respectively.
|
|
|
|
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
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 926645d43fd43622a2b056471a2cf41cc19cbf4c upstream
|
|
|
|
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
---
|
|
drivers/media/v4l2-core/v4l2-ctrls.c | 13 +++++++++++++
|
|
include/uapi/linux/v4l2-controls.h | 7 +++++++
|
|
2 files changed, 20 insertions(+)
|
|
|
|
--- a/drivers/media/v4l2-core/v4l2-ctrls.c
|
|
+++ b/drivers/media/v4l2-core/v4l2-ctrls.c
|
|
@@ -577,6 +577,12 @@ const char * const *v4l2_ctrl_get_menu(u
|
|
"Annex B Start Code",
|
|
NULL,
|
|
};
|
|
+ static const char * const camera_orientation[] = {
|
|
+ "Front",
|
|
+ "Back",
|
|
+ "External",
|
|
+ NULL,
|
|
+ };
|
|
|
|
switch (id) {
|
|
case V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ:
|
|
@@ -702,6 +708,8 @@ const char * const *v4l2_ctrl_get_menu(u
|
|
return hevc_decode_mode;
|
|
case V4L2_CID_MPEG_VIDEO_HEVC_START_CODE:
|
|
return hevc_start_code;
|
|
+ case V4L2_CID_CAMERA_ORIENTATION:
|
|
+ return camera_orientation;
|
|
default:
|
|
return NULL;
|
|
}
|
|
@@ -1015,6 +1023,8 @@ const char *v4l2_ctrl_get_name(u32 id)
|
|
case V4L2_CID_PAN_SPEED: return "Pan, Speed";
|
|
case V4L2_CID_TILT_SPEED: return "Tilt, Speed";
|
|
case V4L2_CID_UNIT_CELL_SIZE: return "Unit Cell Size";
|
|
+ case V4L2_CID_CAMERA_ORIENTATION: return "Camera Orientation";
|
|
+ case V4L2_CID_CAMERA_SENSOR_ROTATION: return "Camera Sensor Rotation";
|
|
|
|
/* FM Radio Modulator controls */
|
|
/* Keep the order of the 'case's the same as in v4l2-controls.h! */
|
|
@@ -1288,6 +1298,7 @@ void v4l2_ctrl_fill(u32 id, const char *
|
|
case V4L2_CID_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE:
|
|
case V4L2_CID_MPEG_VIDEO_HEVC_DECODE_MODE:
|
|
case V4L2_CID_MPEG_VIDEO_HEVC_START_CODE:
|
|
+ case V4L2_CID_CAMERA_ORIENTATION:
|
|
*type = V4L2_CTRL_TYPE_MENU;
|
|
break;
|
|
case V4L2_CID_LINK_FREQ:
|
|
@@ -1480,6 +1491,8 @@ void v4l2_ctrl_fill(u32 id, const char *
|
|
case V4L2_CID_RDS_RX_TRAFFIC_ANNOUNCEMENT:
|
|
case V4L2_CID_RDS_RX_TRAFFIC_PROGRAM:
|
|
case V4L2_CID_RDS_RX_MUSIC_SPEECH:
|
|
+ case V4L2_CID_CAMERA_ORIENTATION:
|
|
+ case V4L2_CID_CAMERA_SENSOR_ROTATION:
|
|
*flags |= V4L2_CTRL_FLAG_READ_ONLY;
|
|
break;
|
|
case V4L2_CID_RF_TUNER_PLL_LOCK:
|
|
--- a/include/uapi/linux/v4l2-controls.h
|
|
+++ b/include/uapi/linux/v4l2-controls.h
|
|
@@ -917,6 +917,13 @@ enum v4l2_auto_focus_range {
|
|
#define V4L2_CID_PAN_SPEED (V4L2_CID_CAMERA_CLASS_BASE+32)
|
|
#define V4L2_CID_TILT_SPEED (V4L2_CID_CAMERA_CLASS_BASE+33)
|
|
|
|
+#define V4L2_CID_CAMERA_ORIENTATION (V4L2_CID_CAMERA_CLASS_BASE+34)
|
|
+#define V4L2_CAMERA_ORIENTATION_FRONT 0
|
|
+#define V4L2_CAMERA_ORIENTATION_BACK 1
|
|
+#define V4L2_CAMERA_ORIENTATION_EXTERNAL 2
|
|
+
|
|
+#define V4L2_CID_CAMERA_SENSOR_ROTATION (V4L2_CID_CAMERA_CLASS_BASE+35)
|
|
+
|
|
/* FM Modulator class control IDs */
|
|
|
|
#define V4L2_CID_FM_TX_CLASS_BASE (V4L2_CTRL_CLASS_FM_TX | 0x900)
|