On 1/13/26 18:44, Tomeu Vizoso wrote:
This series adds a new DRM/Accel driver that supports the C7x DSPs inside some Texas Instruments SoCs such as the J722S. These can be used as accelerators for various workloads, including machine learning inference.
This driver controls the power state of the hardware via remoteproc and communicates with the firmware running on the DSP via rpmsg_virtio. The kernel driver itself allocates buffers, manages contexts, and submits jobs to the DSP firmware. Buffers are mapped by the DSP itself using its MMU, providing memory isolation among different clients.
The source code for the firmware running on the DSP is available at: https://gitlab.freedesktop.org/tomeu/thames_firmware/.
Everything else is done in userspace, as a Gallium driver (also called thames) that is part of the Mesa3D project: https://docs.mesa3d.org/teflon.html
If there is more than one core that advertises the same rpmsg_virtio service name, the driver will load balance jobs between them with drm-gpu-scheduler.
I only took 5 minutes to skim over it, so no full review.
You have the classic mistake of allocating memory in the run_job callback of the scheduler, but that is trivial to fix.
Apart from that looks pretty solid to me.
Regards, Christian.
Userspace portion of the driver: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39298
Signed-off-by: Tomeu Vizoso tomeu@tomeuvizoso.net
Tomeu Vizoso (5): arm64: dts: ti: k3-j722s-ti-ipc-firmware: Add memory pool for DSP i/o buffers accel/thames: Add driver for the C7x DSPs in TI SoCs accel/thames: Add IOCTLs for BO creation and mapping accel/thames: Add IOCTL for job submission accel/thames: Add IOCTL for memory synchronization
Documentation/accel/thames/index.rst | 28 ++ MAINTAINERS | 9 + .../boot/dts/ti/k3-j722s-ti-ipc-firmware.dtsi | 11 +- drivers/accel/Kconfig | 1 + drivers/accel/Makefile | 3 +- drivers/accel/thames/Kconfig | 26 ++ drivers/accel/thames/Makefile | 11 + drivers/accel/thames/thames_core.c | 161 +++++++ 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 | 180 ++++++++ drivers/accel/thames/thames_drv.h | 21 + drivers/accel/thames/thames_gem.c | 407 ++++++++++++++++++ drivers/accel/thames/thames_gem.h | 45 ++ drivers/accel/thames/thames_ipc.h | 204 +++++++++ drivers/accel/thames/thames_job.c | 463 +++++++++++++++++++++ drivers/accel/thames/thames_job.h | 51 +++ drivers/accel/thames/thames_rpmsg.c | 276 ++++++++++++ drivers/accel/thames/thames_rpmsg.h | 27 ++ 20 files changed, 2113 insertions(+), 3 deletions(-)
base-commit: 27927a79b3c6aebd18f38507a8160294243763dc change-id: 20260113-thames-334127a2d91d
Best regards,