From patchwork Wed Dec 10 14:39:16 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jacopo Mondi X-Patchwork-Id: 25457 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 A4134BD1F1 for ; Wed, 10 Dec 2025 14:39:34 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 39DFC6149D; Wed, 10 Dec 2025 15:39:34 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="V0skV5Jr"; 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 E5DE5613CB for ; Wed, 10 Dec 2025 15:39:31 +0100 (CET) Received: from [192.168.1.106] (mob-5-90-55-146.net.vodafone.it [5.90.55.146]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 8B4A26DC; Wed, 10 Dec 2025 15:39:30 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1765377570; bh=jFynjU09QJ7HQngDsxzVkVBmEzDe1c+x0duv0p7WX6c=; h=From:Subject:Date:To:Cc:From; b=V0skV5JrbR5F/J2PlDBiKgb7fwDc5t5SrfxNjkuVUqGUR0DiWHIwdmskOOtvHAGFq vomZtmCquFe2v1MJa42gu8nXKecSa2z5qa17gWYaxQ4IN9Jv8C30stCvBn7Hsm698J OJjaKDFVK5mD/OhKu/lLkCz3mbcCO6mM7qUO5uGU= From: Jacopo Mondi Subject: [PATCH v2 0/7] libcamera: mali-c55: Add support for memory-to-memory Date: Wed, 10 Dec 2025 15:39:16 +0100 Message-Id: <20251210-mali-cru-v2-0-e26421de202b@ideasonboard.com> MIME-Version: 1.0 X-B4-Tracking: v=1; b=H4sIABSGOWkC/23MywrCMBCF4VcpszaSTAgWV76HdJHLxA7YRhINS sm7G7t2+R8O3waFMlOB87BBpsqF09oDDwP42a43Ehx6A0o0CqURi72z8PklCBXG0TqtkaDfH5k iv3fqOvWeuTxT/uxyVb/1D1KVkCKMyjkTI520vXAgW9Lqks3h6NMCU2vtC9+m11mnAAAA X-Change-ID: 20251205-mali-cru-e212f8ab332e To: Daniel Scally , libcamera-devel@lists.libcamera.org Cc: Jacopo Mondi X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2112; i=jacopo.mondi@ideasonboard.com; h=from:subject:message-id; bh=jFynjU09QJ7HQngDsxzVkVBmEzDe1c+x0duv0p7WX6c=; b=owEBbQKS/ZANAwAKAXI0Bo8WoVY8AcsmYgBpOYYitCScACsqwMkcrH+eI65Z1iaRTeaPpPUa0 U4da2J9fbyJAjMEAAEKAB0WIQS1xD1IgJogio9YOMByNAaPFqFWPAUCaTmGIgAKCRByNAaPFqFW PNsxEAC9B0i8PkPYEbUiwlnc2sqzz+Vm88Ghzuyd7/VUCWKqvFAB/J/SV+87PHTSf6/klR8/QUZ 3N63cXNeoqSEuCMZoDWAzVvrMxA5MoFUZycPgh455Pcox+YmNR8RGAglRIQePIZyp3fYwdH7oZC CFiomLP6e16uif+yA8gEJ6d/Q94st61bKChPtp2r87uL+6F7ZVrUwzpWhjS3KduD9+0zoRURr6m pE2bxr9/88RqMIqUVPN/e1lYLrMEfFyVXhUcNSBZzzt+uqBwREbXUCQ/MlsBN2efVou/LqlUCB5 QlYBu8ivnnUHDyxpty82izXMeOwnY3U0lld21zKq0nSfOCYKgAUqG5LMx3Q7NDoqXIeQw4QcRwa CjrcwcoOZdfT4NIzCyiB8MlbLMDX+GSHSEV/Gi2rvQRhyL5pFr95fltcvkiSIBi25O4VjWy9Ut+ APRrQ+NSzqwcFbgHkZhPjlcO3nBCnM0GJgJ6id4C4uvsq+NhcLMYfF3NCyh1ED1ehNVccEK9tE2 uVZDcTZDBkhgMButoid6h64TW+dzYlKiilaCAZkdzzyjXKCOLDwweIjGxfvoc924n464AWOYXIy OjONZSERCJlr1KIuvaFSki0Qx48mTLAZ8zYikxl07EBpzYK7D0YQmK6fCuOQWuf1S9IezXHldmV QXkP5eOVDyredfA== X-Developer-Key: i=jacopo.mondi@ideasonboard.com; a=openpgp; fpr=72392EDC88144A65C701EA9BA5826A2587AD026B 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" Add support for m2m camera operations in the mali-c55 pipeline handler. The series targets SoCs like the Renesas RZ/V2H(P) one where the Mali-C55 ISP is integrated in m2m mode. The CSI-2 receiver (CRU) saves images to memory and the ISP is fed through a dedicated DMA engine that provides memory interfacing capabilities. The series starts by adding support for the RZG2LCRU class (named after the media device name) and then plumbs memory-to-memory operations in the pipeline handler. Warning: The series depends on: [PATCH 0/6] include: linux: Update headers to Linux v6.18 The last patch on the series, is of course not for inclusion and is only there to please the CI. Tested on RZ/V2H(P) EVK with imx708 camera sensor. Dan, could you re-test with Inline mode please ? I should have collected your fix that restored proper operations with Inline. Signed-off-by: Jacopo Mondi --- Changes in v2: - Almost a complete rework of the CameraData which is now a class hierarchy. I'm not sure the result is that much cleaner, but hey, I'm using templates and pattern with weird names, so it ought be better for sure --- Daniel Scally (3): libcamera: mali-c55: Add RZG2LCRU class libcamera: mali-c55: Register memory input camera libcamera: mali-c55: Implement capture for memory-to-memory Jacopo Mondi (4): libcamera: mali-c55: Split TPG and Inline camera handling libcamera: mali-c55: Configure camera in memory-to-memory libcamera: mali-c55: Fix sensor size computation [DNI] Please the CI loop src/libcamera/pipeline/mali-c55/mali-c55.cpp | 675 +++++++++++++++++++++----- src/libcamera/pipeline/mali-c55/meson.build | 3 +- src/libcamera/pipeline/mali-c55/rzg2l-cru.cpp | 259 ++++++++++ src/libcamera/pipeline/mali-c55/rzg2l-cru.h | 75 +++ 4 files changed, 887 insertions(+), 125 deletions(-) --- base-commit: 0a9cf7e0eb6aafcfaeda4c5774fb04db9186430d change-id: 20251205-mali-cru-e212f8ab332e Best regards,