From patchwork Thu Dec 4 15:54:14 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jacopo Mondi X-Patchwork-Id: 25349 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 E5DA9C3260 for ; Thu, 4 Dec 2025 15:54:43 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 79F0961105; Thu, 4 Dec 2025 16:54:41 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="ZxbuPRJ3"; 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 8DCBB609E0 for ; Thu, 4 Dec 2025 16:54:39 +0100 (CET) Received: from [192.168.1.182] (93-46-82-201.ip106.fastwebnet.it [93.46.82.201]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 7D2FFE91; Thu, 4 Dec 2025 16:52:22 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1764863542; bh=D+2HNa4Rc4PsukmGvXDb7y2/cPHyfwXKwKdjcamsDUI=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=ZxbuPRJ3szQo8sogSRz8l9U+BVGoGILC6GoJn7C8yTO0dbp8FwyRpniCCbwCy2qhn bhdEg2g0Ykk9iFOA4uBXZhG9/75xMiN7bSxIqPzlhZW1YUgTEKeX3rx3K8gh9nHGmG 5hWnQTwOZM3NTkYS7U0G+l2j7GnLQDzCRPmJpBwg= From: Jacopo Mondi Date: Thu, 04 Dec 2025 16:54:14 +0100 Subject: [PATCH 1/6] include: linux: drm_fourcc.h: Update to v6.18 MIME-Version: 1.0 Message-Id: <20251204-headers-update-v6-18-v1-1-93135d14a081@ideasonboard.com> References: <20251204-headers-update-v6-18-v1-0-93135d14a081@ideasonboard.com> In-Reply-To: <20251204-headers-update-v6-18-v1-0-93135d14a081@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=13302; i=jacopo.mondi@ideasonboard.com; h=from:subject:message-id; bh=D+2HNa4Rc4PsukmGvXDb7y2/cPHyfwXKwKdjcamsDUI=; b=owEBbQKS/ZANAwAKAXI0Bo8WoVY8AcsmYgBpMa68mDH8rZ11GO5y7CpnfZoHm9ZjuJAOAEmYm FVDd9Dh63+JAjMEAAEKAB0WIQS1xD1IgJogio9YOMByNAaPFqFWPAUCaTGuvAAKCRByNAaPFqFW PGztD/oCK8RdtnS7Pc4EFgrFPcDYD9Qmhm3Wb1IcYG6K4ZNAwj+1hEZFdfjE/OZLsbIJ24sjvtH cIeEbrWc00avVqdjG/LcCKYyd8KNOKPWFvmhXZkRp+FfQ1FAJhrfuQ5HY4B3zYJ13Q8/ivUHy+I ywA6CgSQQzeOz7w2wEs5BFmDBtAmWAxf8oJvMQhhvUKM2dyeP0ISxNnAHBieHYNJCgbTNYRkU1b 6mzhj6pqPB3uKOvXziaBjSe+LqJ+HImCQ36tNEZd15lD963C6y+Ux1meXrTSRJeg77bNmK0Kdm/ fVf+k5EsRxZeK7/go8atOhY4nwaJiVLEYZYbVyUwuKhnNZcJZRTO+NeCNQxXweo7fJhizSo9zBy 4oyIsFQ2TivStUp3/ONPt89pErycNIsnomchUBg5Bx2So+OEfW2wVTw1x7va5anG+LeudMZwR98 LyI7YirnTwMRFuMIHrnSsOvW5om7nrTeeStyHthM5+dmaQDdNTK/o9UWJEGwc9rYakU6gUBIJ18 eZs9Giod5cSTAXrY2ElKg2aqoTDn00iIyjI/ce5iU7IKcyklLRyUySdKhO1gnkKdDvMHCDbA2FT 3NesA4JhC/Co7J1XdWFDV4UJb+sPTOUkGCKAoA1isvQkzHe0B53MdR8XACT3ZDYTpA3/st5Cf9g W+2bX7KhtTJu5Jw== 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 formats definitions for RAW Bayer formats, we have to re-define some of the symbols we kept downstream as new symbols have been added in mainline with the same values. In particular: -#define IPU3_FORMAT_MOD_PACKED fourcc_mod_code(INTEL, 13) +#define IPU3_FORMAT_MOD_PACKED fourcc_mod_code(INTEL, 18) and -#define DRM_FORMAT_MOD_VENDOR_MIPI 0x0b -#define DRM_FORMAT_MOD_VENDOR_RPI 0x0c +#define DRM_FORMAT_MOD_VENDOR_MIPI 0x0e +#define DRM_FORMAT_MOD_VENDOR_RPI 0x0f Signed-off-by: Jacopo Mondi --- include/linux/drm_fourcc.h | 195 ++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 182 insertions(+), 13 deletions(-) diff --git a/include/linux/drm_fourcc.h b/include/linux/drm_fourcc.h index db6798776663086c12d321d2ed708edc7ec77f71..26e2cdddc9625ec494d0c8f944f87d6439c3588d 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,8 +539,10 @@ 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_MIPI 0x0b -#define DRM_FORMAT_MOD_VENDOR_RPI 0x0c +#define DRM_FORMAT_MOD_VENDOR_MTK 0x0b +#define DRM_FORMAT_MOD_VENDOR_APPLE 0x0c +#define DRM_FORMAT_MOD_VENDOR_MIPI 0x0e +#define DRM_FORMAT_MOD_VENDOR_RPI 0x0f /* add more to the end as needed */ @@ -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 Thu Dec 4 15:54:15 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jacopo Mondi X-Patchwork-Id: 25350 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 E45F8C326B for ; Thu, 4 Dec 2025 15:54:44 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 0E7AD610B2; Thu, 4 Dec 2025 16:54:43 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="TtE2Zw8U"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id C8A9D610A1 for ; Thu, 4 Dec 2025 16:54:39 +0100 (CET) Received: from [192.168.1.182] (93-46-82-201.ip106.fastwebnet.it [93.46.82.201]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id B72CAEB7; Thu, 4 Dec 2025 16:52:22 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1764863542; bh=o4phbeIuJCnHmzX6rk8dDS2jkj6waBYoWyXQcUoE454=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=TtE2Zw8UZV0gn+gD2yOwAdYN1/kXQh8XtJg1X3uzrnXmXXIORp5UNlsSmwRKi9CY6 9M8q51B5R0DF7c/ekvlVr/2ff9f+Un4irWQA16cpqU4Tt7K2nKXcm6jTfCOZvQI5EF ycWND4ssydZRwwEDcZMEH1VE+SjKkE/KwvcnKAGY= From: Jacopo Mondi Date: Thu, 04 Dec 2025 16:54:15 +0100 Subject: [PATCH 2/6] include: linux: intel-ipu3.h: Update to v6.18 MIME-Version: 1.0 Message-Id: <20251204-headers-update-v6-18-v1-2-93135d14a081@ideasonboard.com> References: <20251204-headers-update-v6-18-v1-0-93135d14a081@ideasonboard.com> In-Reply-To: <20251204-headers-update-v6-18-v1-0-93135d14a081@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=874; i=jacopo.mondi@ideasonboard.com; h=from:subject:message-id; bh=o4phbeIuJCnHmzX6rk8dDS2jkj6waBYoWyXQcUoE454=; b=owEBbQKS/ZANAwAKAXI0Bo8WoVY8AcsmYgBpMa68/FyShkJ2rvGxAd0JkX9bYz2EsgV+hnDEe TTjNyXvXMiJAjMEAAEKAB0WIQS1xD1IgJogio9YOMByNAaPFqFWPAUCaTGuvAAKCRByNAaPFqFW PP8GD/9r0DU3QgzUkjnU3uANNUk+X4I6oMtI/KpgDC6nPHVbshEHRs0PPfsoZsw+FhZTQs13d0d m2vSdC9V+bvdp348+WaYEcYg6tZ37yRcK8f4JWeGPZTBuDgLCZYVdIxk+WcrhFxjF2lA9eZEfw4 nYUFN7Z/C053AFMfEf7dnXpuxlHk7S0ahjK82o6SR+HyPNvyi2btP7AX6vvhZ5KFRJWVcSQQvyG 1wlWuBGLqRgPtGyve2SrEq/Ja3/AVmQpg+hRmXePADU3V1jd/rUP9U7ZBZ4/bDlChXIC4Ur48MF tJvrIHPBBS2fYTkn9VPqxVlb2n3yNTTUTCYaVxbrnpykzX2zPb1ZHug3FwTtGqfOG4FQdRp1g5O SKZreAycsVp7f78XXghtgufPITSG0xdUgrIMO0xGTwcbecT5qVNEjQ+jLpdAct1cWch4HgQCV1W 5RXAclWKlav6VlQ6+frFSr5pzXsDih0BQ4FJ2aHvUw6NHyT7Bi755PHdH6HmpS6EdQk2WKY8F7K d9KDFaMsFV2NUHqmCXnbne5y+DsJ4WyiMo0k1HFtvrODDV7iFOdhzS37HgNlpXGSqmTvkQ8ov67 6mG8PbYoveI7sUt0iCswZugNWRY3OPbd9UJM2Cu/6v4+IsqtSlSCGWGJ5BGOXRLoWEMW2CWkyka /dvCLhcisoeP80Q== 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 --- 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 Thu Dec 4 15:54: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: 25351 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 A2753BD80A for ; Thu, 4 Dec 2025 15:54:45 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id D5A9261160; Thu, 4 Dec 2025 16:54:44 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="ufhKsiNY"; 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 E737D610AA for ; Thu, 4 Dec 2025 16:54:39 +0100 (CET) Received: from [192.168.1.182] (93-46-82-201.ip106.fastwebnet.it [93.46.82.201]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id EA3BB122A; Thu, 4 Dec 2025 16:52:22 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1764863543; bh=k//PMcWv5HvaokhzkRDzYIOWl3VOfnrpLxli4ARKdzI=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=ufhKsiNYwv+7ilIHRTUKTnOpuJGGy5kOHMFcBb65BlYI3GVJoP7hUZk6XdRIKiLGT r9qQN3df5hkVHCQ2yWILStzyqa5eepFvpOwB2iG02XwtJ1KMg0qgctAFYt7+jeBkmb aR+nCx2pU5K+EQmgYbbBIypsL0BrK4ZryouZ3RXo= From: Jacopo Mondi Date: Thu, 04 Dec 2025 16:54:16 +0100 Subject: [PATCH 3/6] include: linux: media-bus-format.h: Update to v6.18 MIME-Version: 1.0 Message-Id: <20251204-headers-update-v6-18-v1-3-93135d14a081@ideasonboard.com> References: <20251204-headers-update-v6-18-v1-0-93135d14a081@ideasonboard.com> In-Reply-To: <20251204-headers-update-v6-18-v1-0-93135d14a081@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=1877; i=jacopo.mondi@ideasonboard.com; h=from:subject:message-id; bh=k//PMcWv5HvaokhzkRDzYIOWl3VOfnrpLxli4ARKdzI=; b=owEBbQKS/ZANAwAKAXI0Bo8WoVY8AcsmYgBpMa68x7U+vulvkCIEKCmoAuZsZadOTuFhKb0jM Ocvg1V3ZqmJAjMEAAEKAB0WIQS1xD1IgJogio9YOMByNAaPFqFWPAUCaTGuvAAKCRByNAaPFqFW PB7hD/97uOZ6p8CvKsdLTl0Viyk46cdQz5AXg67CZtmGfOGSRzOdlrvftfCSk7baM62AYPul5IH C6BbEYt3cfiZyTvuRgIgo/n40yFKZcsaXhQ7/F/oVozEVKJHb1JTBat7Tih6NPrMdaSnGmES+BC 4EjjWY6KvXmkRC5tQlRaFwpKSJVrxi7g9sAuUY55N3HkhRnpruwoZd+e2rFd9t/MVN94XS3NPhM 24aNyXJ8IJoo72WPz8PTX+Zk5q18Fhifkym7BsQF0gDzM0QOGSN+SYmzcrYfF1Kcx+rAuRKbEsA CYUPGm2xhJF8VolnVS/2AAlfmmUJiGOtj/Xj11IJTXzIUN0ImJwxBnA6ByhsKyNzLX465J0VgwJ kJ2zybmkD2JHL3jYWR6m1Y2YY0UO4oEFDXe6rMpYWODEd4vxEWGIhxoWJwUu0LXchBygt3Tvakm 9pSiSsOpdWrL1LROecYeJ/S+HLeaqFqmJfSz1Q57uW5t7PTIPZ/E/Hyd6gftiSX1+2PBaK0eH2R Am/rUEsd7CCzLYBZouhrVGxtqW5gyxyujDxbCKDDisAJpKz2KvTfYjymXp5/9/1nk/UWeLaq1Tu MSSjLBnusaRp9QflmzxWY5sMOWmLcY6j5pXaWB1BLfd8rDZryhCQ57X3pwC/1o9Cve+9qT5/yST x77CDauVqgDlEjQ== 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 --- 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 Thu Dec 4 15:54: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: 25352 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 8E076C32AF for ; Thu, 4 Dec 2025 15:54:46 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 0CF1C6112B; Thu, 4 Dec 2025 16:54:46 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="vunx4Z1c"; 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 0A4D1609E0 for ; Thu, 4 Dec 2025 16:54:40 +0100 (CET) Received: from [192.168.1.182] (93-46-82-201.ip106.fastwebnet.it [93.46.82.201]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 2846B161D; Thu, 4 Dec 2025 16:52:23 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1764863543; bh=ozJJ5plHEgNnwn+VEJ6IH2SUqDCZsxkvat5VsB0U6co=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=vunx4Z1csJ0xlm3z5Mnrst3Y5GEryVINeqFY66mt+PfJBXa9tsIMHQUR2CHLMB9SZ ++PgaoGXRWCBXsbxMU3LmUEIRCUf7Q9z17fBwM8ytFh/YIqZPk3U+sPC1QF7hvGH8u 5vvmczGh9gWZV3n9RQVjDJfGRKkJhBgZ0O9x7TxQ= From: Jacopo Mondi Date: Thu, 04 Dec 2025 16:54:17 +0100 Subject: [PATCH 4/6] include: linux: v4l2-controls.h: Update to v6.18 MIME-Version: 1.0 Message-Id: <20251204-headers-update-v6-18-v1-4-93135d14a081@ideasonboard.com> References: <20251204-headers-update-v6-18-v1-0-93135d14a081@ideasonboard.com> In-Reply-To: <20251204-headers-update-v6-18-v1-0-93135d14a081@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=8528; i=jacopo.mondi@ideasonboard.com; h=from:subject:message-id; bh=ozJJ5plHEgNnwn+VEJ6IH2SUqDCZsxkvat5VsB0U6co=; b=owEBbQKS/ZANAwAKAXI0Bo8WoVY8AcsmYgBpMa68p8Bmt7kxDLT6mkFEBN9rcHSuQCqkiL/EK Z1ZvdlUOQOJAjMEAAEKAB0WIQS1xD1IgJogio9YOMByNAaPFqFWPAUCaTGuvAAKCRByNAaPFqFW PLyLEACMszuLZhDsGqzCN8XQcPSHH2XyEYlkI0fEwG7Qv6/0xhLbqMOb8h4kMmCNVLkd7JrlnW0 HPtEhHoQTwV18ehpXwxTyojwq1K++fBgkGTDZIsvyQjH8xHHYHgNH5ZaWyk1+pO4HPm1n6wkftY aWrYkZeViQiwQXxcSYfiVOtjNJOPGRabqYjm5KxxiJgfZseuuj05wDAmzK/eOua5xhwHUrM+dT9 8wMU6k8i1pURUAZL1x5R/obsP7u6dhGPXmUiTi4tRiKANDNzaZiPuJl2JP/QlZC+taLLnprqvbR jbOqC5E9bCT7RA9dy7vf4VzWKayVyrx7VvIjre0TvsciwAsESzaL36wPuE9t0KjicpWIjKVTKt0 44FkAtPVkOX4DKxhzKaE9jxlL3BRDj0D0z9gwCSIrJRmBHYdFODj6QyAtgkJnD3QFIcXYNlJwGX OY3OoIJWgfxtT6VCYj0xrXrBHY2eCXmTIQi6qYScFeovw7u6alg0BG/T+blLV+ClQ8oRYew1nYT TTQVyEhoBGYm4sntcA9mjGXlLKnRhRyAB9mpylHxbNK771jQBRjPvfFMlCGb2ax2vsbxgcrphuQ XsETWDv5JdC/MC2Em6wZYhXrQ4vFTnZaEyRjaYVo6Hyxh05MTBKkHRhoUi4H/jtmmrfhreLZhEu d5cJji3Y+z9+h3A== 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 --- 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 Thu Dec 4 15:54:18 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jacopo Mondi X-Patchwork-Id: 25353 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 0CC20C32DE for ; Thu, 4 Dec 2025 15:54:47 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 9E1AE61154; Thu, 4 Dec 2025 16:54:46 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="JHdcvNjh"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 382B7610AE for ; Thu, 4 Dec 2025 16:54:40 +0100 (CET) Received: from [192.168.1.182] (93-46-82-201.ip106.fastwebnet.it [93.46.82.201]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 6F96E16A7; Thu, 4 Dec 2025 16:52:23 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1764863543; bh=ke55AW9C4yvalAhiMC8WBeDianxtGQuzpafpInw2kSA=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=JHdcvNjhJzLEK3BnyYvGzRr0bdgIIEjMJZlZshkngXa2OCBlJ3ZJ8QpAFNvn4groV qcJE10GoLXyJDJW5VwBCDjDIKyLZr1omDZZ3ywlo8RJpXzCRbUVGGrNolcrvGMT6rI Pc2qvf4IvqO3LM7PlLOquUv9N0rqIlOGq0x7KrW4= From: Jacopo Mondi Date: Thu, 04 Dec 2025 16:54:18 +0100 Subject: [PATCH 5/6] include: linux: videodev2.h: Update to v6.18 MIME-Version: 1.0 Message-Id: <20251204-headers-update-v6-18-v1-5-93135d14a081@ideasonboard.com> References: <20251204-headers-update-v6-18-v1-0-93135d14a081@ideasonboard.com> In-Reply-To: <20251204-headers-update-v6-18-v1-0-93135d14a081@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=11481; i=jacopo.mondi@ideasonboard.com; h=from:subject:message-id; bh=ke55AW9C4yvalAhiMC8WBeDianxtGQuzpafpInw2kSA=; b=owEBbQKS/ZANAwAKAXI0Bo8WoVY8AcsmYgBpMa68sFYvhKTvU86LH2xTDig5N+dv2eGIsP9TU FRh+uQdkcaJAjMEAAEKAB0WIQS1xD1IgJogio9YOMByNAaPFqFWPAUCaTGuvAAKCRByNAaPFqFW PJOgD/4jJ9hc7SLn8RsRTL4q9zryArSbiLdQQm6YaB3GeDKdaqdflngoaH8XTV+HgYldaYOMxBs lHSKSJGOOm/d5EMnl+bqVsfWpIYSFXSQnx3oliAEEOCZoVlDbHDAtI/ImXxYpQyTcHvOg4gWmp3 FHrzLey4z3PQg8TrOgX95B1jvNrfi1s/UIR2QVKDAYmK6XiYqwV7qu6w4i1ojBe5Ofi/PhoAsJk J9UA5xXR0gKWqPREodTgybMCS4+574i0dQJLqezpqZubOJZ6JQPOA6eODV/3xbXBIIj876m11iW xXbUm/vhFNdZwDY0HS2bjrkcrqZzCx65TfNIe+Zrtr5e0jh0NAR859s4EhrAxEyFaN3mNl53jd4 HfNr0ZGyGqUj8oLENfNjseDGa4o9RP83HVWOczjIsbTQYGUhpmiWqxNKSp1CG7Sh/XUDQFXaSe5 rR3JLPSiiDhAh1iZgzwiqAAc9FRNf2GY9chFs8oy37g317OuoLd1wZgGgpSJqlcY/FUJxpeFxgB uGyudaCxl+eBTy3K5gHURZgorBxW2SSl/blpOvUGu9mWplX9IEixNqkqhJOGEHWdChxVY7l01GO Wv/qGlSOJ117jd6F55fbDADhqdHm/dTrufkK4gTepFJnKt5I7yrMDZqy3tMv+aNd/5vkELhUgqG tdSnHLWpdYsCLGA== 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 --- 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 Thu Dec 4 15:54:19 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Jacopo Mondi X-Patchwork-Id: 25354 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 A38D7C3260 for ; Thu, 4 Dec 2025 15:54:47 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 484D86115A; Thu, 4 Dec 2025 16:54:47 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="Y6WkrP0e"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 3E0D1610F9 for ; Thu, 4 Dec 2025 16:54:40 +0100 (CET) Received: from [192.168.1.182] (93-46-82-201.ip106.fastwebnet.it [93.46.82.201]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id B0C751784; Thu, 4 Dec 2025 16:52:23 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1764863543; bh=eyx91c+Nrjaa5JmhxC/wJUSbTjBmERyuGXbkjDxtD4k=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=Y6WkrP0eOplCObji+uvCRJYgotuA+BaauNWpxw+hsCwLjK2U1sI1R5J9oL8w/hKp+ GDE++NzicUdk481Mc7XwRcVwjn8COgeVaqv0Bi2fMZmV0/x7ozSPdJ5skTwLSLfq+r +e0QanHk4JeLzChPtD83tk6rl73Ng9UHYALPljTI= From: Jacopo Mondi Date: Thu, 04 Dec 2025 16:54:19 +0100 Subject: [PATCH 6/6] include: linux: README: Update to Linux v6.18 MIME-Version: 1.0 Message-Id: <20251204-headers-update-v6-18-v1-6-93135d14a081@ideasonboard.com> References: <20251204-headers-update-v6-18-v1-0-93135d14a081@ideasonboard.com> In-Reply-To: <20251204-headers-update-v6-18-v1-0-93135d14a081@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=eyx91c+Nrjaa5JmhxC/wJUSbTjBmERyuGXbkjDxtD4k=; b=owEBbQKS/ZANAwAKAXI0Bo8WoVY8AcsmYgBpMa68ydjOLLifCn7WlvsFKfGglse1sH7emAG5F 9TUv3jrv96JAjMEAAEKAB0WIQS1xD1IgJogio9YOMByNAaPFqFWPAUCaTGuvAAKCRByNAaPFqFW PHIYEAChYdVQL78WXfz1GvB5Jz5RxOZLrQtEUbZEUL1C2C8+akHXLgCVqMfVD/0C2VbGIMKfhH4 nQVvKqzuPurOecGxz4GIGbUrJSdneix/fSKHrXdMP+TwHLRSHc5Nb5wNhRKFjY7vWvrKs5mgwLQ y0agaV8zzteMgobqpGOaJ+IaMsxsG5tVD2bGQ3ksShVX3ZxGcRHbkp2f1yoM20hT9S+mM2lcLql OmfjNbB0fq/Zkftnqzl/SbuGuYtWwVVEG/uvvkd6AXyH4B90R1s3pB2phlT1K5OnA1pEe5noU4T HXvEGqIs/YJu5age2Fnk0qppBOXVXEo1zlznTnyky4tMgBqZ0wRie3V+cT57z1zN/7gs8g4EpvQ tH8Dv6RnUzbL8xoWlUoHTy6h63H+B7eXhxoRU/KjHSgpixCbqdgz47xXISWekXZNhE+EqUJjX/L ceq1eUR/RbOozX7jbacxjTZGd+DWlIi5Y4OMxp8GE3XQjuo2d5Ykw8+dV09M9OaaLJRxTDRkxnQ IKAC3cjWnJxlKuz3fahQmemdpBOpqQHEXqhedyB0gYDEUKb+jaXbe7AdBLGee0c4aHHB1m7vPBU NyiGy7dxO3iGaYE6EDIqklRwBxiMWNy8jEuiYcVTPTAcFbIpxctsQK5uM5d9IW5Lbd7IngeXpbC +zRdygTrdXvxlsQ== 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 Reviewed-by: Barnabás Pőcze Reviewed-by: Kieran Bingham --- 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.