{"id":18148,"url":"https://patchwork.libcamera.org/api/covers/18148/?format=json","web_url":"https://patchwork.libcamera.org/cover/18148/","project":{"id":1,"url":"https://patchwork.libcamera.org/api/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":"<20230119104544.9456-1-naush@raspberrypi.com>","date":"2023-01-19T10:45:30","name":"[libcamera-devel,v1,00/14] Raspberry Pi: Camera Module 3 support","submitter":{"id":34,"url":"https://patchwork.libcamera.org/api/people/34/?format=json","name":"Naushir Patuck","email":"naush@raspberrypi.com"},"mbox":"https://patchwork.libcamera.org/cover/18148/mbox/","series":[{"id":3715,"url":"https://patchwork.libcamera.org/api/series/3715/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=3715","date":"2023-01-19T10:45:30","name":"Raspberry Pi: Camera Module 3 support","version":1,"mbox":"https://patchwork.libcamera.org/series/3715/mbox/"}],"comments":"https://patchwork.libcamera.org/api/covers/18148/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 47CC6BD87C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 19 Jan 2023 10:45:55 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 1C393625E7;\n\tThu, 19 Jan 2023 11:45:54 +0100 (CET)","from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com\n\t[IPv6:2a00:1450:4864:20::32b])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 712BC61EFC\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 19 Jan 2023 11:45:52 +0100 (CET)","by mail-wm1-x32b.google.com with SMTP id\n\tf19-20020a1c6a13000000b003db0ef4dedcso3251004wmc.4\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 19 Jan 2023 02:45:52 -0800 (PST)","from localhost.localdomain ([93.93.133.154])\n\tby smtp.gmail.com with ESMTPSA id\n\tbe12-20020a05600c1e8c00b003db06224953sm5332029wmb.41.2023.01.19.02.45.51\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tThu, 19 Jan 2023 02:45:51 -0800 (PST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1674125154;\n\tbh=IXkxGlUqTtOMJ2wuoL0zO+3+wFcKh3gVYaXlmwkDeGU=;\n\th=To:Date:Subject:List-Id:List-Unsubscribe:List-Archive:List-Post:\n\tList-Help:List-Subscribe:From:Reply-To:From;\n\tb=NrTPPBSnmp42CDPNHVRWiWgJdqkZKfXdy9XgbFr/hrpL9Yvp1wy792faq5/02N/JY\n\tZzOozEss/5LOMyaDiYojchwULESWlWG7fG7MttER1zoFuDpVkydhV4FeiFoqEnVtoK\n\txHnqkkxFTFSrHKCCU6feIu/SLdp4SfvAyBoZ1M4aYDosmu0B/+4v9ioCZ9olGxt/SB\n\tGYnbUkvQWhv8i9dPcNgtJJFxB2eVVSKGvFVuFDa7Lr3BoHvVxjdeZss+EjdjcwMY17\n\tyKLdFF5b83QlcblqpHEnrvQLo1BE31+uGFFIekGvFuztk6/oNIJ2AU9UfVPdoGnhwY\n\trk1nasigbiSfg==","v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=raspberrypi.com; s=google;\n\th=content-transfer-encoding:mime-version:message-id:date:subject:cc\n\t:to:from:from:to:cc:subject:date:message-id:reply-to;\n\tbh=XAdyN7hkQitH4LCcTCM77EYjX8uRUfV+Nlz/b1RI/90=;\n\tb=OppftciFdt/Tpo97gwSR0nAuaZGPag5XxDjIm6xdFOFc7yMAvMIL6utkWQpleOddws\n\tCDLGWbGWGVmDL5aCrUk8yhHuEHmTfvvY/6Hexdd1eGsV3bNDkK3DIf/yRm3YonKmD+FI\n\tTCm/QRhNQw0RSGIR0LFG8ae1xkr6sp/aycMNkg1C1IzppnAgMXItJijgOmnhtEyiOHyQ\n\tBm7meLhTcdpu1Bmd81aY/2f6NV/DOA+UUw3g2xczn216rhIVVNMwRjKjaz/CJMKV347v\n\t+AMgDTpLDVA8TkGpqfUbORA6/mE3A84I9/m/33+IDji5FoziEyJhicO/ntrWU+kXk+h9\n\ts4Dg=="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key; \n\tunprotected) header.d=raspberrypi.com\n\theader.i=@raspberrypi.com\n\theader.b=\"OppftciF\"; dkim-atps=neutral","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20210112;\n\th=content-transfer-encoding:mime-version:message-id:date:subject:cc\n\t:to:from:x-gm-message-state:from:to:cc:subject:date:message-id\n\t:reply-to;\n\tbh=XAdyN7hkQitH4LCcTCM77EYjX8uRUfV+Nlz/b1RI/90=;\n\tb=qmfuhCnIppeUMXT/ChmGZllGf8ELUP7FlP46XeNkiglyBHGebvZyC0v+AEFuDpWW4R\n\tgUM6YIdQ/CD3IpzN5fre0trnSiePDzifRXWV6euOVxnECo9G+7Az4RpeMiTAnuZlJSq3\n\t+oo/mGgf29YMJCbJExixhAP0WiWsOtREeIkA6UATTFozXySGQ7NSYhETEIysFqTUgJ3g\n\ta1nOMZ15lHlB9kATyocuAOPOqLc0weV457402X1e8IXz5W8c9CeTxmS0LxT1oziI7O+M\n\t2YI1S6in8LrZRjx0QTnvFUmlS3hxRH/PVLBWbwDf3f3nNIaQYNcx/WOWGOubNGu/UjIb\n\tDWZg==","X-Gm-Message-State":"AFqh2krzm+Y2E3trSf9rK3Cp6s4cxcmx0ndppDKuRumkPNUGA+AETt/V\n\tdk4NAqaWK19WXtB+ETPWuz6MG2Gv3XtD7RCWjQ0=","X-Google-Smtp-Source":"AMrXdXsf0nDgd00HdRxX0Gjn+M5uLFtaUhpW2hVaM7o20enJWYQS+Mk9eRTkq+Vn9TeMN7wzwN6TUA==","X-Received":"by 2002:a05:600c:4256:b0:3da:1d51:ef9e with SMTP id\n\tr22-20020a05600c425600b003da1d51ef9emr9713803wmm.17.1674125151678; \n\tThu, 19 Jan 2023 02:45:51 -0800 (PST)","To":"libcamera-devel@lists.libcamera.org","Date":"Thu, 19 Jan 2023 10:45:30 +0000","Message-Id":"<20230119104544.9456-1-naush@raspberrypi.com>","X-Mailer":"git-send-email 2.25.1","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","Subject":"[libcamera-devel] [PATCH v1 00/14] Raspberry Pi: Camera Module 3\n\tsupport","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>","From":"Naushir Patuck via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Naushir Patuck <naush@raspberrypi.com>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"},"content":"Hi,\n\nThis series adds support for the Raspberry Pi Camera Module 3 (IMX708).\nA new hybrid PDAF/CDAF autofocus algorithm has been implemented to drive the\nautofocus mechanism available on this module.  All libcamera focus related\ncontrols are now hanled by the IPA.\n\nCamera Module 3 is available either with an IR or without an IR (NoIR) filter,\nand a normal or wide angle lens.  This makes a total of 4 possible variants.\nDetection of the variant is done through an OTP on the module, and signalled\nback to userland through changing the suffix on the device entity name.  As such,\nwe have 4 different tuning files and 4 duplicate instances of camera helpers and\nsensor properties entires.\n\nThere is a single HDR sensor mode available in the sensor.  Because of current\nlimitations, this needs to be switched on/off externally before running\nlibcamera:\n\nv4l2-ctl --set-ctrl wide_dynamic_range=[0|1] -d /dev/v4l-subdev0\n\nin order for the CameraSensor class to cache the correct sensor mode.  In our\nlibcamera-apps, you can simply use the --hdr argument to switch this on.  This\nis only a temporary measure, and we need to work on a more permanent solution by\nadding HDR pixel formats into V4L2.\n\nThanks,\nNaush\n\nNaushir Patuck (7):\n  pipeline: ipa: raspberrypi: Check if lens actuator is available\n  pipeline: ipa: raspberrypi: Remove unused streamConfig\n  pipeline: ipa: raspberrypi: Replace entityControls\n  pipeline: ipa: raspberrypi: Validate lens controls\n  ipa: raspberrypi: Reorder header file inclusion\n  ipa: raspberrypi: Include autofocus controls in the IPA ControlInfoMap\n  ipa: raspberrypi: Add lens position to DeviceStatus\n\nNick Hollinghurst (7):\n  ipa: mojom: raspberrypi: Add setLensControls() function\n  ipa: raspberrypi: Add autofocus algorithm interface headers\n  ipa: raspberrypi: Handle autofocus controls\n  ipa: raspberrypi: Handle autofocus algorithm results\n  ipa: raspberrypi: First version of autofocus algorithm using PDAF\n  libcamera: camera_sensor: Add Sony IMX708 sensor properties\n  ipa: raspberrypi: Add support for the Sony IMX708 sensor\n\n include/libcamera/ipa/raspberrypi.mojom       |  10 +-\n src/ipa/raspberrypi/cam_helper_imx708.cpp     | 350 ++++++++\n src/ipa/raspberrypi/controller/af_algorithm.h |  76 ++\n src/ipa/raspberrypi/controller/af_status.h    |  35 +\n .../raspberrypi/controller/device_status.h    |   4 +-\n src/ipa/raspberrypi/controller/pdaf_data.h    |  21 +\n src/ipa/raspberrypi/controller/rpi/af.cpp     | 755 ++++++++++++++++++\n src/ipa/raspberrypi/controller/rpi/af.h       | 153 ++++\n src/ipa/raspberrypi/data/imx708.json          | 559 +++++++++++++\n src/ipa/raspberrypi/data/imx708_noir.json     | 559 +++++++++++++\n src/ipa/raspberrypi/data/imx708_wide.json     | 462 +++++++++++\n .../raspberrypi/data/imx708_wide_noir.json    | 462 +++++++++++\n src/ipa/raspberrypi/data/meson.build          |   4 +\n src/ipa/raspberrypi/meson.build               |   2 +\n src/ipa/raspberrypi/raspberrypi.cpp           | 267 ++++++-\n src/libcamera/camera_sensor_properties.cpp    |  16 +\n .../pipeline/raspberrypi/raspberrypi.cpp      |  35 +-\n 17 files changed, 3729 insertions(+), 41 deletions(-)\n create mode 100644 src/ipa/raspberrypi/cam_helper_imx708.cpp\n create mode 100644 src/ipa/raspberrypi/controller/af_algorithm.h\n create mode 100644 src/ipa/raspberrypi/controller/af_status.h\n create mode 100644 src/ipa/raspberrypi/controller/pdaf_data.h\n create mode 100644 src/ipa/raspberrypi/controller/rpi/af.cpp\n create mode 100644 src/ipa/raspberrypi/controller/rpi/af.h\n create mode 100644 src/ipa/raspberrypi/data/imx708.json\n create mode 100644 src/ipa/raspberrypi/data/imx708_noir.json\n create mode 100644 src/ipa/raspberrypi/data/imx708_wide.json\n create mode 100644 src/ipa/raspberrypi/data/imx708_wide_noir.json"}