{"id":10708,"url":"https://patchwork.libcamera.org/api/1.1/covers/10708/?format=json","web_url":"https://patchwork.libcamera.org/cover/10708/","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":"<20201223184516.58791-1-jacopo@jmondi.org>","date":"2020-12-23T18:45:11","name":"[libcamera-devel,0/5] libcamera: Register CameraSensor controls","submitter":{"id":3,"url":"https://patchwork.libcamera.org/api/1.1/people/3/?format=json","name":"Jacopo Mondi","email":"jacopo@jmondi.org"},"mbox":"https://patchwork.libcamera.org/cover/10708/mbox/","series":[{"id":1545,"url":"https://patchwork.libcamera.org/api/1.1/series/1545/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=1545","date":"2020-12-23T18:45:11","name":"libcamera: Register CameraSensor controls","version":1,"mbox":"https://patchwork.libcamera.org/series/1545/mbox/"}],"comments":"https://patchwork.libcamera.org/api/covers/10708/comments/","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 864C0C0F1A\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 23 Dec 2020 18:45:09 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id B2162615B1;\n\tWed, 23 Dec 2020 19:45:08 +0100 (CET)","from relay7-d.mail.gandi.net (relay7-d.mail.gandi.net\n\t[217.70.183.200])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id B0FE060527\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 23 Dec 2020 19:45:07 +0100 (CET)","from uno.lan (2-224-242-101.ip172.fastwebnet.it [2.224.242.101])\n\t(Authenticated sender: jacopo@jmondi.org)\n\tby relay7-d.mail.gandi.net (Postfix) with ESMTPSA id 60C3820002\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 23 Dec 2020 18:45:07 +0000 (UTC)"],"X-Originating-IP":"2.224.242.101","From":"Jacopo Mondi <jacopo@jmondi.org>","To":"libcamera-devel@lists.libcamera.org","Date":"Wed, 23 Dec 2020 19:45:11 +0100","Message-Id":"<20201223184516.58791-1-jacopo@jmondi.org>","X-Mailer":"git-send-email 2.29.2","MIME-Version":"1.0","Subject":"[libcamera-devel] [PATCH 0/5] libcamera: Register CameraSensor\n\tcontrols","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>","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":"While preparing for supporting the sensor database, the CameraSensor class\nneeded a bit of rework.\n\nThis series:\n- Collect all sensor driver requirements in one function and makes error and\n  defaulted properties value more verbose.\n\n  I expect some platform to break after this change as their sensor drivers\n  are not instrumented to report all the information required by libcamera.\n\n  Question is: how high should we set the bar ? Personally, I think if we start\n  low, we'll never be able to raise it again, so better be strict and change\n  our mind as we go\n\n- Renames CameraSensor::controls() in CameraSensor::subdevControls()\n- Calculate the sensor exposure time limits as the first libcamera control\n  registered by the class\n- Expand the IPU3 pipeline handler to register the CameraSensor class provided\n  controls as Camera::controls()\n\n\nOn IPU3 Soraka device and ov13858 sensor:\n\nBefore this series:\n\nlocalhost ~ # cam -c1 --list-controls\nControl: Exposure: [4..3206]\t\t\t/--------\nControl: Analogue Gain: [0..8191]\t\t\t|\nControl: Test Pattern: [0..4]\t\t\t\t|\nControl: Link Frequency: [0..1]\t\t\t  These are all V4L2\nControl: Horizontal Blanking: [264..264]\t  controls which should not\nControl: Vertical Blanking: [78..29631]\t\t  be reported by the Camera\nControl: Pixel Rate: [216000000..432000000]\t\t|\nControl: Digital Gain: [0..16384]\t\t/-------|\nControl: PipelineDepth: [2..3]\n\nAfter this series:\n\nlocalhost ~ # cam -c1 --list-controls\nControl: ExposureTime: [41..66613]\nControl: PipelineDepth: [2..3]\n\nThanks\n   j\n\nJacopo Mondi (5):\n  libcamera: camera_sensor: Validate driver support\n  libcamera: camera_sensor: Initialize controls\n  libcamera: camera_sensor: Rename controls() method\n  libcamera: camera_sensor: Add controls() method\n  libcamera: ipu3: Register sensor controls\n\n include/libcamera/internal/camera_sensor.h |   6 +-\n src/libcamera/camera_sensor.cpp            | 158 +++++++++++++++++++--\n src/libcamera/pipeline/ipu3/ipu3.cpp       |   7 +-\n src/libcamera/pipeline/rkisp1/rkisp1.cpp   |   2 +-\n src/libcamera/pipeline/vimc/vimc.cpp       |   4 +-\n 5 files changed, 162 insertions(+), 15 deletions(-)\n\n--\n2.29.2"}