Re: [PATCH v2 2/5] accel/thames: Add driver for the C7x DSPs in TI SoCs
From: Randy Dunlap <hidden>
Date: 2026-01-14 18:54:09
Also in:
dri-devel, linux-arm-kernel, linux-doc, linux-media, lkml
On 1/14/26 12:46 AM, Tomeu Vizoso wrote:
Some SoCs from Texas Instruments contain DSPs that can be used for general compute tasks. This driver provides a drm/accel UABI to userspace for submitting jobs to the DSP cores and managing the input, output and intermediate memory. Signed-off-by: Tomeu Vizoso <tomeu@tomeuvizoso.net> --- Documentation/accel/thames/index.rst | 28 +++++ MAINTAINERS | 9 ++ drivers/accel/Kconfig | 1 + drivers/accel/Makefile | 3 +- drivers/accel/thames/Kconfig | 26 +++++ drivers/accel/thames/Makefile | 9 ++ drivers/accel/thames/thames_core.c | 155 ++++++++++++++++++++++++++ drivers/accel/thames/thames_core.h | 53 +++++++++ drivers/accel/thames/thames_device.c | 93 ++++++++++++++++ drivers/accel/thames/thames_device.h | 46 ++++++++ drivers/accel/thames/thames_drv.c | 155 ++++++++++++++++++++++++++ drivers/accel/thames/thames_drv.h | 21 ++++ drivers/accel/thames/thames_ipc.h | 204 +++++++++++++++++++++++++++++++++++ drivers/accel/thames/thames_rpmsg.c | 155 ++++++++++++++++++++++++++ drivers/accel/thames/thames_rpmsg.h | 27 +++++ 15 files changed, 984 insertions(+), 1 deletion(-)
quoted hunk ↗ jump to hunk
diff --git a/drivers/accel/Makefile b/drivers/accel/Makefile index 1d3a7251b950f39e2ae600a2fc07a3ef7e41831e..8472989cbe22746f1e7292d2401fa0f7424a6c15 100644 --- a/drivers/accel/Makefile +++ b/drivers/accel/Makefile@@ -5,4 +5,5 @@ obj-$(CONFIG_DRM_ACCEL_ARM_ETHOSU) += ethosu/ obj-$(CONFIG_DRM_ACCEL_HABANALABS) += habanalabs/ obj-$(CONFIG_DRM_ACCEL_IVPU) += ivpu/ obj-$(CONFIG_DRM_ACCEL_QAIC) += qaic/ -obj-$(CONFIG_DRM_ACCEL_ROCKET) += rocket/\ No newline at end of file +obj-$(CONFIG_DRM_ACCEL_ROCKET) += rocket/ +obj-$(CONFIG_DRM_ACCEL_THAMES) += thames/ \ No newline at end of file
Please eliminate these warnings.
quoted hunk ↗ jump to hunk
diff --git a/drivers/accel/thames/thames_ipc.h b/drivers/accel/thames/thames_ipc.h> new file mode 100644 index 0000000000000000000000000000000000000000..60297b4bc2ffd990315cb735a96a23429d390f43 --- /dev/null +++ b/drivers/accel/thames/thames_ipc.h@@ -0,0 +1,204 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +/* + * Copyright 2026 Texas Instruments Incorporated - https://www.ti.com/ + * + * This header defines the RPMSG message structures exchanged between + * the Linux kernel (host) and the C7x DSP (remote) firmware for the + * Thames DRM/accel driver. + */ + +#ifndef _THAMES_IPC_H +#define _THAMES_IPC_H + +#ifdef __KERNEL__ +#include <linux/types.h> +#else +#include <stdint.h> +typedef uint8_t __u8; +typedef uint16_t __u16; +typedef uint32_t __u32; +typedef uint64_t __u64; +#endif + +#define THAMES_SERVICE_NAME "thames-service" + +/** + * @THAMES_MSG_TYPE: Simplified message type enumeration + */
"/**" means "this is kernel-doc format", which should look like: /** * enum thames_msg_type - Simplified message type enumeration */ and then each enum value should be documented as well.
+enum thames_msg_type {
+ /* --- Host (Kernel) -> Remote (DSP) --- */
+ THAMES_MSG_PING = 0x100, /* Ping message to test communication */
+ THAMES_MSG_CONTEXT_OP, /* Create/destroy context */
+ THAMES_MSG_BO_OP, /* Map/unmap buffer objects */
+ THAMES_MSG_SUBMIT_JOB, /* Submit job for execution */
+
+ /* --- Remote (DSP) -> Host (Kernel) --- */
+ THAMES_MSG_PING_RESPONSE = 0x200,
+ THAMES_MSG_CONTEXT_OP_RESPONSE,
+ THAMES_MSG_BO_OP_RESPONSE,
+ THAMES_MSG_SUBMIT_JOB_RESPONSE,
+};
+
+/**
+ * @THAMES_CONTEXT_OP: Context operation types* enum thames_context_op - Context operations types
+ */
+enum thames_context_op {
+ THAMES_CONTEXT_CREATE = 0,
+ THAMES_CONTEXT_DESTROY,
+};
+
+/**
+ * @THAMES_BO_OP: Buffer Object operation types* enum thames_bo_op - Buffer Object operation types
+ */
+enum thames_bo_op {
+ THAMES_BO_MAP = 0,
+ THAMES_BO_UNMAP,
+};
+
+/**
+ * @THAMES_RESP_STATUS: Response status codes* enum thames_resp_status - Response status codes
+ */
+enum thames_resp_status {
+ THAMES_RESP_SUCCESS = 0,
+ THAMES_RESP_ERR_GENERIC = 1,
+ THAMES_RESP_ERR_NOMEM = 2,
+ THAMES_RESP_ERR_INVAL = 3,
+ THAMES_RESP_ERR_NO_CTX = 4,
+ THAMES_RESP_ERR_MMU = 5,
+ THAMES_RESP_ERR_JOB_TIMEOUT = 6,
+};Or you could just use "/*" so that they aren't considered as kernel-doc. -- ~Randy