From: Sakari Ailus <sakari.ailus@linux.intel.com>
To: linux-media@vger.kernel.org
Cc: hverkuil@xs4all.nl, laurent.pinchart@ideasonboard.com,
Prabhakar <prabhakar.csengg@gmail.com>,
"Kate Hsuan" <hpa@redhat.com>,
"Alexander Shiyan" <eagle.alexander923@gmail.com>,
"Mikhail Rudenko" <mike.rudenko@gmail.com>,
"Dave Stevenson" <dave.stevenson@raspberrypi.com>,
"Tommaso Merciai" <tomm.merciai@gmail.com>,
"Umang Jain" <umang.jain@ideasonboard.com>,
"Benjamin Mugnier" <benjamin.mugnier@foss.st.com>,
"Sylvain Petinot" <sylvain.petinot@foss.st.com>,
"Christophe JAILLET" <christophe.jaillet@wanadoo.fr>,
"Julien Massot" <julien.massot@collabora.com>,
"Naushir Patuck" <naush@raspberrypi.com>,
"Yan, Dongcheng" <dongcheng.yan@intel.com>,
"Cao, Bingbu" <bingbu.cao@intel.com>,
"Qiu, Tian Shu" <tian.shu.qiu@intel.com>,
"Wang, Hongju" <hongju.wang@intel.com>,
"Stefan Klug" <stefan.klug@ideasonboard.com>,
"Mirela Rabulea" <mirela.rabulea@nxp.com>,
"André Apitzsch" <git@apitzsch.eu>,
"Heimir Thor Sverrisson" <heimir.sverrisson@gmail.com>,
"Kieran Bingham" <kieran.bingham@ideasonboard.com>,
"Stanislaw Gruszka" <stanislaw.gruszka@linux.intel.com>,
"Mehdi Djait" <mehdi.djait@linux.intel.com>,
"Ricardo Ribalda Delgado" <ribalda@kernel.org>,
"Hans de Goede" <hdegoede@redhat.com>
Subject: [RFC v5 00/15] Sub-device configuration models
Date: Mon, 3 Feb 2025 10:58:38 +0200 [thread overview]
Message-ID: <20250203085853.1361401-1-sakari.ailus@linux.intel.com> (raw)
Hello everyone,
I've been recently working (with others) on sub-device streams support as
well as on internal pads. The two can be used to make sub-device
configuration more versatile.
At the same time, the added interfaces are much more useful if we require
specific semantics of those interfaces, so that the user space knows
exactly what e.g. a given selection target signifies. However, as the same
selection rectangle could be used for a different purpose on a non-raw
sensor device, we need a way to tell how should the user space determine
how to use a given interface.
I'm proposing to solve this problem by introducing sub-device
configuration models, and by the common raw sensor model, also present in
this patchset, in particular.
This has been (and will, for some time, continue to be) the reason why I
have reviewed few sensor driver related patches lately. As we're
introducing a new interface, it's beneficial to be able to use that
interface right from the start, rather than trying to later on offer
compatibility support, which is almost always a fair amount of work with
less than desirable results in the driver.
With this solved, I believe we can enable the use of the streams UAPI.
Comments are welcome.
RFC v4 is <20241220132419.1027206-1-sakari.ailus@linux.intel.com> on LMML.
RFC v3 is <20241129095142.87196-1-sakari.ailus@linux.intel.com> on LMML.
RFC v2 (labelled as PATCH) is
<20241122100633.8971-1-sakari.ailus@linux.intel.com> on LMML.
RFC v1 is <20241011075535.588140-1-sakari.ailus@linux.intel.com> on LMML.
We may end up postponing merging three last patches (those adding
controls) until current control values are moved to sub-device (and video
device) state. Discussion is needed on the topic.
The compiled documentation can be found here
<URL:https://www.retiisi.eu/~sailus/v4l2/tmp/common-raw/output/userspace-api/media/v4l/dev-subdev.html#media-subdev-config-model-common-raw-sensor>.
since RFC v4:
- Document the use of luma formats for generic raw data on both mbus codes
and V4L2 pixelformats, with new controls V4L2_CID_COLOUR_PATTERN and
V4L2_CID_COLOUR_PATTERN_FLIP determine the pattern in different flipping
configurations. This enables the use of generic pattern-agnostic formats
whereas controls are used to express colour components and their order.
- Add a patch that reworks the metadata format 4ccs. These haven't been in
use in any case so far.
- Improve documentation column widths.
since RFC v3:
- Fix binning control name in documentation.
- Note V4L2_CID_CONFIG_MODEL is read-only.
- Clarify wording in config model documentation based on Jacopo's
comments.
- Clarify post-scaler digital crop behaviour.
since RFC v2:
- Remove the CROP_BOUNDS rectangle on the image data sink pad. It's
redundant.
- Remove scaling from the sink compose rectangle, leaving binning and
sub-sampling.
- Introduce scaling as well as post-scaler digital crop on source pad
(image stream). This is a new patch, preceding control changes.
- Use monospace font for selection targets.
- Improvements in referring to previous configuration steps in text
description.
since RFC v1:
- Rework the documentation according to the comments (spelling fixes,
alignment mostly).
- Include separate patches for binning and sub-sampling controls.
- Allow binning, scaling and scaling to be configured using the compose
rectangle. This will change to just scaling in the three last patches.
Sakari Ailus (15):
media: Documentation: Rework embedded data documentation
media: Documentation: Add a hyphen to list-based
media: Documentation: Reword split of sensor driver to two classes
media: Documentation: Add subdev configuration models, raw sensor
model
media: Documentation: Add scaling and post-scaler crop for common raw
media: uapi: Add V4L2_CID_CONFIG_MODEL control
media: uapi: Add V4L2_CID_COLOUR_PATTERN for describing colour
patterns
media: uapi: Correct generic CSI-2 metadata format 4cc
media: uapi: Documentation: Improve column width hints for examples
media: v4l: uapi: Add a control for colour pattern flipping effect
media: Documentation: Document luma-only mbus codes and CFA for
cameras
media: uapi: Documentation: Use luma formats with CFA pattern control
media: uapi: Add V4L2_CID_BINNING control for binning configuration
media: uapi: Add controls for sub-sampling configuration
media: Documentation: Add binning and sub-sampling controls
.../media/drivers/camera-sensor.rst | 66 ++-
.../media/v4l/common-raw-sensor.dia | 441 ++++++++++++++++++
.../media/v4l/common-raw-sensor.svg | 134 ++++++
.../userspace-api/media/v4l/dev-subdev.rst | 2 +
.../media/v4l/ext-ctrls-camera.rst | 40 ++
.../media/v4l/ext-ctrls-image-process.rst | 4 +
.../media/v4l/ext-ctrls-image-source.rst | 22 +
.../media/v4l/metafmt-generic.rst | 10 +-
.../media/v4l/pixfmt-yuv-luma.rst | 5 +
.../media/v4l/subdev-config-model.rst | 233 +++++++++
drivers/media/v4l2-core/v4l2-ctrls-defs.c | 12 +
include/uapi/linux/v4l2-controls.h | 27 ++
include/uapi/linux/videodev2.h | 12 +-
13 files changed, 983 insertions(+), 25 deletions(-)
create mode 100644 Documentation/userspace-api/media/v4l/common-raw-sensor.dia
create mode 100644 Documentation/userspace-api/media/v4l/common-raw-sensor.svg
create mode 100644 Documentation/userspace-api/media/v4l/subdev-config-model.rst
--
2.39.5
next reply other threads:[~2025-02-03 8:59 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-02-03 8:58 Sakari Ailus [this message]
2025-02-03 8:58 ` [RFC v5 01/15] media: Documentation: Rework embedded data documentation Sakari Ailus
2025-02-03 14:52 ` Lad, Prabhakar
2025-02-09 15:06 ` RFC " Mirela Rabulea
2025-02-03 8:58 ` [RFC v5 02/15] media: Documentation: Add a hyphen to list-based Sakari Ailus
2025-02-03 14:53 ` Lad, Prabhakar
2025-02-03 8:58 ` [RFC v5 03/15] media: Documentation: Reword split of sensor driver to two classes Sakari Ailus
2025-02-03 14:57 ` Lad, Prabhakar
2025-02-03 8:58 ` [RFC v5 04/15] media: Documentation: Add subdev configuration models, raw sensor model Sakari Ailus
2025-02-03 15:14 ` Lad, Prabhakar
2025-02-09 15:42 ` Mirela Rabulea
2025-02-26 9:17 ` Mirela Rabulea
2025-02-26 10:36 ` Sakari Ailus
2025-02-03 8:58 ` [RFC v5 05/15] media: Documentation: Add scaling and post-scaler crop for common raw Sakari Ailus
2025-02-03 15:45 ` Lad, Prabhakar
2025-02-03 8:58 ` [RFC v5 06/15] media: uapi: Add V4L2_CID_CONFIG_MODEL control Sakari Ailus
2025-02-03 15:46 ` Lad, Prabhakar
2025-02-10 9:09 ` Hans Verkuil
2025-02-10 13:25 ` Sakari Ailus
2025-02-10 14:07 ` Hans Verkuil
2025-02-20 10:50 ` Sakari Ailus
2025-02-03 8:58 ` [RFC v5 07/15] media: uapi: Add V4L2_CID_COLOUR_PATTERN for describing colour patterns Sakari Ailus
2025-02-09 17:14 ` Mirela Rabulea
2025-02-10 13:39 ` Sakari Ailus
2025-02-10 8:57 ` Hans Verkuil
2025-02-10 14:37 ` Sakari Ailus
2025-02-03 8:58 ` [RFC v5 08/15] media: uapi: Correct generic CSI-2 metadata format 4cc Sakari Ailus
2025-02-03 8:58 ` [RFC v5 09/15] media: uapi: Documentation: Improve column width hints for examples Sakari Ailus
2025-02-03 8:58 ` [RFC v5 10/15] media: v4l: uapi: Add a control for colour pattern flipping effect Sakari Ailus
2025-02-09 17:23 ` Mirela Rabulea
2025-02-10 13:53 ` Sakari Ailus
2025-02-11 16:00 ` Dave Stevenson
2025-02-03 8:58 ` [RFC v5 11/15] media: Documentation: Document luma-only mbus codes and CFA for cameras Sakari Ailus
2025-02-09 17:48 ` [EXT] " Mirela Rabulea
2025-02-10 14:35 ` Sakari Ailus
2025-02-03 8:58 ` [RFC v5 12/15] media: uapi: Documentation: Use luma formats with CFA pattern control Sakari Ailus
2025-02-09 17:50 ` Mirela Rabulea
2025-02-03 8:58 ` [RFC v5 13/15] media: uapi: Add V4L2_CID_BINNING control for binning configuration Sakari Ailus
2025-02-10 14:07 ` Hans Verkuil
2025-02-10 14:32 ` Sakari Ailus
2025-02-03 8:58 ` [RFC v5 14/15] media: uapi: Add controls for sub-sampling configuration Sakari Ailus
2025-02-03 8:58 ` [RFC v5 15/15] media: Documentation: Add binning and sub-sampling controls Sakari Ailus
2025-02-10 13:46 ` [RFC v5 00/15] Sub-device configuration models Sakari Ailus
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=20250203085853.1361401-1-sakari.ailus@linux.intel.com \
--to=sakari.ailus@linux.intel.com \
--cc=benjamin.mugnier@foss.st.com \
--cc=bingbu.cao@intel.com \
--cc=christophe.jaillet@wanadoo.fr \
--cc=dave.stevenson@raspberrypi.com \
--cc=dongcheng.yan@intel.com \
--cc=eagle.alexander923@gmail.com \
--cc=git@apitzsch.eu \
--cc=hdegoede@redhat.com \
--cc=heimir.sverrisson@gmail.com \
--cc=hongju.wang@intel.com \
--cc=hpa@redhat.com \
--cc=hverkuil@xs4all.nl \
--cc=julien.massot@collabora.com \
--cc=kieran.bingham@ideasonboard.com \
--cc=laurent.pinchart@ideasonboard.com \
--cc=linux-media@vger.kernel.org \
--cc=mehdi.djait@linux.intel.com \
--cc=mike.rudenko@gmail.com \
--cc=mirela.rabulea@nxp.com \
--cc=naush@raspberrypi.com \
--cc=prabhakar.csengg@gmail.com \
--cc=ribalda@kernel.org \
--cc=stanislaw.gruszka@linux.intel.com \
--cc=stefan.klug@ideasonboard.com \
--cc=sylvain.petinot@foss.st.com \
--cc=tian.shu.qiu@intel.com \
--cc=tomm.merciai@gmail.com \
--cc=umang.jain@ideasonboard.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox