From patchwork Wed May 20 11:48:11 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jacopo Mondi X-Patchwork-Id: 3827 Return-Path: Received: from relay5-d.mail.gandi.net (relay5-d.mail.gandi.net [217.70.183.197]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 6769D603F3 for ; Wed, 20 May 2020 13:44:57 +0200 (CEST) X-Originating-IP: 2.224.242.101 Received: from uno.lan (2-224-242-101.ip172.fastwebnet.it [2.224.242.101]) (Authenticated sender: jacopo@jmondi.org) by relay5-d.mail.gandi.net (Postfix) with ESMTPSA id 6F91D1C000C; Wed, 20 May 2020 11:44:56 +0000 (UTC) From: Jacopo Mondi To: libcamera-devel@lists.libcamera.org Date: Wed, 20 May 2020 13:48:11 +0200 Message-Id: <20200520114812.440695-1-jacopo@jmondi.org> X-Mailer: git-send-email 2.26.2 MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH v3 1/2] include: linux: Update v4l2 ctrls for properties X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 May 2020 11:44:57 -0000 The version of the v4l2-controls.h header file shipped by libcamera had deviated from the upstream one, as it included definitions for v4l2 controls that report camera properties, which were not accepted upstream at the time the header file was updated. Now that the controls definition has been accepted in the master branch of the linux-media kernel tree, update include/linux/v4l2-controls.h with the upstream-accepted definition of the control ids that describe camera properties. The control definition has been imported from the Linux kernel header files generated from the most recent linux-media master branch, at revision ad3a44cbd1b2e ("media: i2c: imx219: Parse and register properties") Instead of updating the whole header, just update the definition of V4L2 controls that describe camera properties. A full header update will be performed at a future Linux kernel release. Reviewed-by: Laurent Pinchart Signed-off-by: Jacopo Mondi --- include/linux/v4l2-controls.h | 20 ++++---------------- 1 file changed, 4 insertions(+), 16 deletions(-) diff --git a/include/linux/v4l2-controls.h b/include/linux/v4l2-controls.h index 171351aee6fc..24eea2b69a86 100644 --- a/include/linux/v4l2-controls.h +++ b/include/linux/v4l2-controls.h @@ -914,22 +914,10 @@ 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) -/* - * This version of the v4l2-controls.h header part of the libcamera sources has - * deviated from the version distributed by the mainline Linux kernel. - * - * Specifically, this version includes temporary definitions of a few custom - * controls (V4L2_CID_CAMERA_SENSOR_ROTATION and - * V4L2_CID_CAMERA_SENSOR_LOCATION) which have not yet made their way to - * upstream Linux. - * - * When updating this header with a more recent version, make sure the new - * version has those additional controls defined. - */ -#define V4L2_CID_CAMERA_SENSOR_LOCATION (V4L2_CID_CAMERA_CLASS_BASE+34) -#define V4L2_LOCATION_FRONT 0 -#define V4L2_LOCATION_BACK 1 -#define V4L2_LOCATION_EXTERNAL 2 +#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) From patchwork Wed May 20 11:48:12 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jacopo Mondi X-Patchwork-Id: 3828 Return-Path: Received: from relay5-d.mail.gandi.net (relay5-d.mail.gandi.net [217.70.183.197]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 0F664603F3 for ; Wed, 20 May 2020 13:45:00 +0200 (CEST) X-Originating-IP: 2.224.242.101 Received: from uno.lan (2-224-242-101.ip172.fastwebnet.it [2.224.242.101]) (Authenticated sender: jacopo@jmondi.org) by relay5-d.mail.gandi.net (Postfix) with ESMTPSA id 53B451C0004; Wed, 20 May 2020 11:44:59 +0000 (UTC) From: Jacopo Mondi To: libcamera-devel@lists.libcamera.org Date: Wed, 20 May 2020 13:48:12 +0200 Message-Id: <20200520114812.440695-2-jacopo@jmondi.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200520114812.440695-1-jacopo@jmondi.org> References: <20200520114812.440695-1-jacopo@jmondi.org> MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH v3 2/2] libcamera: camera_sensor: Update properties parsing X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 May 2020 11:45:00 -0000 Update the properties parsing routine in the CameraSensor class to use the newly defined V4L2 control V4L2_CID_CAMERA_ORIENTATION in place of the downstream V4L2_CID_CAMERA_SENSOR_LOCATION which has now been removed. Signed-off-by: Jacopo Mondi Reviewed-by: Laurent Pinchart --- src/libcamera/camera_sensor.cpp | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/src/libcamera/camera_sensor.cpp b/src/libcamera/camera_sensor.cpp index 174df17cfaef..b14b4051dca6 100644 --- a/src/libcamera/camera_sensor.cpp +++ b/src/libcamera/camera_sensor.cpp @@ -210,24 +210,23 @@ int CameraSensor::init() int32_t propertyValue; /* Camera Location: default is front location. */ - const auto &locationControl = controls.find(V4L2_CID_CAMERA_SENSOR_LOCATION); - if (locationControl != controls.end()) { - int32_t v4l2Location = - locationControl->second.def().get(); + const auto &orientation = controls.find(V4L2_CID_CAMERA_ORIENTATION); + if (orientation != controls.end()) { + int32_t v4l2Orientation = orientation->second.def().get(); - switch (v4l2Location) { + switch (v4l2Orientation) { default: LOG(CameraSensor, Warning) << "Unsupported camera location " - << v4l2Location << ", setting to Front"; + << v4l2Orientation << ", setting to Front"; /* Fall-through */ - case V4L2_LOCATION_FRONT: + case V4L2_CAMERA_ORIENTATION_FRONT: propertyValue = properties::CameraLocationFront; break; - case V4L2_LOCATION_BACK: + case V4L2_CAMERA_ORIENTATION_BACK: propertyValue = properties::CameraLocationBack; break; - case V4L2_LOCATION_EXTERNAL: + case V4L2_CAMERA_ORIENTATION_EXTERNAL: propertyValue = properties::CameraLocationExternal; break; }