From patchwork Fri Oct 23 10:58:14 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jai Luthra X-Patchwork-Id: 28576 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 DD504C324C for ; Fri, 23 Oct 2026 10:59:15 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id AA55368FB7; Fri, 23 Oct 2026 12:59:15 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="tidd7F3K"; 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 25E3368FA6 for ; Fri, 23 Oct 2026 12:59:14 +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 EAA0412D6; Fri, 23 Oct 2026 12:57:04 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1792753025; bh=1ODl9cZsYJzrjIEQvMQ0X7NW3Ay3zdU9c85HhMCn7As=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=tidd7F3KFl6i0uMwN4j0gPC1DWnurSyJkoGtQP6oYSuIBohg4g2Mixke4+AKVmMVO Ebw26tcFxqAydSFu1z3yLqyILNEBmDpjGOHMu0kHtc5JCvSrHe0bMEa1Eb3nX/BZmi FOLhiqUaDKCYQiaVA+lnq1zaA0fUGIlLp69lkkos= From: Jai Luthra Date: Fri, 23 Oct 2026 16:28:14 +0530 Subject: [PATCH WIP RFC 06/26] include: uapi: videodev2: Add RAW device-specific bayer formats MIME-Version: 1.0 Message-Id: <20261023-b4-raw-model-v1-6-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=2599; i=jai.luthra@ideasonboard.com; h=from:subject:message-id; bh=1ODl9cZsYJzrjIEQvMQ0X7NW3Ay3zdU9c85HhMCn7As=; b=owEBbQKS/ZANAwAKAUPekfkkmnFFAcsmYgBq2z3Ik4UBUcnYz4Bph9C+unM3laNjrNbrgbvoj 5znQcJJGK+JAjMEAAEKAB0WIQRN4NgY5dV16NRar8VD3pH5JJpxRQUCats9yAAKCRBD3pH5JJpx RUcsD/403peajxd5JuCGfk45jkWUI+OShx4J1OFXo++gZjbe3gxZeCa3kYbBkQ/NK5uj/PVJDvv dvND4dTeA6c/FKE/6ohM4cZ/7K96cVxsgwh9dSoJJP8E4kYJCkzE3864L/iAy17MM1A5f2uqMxe Fyy4YTykgjhbG13Ccdt9cujuosMyds6oVLcdFRdNL5r523cQTvQXnz71citiH4ZyKDoCFzl90gK D5OGci/1CeJ0FNhyaw2N9xkDhTIoo2yDtyVIsvVN8FT4UVeqsnO/i7emScc9LQSXPJkxu9t+D4f t/vKoFXGSQ1Uoi8F++oj8cL12ZOFlenI/AusUjUPLS8vlHubYy5FNlr/8y26N0FaIALicYWpzmY Jrue13ANiiZjPzPaMGzBAQD0aJlPlBuyl6zsghH+usYrpaCbO6RHxfayyC+muusBJymVW/gv+jo Uvp4ay4MQbBXLvxN8DgwvAxd+p7wJ3LhUV0NgHbBMXtsyxT5T10lgrfsa3X0JRn08UaPZr7mgPT yb39lGBS5auJY3hkLaFXEll9E0EInDYQDpYwUuY/6MGE57rvdAtUCXRhARd+uUqgA22htkQQ1or nlVK1wrz9cl4x6NYOJlvDjuWbD/yskgJqnhTnUGio1ALNHo3twrqL92yQfBek/TzioO/AtmLxRg BNNQhnoNj6CCGSw== 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" Some devices pack or compress raw formats before storing them to memory. They defined custom V4L2 fourcc codes that were specific to the bayer-order. Now that the kernel has support for generic RAW media bus codes, add their counterpart V4L2 fourcc codes for the device-specific packing or compression too. Signed-off-by: Jai Luthra --- include/linux/videodev2.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/include/linux/videodev2.h b/include/linux/videodev2.h index 05bd394b1a67..fd72673d4638 100644 --- a/include/linux/videodev2.h +++ b/include/linux/videodev2.h @@ -812,17 +812,20 @@ struct v4l2_pix_format { #define V4L2_PIX_FMT_HEXTILE v4l2_fourcc('H', 'X', 'T', 'L') /* Hextile compressed */ /* 10bit raw packed, 32 bytes for every 25 pixels, last LSB 6 bits unused */ +#define V4L2_PIX_FMT_IPU3_RAW10 v4l2_fourcc('i', 'p', '3', 'x') /* IPU3 packed 10-bit generic bayer */ #define V4L2_PIX_FMT_IPU3_SBGGR10 v4l2_fourcc('i', 'p', '3', 'b') /* IPU3 packed 10-bit BGGR bayer */ #define V4L2_PIX_FMT_IPU3_SGBRG10 v4l2_fourcc('i', 'p', '3', 'g') /* IPU3 packed 10-bit GBRG bayer */ #define V4L2_PIX_FMT_IPU3_SGRBG10 v4l2_fourcc('i', 'p', '3', 'G') /* IPU3 packed 10-bit GRBG bayer */ #define V4L2_PIX_FMT_IPU3_SRGGB10 v4l2_fourcc('i', 'p', '3', 'r') /* IPU3 packed 10-bit RGGB bayer */ /* Raspberry Pi PiSP compressed formats. */ +#define V4L2_PIX_FMT_PISP_COMP1_RAW v4l2_fourcc('P', 'C', '1', 'x') /* PiSP 8-bit mode 1 compressed raw format */ #define V4L2_PIX_FMT_PISP_COMP1_RGGB v4l2_fourcc('P', 'C', '1', 'R') /* PiSP 8-bit mode 1 compressed RGGB bayer */ #define V4L2_PIX_FMT_PISP_COMP1_GRBG v4l2_fourcc('P', 'C', '1', 'G') /* PiSP 8-bit mode 1 compressed GRBG bayer */ #define V4L2_PIX_FMT_PISP_COMP1_GBRG v4l2_fourcc('P', 'C', '1', 'g') /* PiSP 8-bit mode 1 compressed GBRG bayer */ #define V4L2_PIX_FMT_PISP_COMP1_BGGR v4l2_fourcc('P', 'C', '1', 'B') /* PiSP 8-bit mode 1 compressed BGGR bayer */ #define V4L2_PIX_FMT_PISP_COMP1_MONO v4l2_fourcc('P', 'C', '1', 'M') /* PiSP 8-bit mode 1 compressed monochrome */ +#define V4L2_PIX_FMT_PISP_COMP2_RAW v4l2_fourcc('P', 'C', '2', 'x') /* PiSP 8-bit mode 2 compressed raw format */ #define V4L2_PIX_FMT_PISP_COMP2_RGGB v4l2_fourcc('P', 'C', '2', 'R') /* PiSP 8-bit mode 2 compressed RGGB bayer */ #define V4L2_PIX_FMT_PISP_COMP2_GRBG v4l2_fourcc('P', 'C', '2', 'G') /* PiSP 8-bit mode 2 compressed GRBG bayer */ #define V4L2_PIX_FMT_PISP_COMP2_GBRG v4l2_fourcc('P', 'C', '2', 'g') /* PiSP 8-bit mode 2 compressed GBRG bayer */