{"id":18409,"url":"https://patchwork.libcamera.org/api/1.1/covers/18409/?format=json","web_url":"https://patchwork.libcamera.org/cover/18409/","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":"<20230318234014.29506-1-dan.scally@ideasonboard.com>","date":"2023-03-18T23:40:03","name":"[libcamera-devel,00/11] Support OV7251 in IPU3 pipeline and qcam","submitter":{"id":156,"url":"https://patchwork.libcamera.org/api/1.1/people/156/?format=json","name":"Dan Scally","email":"dan.scally@ideasonboard.com"},"mbox":"https://patchwork.libcamera.org/cover/18409/mbox/","series":[{"id":3807,"url":"https://patchwork.libcamera.org/api/1.1/series/3807/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=3807","date":"2023-03-18T23:40:03","name":"Support OV7251 in IPU3 pipeline and qcam","version":1,"mbox":"https://patchwork.libcamera.org/series/3807/mbox/"}],"comments":"https://patchwork.libcamera.org/api/covers/18409/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 DE542BD80A\n\tfor <parsemail@patchwork.libcamera.org>;\n\tSat, 18 Mar 2023 23:40:34 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id F3305626EF;\n\tSun, 19 Mar 2023 00:40:33 +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 0FE4F626D2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSun, 19 Mar 2023 00:40:32 +0100 (CET)","from mail.ideasonboard.com\n\t(cpc141996-chfd3-2-0-cust928.12-3.cable.virginm.net [86.13.91.161])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 649B9B6C;\n\tSun, 19 Mar 2023 00:40:31 +0100 (CET)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1679182834;\n\tbh=xDG0IXglEj2z6LvkNy5wFd9mcr8eol4s06vdo1ErnX8=;\n\th=To:Date:Subject:List-Id:List-Unsubscribe:List-Archive:List-Post:\n\tList-Help:List-Subscribe:From:Reply-To:From;\n\tb=XLSpHRCN5MRTpOBFQbW0taqzaGCg8KOyWprJwu6NMZAs+ecMzjdb+pKL9gWK7iWb5\n\t0oL/qydkcQ9qx1khJ8xiXcajL4iBVb1oRBUskA+ZKhiosHURwcLOFQTR6l15bq3pJM\n\tMofb6YhKx/vqoW4zMo7YIrF/xL6dXuXSo7hjyzb2A/RiMn5Vta/v5r/nVNjVdvMXAI\n\t9Kiu+1JNVHTqB6E82VgC1YMbRNT+yj9wz1eQL9bXYrJc1VWV/tQPiG8lM26bGt3G6S\n\tEW5yJ5+hjzBnRHOUXTj+nMIpV/Op4TxvbQSS3YLWJyORy3bEc1Rcs//LJ8JpInZal1\n\tj8E2qocXH4eiw==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1679182831;\n\tbh=xDG0IXglEj2z6LvkNy5wFd9mcr8eol4s06vdo1ErnX8=;\n\th=From:To:Cc:Subject:Date:From;\n\tb=S9MBZN2mo9rGsKhk6+vHy1tP7LNFMMxoXUgFJY7IFNKlKfAyjSo/mN+cdV4uoqBWP\n\tysNYTSAGp1SA9Qtv+DPN6yixA77WT+/IJbzUcWQDrlg6Qtd0r2zbaAzc9zihyfFazp\n\tz/Ir67b+RhKay4Q+LuB6cjvTm2vgWhHvg2UzMSKo="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"S9MBZN2m\"; dkim-atps=neutral","To":"libcamera-devel@lists.libcamera.org","Date":"Sat, 18 Mar 2023 23:40:03 +0000","Message-Id":"<20230318234014.29506-1-dan.scally@ideasonboard.com>","X-Mailer":"git-send-email 2.34.1","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","Subject":"[libcamera-devel] [PATCH 00/11] Support OV7251 in IPU3 pipeline and\n\tqcam","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":"Daniel Scally via libcamera-devel <libcamera-devel@lists.libcamera.org>","Reply-To":"Daniel Scally <dan.scally@ideasonboard.com>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"},"content":"Hello all\n\nThis series is an attempt at adding support for the OV7251 camera on Microsoft\nSurface platforms to libcamera. The sensor outputs data in MEDIA_BUS_FMT_Y10_1X10\nformat, which is packed by the CIO2 CSI-2 reciever into V4L2_PIX_FMT_IPU3_Y10. As\nfar as I know, these data are not intended to run through the Imgu at all. Certainly\nthe kernel's ipu3-imgu driver does not support that format, but given the simplicity\nof the format we can simply use the CIO2 device's capture-capable devnode as the\nsource of the image data.\n\nTo facilitate that, I'm identifying sensors which don't have a format that needs\nthe Imgu and simply skipping the Imgu/IPA processing in the IPU3 pipeline for\nthem.\n\nWhat I don't particularly like about the way that I've done things here is that\nthe stream only works for the Raw role, which feels wrong. The advantage is that\nit's contained within the existing IPU3 pipeline without too much disruption,\nbut I do wonder whether a separate CIO2-only pipeline might not be better. In\nthat case PipelineHandlerIPU3::match() would need amending to check whether the\nsensor for each \"ipu3-csi-2 n\" instance needed hooking into the Imgu and not adding\nthose to the device match if it found that they didn't need it, so that a new\nCIO2-only pipeline could claim the media devices. I'd love to hear other people's\nthoughts about the best way to handle this.\n\nThanks\nDan\n\nDaniel Scally (11):\n  pipeline: ipu3: Check if sensor supports test pattern control\n  include: drm_fourcc: Add Y10 format\n  libcamera/formats: Add IPU3_Y10 format\n  pipeline: ipu3: Identify sensors that do not need the Imgu\n  pipeline: ipu3: Add needsImgu flag to IPU3Frames\n  pipeline: ipu3: Support sensors using only CIO2\n  pipeline: ipu3: Allow raw-only streams in IPU3 pipeline\n  pipeline: ipu3: Support IPU3_Y10 format\n  apps: qcam: Add support for IPU3_Y10\n  apps: qcam: Remove restriction on raw-only streams\n  pipeline: ipu3: Increase maximum connected cameras\n\n include/linux/drm_fourcc.h             |   3 +\n src/apps/qcam/format_converter.cpp     |  50 +++++\n src/apps/qcam/format_converter.h       |   2 +\n src/apps/qcam/main_window.cpp          |   6 -\n src/libcamera/formats.cpp              |  10 +\n src/libcamera/formats.yaml             |   3 +\n src/libcamera/pipeline/ipu3/cio2.cpp   |  21 +++\n src/libcamera/pipeline/ipu3/cio2.h     |   4 +\n src/libcamera/pipeline/ipu3/frames.cpp |  45 +++--\n src/libcamera/pipeline/ipu3/frames.h   |   3 +-\n src/libcamera/pipeline/ipu3/ipu3.cpp   | 242 ++++++++++++++-----------\n 11 files changed, 255 insertions(+), 134 deletions(-)"}