Received: by 2002:a25:8b12:0:0:0:0:0 with SMTP id i18csp1254367ybl; Wed, 14 Aug 2019 13:27:56 -0700 (PDT) X-Google-Smtp-Source: APXvYqwSSQmxDYO6yhtRDvbHZ6O8V9yDOV3w1a8phwe7LZ0ZlsURPiHsyumUDvjvTazhkvpn6bDS X-Received: by 2002:a17:902:f81:: with SMTP id 1mr1083374plz.191.1565814476885; Wed, 14 Aug 2019 13:27:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1565814476; cv=none; d=google.com; s=arc-20160816; b=r8Wphg3+E8jWcckCd8qqFBDgbPELpM0pd7EkWh0E1Nr/81/2MeFzqmxS77DG7Fcpnx fIjzAuA+bvwou4n02v7aE14AqFu/R9/Pa8o21teEp8neiNyoa93dTHVnINO5kYq9gk5C r/cEWTOgxKN6cXyNtAEMoO/mScGohF3Ei4+mYCmS0PdCvabzDRIUPoDbB9UJg4UgmUmT Z/DhFeikNAYODc1XUoBew1kQZhAUuULaNmmbNoyWscrC2rwKVj8E5BDD5/KnCRIE5TwR C6OIlAexRp/GXbThIDGboF4jELX2ufhL5tmh6QjC/LEnWLRgr9VyPgT3l6ysHcqm1b/g ft0g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from; bh=Bx+7wjFTYp47vqREGqGY3IZ+o+FnJlkrB7/Hd1O1TNA=; b=zlfNv5sNhC/dHXPRlvJu1OLL6uujYi43hO0H/zvam3VH2atZj6g4DuQDfQlSrUV5JC udjwR4OLjhtth/x5brGaCldW2kp6SqOjWbONULBvifvUG1e35UfiDe3t0CWvmLsPxXlR /GR2w+B/NOijoM44fIgwwi+WnYpZoAesf0I2bdoc49Y7TeC6MpfAiCZ8Qs+6EsCKtKo5 38ve8UubMAkopMajp0IuOttFW6CEHC64Nuj2/pGKIMldpAgH/3dUcMlGNVTbNKgxgT+z vgQrbNXy7SfF1OnBN5F+e2QtMLoEuHyOPVZCIOe3XRHTftgFOViG84WPpscNFUmrvSfr XjTQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id s9si505876plr.146.2019.08.14.13.27.40; Wed, 14 Aug 2019 13:27:56 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729134AbfHNU1H (ORCPT + 99 others); Wed, 14 Aug 2019 16:27:07 -0400 Received: from relay9-d.mail.gandi.net ([217.70.183.199]:56447 "EHLO relay9-d.mail.gandi.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726490AbfHNU1H (ORCPT ); Wed, 14 Aug 2019 16:27:07 -0400 X-Originating-IP: 87.5.130.64 Received: from uno.homenet.telecomitalia.it (host64-130-dynamic.5-87-r.retail.telecomitalia.it [87.5.130.64]) (Authenticated sender: jacopo@jmondi.org) by relay9-d.mail.gandi.net (Postfix) with ESMTPSA id 51F40FF808; Wed, 14 Aug 2019 20:27:03 +0000 (UTC) From: Jacopo Mondi To: Mauro Carvalho Chehab , Hans Verkuil , Sakari Ailus , Laurent Pinchart Cc: Jacopo Mondi , linux-media@vger.kernel.org (open list:MEDIA INPUT INFRASTRUCTURE (V4L/DVB)), linux-kernel@vger.kernel.org (open list) Subject: [RFC 0/5] media: v4l2-ctrls: Add camera 'location' support Date: Wed, 14 Aug 2019 22:28:10 +0200 Message-Id: <20190814202815.32491-1-jacopo@jmondi.org> X-Mailer: git-send-email 2.22.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hello, as anticipared on #v4l, this is a proposal to add a way for camera devices to report their mounting location to user-space. The information on the camera location is particularly meaningful for mobile devices, and in the process of integrating libcamera with the Android camera stack, we found the need to report this information to applications and there's currently no way to retrieve it from the V4L2 API The idea is to provide a camera class read-only control, named 'Location', that is used to report the camera mounting position, which is retrieved from the firmware interface. Hans mentioned v4l2-properties as a better mechanism to report such static informations, but since they're not here I think a control would do for now... The RFC adds a DT standard property to video-interfaces.txt to express the location in DTS (I actually tested it on ACPI, but..), and then adds a new control in the camera class to expose it. Finally, two example sensor drivers I used for testing have been modified to expose the read-only control. Why an RFC: mostly because of the nature and definition of the property. It's tricky to define the "location" semantic clearly as it really depends on the device the camera it is installed on. To begin with, I only defined FRONT and BACK locations, and documented them the best I could. Also the control itself it's probably more appropriate expressed as an integer menu control. However, given the few supported values, and the fact they are standard, I went for a standard integer control and defined a few macros for the possible values as setting up a menu control requires a bit more effort in drivers which I'm not sure it is worth it. I tried out a few different names for the property as well, such as "orientation", "position", "mounting-position" but none of them really satisfied me, so I picked the most simple one. Feedbacks are welcome here too. Thanks j Jacopo Mondi (5): media: dt-bindings: Document 'location' property media: v4l2-ctrl: Document V4L2_CID_LOCATION media: v4l2-ctrls: Add support for V4L2_CID_LOCATION media: i2c: ov5670: Report the camera location media: i2c: ov13858: Report the camera location .../bindings/media/video-interfaces.txt | 4 ++++ .../media/uapi/v4l/ext-ctrls-camera.rst | 23 +++++++++++++++++++ drivers/media/i2c/ov13858.c | 11 +++++++++ drivers/media/i2c/ov5670.c | 11 +++++++++ drivers/media/v4l2-core/v4l2-ctrls.c | 7 ++++++ include/uapi/linux/v4l2-controls.h | 4 ++++ 6 files changed, 60 insertions(+) -- 2.22.0