From patchwork Mon Jan 13 09:24:42 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Naushir Patuck X-Patchwork-Id: 22524 Return-Path: X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id 5B30EC32F6 for ; Mon, 13 Jan 2025 09:35:40 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 875AA68500; Mon, 13 Jan 2025 10:35:39 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (2048-bit key; unprotected) header.d=raspberrypi.com header.i=@raspberrypi.com header.b="K0nPQGoX"; dkim-atps=neutral Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com [IPv6:2a00:1450:4864:20::336]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 7A3E8684D9 for ; Mon, 13 Jan 2025 10:35:36 +0100 (CET) Received: by mail-wm1-x336.google.com with SMTP id 5b1f17b1804b1-4363299010dso4062515e9.1 for ; Mon, 13 Jan 2025 01:35:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=raspberrypi.com; s=google; t=1736760936; x=1737365736; darn=lists.libcamera.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=L2x4LBC1SlscrmBdKy1ewIm9kNWy7ZiMpCYoQ5lG9/I=; b=K0nPQGoXmvX7eWY1Yh3gZXycRmkpcCJjiOkRhiPA2S4yY27jyZJLUW26KYHU66nIlG q+wcxYUP2pWoJW+GbK/v9Flw0wXdpR8WMOnPZmM5sAt22FBjXgMuig7p3wtTZYdz/rGm s7GBeHBpm49xS/Tc+7CFLBcrQBIg6nrNr5eWV2o5AJ+MDb6rt1sPL+OqzZKoEFIl+NHG nsuWipMzEGNtcimQuchx15b0Pg+9svE+m6oaB9ck2DDHD+SXAcGHfk5i8XfPsruSwq7w TGGirZ1TMnUZk4i+//Ftrqfe1DGhNYLP8tumQiXpas46p3m0OiajTJDi60eiY7s7nlIO PsUw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1736760936; x=1737365736; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=L2x4LBC1SlscrmBdKy1ewIm9kNWy7ZiMpCYoQ5lG9/I=; b=ldrYjcToQ48j0HEkWWV/stQMB+HbIPiHm/+lq8RYH25lleH9lfLGcM8z3T28dBPYMY VrxXU8IZx8ovQiC9R41c0d6rWooe1hELseeOJ6z2OftuGxERve3HDGcGOMCf+KRZKMDb mT6x+mCU9+VNzQvUbgVRSkiKSTMzOt3Y+Co4qxKQDdwRX289CPnxohK9mmbNDWepW5k3 YhPrhbe+bMEB2upqk/ajXKoRn0HEDMZG8QCLxIijCobxr8aUJ50YRmwQrhnUUPIMyomD BqVjxtMFdCSyhN+qKzrkc7GV2F1/dSaDILiimzNkCTCLVdwDufdg0hEqWh3Y2F5co9Ii gJQA== X-Gm-Message-State: AOJu0YyrmqlDwvFCxwclRrBNOKpAAYaeJ6Zd8gTB5WYQHvcK85hLCDR7 NXIGGnwquHprJr9z9aaWiskfgSmrcm6rm/PiEgVFCF0nTajwhNtKA6dXZrjFkDyOhYMippHC4L/ u2Hg= X-Gm-Gg: ASbGncsfE3UDHttL0zrDP80nnVF97qIcRVFb9wuna3JhNfQBcity1Emaz/q7HCTUAQ5 MuFG7DdF1rveWEUjWUYFsPDhK0TDU45xNiYa8eHThZUzWsfUFmsH30Wjj63LeKw0Ucjz92X4E0w 8sFUVFr9Uo+wjwSupgBhgW2OCBh0IHgx/CfAtPkGMkRmewZoAM1nNIV+ZYy0orxcxmaMeu2ZuTk XjaCFPZqXehYGBC7Im7+3SfMFcuYm9wtRjwPlyqC68oCsr2CLlX47usiuq6tws218rLydFWzxh8 X-Google-Smtp-Source: AGHT+IGEgaEW1q7/3Szou+tbPD91ovxc/1BexdazBS1hKDyRO8VeglmwqnA9tgvx5qMC18foQvljgg== X-Received: by 2002:adf:b60c:0:b0:385:df73:2f43 with SMTP id ffacd0b85a97d-38a872c8972mr4862674f8f.2.1736760935541; Mon, 13 Jan 2025 01:35:35 -0800 (PST) Received: from NAUSH-P-DELL.pitowers.org ([93.93.133.154]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-38a8e38c6dbsm11904724f8f.55.2025.01.13.01.35.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Jan 2025 01:35:33 -0800 (PST) From: Naushir Patuck To: libcamera-devel@lists.libcamera.org Cc: Naushir Patuck Subject: [PATCH v1 0/4] Raspberry Pi: Add support for Pi 5 (PiSP) Date: Mon, 13 Jan 2025 09:24:42 +0000 Message-ID: <20250113093532.4054142-1-naush@raspberrypi.com> X-Mailer: git-send-email 2.43.0 MIME-Version: 1.0 X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" Hi, A long time coming... this series add support for Raspberry Pi 5 (PiSP) to upstream libcamera. The IPA and pipeline handler code have been taken mostly unchanged from the Raspberry Pi downstream libcamera tree: https://github.com/raspberrypi/libcamera. Support for IMX500 and CNNs are not available in this series since we have yet to attempt to upstream the kernel changes. IMPORTANT NOTE -------------- The Pi 5 pipeline handler in this commit is NOT COMPATIBLE with the Raspberry Pi kernel drivers just yet! Instead, you must use the mainline kernel upstream drivers with this pipeline handler. When futher upstreaming development for embedded data is completed, RPi will backport the upstream kernel drives to our tree and this pipeline handler will then begin to work with both upstream and downstream kernel trees. Thanks, Naush Naushir Patuck (4): meson: Add libpisp.wrap ipa: rpi: Add support for Raspberry Pi 5 pipeline: rpi: Add new stream flags for PiSP pipeline: rpi: Add support for Raspberry Pi 5 Documentation/guides/pipeline-handler.rst | 2 +- include/libcamera/ipa/meson.build | 1 + include/libcamera/meson.build | 1 + meson.build | 1 + meson_options.txt | 4 +- src/ipa/rpi/pisp/data/imx219.json | 1187 +++++++++ src/ipa/rpi/pisp/data/imx219_noir.json | 1112 ++++++++ src/ipa/rpi/pisp/data/imx290.json | 341 +++ src/ipa/rpi/pisp/data/imx296.json | 1194 +++++++++ src/ipa/rpi/pisp/data/imx296_16mm.json | 1247 +++++++++ src/ipa/rpi/pisp/data/imx296_6mm.json | 1247 +++++++++ src/ipa/rpi/pisp/data/imx296_mono.json | 960 +++++++ src/ipa/rpi/pisp/data/imx378.json | 634 +++++ src/ipa/rpi/pisp/data/imx415.json | 1159 ++++++++ src/ipa/rpi/pisp/data/imx462.json | 342 +++ src/ipa/rpi/pisp/data/imx477.json | 1186 +++++++++ src/ipa/rpi/pisp/data/imx477_16mm.json | 1240 +++++++++ src/ipa/rpi/pisp/data/imx477_6mm.json | 1240 +++++++++ src/ipa/rpi/pisp/data/imx477_noir.json | 1148 ++++++++ src/ipa/rpi/pisp/data/imx477_scientific.json | 546 ++++ src/ipa/rpi/pisp/data/imx519.json | 634 +++++ src/ipa/rpi/pisp/data/imx708.json | 1270 +++++++++ src/ipa/rpi/pisp/data/imx708_noir.json | 1233 +++++++++ src/ipa/rpi/pisp/data/imx708_wide.json | 1293 +++++++++ src/ipa/rpi/pisp/data/imx708_wide_noir.json | 1148 ++++++++ src/ipa/rpi/pisp/data/meson.build | 29 + src/ipa/rpi/pisp/data/ov5647.json | 1186 +++++++++ src/ipa/rpi/pisp/data/ov5647_noir.json | 1121 ++++++++ src/ipa/rpi/pisp/data/ov64a40.json | 1133 ++++++++ src/ipa/rpi/pisp/data/ov9281_mono.json | 215 ++ src/ipa/rpi/pisp/data/se327m12.json | 639 +++++ src/ipa/rpi/pisp/data/uncalibrated.json | 135 + src/ipa/rpi/pisp/meson.build | 49 + src/ipa/rpi/pisp/pisp.cpp | 1068 ++++++++ src/libcamera/control_ids_rpi.yaml | 13 + .../pipeline/rpi/common/rpi_stream.h | 10 + .../pipeline/rpi/pisp/data/example.yaml | 45 + .../pipeline/rpi/pisp/data/meson.build | 8 + src/libcamera/pipeline/rpi/pisp/meson.build | 12 + src/libcamera/pipeline/rpi/pisp/pisp.cpp | 2372 +++++++++++++++++ subprojects/.gitignore | 1 + subprojects/libpisp.wrap | 6 + 42 files changed, 28410 insertions(+), 2 deletions(-) create mode 100644 src/ipa/rpi/pisp/data/imx219.json create mode 100644 src/ipa/rpi/pisp/data/imx219_noir.json create mode 100644 src/ipa/rpi/pisp/data/imx290.json create mode 100644 src/ipa/rpi/pisp/data/imx296.json create mode 100644 src/ipa/rpi/pisp/data/imx296_16mm.json create mode 100644 src/ipa/rpi/pisp/data/imx296_6mm.json create mode 100644 src/ipa/rpi/pisp/data/imx296_mono.json create mode 100644 src/ipa/rpi/pisp/data/imx378.json create mode 100755 src/ipa/rpi/pisp/data/imx415.json create mode 100644 src/ipa/rpi/pisp/data/imx462.json create mode 100644 src/ipa/rpi/pisp/data/imx477.json create mode 100644 src/ipa/rpi/pisp/data/imx477_16mm.json create mode 100644 src/ipa/rpi/pisp/data/imx477_6mm.json create mode 100644 src/ipa/rpi/pisp/data/imx477_noir.json create mode 100644 src/ipa/rpi/pisp/data/imx477_scientific.json create mode 100644 src/ipa/rpi/pisp/data/imx519.json create mode 100644 src/ipa/rpi/pisp/data/imx708.json create mode 100644 src/ipa/rpi/pisp/data/imx708_noir.json create mode 100644 src/ipa/rpi/pisp/data/imx708_wide.json create mode 100644 src/ipa/rpi/pisp/data/imx708_wide_noir.json create mode 100644 src/ipa/rpi/pisp/data/meson.build create mode 100644 src/ipa/rpi/pisp/data/ov5647.json create mode 100644 src/ipa/rpi/pisp/data/ov5647_noir.json create mode 100755 src/ipa/rpi/pisp/data/ov64a40.json create mode 100644 src/ipa/rpi/pisp/data/ov9281_mono.json create mode 100644 src/ipa/rpi/pisp/data/se327m12.json create mode 100644 src/ipa/rpi/pisp/data/uncalibrated.json create mode 100644 src/ipa/rpi/pisp/meson.build create mode 100644 src/ipa/rpi/pisp/pisp.cpp create mode 100644 src/libcamera/pipeline/rpi/pisp/data/example.yaml create mode 100644 src/libcamera/pipeline/rpi/pisp/data/meson.build create mode 100644 src/libcamera/pipeline/rpi/pisp/meson.build create mode 100644 src/libcamera/pipeline/rpi/pisp/pisp.cpp create mode 100644 subprojects/libpisp.wrap