From patchwork Wed Dec 10 08:19:12 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Jacopo Mondi X-Patchwork-Id: 25445 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 D0545C3257 for ; Wed, 10 Dec 2025 08:19:32 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 7E84A61471; Wed, 10 Dec 2025 09:19:32 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="mphmbd6o"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 16A2C610B3 for ; Wed, 10 Dec 2025 09:19:28 +0100 (CET) Received: from [192.168.1.106] (mob-5-90-63-16.net.vodafone.it [5.90.63.16]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 21A1D153F; Wed, 10 Dec 2025 09:19:26 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1765354766; bh=QXjbNIcKh2ZddYXAH8MPfqV3kQr6veV2XGf+Luzq584=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=mphmbd6ot5AV1RwanDjtdMyS84FK65xGb1GXdwunxuCcF5k2mgmajTw7seKMQ5PVU enM4t9sqlRlB7WkxEry0W/CmX3CQfqyl4N9GxA39m9mggd/JmRSWC/CLwbbxKomVTI ct7PY5RPoPR67r7fkiHtLj+8/DG8XELXuIOT95OM= From: Jacopo Mondi Date: Wed, 10 Dec 2025 09:19:12 +0100 Subject: [PATCH v2 1/6] include: linux: drm_fourcc.h: Update to v6.18 MIME-Version: 1.0 Message-Id: <20251210-headers-update-v6-18-v2-1-3f726742a4c8@ideasonboard.com> References: <20251210-headers-update-v6-18-v2-0-3f726742a4c8@ideasonboard.com> In-Reply-To: <20251210-headers-update-v6-18-v2-0-3f726742a4c8@ideasonboard.com> To: libcamera-devel@lists.libcamera.org Cc: Jacopo Mondi , =?utf-8?b?QmFybmFiw6Fz?= =?utf-8?q?_P=C5=91cze?= X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=13032; i=jacopo.mondi@ideasonboard.com; h=from:subject:message-id; bh=QXjbNIcKh2ZddYXAH8MPfqV3kQr6veV2XGf+Luzq584=; b=owEBbQKS/ZANAwAKAXI0Bo8WoVY8AcsmYgBpOS0MIrXGZVmZ5QfeXA85A/N+/0MQRaNMijN+s 7T6NyRb+ZeJAjMEAAEKAB0WIQS1xD1IgJogio9YOMByNAaPFqFWPAUCaTktDAAKCRByNAaPFqFW PL6bD/9vfqTRaHG6XFXQys4zsqfTiYt8TkCnjZeHqoekZDVL2m7EFdd42xK9OoY6c287dFnQtJe 9v6npLlS8hvwLiZe/DkUgPVQ23eqLSW4luuI1wwIadeMBe6Irp53fo5LeKwz2CE7quRb1Dx9MFZ qOxf6VyaZIv/iQMEAeAfqAkic6XExoSrSPrY8zcL1Qf4cqQn8xm+2a+BZBEFp6m3+DqhKh0AoA7 LfIXCUmqFPNS88c4YWbb7vwdjhFuNCBfXq/P5hW2l2H0Lm5bU1JQgxKP+uZvEIs6SUxhODvbf23 IPrPyVGDsVFst540gQoNR4fGiXS6l6bLXHzB4Lj4R4SEmcwzY1i5Gmj/ypSOIu5I7cxKwJldjMO e/84ie60mJKVgnH+erjXfQGq38cNEELYGpYxCStwOCx/GOhW5Ta60Y258k8xehmh4yFJDcPJ5UW 1RM7CYDJqH9YXEZfIIiwIfoeHiqzHQpfgPoLjp8HPr3qjF4/2Tdt9gE4XhKKGnyeEwyGvNgF5d0 19T7QuefkslBrDjdZGI/C4+QVSar/ZIFtt2dKZeGxiWG0HEYGQQ8PqWj5nkPB6+9Roo53+wIUgT +iVSHzy52Kl07PVKoi8idz4W+ZJbKCpDqc9Z6xFtqETldVv5R3x9eWi57VxbDDjfrVJruyyBAVB bQd3MBtdXZq7P5w== 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" Update drm_fourcc.h to Linux kernel version v6.18. As the upstream drm_fourcc.h version doesn't include definitions for RAW Bayer formats, some of the symbols we defined downstream now conflict with new symbols defined in mainline. In particular: and In order not to break the library ABI, maintain the downstream symbols definitions as they are even if they conflict. Signed-off-by: Jacopo Mondi Acked-by: Barnabás Pőcze --- include/linux/drm_fourcc.h | 191 ++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 180 insertions(+), 11 deletions(-) diff --git a/include/linux/drm_fourcc.h b/include/linux/drm_fourcc.h index db6798776663086c12d321d2ed708edc7ec77f71..e428c33346bae8a8747f6834c434dc0a03eef867 100644 --- a/include/linux/drm_fourcc.h +++ b/include/linux/drm_fourcc.h @@ -222,7 +222,7 @@ extern "C" { #define DRM_FORMAT_ABGR16161616 fourcc_code('A', 'B', '4', '8') /* [63:0] A:B:G:R 16:16:16:16 little endian */ /* - * Floating point 64bpp RGB + * Half-Floating point - 16b/component * IEEE 754-2008 binary16 half-precision float * [15:0] sign:exponent:mantissa 1:5:10 */ @@ -232,6 +232,20 @@ extern "C" { #define DRM_FORMAT_ARGB16161616F fourcc_code('A', 'R', '4', 'H') /* [63:0] A:R:G:B 16:16:16:16 little endian */ #define DRM_FORMAT_ABGR16161616F fourcc_code('A', 'B', '4', 'H') /* [63:0] A:B:G:R 16:16:16:16 little endian */ +#define DRM_FORMAT_R16F fourcc_code('R', ' ', ' ', 'H') /* [15:0] R 16 little endian */ +#define DRM_FORMAT_GR1616F fourcc_code('G', 'R', ' ', 'H') /* [31:0] G:R 16:16 little endian */ +#define DRM_FORMAT_BGR161616F fourcc_code('B', 'G', 'R', 'H') /* [47:0] B:G:R 16:16:16 little endian */ + +/* + * Floating point - 32b/component + * IEEE 754-2008 binary32 float + * [31:0] sign:exponent:mantissa 1:8:23 + */ +#define DRM_FORMAT_R32F fourcc_code('R', ' ', ' ', 'F') /* [31:0] R 32 little endian */ +#define DRM_FORMAT_GR3232F fourcc_code('G', 'R', ' ', 'F') /* [63:0] R:G 32:32 little endian */ +#define DRM_FORMAT_BGR323232F fourcc_code('B', 'G', 'R', 'F') /* [95:0] R:G:B 32:32:32 little endian */ +#define DRM_FORMAT_ABGR32323232F fourcc_code('A', 'B', '8', 'F') /* [127:0] R:G:B:A 32:32:32:32 little endian */ + /* * RGBA format with 10-bit components packed in 64-bit per pixel, with 6 bits * of unused padding per component: @@ -381,6 +395,42 @@ extern "C" { */ #define DRM_FORMAT_Q401 fourcc_code('Q', '4', '0', '1') +/* + * 3 plane YCbCr LSB aligned + * In order to use these formats in a similar fashion to MSB aligned ones + * implementation can multiply the values by 2^6=64. For that reason the padding + * must only contain zeros. + * index 0 = Y plane, [15:0] z:Y [6:10] little endian + * index 1 = Cr plane, [15:0] z:Cr [6:10] little endian + * index 2 = Cb plane, [15:0] z:Cb [6:10] little endian + */ +#define DRM_FORMAT_S010 fourcc_code('S', '0', '1', '0') /* 2x2 subsampled Cb (1) and Cr (2) planes 10 bits per channel */ +#define DRM_FORMAT_S210 fourcc_code('S', '2', '1', '0') /* 2x1 subsampled Cb (1) and Cr (2) planes 10 bits per channel */ +#define DRM_FORMAT_S410 fourcc_code('S', '4', '1', '0') /* non-subsampled Cb (1) and Cr (2) planes 10 bits per channel */ + +/* + * 3 plane YCbCr LSB aligned + * In order to use these formats in a similar fashion to MSB aligned ones + * implementation can multiply the values by 2^4=16. For that reason the padding + * must only contain zeros. + * index 0 = Y plane, [15:0] z:Y [4:12] little endian + * index 1 = Cr plane, [15:0] z:Cr [4:12] little endian + * index 2 = Cb plane, [15:0] z:Cb [4:12] little endian + */ +#define DRM_FORMAT_S012 fourcc_code('S', '0', '1', '2') /* 2x2 subsampled Cb (1) and Cr (2) planes 12 bits per channel */ +#define DRM_FORMAT_S212 fourcc_code('S', '2', '1', '2') /* 2x1 subsampled Cb (1) and Cr (2) planes 12 bits per channel */ +#define DRM_FORMAT_S412 fourcc_code('S', '4', '1', '2') /* non-subsampled Cb (1) and Cr (2) planes 12 bits per channel */ + +/* + * 3 plane YCbCr + * index 0 = Y plane, [15:0] Y little endian + * index 1 = Cr plane, [15:0] Cr little endian + * index 2 = Cb plane, [15:0] Cb little endian + */ +#define DRM_FORMAT_S016 fourcc_code('S', '0', '1', '6') /* 2x2 subsampled Cb (1) and Cr (2) planes 16 bits per channel */ +#define DRM_FORMAT_S216 fourcc_code('S', '2', '1', '6') /* 2x1 subsampled Cb (1) and Cr (2) planes 16 bits per channel */ +#define DRM_FORMAT_S416 fourcc_code('S', '4', '1', '6') /* non-subsampled Cb (1) and Cr (2) planes 16 bits per channel */ + /* * 3 plane YCbCr * index 0: Y plane, [7:0] Y @@ -489,6 +539,8 @@ extern "C" { #define DRM_FORMAT_MOD_VENDOR_ARM 0x08 #define DRM_FORMAT_MOD_VENDOR_ALLWINNER 0x09 #define DRM_FORMAT_MOD_VENDOR_AMLOGIC 0x0a +#define DRM_FORMAT_MOD_VENDOR_MTK 0x0b +#define DRM_FORMAT_MOD_VENDOR_APPLE 0x0c #define DRM_FORMAT_MOD_VENDOR_MIPI 0x0b #define DRM_FORMAT_MOD_VENDOR_RPI 0x0c @@ -772,6 +824,31 @@ extern "C" { */ #define I915_FORMAT_MOD_4_TILED_MTL_RC_CCS_CC fourcc_mod_code(INTEL, 15) +/* + * Intel Color Control Surfaces (CCS) for graphics ver. 20 unified compression + * on integrated graphics + * + * The main surface is Tile 4 and at plane index 0. For semi-planar formats + * like NV12, the Y and UV planes are Tile 4 and are located at plane indices + * 0 and 1, respectively. The CCS for all planes are stored outside of the + * GEM object in a reserved memory area dedicated for the storage of the + * CCS data for all compressible GEM objects. + */ +#define I915_FORMAT_MOD_4_TILED_LNL_CCS fourcc_mod_code(INTEL, 16) + +/* + * Intel Color Control Surfaces (CCS) for graphics ver. 20 unified compression + * on discrete graphics + * + * The main surface is Tile 4 and at plane index 0. For semi-planar formats + * like NV12, the Y and UV planes are Tile 4 and are located at plane indices + * 0 and 1, respectively. The CCS for all planes are stored outside of the + * GEM object in a reserved memory area dedicated for the storage of the + * CCS data for all compressible GEM objects. The GEM object must be stored in + * contiguous memory with a size aligned to 64KB + */ +#define I915_FORMAT_MOD_4_TILED_BMG_CCS fourcc_mod_code(INTEL, 17) + /* * IPU3 Bayer packing layout * @@ -780,7 +857,7 @@ extern "C" { * the 6 most significant bits in the last byte unused. The format is little * endian. */ -#define IPU3_FORMAT_MOD_PACKED fourcc_mod_code(INTEL, 13) +#define IPU3_FORMAT_MOD_PACKED fourcc_mod_code(INTEL, 18) /* * Tiled, NV12MT, grouped in 64 (pixels) x 32 (lines) -sized macroblocks @@ -978,14 +1055,20 @@ extern "C" { * 2 = Gob Height 8, Turing+ Page Kind mapping * 3 = Reserved for future use. * - * 22:22 s Sector layout. On Tegra GPUs prior to Xavier, there is a further - * bit remapping step that occurs at an even lower level than the - * page kind and block linear swizzles. This causes the layout of - * surfaces mapped in those SOC's GPUs to be incompatible with the - * equivalent mapping on other GPUs in the same system. - * - * 0 = Tegra K1 - Tegra Parker/TX2 Layout. - * 1 = Desktop GPU and Tegra Xavier+ Layout + * 22:22 s Sector layout. There is a further bit remapping step that occurs + * 26:27 at an even lower level than the page kind and block linear + * swizzles. This causes the bit arrangement of surfaces in memory + * to differ subtly, and prevents direct sharing of surfaces between + * GPUs with different layouts. + * + * 0 = Tegra K1 - Tegra Parker/TX2 Layout + * 1 = Pre-GB20x, GB20x 32+ bpp, GB10, Tegra Xavier-Orin Layout + * 2 = GB20x(Blackwell 2)+ 8 bpp surface layout + * 3 = GB20x(Blackwell 2)+ 16 bpp surface layout + * 4 = Reserved for future use. + * 5 = Reserved for future use. + * 6 = Reserved for future use. + * 7 = Reserved for future use. * * 25:23 c Lossless Framebuffer Compression type. * @@ -1000,7 +1083,7 @@ extern "C" { * 6 = Reserved for future use * 7 = Reserved for future use * - * 55:25 - Reserved for future use. Must be zero. + * 55:28 - Reserved for future use. Must be zero. */ #define DRM_FORMAT_MOD_NVIDIA_BLOCK_LINEAR_2D(c, s, g, k, h) \ fourcc_mod_code(NVIDIA, (0x10 | \ @@ -1008,6 +1091,7 @@ extern "C" { (((k) & 0xff) << 12) | \ (((g) & 0x3) << 20) | \ (((s) & 0x1) << 22) | \ + (((s) & 0x6) << 25) | \ (((c) & 0x7) << 23))) /* To grandfather in prior block linear format modifiers to the above layout, @@ -1508,6 +1592,90 @@ drm_fourcc_canonicalize_nvidia_format_mod(__u64 modifier) */ #define AMLOGIC_FBC_OPTION_MEM_SAVING (1ULL << 0) +/* MediaTek modifiers + * Bits Parameter Notes + * ----- ------------------------ --------------------------------------------- + * 7: 0 TILE LAYOUT Values are MTK_FMT_MOD_TILE_* + * 15: 8 COMPRESSION Values are MTK_FMT_MOD_COMPRESS_* + * 23:16 10 BIT LAYOUT Values are MTK_FMT_MOD_10BIT_LAYOUT_* + * + */ + +#define DRM_FORMAT_MOD_MTK(__flags) fourcc_mod_code(MTK, __flags) + +/* + * MediaTek Tiled Modifier + * The lowest 8 bits of the modifier is used to specify the tiling + * layout. Only the 16L_32S tiling is used for now, but we define an + * "untiled" version and leave room for future expansion. + */ +#define MTK_FMT_MOD_TILE_MASK 0xf +#define MTK_FMT_MOD_TILE_NONE 0x0 +#define MTK_FMT_MOD_TILE_16L32S 0x1 + +/* + * Bits 8-15 specify compression options + */ +#define MTK_FMT_MOD_COMPRESS_MASK (0xf << 8) +#define MTK_FMT_MOD_COMPRESS_NONE (0x0 << 8) +#define MTK_FMT_MOD_COMPRESS_V1 (0x1 << 8) + +/* + * Bits 16-23 specify how the bits of 10 bit formats are + * stored out in memory + */ +#define MTK_FMT_MOD_10BIT_LAYOUT_MASK (0xf << 16) +#define MTK_FMT_MOD_10BIT_LAYOUT_PACKED (0x0 << 16) +#define MTK_FMT_MOD_10BIT_LAYOUT_LSBTILED (0x1 << 16) +#define MTK_FMT_MOD_10BIT_LAYOUT_LSBRASTER (0x2 << 16) + +/* alias for the most common tiling format */ +#define DRM_FORMAT_MOD_MTK_16L_32S_TILE DRM_FORMAT_MOD_MTK(MTK_FMT_MOD_TILE_16L32S) + +/* + * Apple GPU-tiled layouts. + * + * Apple GPUs support nonlinear tilings with optional lossless compression. + * + * GPU-tiled images are divided into 16KiB tiles: + * + * Bytes per pixel Tile size + * --------------- --------- + * 1 128x128 + * 2 128x64 + * 4 64x64 + * 8 64x32 + * 16 32x32 + * + * Tiles are raster-order. Pixels within a tile are interleaved (Morton order). + * + * Compressed images pad the body to 128-bytes and are immediately followed by a + * metadata section. The metadata section rounds the image dimensions to + * powers-of-two and contains 8 bytes for each 16x16 compression subtile. + * Subtiles are interleaved (Morton order). + * + * All images are 128-byte aligned. + * + * These layouts fundamentally do not have meaningful strides. No matter how we + * specify strides for these layouts, userspace unaware of Apple image layouts + * will be unable to use correctly the specified stride for any purpose. + * Userspace aware of the image layouts do not use strides. The most "correct" + * convention would be setting the image stride to 0. Unfortunately, some + * software assumes the stride is at least (width * bytes per pixel). We + * therefore require that stride equals (width * bytes per pixel). Since the + * stride is arbitrary here, we pick the simplest convention. + * + * Although containing two sections, compressed image layouts are treated in + * software as a single plane. This is modelled after AFBC, a similar + * scheme. Attempting to separate the sections to be "explicit" in DRM would + * only generate more confusion, as software does not treat the image this way. + * + * For detailed information on the hardware image layouts, see + * https://docs.mesa3d.org/drivers/asahi.html#image-layouts + */ +#define DRM_FORMAT_MOD_APPLE_GPU_TILED fourcc_mod_code(APPLE, 1) +#define DRM_FORMAT_MOD_APPLE_GPU_TILED_COMPRESSED fourcc_mod_code(APPLE, 2) + /* * AMD modifiers * @@ -1571,6 +1739,7 @@ drm_fourcc_canonicalize_nvidia_format_mod(__u64 modifier) * 64K_D_2D on GFX12 is identical to 64K_D on GFX11. */ #define AMD_FMT_MOD_TILE_GFX9_64K_D 10 +#define AMD_FMT_MOD_TILE_GFX9_4K_D_X 22 #define AMD_FMT_MOD_TILE_GFX9_64K_S_X 25 #define AMD_FMT_MOD_TILE_GFX9_64K_D_X 26 #define AMD_FMT_MOD_TILE_GFX9_64K_R_X 27 From patchwork Wed Dec 10 08:19:13 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Jacopo Mondi X-Patchwork-Id: 25446 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 5FA3AC3257 for ; Wed, 10 Dec 2025 08:19:34 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 8048A6146D; Wed, 10 Dec 2025 09:19:33 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="A7cFKxP6"; 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 3CD7A61424 for ; Wed, 10 Dec 2025 09:19:28 +0100 (CET) Received: from [192.168.1.106] (mob-5-90-63-16.net.vodafone.it [5.90.63.16]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 8AF66180F; Wed, 10 Dec 2025 09:19:26 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1765354766; bh=r/pl6JbteP46xdw3Ve1PbdiIMEaXP+66BpFUEq7qx2Q=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=A7cFKxP6eYJRONoy3+mUEbCatnHLdX9eKQu6EFkZRi2hrLPVuLl/QSmwZUf6QzGsb /xLcM5loYdRtKGs7/HBAL6AHwG9FRNo/1/LGmCnevqqTmpghQ3fAv6KEh7r3eicZKm 0BOR7oomM7dMzjWC4piR/VetMlWxNMU9ZYLcZl1M= From: Jacopo Mondi Date: Wed, 10 Dec 2025 09:19:13 +0100 Subject: [PATCH v2 2/6] include: linux: intel-ipu3.h: Update to v6.18 MIME-Version: 1.0 Message-Id: <20251210-headers-update-v6-18-v2-2-3f726742a4c8@ideasonboard.com> References: <20251210-headers-update-v6-18-v2-0-3f726742a4c8@ideasonboard.com> In-Reply-To: <20251210-headers-update-v6-18-v2-0-3f726742a4c8@ideasonboard.com> To: libcamera-devel@lists.libcamera.org Cc: Jacopo Mondi , =?utf-8?b?QmFybmFiw6Fz?= =?utf-8?q?_P=C5=91cze?= X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=936; i=jacopo.mondi@ideasonboard.com; h=from:subject:message-id; bh=r/pl6JbteP46xdw3Ve1PbdiIMEaXP+66BpFUEq7qx2Q=; b=owEBbQKS/ZANAwAKAXI0Bo8WoVY8AcsmYgBpOS0MJhl7xceiJqrzLR6e/X8qGMeMarhxNRJzJ 3Ta5IsftCKJAjMEAAEKAB0WIQS1xD1IgJogio9YOMByNAaPFqFWPAUCaTktDAAKCRByNAaPFqFW PF1CEACaCFmeN57eQfwFJY5swYBn4gilNRQU8CntCZDTUAkD33D6tSBu9du3w1tuFED0qRc7PaM fbruM45+iEa7DRMMUYGKxBF32/Kn6YVfW71pv/nD1hl0YF6Zm0T2RD3jECn6clfSd5V7tOl0DqN gtIQ3TCPQJ7rrHBHViZHkN/6bBAxC0+IIie8J9EUeyE7i5q/yE/QMlbkc26lVjeeBI2h+Fr/XU2 UT1S7J36guFcYqjzNL0DQEZ9poVRNVn6NqmD3ocWBdTrc/Mj6AkjznhqCdrolbxCekQJXAFoT1R CxC2z3T09/kTVukvpEZd/I2QdDjKn0AHQelRphEp97hZS+KG8EPOX9sN6Px5SLjQ8EKQhBOF1iA 9RQTrhNo50f/82iDIQOeTtfMUVORp6ADvvSmMBHm7kDUKKJe8/N55pchZEjE+DFgNPy0Dl4pUVw wKlvMfCKHkPpekG30ZRgG5uaoGA7eEOhqJs356mshtKaTMSA3V8naM6+gde7+Apu/f+rFA6dq40 5Yy1BoabRI88B1kBEnyjAlpZ0W+mAvSGIH/UfFLjhNL6toS3V6RjlyDZBsX/+qRliNjqFx2aKWD Vou8b93zwVI44oTmHRpUggAafM14tvDruGWdKQRILhzwGsG2bcAzSbDxEBPbWTlJLoRMlN0LOwB x4uPojqzHrFUdnQ== 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" A rather simple update to Linux v6.18. Signed-off-by: Jacopo Mondi Acked-by: Barnabás Pőcze --- include/linux/intel-ipu3.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/linux/intel-ipu3.h b/include/linux/intel-ipu3.h index 8c192f352e1387d5ab2706108ce5a72a3f19adc2..47d20be60879df8f58a8c2e4713dc6d8f2248a33 100644 --- a/include/linux/intel-ipu3.h +++ b/include/linux/intel-ipu3.h @@ -322,7 +322,8 @@ struct ipu3_uapi_ae_config { * 0: positive, 1: negative, default 0. * @y_calc: Pre-processing that converts Bayer quad to RGB+Y values to be * used for building histogram. Range [0, 32], default 8. - * Rule: + * + * Rule: * y_gen_rate_gr + y_gen_rate_r + y_gen_rate_b + y_gen_rate_gb = 32 * A single Y is calculated based on sum of Gr/R/B/Gb based on * their contribution ratio. From patchwork Wed Dec 10 08:19:14 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Jacopo Mondi X-Patchwork-Id: 25447 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 C58EAC3257 for ; Wed, 10 Dec 2025 08:19:35 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 0E42D6143D; Wed, 10 Dec 2025 09:19:35 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="hmvcETe/"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 56ACB61428 for ; Wed, 10 Dec 2025 09:19:28 +0100 (CET) Received: from [192.168.1.106] (mob-5-90-63-16.net.vodafone.it [5.90.63.16]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 0AB451864; Wed, 10 Dec 2025 09:19:26 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1765354767; bh=aEE+jrxRZGA7X0MR1pQTPdh9uYi8cwf+EHdC42VdsHI=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=hmvcETe/cx2x8aDOaRSdMR1NsZbB7LZFjs43v/rZY0k6C8uzfZqdytF0eD/3UmZ9J S7IVBvTQesgpvlExblhQ5e8XjbTrLFNf6/r05ghnW6guf5yQFSRWFiHCxcoy9wF3wi 5KCoHSZqODMR2qxffKNYi+Njsz118bPQxpeBxd4w= From: Jacopo Mondi Date: Wed, 10 Dec 2025 09:19:14 +0100 Subject: [PATCH v2 3/6] include: linux: media-bus-format.h: Update to v6.18 MIME-Version: 1.0 Message-Id: <20251210-headers-update-v6-18-v2-3-3f726742a4c8@ideasonboard.com> References: <20251210-headers-update-v6-18-v2-0-3f726742a4c8@ideasonboard.com> In-Reply-To: <20251210-headers-update-v6-18-v2-0-3f726742a4c8@ideasonboard.com> To: libcamera-devel@lists.libcamera.org Cc: Jacopo Mondi , =?utf-8?b?QmFybmFiw6Fz?= =?utf-8?q?_P=C5=91cze?= X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1939; i=jacopo.mondi@ideasonboard.com; h=from:subject:message-id; bh=aEE+jrxRZGA7X0MR1pQTPdh9uYi8cwf+EHdC42VdsHI=; b=owEBbQKS/ZANAwAKAXI0Bo8WoVY8AcsmYgBpOS0NkXJsC5+qQzM9HgIyvAKrybFimVsu4nJ9h d7olQRK1qaJAjMEAAEKAB0WIQS1xD1IgJogio9YOMByNAaPFqFWPAUCaTktDQAKCRByNAaPFqFW PDpCD/sGYalumhW1RBE7XvZpMkQSpwom8szxeKVrt8HuDrSXzk8VXrKjbBL38FMHhbR2aouYNWA l30MwFhjdDT5HGWfoSZEJbc1lg2khO8ViUGABFK+2PDtzVBg1qnOVg8XkmkJooELgGm4u9JIJXY YCfYmrHchifBqsGY/foRl9KOYkI11hN/rPyADZm4RpE6V6TSI76yFxjGKIclIirHW4PPqcQsW4h VffYQiYmwfHZI8SutsoM9gFpFPNcwSwgSWi+9HFfcEYgpDMnKMAkUyYxjR4+5oKVijiYhbRCkbi mEW0Z4J16rZe5fA3jvocXwdecRYYu2XWQQi56X8Xl+7FSYr6eV275qACsnpopoYjYfkHIw5kUJa nnHuODbejOqHTBy/kke90k/rq8swctWAZo3e2F4Wc4313LUwqmvBs4c4WBFfzrTizQAqB8MwiJA F7P4zKA/mFiQidv836B0TcRxdQQ1CSl/P9yNrxCqSB3ACdisRu9IMf6erRbaUsoVU2Ef+EEmvs/ ssuVYUgB8qmyjlJgsuv2jt6fPEx1njiXVcSwWMFa95pv0yi7+EMmuGjRZ+x99W2FJPW3PNsEiVX SSDtG5UlmerS2xcODhUoWimyr1XwgMzrbjQZMkmzq+YeWs6+ttpbwbhhQDWuhUgcQwLGBE1qSal t22FjzqXLACNEwQ== 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" Update media-bus-format.h to Linux kernel version v6.18. Mainline has introduced two new media bus codes whose definition conflicts with the downstream definition of MEDIA_BUS_FMT_RGB202020_1X60. Update the definition of MEDIA_BUS_FMT_RGB202020_1X60 not to conflict with the newly added symbol. MEDIA_BUS_FMT_RGB202020_1X60, which is used by the Mali C55 ISP, will land in v6.19 with value 0x1029, so this change actually aligns the downstream definition with the forthcoming upstream support for Mali C55. Signed-off-by: Jacopo Mondi Acked-by: Barnabás Pőcze --- include/linux/media-bus-format.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/include/linux/media-bus-format.h b/include/linux/media-bus-format.h index bf467168d4651fc93459a943605865d6acf8091d..6903d9bb298b969a9c99199e4541c82ea11bbe5c 100644 --- a/include/linux/media-bus-format.h +++ b/include/linux/media-bus-format.h @@ -34,7 +34,7 @@ #define MEDIA_BUS_FMT_FIXED 0x0001 -/* RGB - next is 0x1027 */ +/* RGB - next is 0x1029 */ #define MEDIA_BUS_FMT_RGB444_1X12 0x1016 #define MEDIA_BUS_FMT_RGB444_2X8_PADHI_BE 0x1001 #define MEDIA_BUS_FMT_RGB444_2X8_PADHI_LE 0x1002 @@ -68,11 +68,13 @@ #define MEDIA_BUS_FMT_ARGB8888_1X32 0x100d #define MEDIA_BUS_FMT_RGB888_1X32_PADHI 0x100f #define MEDIA_BUS_FMT_RGB101010_1X30 0x1018 +#define MEDIA_BUS_FMT_RGB101010_1X7X5_SPWG 0x1026 +#define MEDIA_BUS_FMT_RGB101010_1X7X5_JEIDA 0x1027 #define MEDIA_BUS_FMT_RGB666_1X36_CPADLO 0x1020 #define MEDIA_BUS_FMT_RGB888_1X36_CPADLO 0x1021 #define MEDIA_BUS_FMT_RGB121212_1X36 0x1019 #define MEDIA_BUS_FMT_RGB161616_1X48 0x101a -#define MEDIA_BUS_FMT_RGB202020_1X60 0x1026 +#define MEDIA_BUS_FMT_RGB202020_1X60 0x1029 /* YUV (including grey) - next is 0x202f */ #define MEDIA_BUS_FMT_Y8_1X8 0x2001 From patchwork Wed Dec 10 08:19:15 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Jacopo Mondi X-Patchwork-Id: 25448 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 A5E4DC326B for ; Wed, 10 Dec 2025 08:19:36 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id A00F46145B; Wed, 10 Dec 2025 09:19:35 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="VTEvmmT3"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id B91BA61435 for ; Wed, 10 Dec 2025 09:19:28 +0100 (CET) Received: from [192.168.1.106] (mob-5-90-63-16.net.vodafone.it [5.90.63.16]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 7FBA71B90; Wed, 10 Dec 2025 09:19:27 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1765354767; bh=+LE7+PDXF9r+5/GV3i310iiNK6I/pqNX7rv9ffPLVdo=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=VTEvmmT35VFb2VYtmZspHIjIGlI6KbN+lkn8bPoCd1unk+1mzWeJEb9B23wsds1ki A1KGF/ofUf9+2xJG+CpVyME+UI6QSp7+ilpEJUaokUgpx1vbufzUn8ctuM5hZDVgwK jtLGHyyHmws43ELeCsvggfqCud0zxCyIHdsM2pok= From: Jacopo Mondi Date: Wed, 10 Dec 2025 09:19:15 +0100 Subject: [PATCH v2 4/6] include: linux: v4l2-controls.h: Update to v6.18 MIME-Version: 1.0 Message-Id: <20251210-headers-update-v6-18-v2-4-3f726742a4c8@ideasonboard.com> References: <20251210-headers-update-v6-18-v2-0-3f726742a4c8@ideasonboard.com> In-Reply-To: <20251210-headers-update-v6-18-v2-0-3f726742a4c8@ideasonboard.com> To: libcamera-devel@lists.libcamera.org Cc: Jacopo Mondi , =?utf-8?b?QmFybmFiw6Fz?= =?utf-8?q?_P=C5=91cze?= X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=8590; i=jacopo.mondi@ideasonboard.com; h=from:subject:message-id; bh=+LE7+PDXF9r+5/GV3i310iiNK6I/pqNX7rv9ffPLVdo=; b=owEBbQKS/ZANAwAKAXI0Bo8WoVY8AcsmYgBpOS0Nb/LgG8CAi4UEcpPWvHU+pT6Usfa6y7etU wpoals5DXOJAjMEAAEKAB0WIQS1xD1IgJogio9YOMByNAaPFqFWPAUCaTktDQAKCRByNAaPFqFW PKdHD/9DRk1CJEVBgIRnUPicoXDCMavyavRAmhVU5ezex3W9cmsbh8oedWcF1ySpmHnrod4dF+w 0uT+U9GsawuOkqFQLdkCVWKpJq38TWFdvgi9B+MFBqVtKm6Od/eX/R2NFFvgB1IizGaikPvgrmd +W86HxCST+4/k/7xSbPs5MfJAhPsoc5cDKcPMu9JY4okrOLBG+l8cyhpHGN7NINrB2nOLFNqif6 qoyfRy2htDV1iPLKNvVD7I3ICNhubtP0iWBGOk+ZLx4nVt6Q7I/1DzVUzKGZiOK/ga0MccCke74 yLvrDoERDCDXSbYopuS1Vu3qxxJl4lXFIzHqnuEGmD9BMjoiOSYZ7Sz6mGZei12k03KlPsdiVlc Y+ZHbS7HcWkXuuuygG4IwNCPbsybL468hYvRA7zcao1BlPd2ROOKDlSGyVXcxYZCUq3ox06cMfm MJzzEWTmV1KtAoRq1ufocaafaE2A5zFiDgIwIQDFMkbsQpRLBerGLqZrhjhiplxjRb2j0X8RfMk 3Z+Yfa/B8q7ed2BralplVBrj4VJyKV628Kw8ibjdLIi5lViUZY/2G3Bqq09D5Ze9c8R+fgAsjVO g02yrZZoSfZFApZrwelz2OIAL+NiCbSIk9iaNCBebTdef8Ym+cdS0TCS/7NWytnoL8Mjhu1ds/4 3DML0HENdsLe+Mw== 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" Update v4l2-controls.h to Linux kernel version v6.18. No conflicts between downstream symbols and newly added ones. Signed-off-by: Jacopo Mondi Acked-by: Barnabás Pőcze --- include/linux/v4l2-controls.h | 128 ++++++++++++++++++++++-------------------- 1 file changed, 67 insertions(+), 61 deletions(-) diff --git a/include/linux/v4l2-controls.h b/include/linux/v4l2-controls.h index 4cfae0414894248bfb63aac83a46f71a5dc771c9..25914de2cd7a39a168f59cd80ed331b4b339659f 100644 --- a/include/linux/v4l2-controls.h +++ b/include/linux/v4l2-controls.h @@ -217,6 +217,13 @@ enum v4l2_colorfx { */ #define V4L2_CID_USER_THP7312_BASE (V4L2_CID_USER_BASE + 0x11c0) +/* + * The base for the uvc driver controls. + * See linux/uvcvideo.h for the list of controls. + * We reserve 64 controls for this driver. + */ +#define V4L2_CID_USER_UVC_BASE (V4L2_CID_USER_BASE + 0x11e0) + /* * The base for Rockchip ISP1 driver controls. * We reserve 16 controls for this driver. @@ -1186,7 +1193,7 @@ enum v4l2_flash_strobe_source { #define V4L2_CID_JPEG_CLASS_BASE (V4L2_CTRL_CLASS_JPEG | 0x900) #define V4L2_CID_JPEG_CLASS (V4L2_CTRL_CLASS_JPEG | 1) -#define V4L2_CID_JPEG_CHROMA_SUBSAMPLING (V4L2_CID_JPEG_CLASS_BASE + 1) +#define V4L2_CID_JPEG_CHROMA_SUBSAMPLING (V4L2_CID_JPEG_CLASS_BASE + 1) enum v4l2_jpeg_chroma_subsampling { V4L2_JPEG_CHROMA_SUBSAMPLING_444 = 0, V4L2_JPEG_CHROMA_SUBSAMPLING_422 = 1, @@ -1195,15 +1202,15 @@ enum v4l2_jpeg_chroma_subsampling { V4L2_JPEG_CHROMA_SUBSAMPLING_410 = 4, V4L2_JPEG_CHROMA_SUBSAMPLING_GRAY = 5, }; -#define V4L2_CID_JPEG_RESTART_INTERVAL (V4L2_CID_JPEG_CLASS_BASE + 2) -#define V4L2_CID_JPEG_COMPRESSION_QUALITY (V4L2_CID_JPEG_CLASS_BASE + 3) +#define V4L2_CID_JPEG_RESTART_INTERVAL (V4L2_CID_JPEG_CLASS_BASE + 2) +#define V4L2_CID_JPEG_COMPRESSION_QUALITY (V4L2_CID_JPEG_CLASS_BASE + 3) -#define V4L2_CID_JPEG_ACTIVE_MARKER (V4L2_CID_JPEG_CLASS_BASE + 4) -#define V4L2_JPEG_ACTIVE_MARKER_APP0 (1 << 0) -#define V4L2_JPEG_ACTIVE_MARKER_APP1 (1 << 1) -#define V4L2_JPEG_ACTIVE_MARKER_COM (1 << 16) -#define V4L2_JPEG_ACTIVE_MARKER_DQT (1 << 17) -#define V4L2_JPEG_ACTIVE_MARKER_DHT (1 << 18) +#define V4L2_CID_JPEG_ACTIVE_MARKER (V4L2_CID_JPEG_CLASS_BASE + 4) +#define V4L2_JPEG_ACTIVE_MARKER_APP0 (1 << 0) +#define V4L2_JPEG_ACTIVE_MARKER_APP1 (1 << 1) +#define V4L2_JPEG_ACTIVE_MARKER_COM (1 << 16) +#define V4L2_JPEG_ACTIVE_MARKER_DQT (1 << 17) +#define V4L2_JPEG_ACTIVE_MARKER_DHT (1 << 18) /* Image source controls */ @@ -1236,10 +1243,10 @@ enum v4l2_jpeg_chroma_subsampling { #define V4L2_CID_DV_CLASS_BASE (V4L2_CTRL_CLASS_DV | 0x900) #define V4L2_CID_DV_CLASS (V4L2_CTRL_CLASS_DV | 1) -#define V4L2_CID_DV_TX_HOTPLUG (V4L2_CID_DV_CLASS_BASE + 1) -#define V4L2_CID_DV_TX_RXSENSE (V4L2_CID_DV_CLASS_BASE + 2) -#define V4L2_CID_DV_TX_EDID_PRESENT (V4L2_CID_DV_CLASS_BASE + 3) -#define V4L2_CID_DV_TX_MODE (V4L2_CID_DV_CLASS_BASE + 4) +#define V4L2_CID_DV_TX_HOTPLUG (V4L2_CID_DV_CLASS_BASE + 1) +#define V4L2_CID_DV_TX_RXSENSE (V4L2_CID_DV_CLASS_BASE + 2) +#define V4L2_CID_DV_TX_EDID_PRESENT (V4L2_CID_DV_CLASS_BASE + 3) +#define V4L2_CID_DV_TX_MODE (V4L2_CID_DV_CLASS_BASE + 4) enum v4l2_dv_tx_mode { V4L2_DV_TX_MODE_DVI_D = 0, V4L2_DV_TX_MODE_HDMI = 1, @@ -1260,7 +1267,7 @@ enum v4l2_dv_it_content_type { V4L2_DV_IT_CONTENT_TYPE_NO_ITC = 4, }; -#define V4L2_CID_DV_RX_POWER_PRESENT (V4L2_CID_DV_CLASS_BASE + 100) +#define V4L2_CID_DV_RX_POWER_PRESENT (V4L2_CID_DV_CLASS_BASE + 100) #define V4L2_CID_DV_RX_RGB_RANGE (V4L2_CID_DV_CLASS_BASE + 101) #define V4L2_CID_DV_RX_IT_CONTENT_TYPE (V4L2_CID_DV_CLASS_BASE + 102) @@ -1530,15 +1537,6 @@ struct v4l2_ctrl_h264_pred_weights { struct v4l2_h264_weight_factors weight_factors[2]; }; -#define V4L2_H264_SLICE_TYPE_P 0 -#define V4L2_H264_SLICE_TYPE_B 1 -#define V4L2_H264_SLICE_TYPE_I 2 -#define V4L2_H264_SLICE_TYPE_SP 3 -#define V4L2_H264_SLICE_TYPE_SI 4 - -#define V4L2_H264_SLICE_FLAG_DIRECT_SPATIAL_MV_PRED 0x01 -#define V4L2_H264_SLICE_FLAG_SP_FOR_SWITCH 0x02 - #define V4L2_H264_TOP_FIELD_REF 0x1 #define V4L2_H264_BOTTOM_FIELD_REF 0x2 #define V4L2_H264_FRAME_REF 0x3 @@ -1559,8 +1557,17 @@ struct v4l2_h264_reference { * Maximum DPB size, as specified by section 'A.3.1 Level limits * common to the Baseline, Main, and Extended profiles'. */ -#define V4L2_H264_NUM_DPB_ENTRIES 16 -#define V4L2_H264_REF_LIST_LEN (2 * V4L2_H264_NUM_DPB_ENTRIES) +#define V4L2_H264_NUM_DPB_ENTRIES 16 +#define V4L2_H264_REF_LIST_LEN (2 * V4L2_H264_NUM_DPB_ENTRIES) + +#define V4L2_H264_SLICE_TYPE_P 0 +#define V4L2_H264_SLICE_TYPE_B 1 +#define V4L2_H264_SLICE_TYPE_I 2 +#define V4L2_H264_SLICE_TYPE_SP 3 +#define V4L2_H264_SLICE_TYPE_SI 4 + +#define V4L2_H264_SLICE_FLAG_DIRECT_SPATIAL_MV_PRED 0x01 +#define V4L2_H264_SLICE_FLAG_SP_FOR_SWITCH 0x02 #define V4L2_CID_STATELESS_H264_SLICE_PARAMS (V4L2_CID_CODEC_STATELESS_BASE + 6) /** @@ -1700,7 +1707,6 @@ struct v4l2_ctrl_h264_decode_params { __u32 flags; }; - /* Stateless FWHT control, used by the vicodec driver */ /* Current FWHT version */ @@ -2542,44 +2548,10 @@ struct v4l2_ctrl_hevc_scaling_matrix { __u8 scaling_list_dc_coef_32x32[2]; }; -#define V4L2_CID_COLORIMETRY_CLASS_BASE (V4L2_CTRL_CLASS_COLORIMETRY | 0x900) -#define V4L2_CID_COLORIMETRY_CLASS (V4L2_CTRL_CLASS_COLORIMETRY | 1) - -#define V4L2_CID_COLORIMETRY_HDR10_CLL_INFO (V4L2_CID_COLORIMETRY_CLASS_BASE + 0) - -struct v4l2_ctrl_hdr10_cll_info { - __u16 max_content_light_level; - __u16 max_pic_average_light_level; -}; - -#define V4L2_CID_COLORIMETRY_HDR10_MASTERING_DISPLAY (V4L2_CID_COLORIMETRY_CLASS_BASE + 1) - -#define V4L2_HDR10_MASTERING_PRIMARIES_X_LOW 5 -#define V4L2_HDR10_MASTERING_PRIMARIES_X_HIGH 37000 -#define V4L2_HDR10_MASTERING_PRIMARIES_Y_LOW 5 -#define V4L2_HDR10_MASTERING_PRIMARIES_Y_HIGH 42000 -#define V4L2_HDR10_MASTERING_WHITE_POINT_X_LOW 5 -#define V4L2_HDR10_MASTERING_WHITE_POINT_X_HIGH 37000 -#define V4L2_HDR10_MASTERING_WHITE_POINT_Y_LOW 5 -#define V4L2_HDR10_MASTERING_WHITE_POINT_Y_HIGH 42000 -#define V4L2_HDR10_MASTERING_MAX_LUMA_LOW 50000 -#define V4L2_HDR10_MASTERING_MAX_LUMA_HIGH 100000000 -#define V4L2_HDR10_MASTERING_MIN_LUMA_LOW 1 -#define V4L2_HDR10_MASTERING_MIN_LUMA_HIGH 50000 - -struct v4l2_ctrl_hdr10_mastering_display { - __u16 display_primaries_x[3]; - __u16 display_primaries_y[3]; - __u16 white_point_x; - __u16 white_point_y; - __u32 max_display_mastering_luminance; - __u32 min_display_mastering_luminance; -}; - /* Stateless VP9 controls */ #define V4L2_VP9_LOOP_FILTER_FLAG_DELTA_ENABLED 0x1 -#define V4L2_VP9_LOOP_FILTER_FLAG_DELTA_UPDATE 0x2 +#define V4L2_VP9_LOOP_FILTER_FLAG_DELTA_UPDATE 0x2 /** * struct v4l2_vp9_loop_filter - VP9 loop filter parameters @@ -3506,4 +3478,38 @@ struct v4l2_ctrl_av1_film_grain { #define V4L2_CID_MPEG_CX2341X_BASE V4L2_CID_CODEC_CX2341X_BASE #define V4L2_CID_MPEG_MFC51_BASE V4L2_CID_CODEC_MFC51_BASE +#define V4L2_CID_COLORIMETRY_CLASS_BASE (V4L2_CTRL_CLASS_COLORIMETRY | 0x900) +#define V4L2_CID_COLORIMETRY_CLASS (V4L2_CTRL_CLASS_COLORIMETRY | 1) + +#define V4L2_CID_COLORIMETRY_HDR10_CLL_INFO (V4L2_CID_COLORIMETRY_CLASS_BASE + 0) + +struct v4l2_ctrl_hdr10_cll_info { + __u16 max_content_light_level; + __u16 max_pic_average_light_level; +}; + +#define V4L2_CID_COLORIMETRY_HDR10_MASTERING_DISPLAY (V4L2_CID_COLORIMETRY_CLASS_BASE + 1) + +#define V4L2_HDR10_MASTERING_PRIMARIES_X_LOW 5 +#define V4L2_HDR10_MASTERING_PRIMARIES_X_HIGH 37000 +#define V4L2_HDR10_MASTERING_PRIMARIES_Y_LOW 5 +#define V4L2_HDR10_MASTERING_PRIMARIES_Y_HIGH 42000 +#define V4L2_HDR10_MASTERING_WHITE_POINT_X_LOW 5 +#define V4L2_HDR10_MASTERING_WHITE_POINT_X_HIGH 37000 +#define V4L2_HDR10_MASTERING_WHITE_POINT_Y_LOW 5 +#define V4L2_HDR10_MASTERING_WHITE_POINT_Y_HIGH 42000 +#define V4L2_HDR10_MASTERING_MAX_LUMA_LOW 50000 +#define V4L2_HDR10_MASTERING_MAX_LUMA_HIGH 100000000 +#define V4L2_HDR10_MASTERING_MIN_LUMA_LOW 1 +#define V4L2_HDR10_MASTERING_MIN_LUMA_HIGH 50000 + +struct v4l2_ctrl_hdr10_mastering_display { + __u16 display_primaries_x[3]; + __u16 display_primaries_y[3]; + __u16 white_point_x; + __u16 white_point_y; + __u32 max_display_mastering_luminance; + __u32 min_display_mastering_luminance; +}; + #endif From patchwork Wed Dec 10 08:19:16 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Jacopo Mondi X-Patchwork-Id: 25449 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 6F21AC3257 for ; Wed, 10 Dec 2025 08:19:37 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 5815D6144D; Wed, 10 Dec 2025 09:19:36 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="kD7Oo1Fo"; 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 24DB361428 for ; Wed, 10 Dec 2025 09:19:29 +0100 (CET) Received: from [192.168.1.106] (mob-5-90-63-16.net.vodafone.it [5.90.63.16]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id E4DEA1CD2; Wed, 10 Dec 2025 09:19:27 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1765354768; bh=dcKjPWGq48ou5EmqtZLskXMpeVwW7yyXCmii5Y2huqw=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=kD7Oo1FoMNoft5Kch6L0DYq6akPUfvbKMIwjqBG5w4WxNNQ9b3P4Z4ptNIVAbBcEI vV0sZceo1LH+quzHvmxp9TtDwCFqikJNNXJSwKix7pNOqa4uwKpIAEowhPRN4pe+0J 7j/qTUX7WWknlB4FueAuceTUV5lSpDbne9zcyiCo= From: Jacopo Mondi Date: Wed, 10 Dec 2025 09:19:16 +0100 Subject: [PATCH v2 5/6] include: linux: videodev2.h: Update to v6.18 MIME-Version: 1.0 Message-Id: <20251210-headers-update-v6-18-v2-5-3f726742a4c8@ideasonboard.com> References: <20251210-headers-update-v6-18-v2-0-3f726742a4c8@ideasonboard.com> In-Reply-To: <20251210-headers-update-v6-18-v2-0-3f726742a4c8@ideasonboard.com> To: libcamera-devel@lists.libcamera.org Cc: Jacopo Mondi , =?utf-8?b?QmFybmFiw6Fz?= =?utf-8?q?_P=C5=91cze?= X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=11543; i=jacopo.mondi@ideasonboard.com; h=from:subject:message-id; bh=dcKjPWGq48ou5EmqtZLskXMpeVwW7yyXCmii5Y2huqw=; b=owEBbQKS/ZANAwAKAXI0Bo8WoVY8AcsmYgBpOS0N4SQ+cXSo9hA9MPlYoniVtrtwG9WHjxfak DHNtsVvSWyJAjMEAAEKAB0WIQS1xD1IgJogio9YOMByNAaPFqFWPAUCaTktDQAKCRByNAaPFqFW PP2JEACkIfT8IwDNONBhScUPjgIzZ1005qz9jmINXUPaPTUukJe9xHMC0yYxTtvNwkQWrkyRIhi s4KXzy+9EDRAUBxP6CUEzzPRjgmVjy6XYyBRB3yxffxUZwQA2Udm5edb6eIsmMevXVbeh7POnWY E7zT8HEmSV3rXzeNq2kyFz6MB5/ENNzv3oiIvDqt9bNGwADU1YAn6WkALXXsqw+f5gk7sQG1rKn jCyoZCuUCJHmMmQGzZlVgGWUb0fQ6/kru9uHbbQVtuiIOC/P6OSUKTDNAJzOYGS+i4t9uB0scaJ CPwpf343r/0m3xLvuUdElDoLaX6MYzVnp7idtXxAkBrXqd/RaquMvjNtJs1plNPSqf3Q8/tiJbC yctJhvt4+KN4nzlKPBM/xGkYWLAx2HY2g/dPGzR0WToHUQH0DuYLkQ3X8tAoUGi/h5fEgRgl7zK //bUcKptEcFObAFDWApsDyemz/q8nh04jqm8daRUE8S8AeuvVE9/95trawsoi7fCO7WAgxcPvYz Gs1TLFUanMX/Lgn5cm7XfrlsV/4V3pUVNwI/UqQ0CJ7I5vJMawijk3/eSV2yK6YRpOergR1/QDT Ro2AFv43CzZwVIt8y/S/AI2Bg2b1+33vjV5QDhW9gmvlvKkqgoKPqNKI3OEgLFvzb+j7QuPyT9d w86A3mTlhaZrauQ== 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" Update videodev2.h to Linux kernel version v6.18. The downstream defined RPi CFE stats and parameters formats have found their way in upstream so we can drop the local definitions. Also add the Amlogic C3 ISP formats and Renesas CRU ones. Signed-off-by: Jacopo Mondi Acked-by: Barnabás Pőcze --- include/linux/videodev2.h | 64 ++++++++++++++++++++++++++++++++++------------- 1 file changed, 46 insertions(+), 18 deletions(-) diff --git a/include/linux/videodev2.h b/include/linux/videodev2.h index 317d063a7e2bf5c54b01b8c2328a1857dc2f6fc3..b40b43d72196cee5f677f96dddb8452600cd296c 100644 --- a/include/linux/videodev2.h +++ b/include/linux/videodev2.h @@ -51,7 +51,7 @@ * * Author: Bill Dirks * Justin Schoeman - * Hans Verkuil + * Hans Verkuil * et al. */ #ifndef __LINUX_VIDEODEV2_H @@ -151,10 +151,18 @@ enum v4l2_buf_type { V4L2_BUF_TYPE_SDR_OUTPUT = 12, V4L2_BUF_TYPE_META_CAPTURE = 13, V4L2_BUF_TYPE_META_OUTPUT = 14, + /* + * Note: V4L2_TYPE_IS_VALID and V4L2_TYPE_IS_OUTPUT must + * be updated if a new type is added. + */ /* Deprecated, do not use */ V4L2_BUF_TYPE_PRIVATE = 0x80, }; +#define V4L2_TYPE_IS_VALID(type) \ + ((type) >= V4L2_BUF_TYPE_VIDEO_CAPTURE &&\ + (type) <= V4L2_BUF_TYPE_META_OUTPUT) + #define V4L2_TYPE_IS_MULTIPLANAR(type) \ ((type) == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE \ || (type) == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE) @@ -162,14 +170,14 @@ enum v4l2_buf_type { #define V4L2_TYPE_IS_OUTPUT(type) \ ((type) == V4L2_BUF_TYPE_VIDEO_OUTPUT \ || (type) == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE \ - || (type) == V4L2_BUF_TYPE_VIDEO_OVERLAY \ || (type) == V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY \ || (type) == V4L2_BUF_TYPE_VBI_OUTPUT \ || (type) == V4L2_BUF_TYPE_SLICED_VBI_OUTPUT \ || (type) == V4L2_BUF_TYPE_SDR_OUTPUT \ || (type) == V4L2_BUF_TYPE_META_OUTPUT) -#define V4L2_TYPE_IS_CAPTURE(type) (!V4L2_TYPE_IS_OUTPUT(type)) +#define V4L2_TYPE_IS_CAPTURE(type) \ + (V4L2_TYPE_IS_VALID(type) && !V4L2_TYPE_IS_OUTPUT(type)) enum v4l2_tuner_type { V4L2_TUNER_RADIO = 1, @@ -475,6 +483,7 @@ struct v4l2_capability { #define V4L2_CAP_META_CAPTURE 0x00800000 /* Is a metadata capture device */ #define V4L2_CAP_READWRITE 0x01000000 /* read/write systemcalls */ +#define V4L2_CAP_EDID 0x02000000 /* Is an EDID-only device */ #define V4L2_CAP_STREAMING 0x04000000 /* streaming I/O ioctls */ #define V4L2_CAP_META_OUTPUT 0x08000000 /* Is a metadata output device */ @@ -615,8 +624,10 @@ struct v4l2_pix_format { /* two planes -- one Y, one Cr + Cb interleaved */ #define V4L2_PIX_FMT_NV12 v4l2_fourcc('N', 'V', '1', '2') /* 12 Y/CbCr 4:2:0 */ #define V4L2_PIX_FMT_NV21 v4l2_fourcc('N', 'V', '2', '1') /* 12 Y/CrCb 4:2:0 */ +#define V4L2_PIX_FMT_NV15 v4l2_fourcc('N', 'V', '1', '5') /* 15 Y/CbCr 4:2:0 10-bit packed */ #define V4L2_PIX_FMT_NV16 v4l2_fourcc('N', 'V', '1', '6') /* 16 Y/CbCr 4:2:2 */ #define V4L2_PIX_FMT_NV61 v4l2_fourcc('N', 'V', '6', '1') /* 16 Y/CrCb 4:2:2 */ +#define V4L2_PIX_FMT_NV20 v4l2_fourcc('N', 'V', '2', '0') /* 20 Y/CbCr 4:2:2 10-bit packed */ #define V4L2_PIX_FMT_NV24 v4l2_fourcc('N', 'V', '2', '4') /* 24 Y/CbCr 4:4:4 */ #define V4L2_PIX_FMT_NV42 v4l2_fourcc('N', 'V', '4', '2') /* 24 Y/CrCb 4:4:4 */ #define V4L2_PIX_FMT_P010 v4l2_fourcc('P', '0', '1', '0') /* 24 Y/CbCr 4:2:0 10-bit per component */ @@ -688,7 +699,7 @@ struct v4l2_pix_format { #define V4L2_PIX_FMT_SGBRG12 v4l2_fourcc('G', 'B', '1', '2') /* 12 GBGB.. RGRG.. */ #define V4L2_PIX_FMT_SGRBG12 v4l2_fourcc('B', 'A', '1', '2') /* 12 GRGR.. BGBG.. */ #define V4L2_PIX_FMT_SRGGB12 v4l2_fourcc('R', 'G', '1', '2') /* 12 RGRG.. GBGB.. */ - /* 12bit raw bayer packed, 6 bytes for every 4 pixels */ + /* 12bit raw bayer packed, 3 bytes for every 2 pixels */ #define V4L2_PIX_FMT_SBGGR12P v4l2_fourcc('p', 'B', 'C', 'C') #define V4L2_PIX_FMT_SGBRG12P v4l2_fourcc('p', 'G', 'C', 'C') #define V4L2_PIX_FMT_SGRBG12P v4l2_fourcc('p', 'g', 'C', 'C') @@ -770,6 +781,7 @@ struct v4l2_pix_format { #define V4L2_PIX_FMT_S5C_UYVY_JPG v4l2_fourcc('S', '5', 'C', 'I') /* S5C73M3 interleaved UYVY/JPEG */ #define V4L2_PIX_FMT_Y8I v4l2_fourcc('Y', '8', 'I', ' ') /* Greyscale 8-bit L/R interleaved */ #define V4L2_PIX_FMT_Y12I v4l2_fourcc('Y', '1', '2', 'I') /* Greyscale 12-bit L/R interleaved */ +#define V4L2_PIX_FMT_Y16I v4l2_fourcc('Y', '1', '6', 'I') /* Greyscale 16-bit L/R interleaved */ #define V4L2_PIX_FMT_Z16 v4l2_fourcc('Z', '1', '6', ' ') /* Depth data 16-bit */ #define V4L2_PIX_FMT_MT21C v4l2_fourcc('M', 'T', '2', '1') /* Mediatek compressed block mode */ #define V4L2_PIX_FMT_MM21 v4l2_fourcc('M', 'M', '2', '1') /* Mediatek 8-bit block mode, two non-contiguous planes */ @@ -801,6 +813,12 @@ struct v4l2_pix_format { #define V4L2_PIX_FMT_PISP_COMP2_BGGR v4l2_fourcc('P', 'C', '2', 'B') /* PiSP 8-bit mode 2 compressed BGGR bayer */ #define V4L2_PIX_FMT_PISP_COMP2_MONO v4l2_fourcc('P', 'C', '2', 'M') /* PiSP 8-bit mode 2 compressed monochrome */ +/* Renesas RZ/V2H CRU packed formats. 64-bit units with contiguous pixels */ +#define V4L2_PIX_FMT_RAW_CRU10 v4l2_fourcc('C', 'R', '1', '0') +#define V4L2_PIX_FMT_RAW_CRU12 v4l2_fourcc('C', 'R', '1', '2') +#define V4L2_PIX_FMT_RAW_CRU14 v4l2_fourcc('C', 'R', '1', '4') +#define V4L2_PIX_FMT_RAW_CRU20 v4l2_fourcc('C', 'R', '2', '0') + /* SDR formats - used only for Software Defined Radio devices */ #define V4L2_SDR_FMT_CU8 v4l2_fourcc('C', 'U', '0', '8') /* IQ u8 */ #define V4L2_SDR_FMT_CU16LE v4l2_fourcc('C', 'U', '1', '6') /* IQ u16le */ @@ -822,6 +840,7 @@ struct v4l2_pix_format { #define V4L2_META_FMT_VSP1_HGT v4l2_fourcc('V', 'S', 'P', 'T') /* R-Car VSP1 2-D Histogram */ #define V4L2_META_FMT_UVC v4l2_fourcc('U', 'V', 'C', 'H') /* UVC Payload Header metadata */ #define V4L2_META_FMT_D4XX v4l2_fourcc('D', '4', 'X', 'X') /* D4XX Payload Header metadata */ +#define V4L2_META_FMT_UVC_MSXU_1_5 v4l2_fourcc('U', 'V', 'C', 'M') /* UVC MSXU metadata */ #define V4L2_META_FMT_VIVID v4l2_fourcc('V', 'I', 'V', 'D') /* Vivid Metadata */ #define V4L2_META_FMT_SENSOR_DATA v4l2_fourcc('S', 'E', 'N', 'S') /* Sensor Ancillary metadata */ #define V4L2_META_FMT_BCM2835_ISP_STATS v4l2_fourcc('B', 'S', 'T', 'A') /* BCM2835 ISP image statistics output */ @@ -831,14 +850,15 @@ struct v4l2_pix_format { #define V4L2_META_FMT_RK_ISP1_STAT_3A v4l2_fourcc('R', 'K', '1', 'S') /* Rockchip ISP1 3A Statistics */ #define V4L2_META_FMT_RK_ISP1_EXT_PARAMS v4l2_fourcc('R', 'K', '1', 'E') /* Rockchip ISP1 3a Extensible Parameters */ +/* Vendor specific - used for C3_ISP */ +#define V4L2_META_FMT_C3ISP_PARAMS v4l2_fourcc('C', '3', 'P', 'M') /* Amlogic C3 ISP Parameters */ +#define V4L2_META_FMT_C3ISP_STATS v4l2_fourcc('C', '3', 'S', 'T') /* Amlogic C3 ISP Statistics */ + /* Vendor specific - used for RaspberryPi PiSP */ #define V4L2_META_FMT_RPI_BE_CFG v4l2_fourcc('R', 'P', 'B', 'C') /* PiSP BE configuration */ +#define V4L2_META_FMT_RPI_FE_CFG v4l2_fourcc('R', 'P', 'F', 'C') /* PiSP FE configuration */ +#define V4L2_META_FMT_RPI_FE_STATS v4l2_fourcc('R', 'P', 'F', 'S') /* PiSP FE stats */ -/* The metadata format identifier for FE configuration buffers. */ -#define V4L2_META_FMT_RPI_FE_CFG v4l2_fourcc('R', 'P', 'F', 'C') - -/* The metadata format identifier for FE stats buffers. */ -#define V4L2_META_FMT_RPI_FE_STATS v4l2_fourcc('R', 'P', 'F', 'S') #define V4L2_META_FMT_MALI_C55_PARAMS v4l2_fourcc('C', '5', '5', 'P') /* ARM Mali-C55 Parameters */ #define V4L2_META_FMT_MALI_C55_3A_STATS v4l2_fourcc('C', '5', '5', 'S') /* ARM Mali-C55 3A Statistics */ @@ -887,6 +907,9 @@ struct v4l2_fmtdesc { #define V4L2_FMT_FLAG_CSC_QUANTIZATION 0x0100 #define V4L2_FMT_FLAG_META_LINE_BASED 0x0200 +/* Format description flag, to be ORed with the index */ +#define V4L2_FMTDESC_FLAG_ENUM_ALL 0x80000000 + /* Frame Size and frame rate enumeration */ /* * F R A M E S I Z E E N U M E R A T I O N @@ -1536,8 +1559,8 @@ struct v4l2_bt_timings { } __attribute__ ((packed)); /* Interlaced or progressive format */ -#define V4L2_DV_PROGRESSIVE 0 -#define V4L2_DV_INTERLACED 1 +#define V4L2_DV_PROGRESSIVE 0 +#define V4L2_DV_INTERLACED 1 /* Polarities. If bit is not set, it is assumed to be negative polarity */ #define V4L2_DV_VSYNC_POS_POL 0x00000001 @@ -1809,6 +1832,7 @@ struct v4l2_ext_control { __s32 *p_s32; __s64 *p_s64; struct v4l2_area *p_area; + struct v4l2_rect *p_rect; struct v4l2_ctrl_h264_sps *p_h264_sps; struct v4l2_ctrl_h264_pps *p_h264_pps; struct v4l2_ctrl_h264_scaling_matrix *p_h264_scaling_matrix; @@ -1857,6 +1881,8 @@ struct v4l2_ext_controls { #define V4L2_CTRL_WHICH_CUR_VAL 0 #define V4L2_CTRL_WHICH_DEF_VAL 0x0f000000 #define V4L2_CTRL_WHICH_REQUEST_VAL 0x0f010000 +#define V4L2_CTRL_WHICH_MIN_VAL 0x0f020000 +#define V4L2_CTRL_WHICH_MAX_VAL 0x0f030000 enum v4l2_ctrl_type { V4L2_CTRL_TYPE_INTEGER = 1, @@ -1875,6 +1901,7 @@ enum v4l2_ctrl_type { V4L2_CTRL_TYPE_U16 = 0x0101, V4L2_CTRL_TYPE_U32 = 0x0102, V4L2_CTRL_TYPE_AREA = 0x0106, + V4L2_CTRL_TYPE_RECT = 0x0107, V4L2_CTRL_TYPE_HDR10_CLL_INFO = 0x0110, V4L2_CTRL_TYPE_HDR10_MASTERING_DISPLAY = 0x0111, @@ -1963,6 +1990,7 @@ struct v4l2_querymenu { #define V4L2_CTRL_FLAG_EXECUTE_ON_WRITE 0x0200 #define V4L2_CTRL_FLAG_MODIFY_LAYOUT 0x0400 #define V4L2_CTRL_FLAG_DYNAMIC_ARRAY 0x0800 +#define V4L2_CTRL_FLAG_HAS_WHICH_MIN_MAX 0x1000 /* Query flags, to be ORed with the control ID */ #define V4L2_CTRL_FLAG_NEXT_CTRL 0x80000000 @@ -2704,15 +2732,15 @@ struct v4l2_remove_buffers { * Only implemented if CONFIG_VIDEO_ADV_DEBUG is defined. * You must be root to use these ioctls. Never use these in applications! */ -#define VIDIOC_DBG_S_REGISTER _IOW('V', 79, struct v4l2_dbg_register) -#define VIDIOC_DBG_G_REGISTER _IOWR('V', 80, struct v4l2_dbg_register) +#define VIDIOC_DBG_S_REGISTER _IOW('V', 79, struct v4l2_dbg_register) +#define VIDIOC_DBG_G_REGISTER _IOWR('V', 80, struct v4l2_dbg_register) #define VIDIOC_S_HW_FREQ_SEEK _IOW('V', 82, struct v4l2_hw_freq_seek) -#define VIDIOC_S_DV_TIMINGS _IOWR('V', 87, struct v4l2_dv_timings) -#define VIDIOC_G_DV_TIMINGS _IOWR('V', 88, struct v4l2_dv_timings) -#define VIDIOC_DQEVENT _IOR('V', 89, struct v4l2_event) -#define VIDIOC_SUBSCRIBE_EVENT _IOW('V', 90, struct v4l2_event_subscription) -#define VIDIOC_UNSUBSCRIBE_EVENT _IOW('V', 91, struct v4l2_event_subscription) +#define VIDIOC_S_DV_TIMINGS _IOWR('V', 87, struct v4l2_dv_timings) +#define VIDIOC_G_DV_TIMINGS _IOWR('V', 88, struct v4l2_dv_timings) +#define VIDIOC_DQEVENT _IOR('V', 89, struct v4l2_event) +#define VIDIOC_SUBSCRIBE_EVENT _IOW('V', 90, struct v4l2_event_subscription) +#define VIDIOC_UNSUBSCRIBE_EVENT _IOW('V', 91, struct v4l2_event_subscription) #define VIDIOC_CREATE_BUFS _IOWR('V', 92, struct v4l2_create_buffers) #define VIDIOC_PREPARE_BUF _IOWR('V', 93, struct v4l2_buffer) #define VIDIOC_G_SELECTION _IOWR('V', 94, struct v4l2_selection) From patchwork Wed Dec 10 08:19:17 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jacopo Mondi X-Patchwork-Id: 25450 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 16CE6C326C for ; Wed, 10 Dec 2025 08:19:38 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 11E2A6144E; Wed, 10 Dec 2025 09:19:37 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="gFM0RsVl"; 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 7FAA861428 for ; Wed, 10 Dec 2025 09:19:29 +0100 (CET) Received: from [192.168.1.106] (mob-5-90-63-16.net.vodafone.it [5.90.63.16]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 543BA1E2A; Wed, 10 Dec 2025 09:19:28 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1765354768; bh=Zvca2W9OLO5mR4WcuwKkvr/fOBmR4BOthyipUuRztiA=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=gFM0RsVlzWrxJcRq5tg6Ccie3FtpZovqFkS+eoEYd4VZ6Wh3o53He7e4Ex9fa5Qzn mVXg6q53DHoo+4QalGzxVTjEpxFr3W59U2fOuEh9Os6n3ZlNDUlYDFcIAwLJa9lvuT NLH0ASmf8CMauDgEPQDWuCjWQF4eLZhQO9KKjrPk= From: Jacopo Mondi Date: Wed, 10 Dec 2025 09:19:17 +0100 Subject: [PATCH v2 6/6] include: linux: README: Update to Linux v6.18 MIME-Version: 1.0 Message-Id: <20251210-headers-update-v6-18-v2-6-3f726742a4c8@ideasonboard.com> References: <20251210-headers-update-v6-18-v2-0-3f726742a4c8@ideasonboard.com> In-Reply-To: <20251210-headers-update-v6-18-v2-0-3f726742a4c8@ideasonboard.com> To: libcamera-devel@lists.libcamera.org Cc: Jacopo Mondi X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=748; i=jacopo.mondi@ideasonboard.com; h=from:subject:message-id; bh=Zvca2W9OLO5mR4WcuwKkvr/fOBmR4BOthyipUuRztiA=; b=owEBbQKS/ZANAwAKAXI0Bo8WoVY8AcsmYgBpOS0NrQlBmVlMhfnz+TnxhQ8hoN6Fu1lSVwx91 0IU5EiMQbSJAjMEAAEKAB0WIQS1xD1IgJogio9YOMByNAaPFqFWPAUCaTktDQAKCRByNAaPFqFW PIuaD/4z4OyCv81aeD2GQ0HUPA28W8D9iy+yc8FdX1k9Z/EAWMCBlCSul8Udiv0UELzsC7WSyDd OC41QYeVX6KHkFf7rROEV/7je+GCAQichIjmCJMGtI5MnNpyGpWAZ8AX3yG1kKnVAY5n+/X6+Ot assOb1iPSrOf+awr5gxOHkw4JAZnaPmdW/do1zgkvfiqwMgMtRVVJw2Fil6KvH+cz4ZU5Lc5Sef aEjq4Zx9+fc/b+IbaYSOdj01dHS1iiFHmYxTIKOojYvKctgNPDLShbpXXPsXEDKsYam59zx2Fk6 moTvDD68v2xk/OtuApcUzegQ+ONa7Lb1k9fC1C6fE1lnVjF5BKmfyD3aXQWGQPt+Bf/GZz1OfdT +7tbtwoVpZi1teKoLzvuHMWAOuTxB4xWWKdw6OZxkhsVIPTXjckMkd9OIYNgq18Fky5H2Md0SDg Q7ESVufh42NvD/IT80ias/xTobxWxgG3YyZ/hcXxboLl54WNAmw34CasSGIfzLfVNOo3dF+0sdb 4s9v/g+PdLRBejFSc4mGeUXraTxmqIWGHQDKMu4s50+qqRHOMk7uTzcODp8EKFkB7nl75vDJDeN VQDMMVFn5caCX7V8OXLVt5Z/E71aTubTazkn8Kf3yON7tUqBpao9WDA67QoHyCBS+PZ3Zxgyywl P05o604DWq7kDBg== 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" Now that we have completed the update of all headers to Linux kernel version v6.18, record it in the README file. Signed-off-by: Jacopo Mondi --- include/linux/README | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/linux/README b/include/linux/README index f9f68641aa3cd85487dbbeaa88209d3807ced088..98b7d150cf273662a569bc1ba1acf38360a6543f 100644 --- a/include/linux/README +++ b/include/linux/README @@ -1,4 +1,4 @@ # SPDX-License-Identifier: CC0-1.0 -Files in this directory are imported from v6.13-rc1-68-gf9bbbd9a696d of the Linux kernel. Do not +Files in this directory are imported from v6.18 of the Linux kernel. Do not modify them manually.