From patchwork Fri Oct 23 10:58:23 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jai Luthra X-Patchwork-Id: 28585 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 A43B3C324C for ; Fri, 23 Oct 2026 11:00:07 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 4CDD068FD8; Fri, 23 Oct 2026 13:00:07 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="wkezBhBN"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id E957168FC8 for ; Fri, 23 Oct 2026 13:00:05 +0200 (CEST) Received: from mail.ideasonboard.com (unknown [IPv6:2401:4900:1c30:59f6:be2b:2877:6bc4:392]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id ABD272365; Fri, 23 Oct 2026 12:57:56 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1792753077; bh=Etl9cKvOrPXyrZ5Tb1MREL6BWY3jDDqzEo+elXJCmuQ=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=wkezBhBNbC6lv677XfklA3k4FCBmyhfXsJ+J4c+kIOZviYLxtvW5HOIuEUwuECapw YawwoTuhSNIa3PAMJs6zbnVOvvLnwtcbz5eFqwUmx6//3x37jstV7sKVLXopN5jFIS 0ebMLrTRzng5JE8DIYyZkMYNiXIQ+ZqCwSpt6n6U= From: Jai Luthra Date: Fri, 23 Oct 2026 16:28:23 +0530 Subject: [PATCH WIP RFC 15/26] HACK: libcamera: formats: Add a modifier for RAW colorspace MIME-Version: 1.0 Message-Id: <20261023-b4-raw-model-v1-15-eadb9948901b@ideasonboard.com> References: <20261023-b4-raw-model-v1-0-eadb9948901b@ideasonboard.com> In-Reply-To: <20261023-b4-raw-model-v1-0-eadb9948901b@ideasonboard.com> To: libcamera-devel@lists.libcamera.org Cc: Laurent Pinchart , Kieran Bingham , Sakari Ailus , Naushir Patuck , Jai Luthra X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=2602; i=jai.luthra@ideasonboard.com; h=from:subject:message-id; bh=Etl9cKvOrPXyrZ5Tb1MREL6BWY3jDDqzEo+elXJCmuQ=; b=owEBbQKS/ZANAwAKAUPekfkkmnFFAcsmYgBq2z3RT9O+ImvOGfmeXvlLP5lGb4xNmIi/iS8RS 6WXFAqa03KJAjMEAAEKAB0WIQRN4NgY5dV16NRar8VD3pH5JJpxRQUCats90QAKCRBD3pH5JJpx RctlD/sGsgF6btXgiiy1fV6wqD13etapWimlpmFVZO7tVk7uCUL5ZLmy46ulA18hBpLMKa430LG 153P6XcM20g+u8Q9SNjFlS4s2zuayVq9y8XsDtQynGhk3cjd1tlCs5SXWZ9kbKbue6uMmvdqa/f a2uTyd9nNx0Zv49DWSKWM8QndNfpqwfPxGvgm4T8YHITY237FZpSzH09xksJZw5UXkFU7iNQkuX Y4Jv6h+7Twto5E59tmuFAnqcZiiplhQiHO8bmJM7NdtsNyUWk3QnwyMnWCItKjJZnyIkgpD6rbG dggC1VZTqIVCO0GwvbSP7Upz5AAcHlP0toF8aMtnxPFGITGP0VA7fzcHDgaawMzZDYOUlT8BsTO U/ep11kfEWjFOFA/TyHFH8Yi2tnK7saWDe9HbM++cwkktCYaywQUQUxhHgNbcKID/t8L5dCG44V NGEGoIYjtU+6UIqB0A6w0bemLaYifEsXSqtYgXJBwzBcnfd1R/tIuAe+UI+QYNitrbVoKJM36BU 2J4HyVQnZqhu9PR385pNzB7iG7kM4YXBndCSY+KYYTLQrzw3UbuAPKHHzE8zFfFR6CK9ZqHlRpF Cq4xOrirSpKJgqWaNcuZNPgGu0sKxdMJ2sAEk8EmJbK2W2t6VrQtvXU0deozd8ljkhTEpj27g+N dTMBR3M0F6q2cDw== 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" This is a temporary HACK, as we don't have a way to communicate to libcamera users through the fourcc if a pixel format is coming from a RAW sensor with a valid bayer ordering, or if it is monochrome (YUV colorspace) data that can be used directly without any demosaicing. Signed-off-by: Jai Luthra --- include/linux/drm_fourcc.h | 4 ++++ src/libcamera/formats.yaml | 13 +++++++++---- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/include/linux/drm_fourcc.h b/include/linux/drm_fourcc.h index c1703fc03cbd..f226d2667b9d 100644 --- a/include/linux/drm_fourcc.h +++ b/include/linux/drm_fourcc.h @@ -1858,9 +1858,13 @@ drm_fourcc_canonicalize_nvidia_format_mod(__u64 modifier) * pixel, in the same order. */ #define MIPI_FORMAT_MOD_CSI2_PACKED fourcc_mod_code(MIPI, 1) +#define MIPI_FORMAT_MOD_CSI2_RAW fourcc_mod_code(MIPI, 2) +#define MIPI_FORMAT_MOD_CSI2_RAW_PACKED fourcc_mod_code(MIPI, 3) #define PISP_FORMAT_MOD_COMPRESS_MODE1 fourcc_mod_code(RPI, 1) #define PISP_FORMAT_MOD_COMPRESS_MODE2 fourcc_mod_code(RPI, 2) +#define PISP_FORMAT_MOD_COMPRESS_RAW_MODE1 fourcc_mod_code(RPI, 3) +#define PISP_FORMAT_MOD_COMPRESS_RAW_MODE2 fourcc_mod_code(RPI, 4) #if defined(__cplusplus) } diff --git a/src/libcamera/formats.yaml b/src/libcamera/formats.yaml index d71c65078587..5ed16d29f341 100644 --- a/src/libcamera/formats.yaml +++ b/src/libcamera/formats.yaml @@ -104,24 +104,29 @@ formats: - RAW8: fourcc: DRM_FORMAT_R8 + mod: MIPI_FORMAT_MOD_CSI2_RAW - RAW10: fourcc: DRM_FORMAT_R10 + mod: MIPI_FORMAT_MOD_CSI2_RAW - RAW12: fourcc: DRM_FORMAT_R12 + mod: MIPI_FORMAT_MOD_CSI2_RAW - RAW14: fourcc: DRM_FORMAT_R14 + mod: MIPI_FORMAT_MOD_CSI2_RAW - RAW16: fourcc: DRM_FORMAT_R16 + mod: MIPI_FORMAT_MOD_CSI2_RAW - RAW10_CSI2P: fourcc: DRM_FORMAT_R10 - mod: MIPI_FORMAT_MOD_CSI2_PACKED + mod: MIPI_FORMAT_MOD_CSI2_RAW_PACKED - RAW12_CSI2P: fourcc: DRM_FORMAT_R12 - mod: MIPI_FORMAT_MOD_CSI2_PACKED + mod: MIPI_FORMAT_MOD_CSI2_RAW_PACKED - RAW14_CSI2P: fourcc: DRM_FORMAT_R14 - mod: MIPI_FORMAT_MOD_CSI2_PACKED + mod: MIPI_FORMAT_MOD_CSI2_RAW_PACKED - RAW10_IPU3: fourcc: DRM_FORMAT_R10 @@ -132,5 +137,5 @@ formats: mod: PISP_FORMAT_MOD_COMPRESS_MODE1 - RAW_PISP_COMP1: fourcc: DRM_FORMAT_R16 - mod: PISP_FORMAT_MOD_COMPRESS_MODE1 + mod: PISP_FORMAT_MOD_COMPRESS_RAW_MODE1 ...