Patch Detail
Show a patch.
GET /api/patches/27443/?format=api
{ "id": 27443, "url": "https://patchwork.libcamera.org/api/patches/27443/?format=api", "web_url": "https://patchwork.libcamera.org/patch/27443/", "project": { "id": 1, "url": "https://patchwork.libcamera.org/api/projects/1/?format=api", "name": "libcamera", "link_name": "libcamera", "list_id": "libcamera_core", "list_email": "libcamera-devel@lists.libcamera.org", "web_url": "", "scm_url": "", "webscm_url": "" }, "msgid": "<20260722-pi4-upstream-v2-8-eb44d3c6fd92@ideasonboard.com>", "date": "2026-07-22T11:23:24", "name": "[v2,8/8] include: uapi: bcm2835-isp: Drop legacy V4L2 controls", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "c0e7fdfb201e66b3d5b8beecb5b48cf87314e070", "submitter": { "id": 223, "url": "https://patchwork.libcamera.org/api/people/223/?format=api", "name": "Jai Luthra", "email": "jai.luthra@ideasonboard.com" }, "delegate": null, "mbox": "https://patchwork.libcamera.org/patch/27443/mbox/", "series": [ { "id": 6072, "url": "https://patchwork.libcamera.org/api/series/6072/?format=api", "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=6072", "date": "2026-07-22T11:23:16", "name": "Raspberry Pi: Update VC4 pipeline for mainline", "version": 2, "mbox": "https://patchwork.libcamera.org/series/6072/mbox/" } ], "comments": "https://patchwork.libcamera.org/api/patches/27443/comments/", "check": "pending", "checks": "https://patchwork.libcamera.org/api/patches/27443/checks/", "tags": {}, "headers": { "Return-Path": "<libcamera-devel-bounces@lists.libcamera.org>", "X-Original-To": "parsemail@patchwork.libcamera.org", "Delivered-To": "parsemail@patchwork.libcamera.org", "Received": [ "from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 0C4F3BDE17\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 22 Jul 2026 11:25:30 +0000 (UTC)", "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id AB76167E9B;\n\tWed, 22 Jul 2026 13:25:29 +0200 (CEST)", "from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 20344660AE\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 22 Jul 2026 13:25:28 +0200 (CEST)", "from mail.ideasonboard.com (unknown\n\t[IPv6:2401:4900:1c68:25d4:fa24:78d1:31:7a56])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id AEE53227;\n\tWed, 22 Jul 2026 13:24:27 +0200 (CEST)" ], "Authentication-Results": "lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"acNeNgF6\"; dkim-atps=neutral", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1784719468;\n\tbh=TOULqoRW+YD3yRnY6lxYfZvEO2iG56NsbGi9c2xw2ro=;\n\th=From:Date:Subject:References:In-Reply-To:To:Cc:From;\n\tb=acNeNgF6vQE8COcI8vTIoJLWGTwmsCbHBhRSfOgE6riaI8846SUUFQ/vr/mk4OqHJ\n\tmtb8fQO0lNNWof/eRNudOXVxsGyYn8krIrci6F1RrVTfWcBkbjHH+hMNmv5OHV5ai8\n\tKbCK79Ltmu7s1JeR4PIhL+oNFFabESISTs3LIJ3s=", "From": "Jai Luthra <jai.luthra@ideasonboard.com>", "Date": "Wed, 22 Jul 2026 16:53:24 +0530", "Subject": "[PATCH v2 8/8] include: uapi: bcm2835-isp: Drop legacy V4L2 controls", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=\"utf-8\"", "Content-Transfer-Encoding": "7bit", "Message-Id": "<20260722-pi4-upstream-v2-8-eb44d3c6fd92@ideasonboard.com>", "References": "<20260722-pi4-upstream-v2-0-eb44d3c6fd92@ideasonboard.com>", "In-Reply-To": "<20260722-pi4-upstream-v2-0-eb44d3c6fd92@ideasonboard.com>", "To": "libcamera-devel@lists.libcamera.org", "Cc": "Naushir Patuck <naush@raspberrypi.com>, \n\tDavid Plowman <david.plowman@raspberrypi.com>, \n\tLaurent Pinchart <laurent.pinchart@ideasonboard.com>, \n\tKieran Bingham <kieran.bingham@ideasonboard.com>, \n\tJacopo Mondi <jacopo.mondi@ideasonboard.com>, \n\tDaniel Scally <dan.scally@ideasonboard.com>, \n\tJai Luthra <jai.luthra@ideasonboard.com>", "X-Mailer": "b4 0.14.3", "X-Developer-Signature": "v=1; a=openpgp-sha256; l=8103;\n\ti=jai.luthra@ideasonboard.com; h=from:subject:message-id;\n\tbh=TOULqoRW+YD3yRnY6lxYfZvEO2iG56NsbGi9c2xw2ro=;\n\tb=owEBbQKS/ZANAwAKAUPekfkkmnFFAcsmYgBqYKhurBsUj1C7GOqHeT4pXtt4b1JGxyV2im9s6\n\tcxSAjIUgN+JAjMEAAEKAB0WIQRN4NgY5dV16NRar8VD3pH5JJpxRQUCamCobgAKCRBD3pH5JJpx\n\tRXSrD/9NDpHFATeiZwotIN/y8A0/BeppW4or8RYuTmjPKyk9cZCAkzSAI0/5971awsze+8/YGyn\n\tbIwjmEAkqEzJLL7hd6boM+kijRff6V0OvZD+5Ne4OnMDIj2w3y5wJXYrEJlVULorJGQHEWMipxM\n\tQCtX8qkf7F7QJzb52fxFqptd1XE5/ZBr203OfmcVk+7nCvdsCVZj9eQZq4yLgEf19zokwAD5HBC\n\teQqwDS9Q4+xI6sjkPxEDhagBXTttSoA7kiFwxJm3i5Xx3eRDjWZfubvY2viBix2pe2kFoe6+arB\n\tGuIywCj+WVeEU2fHZiYQa79efO2tXhMzfUvXZxcZIhLF2RJl5+UBB01GtQ4yAqIq00hW3RHa9l2\n\tECyTkS0PqKgYjaZX77MAXS0UNfFIh81kD1ptcHYovho9dwp1sOLi0N1BfO88Ag5gcR6cTtAiMz0\n\txemDL/vImAL+8DvSHO9duUWSUdLfwHudwfUrenDjzrExhrhwMVZyn9lFPQ0+eJlHfNS1Z/ydUZp\n\t+N0sYeGN4abM4/YLzDnjRkyrZwukVdLDyMgg4mKuJP0TDfj8IO+3AV0CrZ2hMVrduOjeZH4LVIl\n\tjrwzydJ19pESB2Xh0U6DGvndFF7rv4KZFSOzAe+cgY4N6sa9nuX6ltw8T9w0FfwnNcxBHS8OGmh\n\tgIpX0JijAgicMXg==", "X-Developer-Key": "i=jai.luthra@ideasonboard.com; a=openpgp;\n\tfpr=4DE0D818E5D575E8D45AAFC543DE91F9249A7145", "X-BeenThere": "libcamera-devel@lists.libcamera.org", "X-Mailman-Version": "2.1.29", "Precedence": "list", "List-Id": "<libcamera-devel.lists.libcamera.org>", "List-Unsubscribe": "<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>", "List-Archive": "<https://lists.libcamera.org/pipermail/libcamera-devel/>", "List-Post": "<mailto:libcamera-devel@lists.libcamera.org>", "List-Help": "<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>", "List-Subscribe": "<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>", "Errors-To": "libcamera-devel-bounces@lists.libcamera.org", "Sender": "\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>" }, "content": "Now that the VC4 IPA and pipeline handler pass ISP configuration\nexclusively through parameter buffers, the V4L2_CID_USER_BCM2835_ISP_*\ncustom controls are unused.\n\nDrop them, clean up the struct documentation that still referenced the\ncontrols, and fix the bcm2835_isp_params statistics fourcc comment to\nmatch the mainline kernel header.\n\nSigned-off-by: Jai Luthra <jai.luthra@ideasonboard.com>\n---\n include/linux/bcm2835-isp.h | 61 ++++++++++++-------------------------------\n include/linux/v4l2-controls.h | 3 ---\n include/linux/videodev2.h | 2 +-\n 3 files changed, 17 insertions(+), 49 deletions(-)", "diff": "diff --git a/include/linux/bcm2835-isp.h b/include/linux/bcm2835-isp.h\nindex c49854cfa..0f3c1b4db 100644\n--- a/include/linux/bcm2835-isp.h\n+++ b/include/linux/bcm2835-isp.h\n@@ -13,27 +13,8 @@\n #ifndef __BCM2835_ISP_H_\n #define __BCM2835_ISP_H_\n \n-#include <linux/v4l2-controls.h>\n #include <linux/media/v4l2-isp.h>\n \n-#define V4L2_CID_USER_BCM2835_ISP_CC_MATRIX\t\\\n-\t\t\t\t(V4L2_CID_USER_BCM2835_ISP_BASE + 0x0001)\n-#define V4L2_CID_USER_BCM2835_ISP_LENS_SHADING\t\\\n-\t\t\t\t(V4L2_CID_USER_BCM2835_ISP_BASE + 0x0002)\n-#define V4L2_CID_USER_BCM2835_ISP_BLACK_LEVEL\t\\\n-\t\t\t\t(V4L2_CID_USER_BCM2835_ISP_BASE + 0x0003)\n-#define V4L2_CID_USER_BCM2835_ISP_GEQ\t\t\\\n-\t\t\t\t(V4L2_CID_USER_BCM2835_ISP_BASE + 0x0004)\n-#define V4L2_CID_USER_BCM2835_ISP_GAMMA\t\t\\\n-\t\t\t\t(V4L2_CID_USER_BCM2835_ISP_BASE + 0x0005)\n-#define V4L2_CID_USER_BCM2835_ISP_DENOISE\t\\\n-\t\t\t\t(V4L2_CID_USER_BCM2835_ISP_BASE + 0x0006)\n-#define V4L2_CID_USER_BCM2835_ISP_SHARPEN\t\\\n-\t\t\t\t(V4L2_CID_USER_BCM2835_ISP_BASE + 0x0007)\n-#define V4L2_CID_USER_BCM2835_ISP_DPC\t\t\\\n-\t\t\t\t(V4L2_CID_USER_BCM2835_ISP_BASE + 0x0008)\n-#define V4L2_CID_USER_BCM2835_ISP_CDN \\\n-\t\t\t\t(V4L2_CID_USER_BCM2835_ISP_BASE + 0x0009)\n /*\n * All structs below are directly mapped onto the equivalent structs in\n * drivers/staging/vc04_services/vchiq-mmal/mmal-parameters.h\n@@ -63,8 +44,7 @@ struct bcm2835_isp_ccm {\n };\n \n /**\n- * struct bcm2835_isp_custom_ccm - Custom CCM applied with the\n- *\t\t\t\t V4L2_CID_USER_BCM2835_ISP_CC_MATRIX ctrl.\n+ * struct bcm2835_isp_custom_ccm - Custom CCM configuration.\n *\n * @enabled:\tEnable custom CCM.\n * @ccm:\tCustom CCM coefficients and offsets.\n@@ -76,8 +56,7 @@ struct bcm2835_isp_custom_ccm {\n \n /**\n * enum bcm2835_isp_gain_format - format of the gains in the lens shading\n- *\t\t\t\t tables used with the\n- *\t\t\t\t V4L2_CID_USER_BCM2835_ISP_LENS_SHADING ctrl.\n+ *\t\t\t\t tables.\n *\n * @GAIN_FORMAT_U0P8_1:\t\tGains are u0.8 format, starting at 1.0\n * @GAIN_FORMAT_U1P7_0:\t\tGains are u1.7 format, starting at 0.0\n@@ -100,9 +79,7 @@ enum bcm2835_isp_gain_format {\n };\n \n /**\n- * struct bcm2835_isp_lens_shading - Lens shading tables supplied with the\n- *\t\t\t\t V4L2_CID_USER_BCM2835_ISP_LENS_SHADING\n- *\t\t\t\t ctrl.\n+ * struct bcm2835_isp_lens_shading - Lens shading tables.\n *\n * @enabled:\t\tEnable lens shading.\n * @grid_cell_size:\tSize of grid cells in samples (16, 32, 64, 128 or 256).\n@@ -129,13 +106,13 @@ struct bcm2835_isp_lens_shading {\n };\n \n /**\n- * struct bcm2835_isp_black_level - Sensor black level set with the\n- *\t\t\t\t V4L2_CID_USER_BCM2835_ISP_BLACK_LEVEL ctrl.\n+ * struct bcm2835_isp_black_level - Sensor black level configuration.\n *\n * @enabled:\t\tEnable black level.\n * @black_level_r:\tBlack level for red channel.\n * @black_level_g:\tBlack level for green channels.\n * @black_level_b:\tBlack level for blue channel.\n+ * @padding:\t\tUnused padding.\n */\n struct bcm2835_isp_black_level {\n \t__u32 enabled;\n@@ -146,8 +123,7 @@ struct bcm2835_isp_black_level {\n };\n \n /**\n- * struct bcm2835_isp_geq - Green equalisation parameters set with the\n- *\t\t\t V4L2_CID_USER_BCM2835_ISP_GEQ ctrl.\n+ * struct bcm2835_isp_geq - Green equalisation parameters.\n *\n * @enabled:\tEnable green equalisation.\n * @offset:\tFixed offset of the green equalisation threshold.\n@@ -162,13 +138,12 @@ struct bcm2835_isp_geq {\n #define BCM2835_NUM_GAMMA_PTS 33\n \n /**\n- * struct bcm2835_isp_gamma - Gamma parameters set with the\n- *\t\t\t V4L2_CID_USER_BCM2835_ISP_GAMMA ctrl.\n+ * struct bcm2835_isp_gamma - Gamma parameters.\n *\n * @enabled:\tEnable gamma adjustment.\n- * @X:\t\tX values of the points defining the gamma curve.\n+ * @x:\t\tX values of the points defining the gamma curve.\n *\t\tValues should be scaled to 16 bits.\n- * @Y:\t\tY values of the points defining the gamma curve.\n+ * @y:\t\tY values of the points defining the gamma curve.\n *\t\tValues should be scaled to 16 bits.\n */\n struct bcm2835_isp_gamma {\n@@ -180,9 +155,9 @@ struct bcm2835_isp_gamma {\n /**\n * enum bcm2835_isp_cdn_mode - Mode of operation for colour denoise.\n *\n- * @CDN_MODE_FAST:\t\tFast (but lower quality) colour denoise\n+ * @CDN_MODE_FAST:\t\tFast (but lower quality) colour denoise\n *\t\t\t\talgorithm, typically used for video recording.\n- * @CDN_HIGH_QUALITY:\t\tHigh quality (but slower) colour denoise\n+ * @CDN_MODE_HIGH_QUALITY:\tHigh quality (but slower) colour denoise\n *\t\t\t\talgorithm, typically used for stills capture.\n */\n enum bcm2835_isp_cdn_mode {\n@@ -191,11 +166,10 @@ enum bcm2835_isp_cdn_mode {\n };\n \n /**\n- * struct bcm2835_isp_cdn - Colour denoise parameters set with the\n- *\t\t\t V4L2_CID_USER_BCM2835_ISP_CDN ctrl.\n+ * struct bcm2835_isp_cdn - Colour denoise parameters.\n *\n * @enabled:\tEnable colour denoise.\n- * @cdn_mode:\tColour denoise operating mode (see enum &bcm2835_isp_cdn_mode)\n+ * @mode:\tColour denoise operating mode (see enum &bcm2835_isp_cdn_mode)\n */\n struct bcm2835_isp_cdn {\n \t__u32 enabled;\n@@ -203,8 +177,7 @@ struct bcm2835_isp_cdn {\n };\n \n /**\n- * struct bcm2835_isp_denoise - Denoise parameters set with the\n- *\t\t\t\tV4L2_CID_USER_BCM2835_ISP_DENOISE ctrl.\n+ * struct bcm2835_isp_denoise - Denoise parameters.\n *\n * @enabled:\tEnable denoise.\n * @constant:\tFixed offset of the noise threshold.\n@@ -219,8 +192,7 @@ struct bcm2835_isp_denoise {\n };\n \n /**\n- * struct bcm2835_isp_sharpen - Sharpen parameters set with the\n- *\t\t\t\tV4L2_CID_USER_BCM2835_ISP_SHARPEN ctrl.\n+ * struct bcm2835_isp_sharpen - Sharpen parameters.\n *\n * @enabled:\tEnable sharpening.\n * @threshold:\tThreshold at which to start sharpening pixels.\n@@ -248,8 +220,7 @@ enum bcm2835_isp_dpc_mode {\n };\n \n /**\n- * struct bcm2835_isp_dpc - Defective pixel correction (DPC) parameters set\n- *\t\t\t with the V4L2_CID_USER_BCM2835_ISP_DPC ctrl.\n+ * struct bcm2835_isp_dpc - Defective pixel correction (DPC) parameters.\n *\n * @enabled:\tEnable DPC.\n * @strength:\tDPC strength (see enum &bcm2835_isp_dpc_mode).\ndiff --git a/include/linux/v4l2-controls.h b/include/linux/v4l2-controls.h\nindex c0d9cab3c..aff5280b6 100644\n--- a/include/linux/v4l2-controls.h\n+++ b/include/linux/v4l2-controls.h\n@@ -178,9 +178,6 @@ enum v4l2_colorfx {\n */\n #define V4L2_CID_USER_CCS_BASE\t\t\t(V4L2_CID_USER_BASE + 0x10f0)\n \n-/* The base for the bcm2835-isp driver controls.\n- * We reserve 16 controls for this driver. */\n-#define V4L2_CID_USER_BCM2835_ISP_BASE\t\t(V4L2_CID_USER_BASE + 0x10e0)\n /*\n * The base for Allegro driver controls.\n * We reserve 16 controls for this driver.\ndiff --git a/include/linux/videodev2.h b/include/linux/videodev2.h\nindex 60133dcf9..e14c78ed5 100644\n--- a/include/linux/videodev2.h\n+++ b/include/linux/videodev2.h\n@@ -844,7 +844,7 @@ struct v4l2_pix_format {\n #define V4L2_META_FMT_UVC_MSXU_1_5 v4l2_fourcc('U', 'V', 'C', 'M') /* UVC MSXU metadata */\n #define V4L2_META_FMT_VIVID\t v4l2_fourcc('V', 'I', 'V', 'D') /* Vivid Metadata */\n #define V4L2_META_FMT_SENSOR_DATA v4l2_fourcc('S', 'E', 'N', 'S') /* Sensor Ancillary metadata */\n-#define V4L2_META_FMT_BCM2835_ISP_STATS v4l2_fourcc('B', 'S', 'T', 'A') /* BCM2835 ISP image statistics output */\n+#define V4L2_META_FMT_BCM2835_ISP_STATS v4l2_fourcc('B', 'S', 'T', 'A') /* BCM2835 ISP stats */\n #define V4L2_META_FMT_BCM2835_ISP_PARAMS v4l2_fourcc('B', 'C', 'M', 'P') /* BCM2835 ISP params */\n \n /* Vendor specific - used for RK_ISP1 camera sub-system */\n", "prefixes": [ "v2", "8/8" ] }