[{"id":24311,"web_url":"https://patchwork.libcamera.org/comment/24311/","msgid":"<20220802154053.hhbrkhmc32hellp3@uno.localdomain>","date":"2022-08-02T15:40:53","subject":"Re: [libcamera-devel] [PATCH 00/13] libcamera: pipeline: simple:\n\tSupport the NXP i.MX8 ISI","submitter":{"id":3,"url":"https://patchwork.libcamera.org/api/people/3/","name":"Jacopo Mondi","email":"jacopo@jmondi.org"},"content":"Hi Laurent\n\nJust a note to record I tested on a non-routed pipeline (pinephone)\nand I've seen no regressions there\n\nTested-by: Jacopo Mondi <jacopo@jmondi.org>\n\nOn Mon, Aug 01, 2022 at 03:05:30AM +0300, Laurent Pinchart via libcamera-devel wrote:\n> Hello,\n>\n> This patch series adds support for the NXP i.MX8 ISI to the simple\n> pipeline handler.\n>\n> The ISI (which stands for Image Sensor Interface) is an IP core found in\n> multiple SoCs from the NXP i.MX8 family. It combines a crossbar switch\n> with processing pipelines that each include a scaler, a colorspace\n> converter and a DMA engine to capture frames from multiple inputs to\n> memory. As data flows linearly from the source to the DMA engine, the\n> ISI is a good candidate for the simple pipeline handler (while the ISI\n> can be used with Bayer sensors by bypassing the processing pipeline to\n> capture raw data, most use cases will use RGB or YUV sources).\n>\n> The ISI driver has been posted to the linux-media mailing list,\n> currently as a v2 ([1]). It depends on the V4L2 routing API to control\n> the crossbar switch, and as the API is still under development ([2]),\n> this blocks merging the driver for the time being. However, the routing\n> API is now at v12, and the development effort isn't slowing down, we may\n> consider merging support for the API in libcamera before it hits\n> upstream. I would appreciate feedback on this.\n>\n> The series starts with three patches that update the Linux kernel\n> header, with 01/13 moving to headers from kernel v5.19, and patches\n> 02/13 and 03/13 adding new pixel formats that have been merged in\n> subsystem trees and will be present in v5.20. Patch 04/13 then adds\n> support for those formats to libcamera. If we decide that the routing\n> API shouldn't be merged in libcamera yet, these first four patches are\n> still candidates for upstreaming without delay.\n>\n> Patch 05/13 then adds the V4L2 routing API to the kernel headers, and\n> patches 06/13 to 08/13 extend the V4L2Subdevice class to support the\n> API. Patches 09/13 to 12/13 extend the simple pipeline handler to take\n> routes into account during pipeline discovery and configuration.\n> Finally, patch 13/13 enables support for the ISI in the simple pipeline\n> handler.\n>\n> [1] https://lore.kernel.org/linux-media/20220712000251.13607-1-laurent.pinchart@ideasonboard.com/\n> [2] https://lore.kernel.org/linux-media/20220301161156.1119557-1-tomi.valkeinen@ideasonboard.com/\n>\n> Jacopo Mondi (4):\n>   libcamera: v4l2_subdevice: Change V4L2Subdevice::Whence\n>   libcamera: v4l2_subdevice: Collect subdev capabilities\n>   libcamera: v4l2_subdevice: Add support for the V4L2 subdev routing API\n>   libcamera: pipeline: simple: Reset routing table of subdevs\n>\n> Laurent Pinchart (7):\n>   include: linux: Update kernel headers to version v5.19\n>   include: drm_fourcc: Add AVUY and XVUY 4:4:4 packet formats\n>   include: linux: Add V4L2 YUVA32 and YUVX32 pixel formats\n>   libcamera: formats: Add AVUY8888 and XVUY8888 formats\n>   include: linux: Add V4L2 subdev internal routing API\n>   libcamera: pipeline: simple: Setup links in the context of sink\n>     entities\n>   libcamera: pipeline: simple: Add support for NXP ISI\n>\n> Phi-Bang Nguyen (2):\n>   libcamera: pipeline: simple: Walk pipeline using subdev internal\n>     routing\n>   libcamera: pipeline: simple: Don't disable links carrying other\n>     streams\n>\n>  include/libcamera/internal/v4l2_subdevice.h |  28 +-\n>  include/linux/README                        |   2 +-\n>  include/linux/dma-buf.h                     |   4 +-\n>  include/linux/drm_fourcc.h                  |  88 +++++-\n>  include/linux/intel-ipu3.h                  |  35 ++-\n>  include/linux/v4l2-controls.h               | 301 +++++++++++++++++++-\n>  include/linux/v4l2-subdev.h                 |  88 +++++-\n>  include/linux/videodev2.h                   |  15 +-\n>  src/libcamera/formats.cpp                   |  26 ++\n>  src/libcamera/formats.yaml                  |   4 +\n>  src/libcamera/pipeline/simple/simple.cpp    | 173 ++++++++++-\n>  src/libcamera/v4l2_pixelformat.cpp          |   4 +\n>  src/libcamera/v4l2_subdevice.cpp            | 161 ++++++++++-\n>  13 files changed, 877 insertions(+), 52 deletions(-)\n>\n>\n> base-commit: 69ae75b0cc211f82665b3e92fb3de64a9852b403\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 56083C3275\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue,  2 Aug 2022 15:40:57 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id CBA8B63313;\n\tTue,  2 Aug 2022 17:40:56 +0200 (CEST)","from relay1-d.mail.gandi.net (relay1-d.mail.gandi.net\n\t[IPv6:2001:4b98:dc4:8::221])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id E2FC0603E7\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue,  2 Aug 2022 17:40:55 +0200 (CEST)","(Authenticated sender: jacopo@jmondi.org)\n\tby mail.gandi.net (Postfix) with ESMTPSA id 154D1240011;\n\tTue,  2 Aug 2022 15:40:54 +0000 (UTC)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1659454856;\n\tbh=d0F06HxMyZgF0HuqXn+lIavVFlBcDjfG+WE0bIyFtfA=;\n\th=Date:To:References:In-Reply-To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=NfAmyjjK296Ugqej2E6SKIzj5PWM+5p1iRSFFvghq3r5nR6HOzT5LQVBY3+hcitpN\n\tI+v4sNdujIQEF96GBeyxwvXLQQPyI3K7hB3UvoUMAvKyinAhXfgK5GSmNZ8ZOX+g0O\n\tdypr/1+6aQWKRg/gYcbWzn0hH6U+Dh5iHGb/Vmz+tvWTr1k1ES5IMd66lKiXfMb0iT\n\t6ZYq7PnkEeLdfLOTKUj4FFtN+SR0BRG5fkZQjye8U8d6muQ+NdLGyc0M3oId3g71qg\n\totcnh2RkMG0EcyZQ2kJjlze59c54wRpBv+RXVuP5BviI0xh+eQqEgaAgyKyC2KYk/d\n\tIbgpTZ/D8QwXw==","Date":"Tue, 2 Aug 2022 17:40:53 +0200","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Message-ID":"<20220802154053.hhbrkhmc32hellp3@uno.localdomain>","References":"<20220801000543.3501-1-laurent.pinchart@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20220801000543.3501-1-laurent.pinchart@ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH 00/13] libcamera: pipeline: simple:\n\tSupport the NXP i.MX8 ISI","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":"Jacopo Mondi via libcamera-devel <libcamera-devel@lists.libcamera.org>","Reply-To":"Jacopo Mondi <jacopo@jmondi.org>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]