From patchwork Wed Sep 16 14:39:36 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jai Luthra X-Patchwork-Id: 28300 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 6FC92BDE6B for ; Wed, 16 Sep 2026 14:40:13 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 481E968244; Wed, 16 Sep 2026 16:40:12 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="e2s34GYF"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 325E568244 for ; Wed, 16 Sep 2026 16:40:10 +0200 (CEST) Received: from mail.ideasonboard.com (unknown [IPv6:2401:4900:1c69:85de:a3c9:9357:b164:bf0b]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id EBC2A558; Wed, 16 Sep 2026 16:38:27 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1789569508; bh=/JHvXOUXsE2KNI/PCdZdV6FyJ2KPVYoBlVUdjSm6Uvc=; h=From:Subject:Date:To:Cc:From; b=e2s34GYFlxQ6g2G+I7eRbOwii4BI+twNWxYf5jt7d9JEdTp9HzJnXaUzAVD5dwbbJ rjTtIWlZTWaF8MNN7/B6Vek+aoZCqcCsHSEvnx7ZVt+yWs3/boh+vNftwETOzSqu8Z BbAp8loZX5ijycQ6rwy2aq5Es9BBcs19fwWwC4xM= From: Jai Luthra Subject: [PATCH v3 0/8] Raspberry Pi: Update VC4 pipeline for mainline Date: Wed, 16 Sep 2026 20:09:36 +0530 Message-Id: <20260916-pi4-upstream-v3-0-4666708d8829@ideasonboard.com> MIME-Version: 1.0 X-B4-Tracking: v=1; b=H4sIAAAAAAAC/3XMQQ6CMBCF4auQrq1ph1LElfcwLko7yCygpMVGQ 7i7hY2J0eX/kvctLGIgjOxcLCxgokh+zFEeCmZ7M96Rk8vNQIAWIAWfSPHHFOeAZuAn3VhR1UY JXbN8mQJ29Ny56y13T3H24bXrSW7rHyhJLjjUzUlJK6uuNRdyaKIfW2+CO1o/sM1L8DFqgC8Ds oGtUq60unMN/DDWdX0DhkSeR/MAAAA= X-Change-ID: 20260210-pi4-upstream-869c057a4067 To: libcamera-devel@lists.libcamera.org Cc: Naushir Patuck , David Plowman , Laurent Pinchart , Kieran Bingham , Paul Elder , Jai Luthra X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=3188; i=jai.luthra@ideasonboard.com; h=from:subject:message-id; bh=/JHvXOUXsE2KNI/PCdZdV6FyJ2KPVYoBlVUdjSm6Uvc=; b=owEBbQKS/ZANAwAKAUPekfkkmnFFAcsmYgBqqqo822gaDYeUDq8fhDm6SmylJ0hGVd6J0rI8f wLmn/4k5C+JAjMEAAEKAB0WIQRN4NgY5dV16NRar8VD3pH5JJpxRQUCaqqqPAAKCRBD3pH5JJpx RUNND/9/2j3Jhf1tfPMLiqtFmHag66H3YXryjEPeQm1a9GWa0GZfFE7y/PqwoSYgbkmgrNPl6Kc sgFkUtdhtPIXc1A4LRzG4s7xVAg/ou2t3GsrtwWoXH8WMigJfGMnjLp7ecC2lnBpxP4xiMp/54u uRIkfb8Cx5mpIsPUS14ZuK2sFGgHyqceuROnkLTqDQ87gPXkh0VqubsR2KTXlCRZFl19ITs2qsQ LtJvwKJXU6naCRvFvKAt+flr6iL4SLwr2Ydgdbh9VNJ63f7o749gu/qZBoig+UmpsHHhnBKbTEr U2x9E/pEhDXqklFkyjzFftyT73XpdQnNUaDZBAmd1GaI1l2agNZeSHlA9GkkEvldzCOEuDJjXX5 XP7L3hbBYAKbQZAMJ9+R8L6V0NBBzIKjNRSnbxx7XaZP5KZHmJKyoQDdwtmBFccquAvP9KTzvI5 m4A7VcfjdSMVyVOEdDOlQnvS5qx5n72UzHcd0yrrugxvlrq0HnxAJkEuEeadBImna3pUtWEpMdx oCjSOClt7QFWTAfYVdvsyrieTwe4izWpYDskUbInFEEmv+HrPWP+HQz87SnhVEa1d3qDj9vomEJ Yvf9+Rx6oORXWjS9nN7skhLeAS1niAn1qfH9V/PSgQQnDG2a3C6IeWKQmjMwFqUCFzCh7tBQI+t /hwhNzMi6G7/uCA== X-Developer-Key: i=jai.luthra@ideasonboard.com; a=openpgp; fpr=4DE0D818E5D575E8D45AAFC543DE91F9249A7145 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, This series has updates to the Raspberry Pi VC4-based image pipeline to work with the mainline variants of the capture (unicam) and ISP (VC4) drivers. The unicam driver is already merged in mainline. The latest revision of the ISP driver is posted here: https://lore.kernel.org/all/20260916-b4-vchiq-isp-v4-0-f668c2017b74@ideasonboard.com/ For testing this series you can use this kernel branch (with overlays, VCHIQ dependencies and a temporary firmware clock fix): https://github.com/jailuthra/linux/commits/b4/rpi-isp As this series breaks backward-compatibility with older downstream kernels, and modifies a lot of different things, I've tried to split the migration into multiple patches for ease of review: PATCH 1-4 are preparation patches, and should still work with a downstream kernel. PATCH 5-8 transition to the mainline kernel. All of these should be 'bisectable' w.r.t. compilation, but actually running libcamera on a mainline kernel in between the transition of PATCH 5 and PATCH 7 might not work. Signed-off-by: Jai Luthra --- Changes in v3: - Rebase on master, switch to std::span - Fix minor review comments from Paul - Link to v2: https://lore.kernel.org/r/20260722-pi4-upstream-v2-0-eb44d3c6fd92@ideasonboard.com Changes in v2: - Populate the LS table's DMABUF descriptor in the pipeline handler - Split and reorganize migration patches to ease review - Cleanup unused PrepareParams argument in platformPrepareIsp() - Link to v1: https://lore.kernel.org/r/20260210-pi4-upstream-v1-0-279841c15fba@ideasonboard.com --- Jai Luthra (7): ipa: rpi: Drop unused params argument from platformPrepareIsp() include: uapi: bcm2835-isp: Add extensible parameter buffer interface ipa: rpi: vc4: Add Bcm2835Params helper ipa: rpi: Allow sharing params buffer to the IPA pipeline: rpi: vc4: Switch to mainline media topology for bcm2835-isp pipeline/ipa: rpi: vc4: Switch configuration from controls to param buffer include: uapi: bcm2835-isp: Drop legacy V4L2 controls Laurent Pinchart (1): pipeline: rpi: vc4: Configure format on Unicam subdev include/libcamera/ipa/raspberrypi.mojom | 18 +- include/linux/bcm2835-isp.h | 274 +++++++++++++++++++++---- include/linux/v4l2-controls.h | 3 - include/linux/videodev2.h | 3 +- src/ipa/rpi/common/ipa_base.cpp | 13 +- src/ipa/rpi/common/ipa_base.h | 7 +- src/ipa/rpi/pisp/pisp.cpp | 6 +- src/ipa/rpi/vc4/params.h | 79 +++++++ src/ipa/rpi/vc4/vc4.cpp | 218 +++++++++----------- src/libcamera/pipeline/rpi/common/rpi_stream.h | 1 + src/libcamera/pipeline/rpi/pisp/pisp.cpp | 6 +- src/libcamera/pipeline/rpi/vc4/vc4.cpp | 238 ++++++++++++++++----- 12 files changed, 624 insertions(+), 242 deletions(-) --- base-commit: 527cb2b248cf32ef4a7586513b354449ac3fd63c change-id: 20260210-pi4-upstream-869c057a4067 Best regards,