From patchwork Thu Dec 11 09:07:24 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Jacopo Mondi X-Patchwork-Id: 25481 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 041C0C326B for ; Thu, 11 Dec 2025 09:07:40 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id B69A7615D5; Thu, 11 Dec 2025 10:07:37 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="oD3tcrlN"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 63BD6610A6 for ; Thu, 11 Dec 2025 10:07:34 +0100 (CET) Received: from [192.168.1.104] (93-46-82-201.ip106.fastwebnet.it [93.46.82.201]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id CB273667; Thu, 11 Dec 2025 10:07:31 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1765444051; bh=QjXPOSEMfO9NjBWHk0Vf5etf+mZj3HEWJh19KRORno4=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=oD3tcrlNC6ad8h+hup/bfEMJximx2HUZW7qENBLhhokdIHcXrFF8emQbmbtfkO/Ss 4gyGszmCvPFb6ThCSoCL5K5e3RFHHR6SEXLUQipYfYns2DaDe4L4tHsPpoVCRukKQj zgrqnd2hwnbiRMuxp9VPVlfIhldXlF73Ks63imQE= From: Jacopo Mondi Date: Thu, 11 Dec 2025 10:07:24 +0100 Subject: [PATCH v3 1/6] include: linux: drm_fourcc.h: Update to v6.18 MIME-Version: 1.0 Message-Id: <20251211-headers-update-v6-18-v3-1-31a54230a104@ideasonboard.com> References: <20251211-headers-update-v6-18-v3-0-31a54230a104@ideasonboard.com> In-Reply-To: <20251211-headers-update-v6-18-v3-0-31a54230a104@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=12934; i=jacopo.mondi@ideasonboard.com; h=from:subject:message-id; bh=QjXPOSEMfO9NjBWHk0Vf5etf+mZj3HEWJh19KRORno4=; b=owEBbQKS/ZANAwAKAXI0Bo8WoVY8AcsmYgBpOonTvDSie+pDX5hql0D/0+ehZybWlUodJYTRk ZJ2X2+8g/WJAjMEAAEKAB0WIQS1xD1IgJogio9YOMByNAaPFqFWPAUCaTqJ0wAKCRByNAaPFqFW PAWkD/9W83zI25vKoQPSOEZAIUbBY+rVanO2qllaaF8/jEs1+SM0GEWGq3enfCKfonYw4u85Tgg sqBMZr1ciLd87a7BMoyu3KGVjzkXnukaSW3mPjoYEiFyjJCm1owzGXFnHGWKaCy/TCnGNI4RMTW JYjiEH/KmeoMqxwZYpmR7PUUxSR7TJs3zLzj2bRaXUagDmHASeqeXd0hB+Il1fngozJBxVbZa2p 6JymF/UI/c3gXh8nNL/Mq90+XcWTQQhUt3jJmjDAjkgAciGnZ5otL/dBIVLfokdoM2eETOJqmK0 R2rxReodRFAfDcj5gGbnKHdoOtP1eO0P8gzCt8KwsR+xQbujmUJVqcBfKpmL1oIGrcitmC4EmxG ZFytYsz8idr7vrXzYgt3oWWOXUaOVUl3t8mWZy6OeMhAsHCHfMqqam8bksejJhNLCMoDkQ3v3Pd Iez80Xv/FtSmYAG4B8ngZTo7ykFoGCr349zZH6IM/8RcV6QauBtL6eXjnJJKUs7YA1HBPlQ7PQ6 B4gVZDGNsAAVXRXEUO9qJ5G6peATjTZ1FX0C73QxM4EAPK3ujmqe23BQkoFKrP2p1PurAEjHI4m akXctc6lSRzlVT1WmQhS6oieRy6zuRsILulGR4ACF3uf9C2dbxTec4YnEUG6T3+w8puT+QGS4pK 1yeqDw8e+0PeI+A== 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, mainline has added: #define DRM_FORMAT_MOD_VENDOR_MTK 0x0b #define DRM_FORMAT_MOD_VENDOR_APPLE 0x0c Which conflict with the downstream definitions: #define DRM_FORMAT_MOD_VENDOR_MIPI 0x0b #define DRM_FORMAT_MOD_VENDOR_RPI 0x0c 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 | 189 ++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 179 insertions(+), 10 deletions(-) diff --git a/include/linux/drm_fourcc.h b/include/linux/drm_fourcc.h index db6798776663086c12d321d2ed708edc7ec77f71..8d7d89551bb329e28372fb15db65958ac2d64d20 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 * @@ -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 11 09:07:25 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Jacopo Mondi X-Patchwork-Id: 25482 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 937B8BD1F1 for ; Thu, 11 Dec 2025 09:07:43 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 3467C615FC; Thu, 11 Dec 2025 10:07:40 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="XKPEjiup"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 764C06152B for ; Thu, 11 Dec 2025 10:07:34 +0100 (CET) Received: from [192.168.1.104] (93-46-82-201.ip106.fastwebnet.it [93.46.82.201]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 1954F15D2; Thu, 11 Dec 2025 10:07:32 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1765444052; bh=41hPJ2tN7NKd4Urxp/erLHEQRC4tbdtvjafX+hiw6kE=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=XKPEjiupGDwHXQywy7cYfsXKbkzXQg+aOHqS+LYmTlN02nUdbAQnWWPMhyb2/1Yca 2vgfY7QwxTmuZobj6pEjJrqWvfN4qicPKrv5GVFzK8erxPIG0zM6bNYN69Ax0cK7+E /bE50ANdBsJcPbbJKd1qQkxBRgKk9+1/5mSSGvp0= From: Jacopo Mondi Date: Thu, 11 Dec 2025 10:07:25 +0100 Subject: [PATCH v3 2/6] include: linux: intel-ipu3.h: Update to v6.18 MIME-Version: 1.0 Message-Id: <20251211-headers-update-v6-18-v3-2-31a54230a104@ideasonboard.com> References: <20251211-headers-update-v6-18-v3-0-31a54230a104@ideasonboard.com> In-Reply-To: <20251211-headers-update-v6-18-v3-0-31a54230a104@ideasonboard.com> To: libcamera-devel@lists.libcamera.org Cc: Jacopo Mondi , =?utf-8?b?QmFybmFiw6Fz?= =?utf-8?q?_P=C5=91cze?= , Laurent Pinchart X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1003; i=jacopo.mondi@ideasonboard.com; h=from:subject:message-id; bh=41hPJ2tN7NKd4Urxp/erLHEQRC4tbdtvjafX+hiw6kE=; b=owEBbQKS/ZANAwAKAXI0Bo8WoVY8AcsmYgBpOonUhG2y2edLLWtY441Sa6eXF7ed7qXY20qSd wsyrmWwPdWJAjMEAAEKAB0WIQS1xD1IgJogio9YOMByNAaPFqFWPAUCaTqJ1AAKCRByNAaPFqFW PBGOD/9N/FKtZ1NQS6ocTJtnbSkd6Ah3pClnEztjmKwHC3Eu/3CdDWWWECXnYJHOgpv5LLFuVJ/ sYBupSvGIZxPee14WN/shJTo1Iw9ikGYtyQZB5vko9EdDj1SmADxoFqjMAQA7V0yDmMt1aOKfbo FquUY2E+Bx+Sa03kMwlNZVq4Mpc9h3NZwcuesKTTPnuChv2eFDG2Kno89Zx0drQvn/m+PcJCvv5 PB7Q8QijCxBDjxU0LHPzD6Y3aU2RUtJUHTcJI3vYv5/2Sh4RLOpynHrwyiW/uRacIyz7gZdWq7s hdhh92CDwAfvi0l3eH6ufDDUx+UukLEmLmFL/bplvMrP48hHBwocm7ZhG0h54taQrGr9KDq0N57 hZqpREJiQGdpELS4WbCnRX70hRg9JRKHcDzoI2adMNkWeet2bHvSoefjm0w+bhMoQdCP5KDiInt SG4EaxHiW02hlZHsEM7C1JGhZBs7ki9zQb7PC20rKpEe7U12uVCaVJUa+jL2yLBdgv9VfpYYb/B 1jrIjnySeLcbMjcjWmZqFS4SPb8qLkWt/whmetCfnfexej/i0iIi5n+Bh4/L5CNKPFfGJV9np2+ mG17U4mDkkvSS3cx6F6ogOcEb7EjFqF7NZIXQB+4cafsfsYP7vtE1rwMmzVFZp2aVqqV9QYB0I4 YgmM3M7M0PX5khw== 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 Reviewed-by: Laurent Pinchart --- 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 11 09:07:26 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Jacopo Mondi X-Patchwork-Id: 25483 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 3BFFFBD1F1 for ; Thu, 11 Dec 2025 09:07:45 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id E079F615A7; Thu, 11 Dec 2025 10:07:41 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="oZfhbvCQ"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id A5DD561592 for ; Thu, 11 Dec 2025 10:07:34 +0100 (CET) Received: from [192.168.1.104] (93-46-82-201.ip106.fastwebnet.it [93.46.82.201]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 5EC9E1661; Thu, 11 Dec 2025 10:07:32 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1765444052; bh=QkfWMgRn+4DwXZRMzSEfi5Unxt3Gye96qfF9siT/gpo=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=oZfhbvCQud0ukaxXMWYP9rwFY7lzIUlKW+levA0QpXCTjSjYbyt9AixEZhDdr8ROS cJhcrWfql/olHBDRuCS0sYcRB5dvglCQecwonQk4JLUuunjwrQDuCaxAxqyEt0rjoL y3zvQqfU4V0JVQipSu0+ralc8TCsYmhcwK6ZSyuI= From: Jacopo Mondi Date: Thu, 11 Dec 2025 10:07:26 +0100 Subject: [PATCH v3 3/6] include: linux: media-bus-format.h: Update to v6.18 MIME-Version: 1.0 Message-Id: <20251211-headers-update-v6-18-v3-3-31a54230a104@ideasonboard.com> References: <20251211-headers-update-v6-18-v3-0-31a54230a104@ideasonboard.com> In-Reply-To: <20251211-headers-update-v6-18-v3-0-31a54230a104@ideasonboard.com> To: libcamera-devel@lists.libcamera.org Cc: Jacopo Mondi , =?utf-8?b?QmFybmFiw6Fz?= =?utf-8?q?_P=C5=91cze?= , Laurent Pinchart X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2006; i=jacopo.mondi@ideasonboard.com; h=from:subject:message-id; bh=QkfWMgRn+4DwXZRMzSEfi5Unxt3Gye96qfF9siT/gpo=; b=owEBbQKS/ZANAwAKAXI0Bo8WoVY8AcsmYgBpOonUSQNBecehb5KsTHrC9OAtr0MdWfOS6YhTM E2rHRnNU8OJAjMEAAEKAB0WIQS1xD1IgJogio9YOMByNAaPFqFWPAUCaTqJ1AAKCRByNAaPFqFW PBW9D/sF2HjxLQDdxJbrCznaIf8/lUt4Vqhj2rzTnTd269goNW1W/Rc0dqIpJLSQxwjze5lW9HD Ttvie0xbC8Bc2FPXxGA/ogvNL9JkPdaugn7EJgMIIel9GrhSkLhQJzPLIsc45B1kCvZkB0q6nL2 MHbvr8ekUKc1/6dkDHBdrBOQ4PjrzWjJSFsycTabiKvJCppgCquz4LRNhh+LHny3P6v0JQXqzs4 2FdZxlx2PmwBehTdaNnSy8J29GhUS3LLiLlhPwrv6Wv5FcOs7Xdm9W4s2zlyxCU75/76lr/ggPd LkN7awlnlb8B0ds8Gn3Eqw1yCNKNkWK4WBrVzi+hoVnFyIcn+WoknHnm8gRHFTDBkDHxMpAVOFi WFruf0OtLfq6icY8V9/1auBNZO/c3eX/bAzFSlPeYZjlOkkQrfnLQUaq554VATV5kNDyVC3c+jU aAG9gpVILmmv4qiaYj7Qk+hkH2BhSJa/qsVA+f8wwVBdtv0PkIICS3Khn25/kg1a1EvrBdcl8h6 8cJ2iqG2xWCkl/GrRPXoOYWVT5rcYBXPpd4px1LVoTeW/ciypAQoxFKwDI6XKuF4p4mqEYJ7/ah LVSzSOh7MbvFksCSSyAbw7zyndgA3kFbmliIREz1cUc/58MASP7By11YRNeO/Zes5hNmRYjs+ai ogeHduJWIt7u/dw== 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 Reviewed-by: Laurent Pinchart Reviewed-by: Kieran Bingham --- 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 11 09:07:27 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Jacopo Mondi X-Patchwork-Id: 25484 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 441AEC326B for ; Thu, 11 Dec 2025 09:07:46 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id AED94615FF; Thu, 11 Dec 2025 10:07:42 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="dGJn2wy0"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id B347361593 for ; Thu, 11 Dec 2025 10:07:34 +0100 (CET) Received: from [192.168.1.104] (93-46-82-201.ip106.fastwebnet.it [93.46.82.201]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id A2708177A; Thu, 11 Dec 2025 10:07:32 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1765444052; bh=tApM1ut04XM0KXdLvtyn6S2vOuMoeSWAEW6bl5YowI0=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=dGJn2wy0TAN4RZPFfywDaLWaNsq01W/5+kX+WoE0g2iDZPaKjFB25O2k6GQoXsIyB kYmn1yS7OU9hjB1Chn3OMfq51fDHnrthPUQkwgSATycjl+h+pC/V/WN3zzQUu3k0zR /z0BGmx3VjNykh21EZ3uHwtE+R4Y4Tvrt/NM4LqE= From: Jacopo Mondi Date: Thu, 11 Dec 2025 10:07:27 +0100 Subject: [PATCH v3 4/6] include: linux: v4l2-controls.h: Update to v6.18 MIME-Version: 1.0 Message-Id: <20251211-headers-update-v6-18-v3-4-31a54230a104@ideasonboard.com> References: <20251211-headers-update-v6-18-v3-0-31a54230a104@ideasonboard.com> In-Reply-To: <20251211-headers-update-v6-18-v3-0-31a54230a104@ideasonboard.com> To: libcamera-devel@lists.libcamera.org Cc: Jacopo Mondi , =?utf-8?b?QmFybmFiw6Fz?= =?utf-8?q?_P=C5=91cze?= , Laurent Pinchart X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=8657; i=jacopo.mondi@ideasonboard.com; h=from:subject:message-id; bh=tApM1ut04XM0KXdLvtyn6S2vOuMoeSWAEW6bl5YowI0=; b=owEBbQKS/ZANAwAKAXI0Bo8WoVY8AcsmYgBpOonUX+2nqB5Rt1r2zatwAVBtO81erbJayyJXL EWRjBFBOSWJAjMEAAEKAB0WIQS1xD1IgJogio9YOMByNAaPFqFWPAUCaTqJ1AAKCRByNAaPFqFW PJaqD/9AdGQMf85C07aFL4oGvvHSG4LNXyBKxHq+mYH/2u1paWhluhzjamVzZSmLoNasq6GEsqf XoL7sz/1fmVREGOeqzG2hz1xPO4IXg7gCfhijOKw6S9Qve2n84MTFcXPMH0/AhjVwQIgszqs36e ZOsAiVwlwuSqkYusYGdaYiJAo/3dgHr/OOxdEgKNObX8bW0XfsDQAABd5XOw9MwyynCSyk1DYif +del3VEGgugGve5wbv3uG1NbyDZvzPUOrpargv5Pl79eb3rE0VLi1UdHbRubrQO8oaiiBYlR+Dn 6VVat1wJPpGpFgqghm+vCm4YS6GfR9bljypvvXJkUO8Mp/IPs+CEq2TpCP7VVEfOy6uvc+tvOL9 Y8OR/TfeEVkjlqB0HQKfRd4mgSdzcwsyTvoQDZTmhfbufxGYC6GCPrpU7ZLrWOCyKQVUcnE3CuN q+HsELiILc0gennIhTYv1/UizTIDcF2I0p1H5ZY/5F+Ty52YGWiDRTPYhaOYX1ZYDbMjRCEDEG0 o8dlZWbiRVKFbZbAs8xt58Dud0udkUtpvo1OZnqwQsnijSkv1Z5X8pVD9K6KvLdKYDW7q4tWDsI 06uiREdniLkvCRt8VtJKdloi6iw2uvaUau0U+BHbE83kFf8ikccEXNYUvHYHVOWlavpEEkYsnF0 EpmJ/sljTlKTq1Q== 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 Reviewed-by: Laurent Pinchart --- 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 11 09:07:28 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Jacopo Mondi X-Patchwork-Id: 25485 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 79CB5BD1F1 for ; Thu, 11 Dec 2025 09:07:47 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 7CEB961593; Thu, 11 Dec 2025 10:07:44 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="qegLU6vF"; 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 E157361594 for ; Thu, 11 Dec 2025 10:07:34 +0100 (CET) Received: from [192.168.1.104] (93-46-82-201.ip106.fastwebnet.it [93.46.82.201]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id E58251988; Thu, 11 Dec 2025 10:07:32 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1765444053; bh=xCFVexlUshP6rZd/nEqGdc8084AjLapzSj4gaA/wyoc=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=qegLU6vF7GAdKWTn4bdzqyagckKXz6HAIhYnEZLGm5fTHlwRCvSiQ+1JTNoHyYPxI 5+gAKk8z2gpHAhWhNGq8BeIEXIowgkl8RlfJKBclr6uESuYseRhpnuzwFNi/HBFKHj kxcboERMx0TWe1lfoOlj9Ey8ncoIxB8Ak2dEzzC4= From: Jacopo Mondi Date: Thu, 11 Dec 2025 10:07:28 +0100 Subject: [PATCH v3 5/6] include: linux: videodev2.h: Update to v6.18 MIME-Version: 1.0 Message-Id: <20251211-headers-update-v6-18-v3-5-31a54230a104@ideasonboard.com> References: <20251211-headers-update-v6-18-v3-0-31a54230a104@ideasonboard.com> In-Reply-To: <20251211-headers-update-v6-18-v3-0-31a54230a104@ideasonboard.com> To: libcamera-devel@lists.libcamera.org Cc: Jacopo Mondi , Laurent Pinchart , =?utf-8?b?QmFybmFiw6FzIFDFkWN6?= =?utf-8?q?e?= X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=11656; i=jacopo.mondi@ideasonboard.com; h=from:subject:message-id; bh=xCFVexlUshP6rZd/nEqGdc8084AjLapzSj4gaA/wyoc=; b=owEBbQKS/ZANAwAKAXI0Bo8WoVY8AcsmYgBpOonU3uSk8rcEPsAwgTd9vZUSmQMvL1gv8XlOb 8k8PtuuPU2JAjMEAAEKAB0WIQS1xD1IgJogio9YOMByNAaPFqFWPAUCaTqJ1AAKCRByNAaPFqFW PCNBEAC4pcJGPYkGhAl4DiqdE0xAnYKcHRFofqgGuulZ23tbCENiEzzxXtwIYZHhMSi8JjuXhnw rWJ4qb668ebHZM54Ar4bRDoE3kS5YNfFWSqdkdhiIZwOQ6pN5TqeD3YiLijT0uiL1/OpQUm6MU+ feCduBAP3kObUZLITAnPDnu8BXvMkXuVD00i2xITd9C/GwojtSUfG8Trqp5NcRxfn41e7TMJqha pnYYq9wq/O+UMeMygf2xC5L9Oe6y4/yUJyZ4qPPaTasLSYaQZaGlqiHBw471ccrYq0vPBgfADn3 n2kzu89SntYl6cFAGrQZDXiOPkWPYypS0QpfOV1AWxVajaoIq486bdwivnWXdQ+qS2mePTVgJOR rR/lh1mJB90ByJQS5OxEI3rbPJ18xLULkKe1p8d0oJHI0uPY3gFLesQb5m5/pVghT9+7SGw5E0t s+nfAm40wWhbXy9EH0W5NgGm5QHJf/nWfR3IPNFOPDdkKKYy9lFhB7za2Q6p4eaHj5mxOtU40rY OlnKNj3zwDZOPeRmGsB0JobBsJGHREDSA+w8ORCaE1WEw+Y8ebTWtVMPJNkYHe1qb6q+kvX0Ct8 r5wx1K9IMEfWJC8+9uDY3mM1zBrWRB+/zZ/NJ8Khz4jh7jYtYjP47Cs66QIjf1Ujp3wOoHi/4Z8 4cpDc06NXw8sDTg== 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, new definitions for the Amlogic C3 ISP formats and Renesas CRU formats have been added upstream. Signed-off-by: Jacopo Mondi Reviewed-by: Laurent Pinchart 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 Thu Dec 11 09:07:29 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jacopo Mondi X-Patchwork-Id: 25486 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 6E12BC326B for ; Thu, 11 Dec 2025 09:07:48 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 8D34861606; Thu, 11 Dec 2025 10:07:46 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="F44ZMkMO"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 193566152A for ; Thu, 11 Dec 2025 10:07:35 +0100 (CET) Received: from [192.168.1.104] (93-46-82-201.ip106.fastwebnet.it [93.46.82.201]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 337A11D2B; Thu, 11 Dec 2025 10:07:33 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1765444053; bh=+shwq3DvjLVuWmHkQ7o75IFsdT7ROZXtggeZT+sSzHU=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=F44ZMkMOa20bboDW+QuIatXttVXO0M9q2Wc2ISUEMgOjkk8YJXkTfVNuvLqDgCG43 9sKQ4tgxQNLJDiABjBKuXY6w1YMClROAT8/OdWKw6YsHfH5V4ELk7me9HMwzy5vOkS c/OBq6PW59LYOoDAL2lt98PWTAUniCYnHfeZko8Q= From: Jacopo Mondi Date: Thu, 11 Dec 2025 10:07:29 +0100 Subject: [PATCH v3 6/6] include: linux: README: Update to Linux v6.18 MIME-Version: 1.0 Message-Id: <20251211-headers-update-v6-18-v3-6-31a54230a104@ideasonboard.com> References: <20251211-headers-update-v6-18-v3-0-31a54230a104@ideasonboard.com> In-Reply-To: <20251211-headers-update-v6-18-v3-0-31a54230a104@ideasonboard.com> To: libcamera-devel@lists.libcamera.org Cc: Jacopo Mondi , Laurent Pinchart X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=815; i=jacopo.mondi@ideasonboard.com; h=from:subject:message-id; bh=+shwq3DvjLVuWmHkQ7o75IFsdT7ROZXtggeZT+sSzHU=; b=owEBbQKS/ZANAwAKAXI0Bo8WoVY8AcsmYgBpOonUUXSYcWxW7WXuqsbqyY+rv42DyahwwTAtQ dBs8q9escqJAjMEAAEKAB0WIQS1xD1IgJogio9YOMByNAaPFqFWPAUCaTqJ1AAKCRByNAaPFqFW PNHxEACNRFgbWpjdGjNFK7cN4hu706pH6eXYc9A84wQqcAmLvgaQd37TzQMv7z/1qPBLRnr/77W ta8Clk9Lmsx660a+b3X3cssIN91aWOqWiEq7j6gBYMY/AiAXq3ZA1immzBwNdj1rTlci/8CZ6GV p8weiA/mVcQL5GGvWuDYdXf6U42OSAeDKQ3a/PGtGBaskZ/xSxN0KyOFksc0PE1SKcbfDCNOro2 2cclFvhXYc8hTwitSREguB7QZehCD6oxr0reLl2c0h9+2MrXB7DfpRoFeffZ5SEMNVtFshF5CkK XlLgo3x873hyUvWMuh7+lE8G0PaGuK5wDW0Y41JK0IIdV+oLUqG8VF5YzgseOe3arbiFc4NBtLM kXlG3wXbXCwaxMD71bEnAc/jQ4ksrSPIVcBtPhDdEF7GLlANBm6GdXTAIM6WQdyfPn/QDajVt1z 5h5/bMf31nS0cKlGWogecoe1Wr/SfNlkv2ZyPkTEpueSCdbayFirDDoZcABv7JLSKNLM57HsMcq gDaFIBL8edYoHpxnM1MJxkiPYqA1jGzmiCa/UU06Tf6xDW+Te7AFk9mYhGH/EEFGfjqOqedpzaF jcJ11wObBjNg/XuwY2D1BuHACCK7JpjgOZL/PSMOdaz2n9bvzlp0vRf5U+1j5TdqOGaYkZUbuTu FL55ft+T0lBPazA== 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: Laurent Pinchart --- 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.