[{"id":28816,"web_url":"https://patchwork.libcamera.org/comment/28816/","msgid":"<20240301213336.GB25826@pendragon.ideasonboard.com>","date":"2024-03-01T21:33:36","subject":"Re: [PATCH/RFC 00/32] libcamera: Support the upstream Unicam driver","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"On Fri, Mar 01, 2024 at 11:20:49PM +0200, Laurent Pinchart wrote:\n> Hello everybody,\n> \n> This large(-ish) patch series is the first complete implementation of\n> support for the Unicam upstream kernel driver for libcamera.\n> \n> Or, it would be, if the Unicam driver was upstream. While I have also\n> completed a version of the Unicam driver for the upstream kernel,\n> there's a bit of a chicken-and-egg issue here as I would like to\n> cross-reference the cover letters. To break the loop, I'm posting this\n> series first, and will reply with a link to the Unicam patches ([1]).\n> \n> Support for Raspberry Pi 4 in libcamera currently relies on downstream\n> drivers that live in the Raspberry Pi kernel tree, for Unicam (the CSI-2\n> receiver) and the ISP. The Unicam driver, in particular, includes a few\n> workarounds to implement support for sensor embedded data, to compensate\n> for features that are or were until recently missing in the V4L2\n> in-kernel and userspace APIs. The new Unicam submission for the kernel\n> reworks the driver extensively to use the recently merged V4L2 streams\n> API, as well as the under development V4L2 generic metadata and internal\n> pads APIs ([2]).\n> \n> The series starts with nine patches that clean up, rework and improve\n> the V4L2Subdevice class (01/32 to 09/32). They have been posted to the\n> list before, and mostly reviewed. Patches 10/32 is where the fun starts,\n> as it pulls the APIs from [2] in the kernel headers. The next three\n> patches, 11/32 to 13/32, then update the V4L2Subdevice and\n> V4L2VideoDevice classes to support those APIs.\n> \n> The next ten patches rework the CameraSensor class to support sensor\n> drivers that use the new APIs. Patches 14/32 to to 21/32 contain various\n> reworks, including moving the camera sensor support to the new\n> src/libcamera/sensor/ directory, and turning CameraSensor into an\n> abstract base class with multiple implementations, using a factory\n> pattern to pick the right match. Patches 22/32 introduces a new\n> CameraSensor subclass for the new APIs, and patch 23/32 then extends the\n> CameraSensor interface to support embedded data.\n> \n> With all the building blocks in place, the next seven patches focus on\n> the Raspberry Pi VC4 pipeline handler to use the new APIs, when\n> interacting with the sensor (24/32), or with the mainline Unicam driver\n> (27/32 to 30/32). Once done, patch 31/32 drops the\n> V4L2_META_FMT_SENSOR_DATA format from the videodev2.h kernel header, as\n> the format is not used anymore and has never been present in the\n> upstream kernel.\n> \n> The last patch, 32/32, is a hack that unconditionally enables embedded\n> data for the IMX219 sensor, as that is the platform I've been using to\n> develop and test this series.\n> \n> Worthy of a note, this series breaks compatibility with the downstream\n> Raspberry Pi kernel. I have decided not to preserve backward\n> compatibiliy to ease development, and to make the new code easier to\n> review. We still need to discuss how to integrate the various components\n> (libcamera and kernel space) in a way that will not generate lots of\n> anger among users. This may lead to some temporary changes to the code\n> to help with the transition.\n> \n> For convenience, the patches can be found at [3].\n> \n> [1] TBD due to lack of a time machine\n\n[1] https://lore.kernel.org/linux-media/20240301213231.10340-1-laurent.pinchart@ideasonboard.com\n\n> [2] https://lore.kernel.org/linux-media/20231106122539.1268265-1-sakari.ailus@linux.intel.com\n> [3] https://git.libcamera.org/libcamera/pinchartl/libcamera.git/log/?h=rpi/streams/next\n> \n> Jacopo Mondi (1):\n>   libcamera: camera_sensor: Introduce CameraSensorFactory\n> \n> Laurent Pinchart (31):\n>   libcamera: v4l2_subdevice: Rename V4L2SubdeviceFormatInfo\n>   libcamera: v4l2_subdevice: Add code member to MediaBusFormatInfo\n>   libcamera: v4l2_subdevice: Expose media bus format info as internal\n>     API\n>   libcamera: v4l2_subdevice: Extend MediaBusFormatInfo with metadata\n>     formats\n>   libcamera: v4l2_subdevice: Drop V4L2SubdeviceFormat::bitsPerPixel()\n>   libcamera: v4l2_subdevice: Rename V4L2SubdeviceFormat::mbus_code to\n>     code\n>   libcamera: v4l2_subdevice: Add stream support to get/set functions\n>   libcamera: v4l2_subdevice: Replace Routing::toString() with\n>     operator<<()\n>   libcamera: v4l2_subdevice: Add V4L2Subdevice::Route structure\n>   [DNI] include: linux: Update kernel headers to metadata API\n>   libcamera: v4l2_subdevice: Update to the new kernel routing API\n>   libcamera: v4l2_subdevice: Add new metadata formats\n>   libcamera: v4l2_videodevice: Update to the new kernel metadata API\n>   libcamera: camera_sensor: Move related classes to subdirectory\n>   libcamera: camera_sensor: Drop updateControlInfo() function\n>   libcamera: camera_sensor: Reorder functions\n>   libcamera: camera_sensor: Test for read-only HBLANK with READ_ONLY\n>     flag\n>   libcamera: camera_sensor: Expose the Bayer order\n>   libcamera: camera_sensor: Create abstract base class\n>   libcamera: camera_sensor: Sort factories by priority\n>   libcamera: Add CameraSensor implementation for raw V4L2 sensors\n>   libcamera: camera_sensor: Add support for embedded data\n>   pipeline: raspberrypi: common: Configure sensor embedded data\n>   pipeline: raspberrypi: vc4: Use operator<<(V4L2VideoFormat)\n>   pipeline: raspberrypi: vc4: Reorganize platformConfigure()\n>   pipeline: raspberrypi: vc4: Use the CameraSensor embedded data API\n>   pipeline: raspberrypi: vc4: Unconditionally create embedded data\n>     stream\n>   pipeline: raspberrypi: vc4: Configure format on Unicam subdev\n>   pipeline: raspberrypi: vc4: Fix configuration of the embedded data\n>     node\n>   include: linux: Drop V4L2_META_FMT_SENSOR_DATA\n>   [HACK]: ipa: rpi: cam_helper_imx219: Enable embedded data\n> \n>  Documentation/Doxyfile.in                     |    2 +\n>  include/libcamera/internal/camera_sensor.h    |  162 +--\n>  include/libcamera/internal/v4l2_subdevice.h   |  103 +-\n>  include/linux/README                          |    2 +-\n>  include/linux/media-bus-format.h              |   13 +\n>  include/linux/media.h                         |    1 +\n>  include/linux/v4l2-controls.h                 |   16 +-\n>  include/linux/v4l2-mediabus.h                 |   18 +-\n>  include/linux/v4l2-subdev.h                   |   23 +-\n>  include/linux/videodev2.h                     |   30 +-\n>  src/ipa/rpi/cam_helper/cam_helper_imx219.cpp  |    2 +-\n>  src/libcamera/meson.build                     |    3 +-\n>  src/libcamera/pipeline/imx8-isi/imx8-isi.cpp  |   19 +-\n>  src/libcamera/pipeline/ipu3/cio2.cpp          |   15 +-\n>  src/libcamera/pipeline/ipu3/imgu.cpp          |    4 +-\n>  src/libcamera/pipeline/rkisp1/rkisp1.cpp      |    9 +-\n>  src/libcamera/pipeline/rkisp1/rkisp1_path.cpp |    2 +-\n>  .../pipeline/rpi/common/pipeline_base.cpp     |   85 +-\n>  .../pipeline/rpi/common/pipeline_base.h       |    6 +-\n>  src/libcamera/pipeline/rpi/vc4/vc4.cpp        |  174 ++-\n>  src/libcamera/pipeline/simple/simple.cpp      |   29 +-\n>  src/libcamera/pipeline/vimc/vimc.cpp          |   11 +-\n>  src/libcamera/sensor/camera_sensor.cpp        |  557 ++++++++\n>  .../camera_sensor_legacy.cpp}                 |  717 ++++------\n>  .../{ => sensor}/camera_sensor_properties.cpp |    0\n>  src/libcamera/sensor/camera_sensor_raw.cpp    | 1135 +++++++++++++++\n>  src/libcamera/sensor/meson.build              |    8 +\n>  src/libcamera/v4l2_subdevice.cpp              | 1239 ++++++++++++++---\n>  src/libcamera/v4l2_videodevice.cpp            |   31 +-\n>  test/camera-sensor.cpp                        |    9 +-\n>  .../v4l2_videodevice_test.cpp                 |    7 +-\n>  test/v4l2_videodevice/v4l2_videodevice_test.h |    2 +-\n>  32 files changed, 3471 insertions(+), 963 deletions(-)\n>  create mode 100644 src/libcamera/sensor/camera_sensor.cpp\n>  rename src/libcamera/{camera_sensor.cpp => sensor/camera_sensor_legacy.cpp} (60%)\n>  rename src/libcamera/{ => sensor}/camera_sensor_properties.cpp (100%)\n>  create mode 100644 src/libcamera/sensor/camera_sensor_raw.cpp\n>  create mode 100644 src/libcamera/sensor/meson.build\n> \n> \n> base-commit: c64446c226d4e629884d2f5b148a01969e8ee84a","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 C5AA3BE080\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri,  1 Mar 2024 21:33:36 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 343C06285F;\n\tFri,  1 Mar 2024 22:33:36 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id B2AE96285F\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri,  1 Mar 2024 22:33:34 +0100 (CET)","from pendragon.ideasonboard.com (89-27-53-110.bb.dnainternet.fi\n\t[89.27.53.110])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 25A53D04;\n\tFri,  1 Mar 2024 22:33:20 +0100 (CET)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"gvI1By3B\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1709328800;\n\tbh=FTeA5XSZ2qAuvx2qX7xK/A04kojTUbg1yb1wxR+7GaQ=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=gvI1By3BQmS0Lkceh2t1il5Kw05WeSKFtoS0xVUp/2yt3RInV358IuX8LJBS03Y/q\n\tkuvHpd93CgBwVdw+o5tIf1u1G5BAozg4jgl0TDa9zpQ6HvxxF3wCwmcqZfAD/pi+P8\n\tuOXk2RKTOy9e1scN7/C9V6//v4S74xvUsSj6E7nY=","Date":"Fri, 1 Mar 2024 23:33:36 +0200","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"libcamera-devel@lists.libcamera.org","Subject":"Re: [PATCH/RFC 00/32] libcamera: Support the upstream Unicam driver","Message-ID":"<20240301213336.GB25826@pendragon.ideasonboard.com>","References":"<20240301212121.9072-1-laurent.pinchart@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20240301212121.9072-1-laurent.pinchart@ideasonboard.com>","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":"Sakari Ailus <sakari.ailus@iki.fi>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":28939,"web_url":"https://patchwork.libcamera.org/comment/28939/","msgid":"<CAEmqJPoH3mwuob2CDtPCvPYaNcwj3FCAeci4Fci_Sr-yq77zug@mail.gmail.com>","date":"2024-03-13T11:55:01","subject":"Re: [PATCH/RFC 00/32] libcamera: Support the upstream Unicam driver","submitter":{"id":34,"url":"https://patchwork.libcamera.org/api/people/34/","name":"Naushir Patuck","email":"naush@raspberrypi.com"},"content":"Hi Laurent,\n\nVery exciting series!  I've had a brief attempt at getting this\nrunning with the Pi 5 pipeline handler with Tomi's CFE driver changes.\nI do have it working with the IMX219 but run into some very minor\nissues.  I'll comment on these in the relevant patches, but it is very\npossible (likey) that I may not have the latest IMX219 kernel code, so\nsome of these may be redundant.  Not a full review yet, that will come\nlater :) but I thought I should note my findings before I forget them.\n\nRegards,\nNaush\n\n\nOn Fri, 1 Mar 2024 at 21:21, Laurent Pinchart\n<laurent.pinchart@ideasonboard.com> wrote:\n>\n> Hello everybody,\n>\n> This large(-ish) patch series is the first complete implementation of\n> support for the Unicam upstream kernel driver for libcamera.\n>\n> Or, it would be, if the Unicam driver was upstream. While I have also\n> completed a version of the Unicam driver for the upstream kernel,\n> there's a bit of a chicken-and-egg issue here as I would like to\n> cross-reference the cover letters. To break the loop, I'm posting this\n> series first, and will reply with a link to the Unicam patches ([1]).\n>\n> Support for Raspberry Pi 4 in libcamera currently relies on downstream\n> drivers that live in the Raspberry Pi kernel tree, for Unicam (the CSI-2\n> receiver) and the ISP. The Unicam driver, in particular, includes a few\n> workarounds to implement support for sensor embedded data, to compensate\n> for features that are or were until recently missing in the V4L2\n> in-kernel and userspace APIs. The new Unicam submission for the kernel\n> reworks the driver extensively to use the recently merged V4L2 streams\n> API, as well as the under development V4L2 generic metadata and internal\n> pads APIs ([2]).\n>\n> The series starts with nine patches that clean up, rework and improve\n> the V4L2Subdevice class (01/32 to 09/32). They have been posted to the\n> list before, and mostly reviewed. Patches 10/32 is where the fun starts,\n> as it pulls the APIs from [2] in the kernel headers. The next three\n> patches, 11/32 to 13/32, then update the V4L2Subdevice and\n> V4L2VideoDevice classes to support those APIs.\n>\n> The next ten patches rework the CameraSensor class to support sensor\n> drivers that use the new APIs. Patches 14/32 to to 21/32 contain various\n> reworks, including moving the camera sensor support to the new\n> src/libcamera/sensor/ directory, and turning CameraSensor into an\n> abstract base class with multiple implementations, using a factory\n> pattern to pick the right match. Patches 22/32 introduces a new\n> CameraSensor subclass for the new APIs, and patch 23/32 then extends the\n> CameraSensor interface to support embedded data.\n>\n> With all the building blocks in place, the next seven patches focus on\n> the Raspberry Pi VC4 pipeline handler to use the new APIs, when\n> interacting with the sensor (24/32), or with the mainline Unicam driver\n> (27/32 to 30/32). Once done, patch 31/32 drops the\n> V4L2_META_FMT_SENSOR_DATA format from the videodev2.h kernel header, as\n> the format is not used anymore and has never been present in the\n> upstream kernel.\n>\n> The last patch, 32/32, is a hack that unconditionally enables embedded\n> data for the IMX219 sensor, as that is the platform I've been using to\n> develop and test this series.\n>\n> Worthy of a note, this series breaks compatibility with the downstream\n> Raspberry Pi kernel. I have decided not to preserve backward\n> compatibiliy to ease development, and to make the new code easier to\n> review. We still need to discuss how to integrate the various components\n> (libcamera and kernel space) in a way that will not generate lots of\n> anger among users. This may lead to some temporary changes to the code\n> to help with the transition.\n>\n> For convenience, the patches can be found at [3].\n>\n> [1] TBD due to lack of a time machine\n> [2] https://lore.kernel.org/linux-media/20231106122539.1268265-1-sakari.ailus@linux.intel.com\n> [3] https://git.libcamera.org/libcamera/pinchartl/libcamera.git/log/?h=rpi/streams/next\n>\n> Jacopo Mondi (1):\n>   libcamera: camera_sensor: Introduce CameraSensorFactory\n>\n> Laurent Pinchart (31):\n>   libcamera: v4l2_subdevice: Rename V4L2SubdeviceFormatInfo\n>   libcamera: v4l2_subdevice: Add code member to MediaBusFormatInfo\n>   libcamera: v4l2_subdevice: Expose media bus format info as internal\n>     API\n>   libcamera: v4l2_subdevice: Extend MediaBusFormatInfo with metadata\n>     formats\n>   libcamera: v4l2_subdevice: Drop V4L2SubdeviceFormat::bitsPerPixel()\n>   libcamera: v4l2_subdevice: Rename V4L2SubdeviceFormat::mbus_code to\n>     code\n>   libcamera: v4l2_subdevice: Add stream support to get/set functions\n>   libcamera: v4l2_subdevice: Replace Routing::toString() with\n>     operator<<()\n>   libcamera: v4l2_subdevice: Add V4L2Subdevice::Route structure\n>   [DNI] include: linux: Update kernel headers to metadata API\n>   libcamera: v4l2_subdevice: Update to the new kernel routing API\n>   libcamera: v4l2_subdevice: Add new metadata formats\n>   libcamera: v4l2_videodevice: Update to the new kernel metadata API\n>   libcamera: camera_sensor: Move related classes to subdirectory\n>   libcamera: camera_sensor: Drop updateControlInfo() function\n>   libcamera: camera_sensor: Reorder functions\n>   libcamera: camera_sensor: Test for read-only HBLANK with READ_ONLY\n>     flag\n>   libcamera: camera_sensor: Expose the Bayer order\n>   libcamera: camera_sensor: Create abstract base class\n>   libcamera: camera_sensor: Sort factories by priority\n>   libcamera: Add CameraSensor implementation for raw V4L2 sensors\n>   libcamera: camera_sensor: Add support for embedded data\n>   pipeline: raspberrypi: common: Configure sensor embedded data\n>   pipeline: raspberrypi: vc4: Use operator<<(V4L2VideoFormat)\n>   pipeline: raspberrypi: vc4: Reorganize platformConfigure()\n>   pipeline: raspberrypi: vc4: Use the CameraSensor embedded data API\n>   pipeline: raspberrypi: vc4: Unconditionally create embedded data\n>     stream\n>   pipeline: raspberrypi: vc4: Configure format on Unicam subdev\n>   pipeline: raspberrypi: vc4: Fix configuration of the embedded data\n>     node\n>   include: linux: Drop V4L2_META_FMT_SENSOR_DATA\n>   [HACK]: ipa: rpi: cam_helper_imx219: Enable embedded data\n>\n>  Documentation/Doxyfile.in                     |    2 +\n>  include/libcamera/internal/camera_sensor.h    |  162 +--\n>  include/libcamera/internal/v4l2_subdevice.h   |  103 +-\n>  include/linux/README                          |    2 +-\n>  include/linux/media-bus-format.h              |   13 +\n>  include/linux/media.h                         |    1 +\n>  include/linux/v4l2-controls.h                 |   16 +-\n>  include/linux/v4l2-mediabus.h                 |   18 +-\n>  include/linux/v4l2-subdev.h                   |   23 +-\n>  include/linux/videodev2.h                     |   30 +-\n>  src/ipa/rpi/cam_helper/cam_helper_imx219.cpp  |    2 +-\n>  src/libcamera/meson.build                     |    3 +-\n>  src/libcamera/pipeline/imx8-isi/imx8-isi.cpp  |   19 +-\n>  src/libcamera/pipeline/ipu3/cio2.cpp          |   15 +-\n>  src/libcamera/pipeline/ipu3/imgu.cpp          |    4 +-\n>  src/libcamera/pipeline/rkisp1/rkisp1.cpp      |    9 +-\n>  src/libcamera/pipeline/rkisp1/rkisp1_path.cpp |    2 +-\n>  .../pipeline/rpi/common/pipeline_base.cpp     |   85 +-\n>  .../pipeline/rpi/common/pipeline_base.h       |    6 +-\n>  src/libcamera/pipeline/rpi/vc4/vc4.cpp        |  174 ++-\n>  src/libcamera/pipeline/simple/simple.cpp      |   29 +-\n>  src/libcamera/pipeline/vimc/vimc.cpp          |   11 +-\n>  src/libcamera/sensor/camera_sensor.cpp        |  557 ++++++++\n>  .../camera_sensor_legacy.cpp}                 |  717 ++++------\n>  .../{ => sensor}/camera_sensor_properties.cpp |    0\n>  src/libcamera/sensor/camera_sensor_raw.cpp    | 1135 +++++++++++++++\n>  src/libcamera/sensor/meson.build              |    8 +\n>  src/libcamera/v4l2_subdevice.cpp              | 1239 ++++++++++++++---\n>  src/libcamera/v4l2_videodevice.cpp            |   31 +-\n>  test/camera-sensor.cpp                        |    9 +-\n>  .../v4l2_videodevice_test.cpp                 |    7 +-\n>  test/v4l2_videodevice/v4l2_videodevice_test.h |    2 +-\n>  32 files changed, 3471 insertions(+), 963 deletions(-)\n>  create mode 100644 src/libcamera/sensor/camera_sensor.cpp\n>  rename src/libcamera/{camera_sensor.cpp => sensor/camera_sensor_legacy.cpp} (60%)\n>  rename src/libcamera/{ => sensor}/camera_sensor_properties.cpp (100%)\n>  create mode 100644 src/libcamera/sensor/camera_sensor_raw.cpp\n>  create mode 100644 src/libcamera/sensor/meson.build\n>\n>\n> base-commit: c64446c226d4e629884d2f5b148a01969e8ee84a\n> --\n> Regards,\n>\n> Laurent Pinchart\n>","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 2CD05BD1F1\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 13 Mar 2024 11:55:40 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 23D3A62C8B;\n\tWed, 13 Mar 2024 12:55:39 +0100 (CET)","from mail-yw1-x112b.google.com (mail-yw1-x112b.google.com\n\t[IPv6:2607:f8b0:4864:20::112b])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 3150362C80\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 13 Mar 2024 12:55:38 +0100 (CET)","by mail-yw1-x112b.google.com with SMTP id\n\t00721157ae682-609f24f447cso58721557b3.2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 13 Mar 2024 04:55:38 -0700 (PDT)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=raspberrypi.com header.i=@raspberrypi.com\n\theader.b=\"b2FZdgEc\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=raspberrypi.com; s=google; t=1710330937; x=1710935737;\n\tdarn=lists.libcamera.org; \n\th=cc:to:subject:message-id:date:from:in-reply-to:references\n\t:mime-version:from:to:cc:subject:date:message-id:reply-to;\n\tbh=4UlHXAX/qtSsi7s/+pr/rQ4MxDp9yFm3yxCoEC8GvBo=;\n\tb=b2FZdgEclN5V/DH63srTyoEoy/O4GERP+tOaR42n1FsZolK3P5WDoP2ykaoVE1B0He\n\th5CoWGGKG/gQTqFAndCJ5+cvfBm9+Anmboya2SpCXFUWlUDTAg8aJtM3CJqKXF7lXsbd\n\thjCPpZI9Hse6hIJOtE8kh4BDZLv3xLCJoxa2uUWoiP+qmWzwY9rfJ9XM3ANJTJ9et5Fv\n\tRzxEffNze305nDu/OU8fOh22jZz0oghV5EadJBf95rSeuk74eG1QDpIPEnlBZWvlXbng\n\tmq781NRRsMKggsKmmki36LeHgl7B9YFj+4UJ5sPS3mr7IMvU0YYlOHL4B1AQspH3QbRL\n\tjjJQ==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1710330937; x=1710935737;\n\th=cc:to:subject:message-id:date:from:in-reply-to:references\n\t:mime-version:x-gm-message-state:from:to:cc:subject:date:message-id\n\t:reply-to;\n\tbh=4UlHXAX/qtSsi7s/+pr/rQ4MxDp9yFm3yxCoEC8GvBo=;\n\tb=Ath3LaFfw898q0KSntW32A/B63wbxEIMfUIyOZNE1khXAlKFHlifhZbZYkynQ9wS4C\n\t93ea+/5mEOjSe0JtD+IM3NFlfPEI97z5E+3zZ1aSbOx3q+vEMu5cRk/JyiCbQqZ3mxj4\n\txA14F6wpJZf4X0fS4DMD5eDGvqPD0ic3CZ/gJwe0HJ3YTJXpPBupdHNE4Fw5iM2tbnsf\n\t7jU3xSTcza1VGIGhwKv52xvDlpK0CJeJKaWWaQsxYodqRrWNxaAxSAsTIxjgfDsPwmj0\n\tVrGG0nVGqisBzRZCV3UDwjvYmmm72LlnClhR8rbSw8uK8IU/rTZ0dlzSNFhHmYHwIHSJ\n\tI7hQ==","X-Gm-Message-State":"AOJu0YwnsEbZ8RvOuBG1jW4YE0rOxCvX+mTHSglp5Ngrewt5MUR0iuTT\n\tBdHwmAfcdpmhwCyfqMIEiL9BvRolJOARiFfgGKfulVMU+EO60/RNe4Wpg+V5cJdR/UcSkgnmn+V\n\tSAA5gIFLmV2stt6X26mfkVPgTUBjsuAgvt6GhNA==","X-Google-Smtp-Source":"AGHT+IG3o07qY5xFj+Oywc22GIeEE7Lv+r5KtZtzoPErcSJDKoaFYAikLWcMU9nhihm6WsqGpu0IpYKaFrnhcC2XuJs=","X-Received":"by 2002:a0d:e64b:0:b0:608:8427:206 with SMTP id\n\tp72-20020a0de64b000000b0060884270206mr2509940ywe.27.1710330936860;\n\tWed, 13 Mar 2024 04:55:36 -0700 (PDT)","MIME-Version":"1.0","References":"<20240301212121.9072-1-laurent.pinchart@ideasonboard.com>","In-Reply-To":"<20240301212121.9072-1-laurent.pinchart@ideasonboard.com>","From":"Naushir Patuck <naush@raspberrypi.com>","Date":"Wed, 13 Mar 2024 11:55:01 +0000","Message-ID":"<CAEmqJPoH3mwuob2CDtPCvPYaNcwj3FCAeci4Fci_Sr-yq77zug@mail.gmail.com>","Subject":"Re: [PATCH/RFC 00/32] libcamera: Support the upstream Unicam driver","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Content-Type":"text/plain; charset=\"UTF-8\"","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":"libcamera-devel@lists.libcamera.org, Sakari Ailus <sakari.ailus@iki.fi>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]