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(-)
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.
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.