{"id":9218,"url":"https://patchwork.libcamera.org/api/1.1/patches/9218/?format=json","web_url":"https://patchwork.libcamera.org/patch/9218/","project":{"id":1,"url":"https://patchwork.libcamera.org/api/1.1/projects/1/?format=json","name":"libcamera","link_name":"libcamera","list_id":"libcamera_core","list_email":"libcamera-devel@lists.libcamera.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<20200805105721.15445-3-jacopo@jmondi.org>","date":"2020-08-05T10:57:19","name":"[libcamera-devel,2/4] media: docs: Describe targets for sensor properties","commit_ref":null,"pull_url":null,"state":"superseded","archived":true,"hash":"48edadb2a9c986d75cfafbb122853a7438606611","submitter":{"id":3,"url":"https://patchwork.libcamera.org/api/1.1/people/3/?format=json","name":"Jacopo Mondi","email":"jacopo@jmondi.org"},"delegate":{"id":15,"url":"https://patchwork.libcamera.org/api/1.1/users/15/?format=json","username":"jmondi","first_name":"Jacopo","last_name":"Mondi","email":"jacopo@jmondi.org"},"mbox":"https://patchwork.libcamera.org/patch/9218/mbox/","series":[{"id":1193,"url":"https://patchwork.libcamera.org/api/1.1/series/1193/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=1193","date":"2020-08-05T10:57:18","name":"[libcamera-devel,1/4] media: docs: Describe pixel array properties","version":1,"mbox":"https://patchwork.libcamera.org/series/1193/mbox/"}],"comments":"https://patchwork.libcamera.org/api/patches/9218/comments/","check":"pending","checks":"https://patchwork.libcamera.org/api/patches/9218/checks/","tags":{},"headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id E31F1BD87A\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed,  5 Aug 2020 10:53:55 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id BF03D60597;\n\tWed,  5 Aug 2020 12:53:55 +0200 (CEST)","from relay6-d.mail.gandi.net (relay6-d.mail.gandi.net\n\t[217.70.183.198])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 2E17C60580\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed,  5 Aug 2020 12:53:54 +0200 (CEST)","from uno.lan (93-34-118-233.ip49.fastwebnet.it [93.34.118.233])\n\t(Authenticated sender: jacopo@jmondi.org)\n\tby relay6-d.mail.gandi.net (Postfix) with ESMTPSA id B35E2C0006;\n\tWed,  5 Aug 2020 10:53:52 +0000 (UTC)"],"X-Originating-IP":"93.34.118.233","From":"Jacopo Mondi <jacopo@jmondi.org>","To":"Hans Verkuil <hverkuil@xs4all.nl>,\n\tSakari Ailus <sakari.ailus@linux.intel.com>,\n\tLaurent Pinchart <laurent.pinchart@ideasonboard.com>","Date":"Wed,  5 Aug 2020 12:57:19 +0200","Message-Id":"<20200805105721.15445-3-jacopo@jmondi.org>","X-Mailer":"git-send-email 2.27.0","In-Reply-To":"<20200805105721.15445-1-jacopo@jmondi.org>","References":"<20200805105721.15445-1-jacopo@jmondi.org>","MIME-Version":"1.0","Subject":"[libcamera-devel] [PATCH 2/4] media: docs: Describe targets for\n\tsensor properties","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Cc":"Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>,\n\tlibcamera-devel@lists.libcamera.org,\n\tSowjanya Komatineni <skomatineni@nvidia.com>,\n\tLinux Media Mailing List <linux-media@vger.kernel.org>","Content-Type":"text/plain; charset=\"us-ascii\"","Content-Transfer-Encoding":"7bit","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"},"content":"Provide a table to describe how the V4L2 selection targets can be used\nto access an image sensor pixel array properties.\n\nReference the table in the sub-device documentation.\n\nSigned-off-by: Jacopo Mondi <jacopo@jmondi.org>\n---\n .../userspace-api/media/v4l/dev-subdev.rst    |  4 ++\n .../media/v4l/v4l2-selection-targets.rst      | 49 +++++++++++++++++++\n 2 files changed, 53 insertions(+)","diff":"diff --git a/Documentation/userspace-api/media/v4l/dev-subdev.rst b/Documentation/userspace-api/media/v4l/dev-subdev.rst\nindex c47861dff9b9b..2f7da3832f458 100644\n--- a/Documentation/userspace-api/media/v4l/dev-subdev.rst\n+++ b/Documentation/userspace-api/media/v4l/dev-subdev.rst\n@@ -467,6 +467,10 @@ desired image resolution. If the sub-device driver supports that, userspace\n can set the analog crop rectangle to select which portion of the pixel array\n to read out.\n \n+A description of each of the above mentioned targets when used to access the\n+image sensor pixel array properties is provided by\n+:ref:`v4l2-selection-targets-image-sensor-table`\n+\n \n Types of selection targets\n --------------------------\ndiff --git a/Documentation/userspace-api/media/v4l/v4l2-selection-targets.rst b/Documentation/userspace-api/media/v4l/v4l2-selection-targets.rst\nindex 69f500093aa2a..632e6448b784e 100644\n--- a/Documentation/userspace-api/media/v4l/v4l2-selection-targets.rst\n+++ b/Documentation/userspace-api/media/v4l/v4l2-selection-targets.rst\n@@ -76,3 +76,52 @@ of the two interfaces they are used.\n \tmodified by hardware.\n       - Yes\n       - No\n+\n+\n+.. _v4l2-selection-targets-image-sensor-table:\n+\n+********************************************\n+Selection Targets For Pixel Array Properties\n+********************************************\n+\n+The V4L2 selection API can be used to retrieve the size and disposition of the\n+pixel units that compose and image sensor pixel matrix when applied to a video\n+sub-device that represents an image sensor.\n+\n+A description of the properties associated with each of the sensor pixel array\n+areas is provided by the :ref:`v4l2-subdev-pixel-array-properties` section.\n+\n+.. tabularcolumns:: |p{6.0cm}|p{1.4cm}|p{7.4cm}|p(1.4cm)|\n+\n+.. flat-table:: Selection target definitions\n+    :header-rows:  1\n+    :stub-columns: 0\n+\n+    * - Target name\n+      - id\n+      - Definition\n+      - Read/Write\n+    * - ``V4L2_SEL_TGT_CROP``\n+      - 0x0000\n+      - The analog crop rectangle. Represents the portion of the active pixel\n+        array which is processed to produce images.\n+      - RW\n+    * - ``V4L2_SEL_TGT_CROP_DEFAULT``\n+      - 0x0001\n+      - The active pixel array rectangle. It includes only active pixels and\n+        excludes other ones such as optical black pixels. Its width and height\n+        represent the maximum image resolution an image sensor can produce.\n+      - RO\n+    * - ``V4L2_SEL_TGT_CROP_BOUNDS``\n+      - 0x0002\n+      - The readable portion of the physical pixel array matrix. It includes\n+        pixels that contains valid image data and calibration pixels such as the\n+        optical black ones.\n+      - RO\n+    * - ``V4L2_SEL_TGT_NATIVE_SIZE``\n+      - 0x0003\n+      - The physical pixel array size, including readable and not readable\n+        pixels. As pixels that cannot be read from application processor are not\n+        relevant for calibration purposes, this rectangle is useful to calculate\n+        the physical properties of the image sensor.\n+      - RO\n","prefixes":["libcamera-devel","2/4"]}