The Linux Kernel Mailing List
 help / color / mirror / Atom feed
* [PATCH 0/5] accel/rocket: Support standalone DPU/PPU tasks and pipelined workloads
@ 2026-02-17 21:39 Ross Cawston
  2026-02-17 21:39 ` [PATCH 1/5] accel/rocket: Fix error path in BO creation Ross Cawston
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: Ross Cawston @ 2026-02-17 21:39 UTC (permalink / raw)
  To: Tomeu Vizoso, Oded Gabbay, Maarten Lankhorst, Maxime Ripard,
	Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: dri-devel, linux-kernel, Ross Cawston

The Rocket NPU supports multiple workload types beyond convolutional jobs:
- Standalone post-processing (PPU) tasks (pooling, element-wise ops, etc.)
- Pipelined DPU→PPU workloads

The current driver has limitations preventing these from working correctly:
- CNA/Core S_POINTER registers are always written, re-arming stale state
- Interrupt handling is hard-coded to DPU only, causing PPU timeouts
- Ping-pong mode is always enabled

This series fixes these while preserving backward compatibility.

Patch breakdown:
1/5 Fix error path in BO creation (cleanup/fix)
2/5 Enable ping-pong mode only for multi-task jobs (optimization)
3/5 Add per-task int_mask and flags to UAPI/kernel (new knobs)
4/5 Skip CNA/Core S_POINTER init for standalone tasks
5/5 Use per-task interrupt mask and handle PPU completions

Derived from vendor BSP behavior.

Tested on OrangePi 5 Ultra and Radxa Rock 5B (RK3588).

Thanks for review!

Signed-off-by: Ross Cawston <ross@r-sc.ca>
---
Ross Cawston (5):
      accel/rocket: Fix error path in BO creation
      accel/rocket: Enable ping-pong mode only for multi-task jobs
      accel/rocket: Add per-task flags and interrupt mask to UAPI and kernel
      accel/rocket: Skip CNA/Core S_POINTER initialization for standalone tasks
      accel/rocket: Use per-task interrupt mask and handle PPU completion interrupts

 drivers/accel/rocket/rocket_gem.c |  2 +
 drivers/accel/rocket/rocket_job.c | 80 ++++++++++++++++++++++++++++++---------
 drivers/accel/rocket/rocket_job.h |  2 +
 include/uapi/drm/rocket_accel.h   | 25 ++++++++++++
 4 files changed, 92 insertions(+), 17 deletions(-)
---
base-commit: 17f8d2009367c3da82882f70ccbdca9f8c7b5f20
change-id: 20260217-accel-rocket-clean-base-57c0e88651e6

Best regards,
-- 
Ross Cawston <ross@r-sc.ca>


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2026-07-06 19:27 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-17 21:39 [PATCH 0/5] accel/rocket: Support standalone DPU/PPU tasks and pipelined workloads Ross Cawston
2026-02-17 21:39 ` [PATCH 1/5] accel/rocket: Fix error path in BO creation Ross Cawston
2026-02-17 21:39 ` [PATCH 2/5] accel/rocket: Enable ping-pong mode only for multi-task jobs Ross Cawston
2026-02-17 21:39 ` [PATCH 3/5] accel/rocket: Add per-task flags and interrupt mask to UAPI and kernel Ross Cawston
2026-02-17 21:39 ` [PATCH 4/5] accel/rocket: Skip CNA/Core S_POINTER initialization for standalone tasks Ross Cawston
2026-02-17 21:39 ` [PATCH 5/5] accel/rocket: Use per-task interrupt mask and handle PPU completion interrupts Ross Cawston
2026-07-06 19:27 ` [PATCH 0/5] accel/rocket: Support standalone DPU/PPU tasks and pipelined workloads Heiko Stübner

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox