From: Daniel Scally <dan.scally@ideasonboard.com>
To: linux-media@vger.kernel.org, devicetree@vger.kernel.org,
linux-arm-kernel@lists.infradead.org
Cc: Anthony.McGivern@arm.com, jacopo.mondi@ideasonboard.com,
nayden.kanchev@arm.com, robh+dt@kernel.org, mchehab@kernel.org,
krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org,
jerome.forissier@linaro.org, kieran.bingham@ideasonboard.com,
laurent.pinchart@ideasonboard.com, dan.scally@ideasonboard.com,
Sakari Ailus <sakari.ailus@linux.intel.com>,
Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
Subject: [PATCH v13 04/15] media: uapi: Add controls for Mali-C55 ISP
Date: Tue, 11 Nov 2025 16:15:48 +0000 [thread overview]
Message-ID: <20251111-c55-v13-4-3dc581355e3a@ideasonboard.com> (raw)
In-Reply-To: <20251111-c55-v13-0-3dc581355e3a@ideasonboard.com>
Add definitions and documentation for the custom control that will
be needed by the Mali-C55 ISP driver. This will be a read only
bitmask of the driver's capabilities, informing userspace of which
blocks are fitted and which are absent.
Tested-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
Reviewed-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
Reviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>
Signed-off-by: Daniel Scally <dan.scally@ideasonboard.com>
---
Changes in v13:
- Removed _GPS from the control value names
Changes in v12:
- Removed _FITTED suffix from control value names
- Specified bitmask for control name
- Used (1 << n) instead of BIT(n) in uapi header
- Updated comment to reserve 16 controls for driver
Changes in v11:
- None
Changes in v10:
- None
Changes in v9:
- New patch
---
.../userspace-api/media/drivers/index.rst | 1 +
.../userspace-api/media/drivers/mali-c55.rst | 55 ++++++++++++++++++++++
include/uapi/linux/media/arm/mali-c55-config.h | 26 ++++++++++
include/uapi/linux/v4l2-controls.h | 6 +++
4 files changed, 88 insertions(+)
diff --git a/Documentation/userspace-api/media/drivers/index.rst b/Documentation/userspace-api/media/drivers/index.rst
index d706cb47b1122b6e145a02ab826eb3ecc7997c2b..02967c9b18d6e90f414ccc1329c09bffee895e68 100644
--- a/Documentation/userspace-api/media/drivers/index.rst
+++ b/Documentation/userspace-api/media/drivers/index.rst
@@ -32,6 +32,7 @@ For more details see the file COPYING in the source distribution of Linux.
cx2341x-uapi
dw100
imx-uapi
+ mali-c55
max2175
npcm-video
omap3isp-uapi
diff --git a/Documentation/userspace-api/media/drivers/mali-c55.rst b/Documentation/userspace-api/media/drivers/mali-c55.rst
new file mode 100644
index 0000000000000000000000000000000000000000..21148b1878566da8a50a3c8e53507bec530652ef
--- /dev/null
+++ b/Documentation/userspace-api/media/drivers/mali-c55.rst
@@ -0,0 +1,55 @@
+.. SPDX-License-Identifier: GPL-2.0-only
+
+Arm Mali-C55 ISP driver
+=======================
+
+The Arm Mali-C55 ISP driver implements a single driver-specific control:
+
+``V4L2_CID_MALI_C55_CAPABILITIES (bitmask)``
+ Detail the capabilities of the ISP by giving detail about the fitted blocks.
+
+ .. flat-table:: Bitmask meaning definitions
+ :header-rows: 1
+ :widths: 2 4 8
+
+ * - Bit
+ - Macro
+ - Meaning
+ * - 0
+ - MALI_C55_PONG
+ - Pong configuration space is fitted in the ISP
+ * - 1
+ - MALI_C55_WDR
+ - WDR Framestitch, offset and gain is fitted in the ISP
+ * - 2
+ - MALI_C55_COMPRESSION
+ - Temper compression is fitted in the ISP
+ * - 3
+ - MALI_C55_TEMPER
+ - Temper is fitted in the ISP
+ * - 4
+ - MALI_C55_SINTER_LITE
+ - Sinter Lite is fitted in the ISP instead of the full Sinter version
+ * - 5
+ - MALI_C55_SINTER
+ - Sinter is fitted in the ISP
+ * - 6
+ - MALI_C55_IRIDIX_LTM
+ - Iridix local tone mappine is fitted in the ISP
+ * - 7
+ - MALI_C55_IRIDIX_GTM
+ - Iridix global tone mapping is fitted in the ISP
+ * - 8
+ - MALI_C55_CNR
+ - Colour noise reduction is fitted in the ISP
+ * - 9
+ - MALI_C55_FRSCALER
+ - The full resolution pipe scaler is fitted in the ISP
+ * - 10
+ - MALI_C55_DS_PIPE
+ - The downscale pipe is fitted in the ISP
+
+ The Mali-C55 ISP can be configured in a number of ways to include or exclude
+ blocks which may not be necessary. This control provides a way for the
+ driver to communicate to userspace which of the blocks are fitted in the
+ design.
\ No newline at end of file
diff --git a/include/uapi/linux/media/arm/mali-c55-config.h b/include/uapi/linux/media/arm/mali-c55-config.h
new file mode 100644
index 0000000000000000000000000000000000000000..7fddece54ada9dadc3c76372d496d9395237a41c
--- /dev/null
+++ b/include/uapi/linux/media/arm/mali-c55-config.h
@@ -0,0 +1,26 @@
+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
+/*
+ * ARM Mali-C55 ISP Driver - Userspace API
+ *
+ * Copyright (C) 2023 Ideas on Board Oy
+ */
+
+#ifndef __UAPI_MALI_C55_CONFIG_H
+#define __UAPI_MALI_C55_CONFIG_H
+
+#include <linux/v4l2-controls.h>
+
+#define V4L2_CID_MALI_C55_CAPABILITIES (V4L2_CID_USER_MALI_C55_BASE + 0x0)
+#define MALI_C55_GPS_PONG (1U << 0)
+#define MALI_C55_GPS_WDR (1U << 1)
+#define MALI_C55_GPS_COMPRESSION (1U << 2)
+#define MALI_C55_GPS_TEMPER (1U << 3)
+#define MALI_C55_GPS_SINTER_LITE (1U << 4)
+#define MALI_C55_GPS_SINTER (1U << 5)
+#define MALI_C55_GPS_IRIDIX_LTM (1U << 6)
+#define MALI_C55_GPS_IRIDIX_GTM (1U << 7)
+#define MALI_C55_GPS_CNR (1U << 8)
+#define MALI_C55_GPS_FRSCALER (1U << 9)
+#define MALI_C55_GPS_DS_PIPE (1U << 10)
+
+#endif /* __UAPI_MALI_C55_CONFIG_H */
diff --git a/include/uapi/linux/v4l2-controls.h b/include/uapi/linux/v4l2-controls.h
index 2d30107e047ee3cf6b149e5b075cc9d4137b7d3f..f84ed133a6c9b2ddc1aedbd582ddf78cb71f34e5 100644
--- a/include/uapi/linux/v4l2-controls.h
+++ b/include/uapi/linux/v4l2-controls.h
@@ -228,6 +228,12 @@ enum v4l2_colorfx {
*/
#define V4L2_CID_USER_RKISP1_BASE (V4L2_CID_USER_BASE + 0x1220)
+/*
+ * The base for the Arm Mali-C55 ISP driver controls.
+ * We reserve 16 controls for this driver
+ */
+#define V4L2_CID_USER_MALI_C55_BASE (V4L2_CID_USER_BASE + 0x1230)
+
/* MPEG-class control IDs */
/* The MPEG controls are applicable to all codec controls
* and the 'MPEG' part of the define is historical */
--
2.43.0
next prev parent reply other threads:[~2025-11-11 16:16 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-11-11 16:15 [PATCH v13 00/15] Add Arm Mali-C55 Image Signal Processor Driver Daniel Scally
2025-11-11 16:15 ` [PATCH v13 01/15] media: uapi: Add MEDIA_BUS_FMT_RGB202020_1X60 format code Daniel Scally
2025-11-11 16:15 ` [PATCH v13 02/15] media: uapi: Add 20-bit bayer formats Daniel Scally
2025-11-11 16:15 ` [PATCH v13 03/15] dt-bindings: media: Add bindings for ARM mali-c55 Daniel Scally
2025-11-11 16:15 ` Daniel Scally [this message]
2025-11-11 16:15 ` [PATCH v13 06/15] media: Documentation: Add Mali-C55 ISP Documentation Daniel Scally
2025-11-11 16:15 ` [PATCH v13 07/15] MAINTAINERS: Add entry for mali-c55 driver Daniel Scally
2025-11-11 16:15 ` [PATCH v13 08/15] media: Add MALI_C55_3A_STATS meta format Daniel Scally
2025-11-11 16:15 ` [PATCH v13 09/15] media: uapi: Add 3a stats buffer for mali-c55 Daniel Scally
2025-11-11 16:15 ` [PATCH v13 10/15] media: platform: Add mali-c55 3a stats devnode Daniel Scally
2025-11-11 16:15 ` [PATCH v13 11/15] Documentation: mali-c55: Add Statistics documentation Daniel Scally
2025-11-11 16:15 ` [PATCH v13 12/15] media: mali-c55: Add image formats for Mali-C55 parameters buffer Daniel Scally
2025-11-11 16:15 ` [PATCH v13 13/15] media: uapi: Add parameters structs to mali-c55-config.h Daniel Scally
2025-11-11 16:15 ` [PATCH v13 14/15] media: platform: Add mali-c55 parameters video node Daniel Scally
2025-11-11 16:15 ` [PATCH v13 15/15] Documentation: mali-c55: Document the mali-c55 parameter setting Daniel Scally
2025-11-13 8:39 ` Jacopo Mondi
2025-11-14 14:49 ` Sakari Ailus
2025-11-14 14:57 ` Jacopo Mondi
2025-11-14 15:28 ` Sakari Ailus
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20251111-c55-v13-4-3dc581355e3a@ideasonboard.com \
--to=dan.scally@ideasonboard.com \
--cc=Anthony.McGivern@arm.com \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=jacopo.mondi@ideasonboard.com \
--cc=jerome.forissier@linaro.org \
--cc=kieran.bingham@ideasonboard.com \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=laurent.pinchart@ideasonboard.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-media@vger.kernel.org \
--cc=mchehab@kernel.org \
--cc=nayden.kanchev@arm.com \
--cc=prabhakar.mahadev-lad.rj@bp.renesas.com \
--cc=robh+dt@kernel.org \
--cc=sakari.ailus@linux.intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox