All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jacopo Mondi <jacopo@jmondi.org>
To: Mauro Carvalho Chehab <mchehab@kernel.org>,
	Hans Verkuil <hverkuil-cisco@xs4all.nl>,
	Sakari Ailus <sakari.ailus@linux.intel.com>,
	Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: Jacopo Mondi <jacopo@jmondi.org>,
	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	[thread overview]
Message-ID: <20190814202815.32491-1-jacopo@jmondi.org> (raw)

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


             reply	other threads:[~2019-08-14 20:27 UTC|newest]

Thread overview: 56+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-08-14 20:28 Jacopo Mondi [this message]
2019-08-14 20:28 ` [RFC 1/5] media: dt-bindings: Document 'location' property Jacopo Mondi
2019-08-14 20:28   ` Jacopo Mondi
2019-08-14 22:40   ` Laurent Pinchart
2019-08-14 22:40     ` Laurent Pinchart
2019-08-15  6:56   ` Sakari Ailus
2019-08-15  6:56     ` Sakari Ailus
2019-08-15 12:55     ` Laurent Pinchart
2019-08-15 12:55       ` Laurent Pinchart
2019-08-15 12:55     ` Jacopo Mondi
2019-08-15 12:55       ` Jacopo Mondi
2019-08-15 12:58       ` Laurent Pinchart
2019-08-15 12:58         ` Laurent Pinchart
2019-09-01 17:24     ` Pavel Machek
2019-09-01 17:24       ` Pavel Machek
2019-09-02  8:02       ` Laurent Pinchart
2019-09-02  8:02         ` Laurent Pinchart
2019-09-02  8:11         ` Pavel Machek
2019-09-02  8:11           ` Pavel Machek
2019-08-14 20:28 ` [RFC 2/5] media: v4l2-ctrl: Document V4L2_CID_LOCATION Jacopo Mondi
2019-08-14 22:43   ` Laurent Pinchart
2019-08-15 12:58     ` Jacopo Mondi
2019-08-15 14:10     ` Hans Verkuil
2019-08-15 14:14       ` Hans Verkuil
2019-08-15 14:34         ` Jacopo Mondi
2019-08-15 14:40           ` Hans Verkuil
2019-08-15 15:12             ` Sakari Ailus
2019-09-01 17:24             ` Pavel Machek
2019-09-02  8:00               ` Laurent Pinchart
2019-09-02  8:06                 ` Pavel Machek
2019-09-02  8:19                   ` Laurent Pinchart
2019-09-02  8:27                     ` Pavel Machek
2019-09-02  8:53                       ` Laurent Pinchart
2019-09-02  9:41               ` Jacopo Mondi
2019-08-15  7:00   ` Sakari Ailus
2019-08-15 12:59     ` Laurent Pinchart
2019-08-15 13:08       ` Sakari Ailus
2019-08-15 13:10         ` Laurent Pinchart
2019-08-15 13:15           ` Sakari Ailus
2019-08-15 13:19             ` Laurent Pinchart
2019-08-15 13:30   ` Hans Verkuil
2019-08-15 13:48     ` Laurent Pinchart
2019-08-15 14:02     ` Jacopo Mondi
2019-08-14 20:28 ` [RFC 3/5] media: v4l2-ctrls: Add support for V4L2_CID_LOCATION Jacopo Mondi
2019-08-14 22:53   ` Laurent Pinchart
2019-08-15 13:02     ` Jacopo Mondi
2019-08-15 13:03       ` Laurent Pinchart
2019-08-15 13:41       ` Hans Verkuil
2019-08-15 13:50         ` Jacopo Mondi
2019-08-15 14:12           ` Hans Verkuil
2019-08-15 13:23   ` Hans Verkuil
2019-08-15 13:50     ` Jacopo Mondi
2019-08-14 20:28 ` [RFC 4/5] media: i2c: ov5670: Report the camera location Jacopo Mondi
2019-08-14 23:03   ` Laurent Pinchart
2019-08-15  7:04   ` Sakari Ailus
2019-08-14 20:28 ` [RFC 5/5] media: i2c: ov13858: " Jacopo Mondi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190814202815.32491-1-jacopo@jmondi.org \
    --to=jacopo@jmondi.org \
    --cc=hverkuil-cisco@xs4all.nl \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=mchehab@kernel.org \
    --cc=sakari.ailus@linux.intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.