From patchwork Tue Dec 9 18:09:48 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Isaac Scott X-Patchwork-Id: 25389 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 404C3BD1F1 for ; Tue, 9 Dec 2025 18:10:06 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 411C06140A; Tue, 9 Dec 2025 19:10:05 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="k458ay3T"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 89AB0606D5 for ; Tue, 9 Dec 2025 19:10:03 +0100 (CET) Received: from isaac-ThinkPad-T16-Gen-2.infra.iob (cpc90716-aztw32-2-0-cust408.18-1.cable.virginm.net [86.26.101.153]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 6E25963B; Tue, 9 Dec 2025 19:10:02 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1765303802; bh=7Ve6/hribadJhrswZrCrLPollqLzUEHdEZ8xy+eW0bU=; h=From:To:Cc:Subject:Date:From; b=k458ay3T9yCycy4aoEC3L1YySR4L7ZuoQ8G0OvS70v/xoBnfFgYCTEdSBTbKmMvml huAFXa2kRxSxmShMCB1eqFQIdTK4Acu9hNe4Nvs10Hwff9rcgcXpMZXwTItukszhLc LCKbUc5Vr4Hi5i4azaLdbi0727aL7o3Hwzb9MI70= From: Isaac Scott To: libcamera-devel@lists.libcamera.org Cc: Isaac Scott Subject: [RFC PATCH 0/6] rkisp1: Add support for YUV bypass Date: Tue, 9 Dec 2025 18:09:48 +0000 Message-ID: <20251209180954.332392-1-isaac.scott@ideasonboard.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 All, The rkisp1 features the capability to use YUV bypass, which lets input YUV streams to bypass all ISP blocks, and be presented at the output of the ISP without being modified. This functionality is unimplemented currently. This series adds a new type of CameraSensor class, which can be used to represent cameras that do not support controls made mandatory by CameraSensorLegacy. Lots of this implementation is untested, such as FocusLens. This series is tested and works on the Debix Model A iMX8 MPlus with a GC2145 camera sensor outputting UYVY8_1X16, on top of origin/master, alongside with these kernel patches: https://lore.kernel.org/linux-media/20251209123136.273938-1-isaac.scott@ideasonboard.com/T/#t I am marking this series as RFC because I am keen to know if any other developers have any ideas on how to improve the series, or if there are other considerations / edge cases that I need to address. Best wishes, Isaac Isaac Scott (6): camera_sensor: Add camera_sensor_basic ipa: rkisp1: Let all controls be optional pipeline: rkisp1: Add support for YUV passthrough pipeline: rkisp1: Add YUV bypass formats to list of 'raw' formats rkisp1_path: Determine if the ISP is bypassed for YUV and RAW formats rkisp1: Add bypass configurations to ipa_context src/ipa/rkisp1/ipa_context.h | 2 + src/ipa/rkisp1/rkisp1.cpp | 45 +- src/libcamera/pipeline/rkisp1/rkisp1.cpp | 75 +- src/libcamera/pipeline/rkisp1/rkisp1_path.cpp | 65 +- src/libcamera/sensor/camera_sensor_basic.cpp | 965 ++++++++++++++++++ src/libcamera/sensor/meson.build | 1 + 6 files changed, 1098 insertions(+), 55 deletions(-) create mode 100644 src/libcamera/sensor/camera_sensor_basic.cpp