[PATCH v3 00/22] accel: ethosu: Another batch of fixes

From: Rob Herring (Arm)

Date: Tue Sep 08 2026 - 18:04:56 EST


This is another series of fixes to the ethosu driver. It's mostly probe
error paths and cmd stream validation fixes. It's a mixture of
AI reported issues, different solutions to other posted issues and
fixes[1] and my own fixes. The last 2 patches are additional operation
support.

The series adds rejecting OFM tranpose in cmd stream, but then
the next to last patch adds support for it. I did this so the rejection
can be backported, but maybe supporting OFM transpose is small enough
that it should just be backported too?

Sashiko keeps raising issues about IRQs, but the h/w only generates an
interrupt if a job was submitted. The scenarios sashiko talks about are
not possible.

Rob

[1] https://lore.kernel.org/all/20260717061145.1478139-1-zhaoguohan@xxxxxxxxxx

Signed-off-by: Rob Herring (Arm) <robh@xxxxxxxxxx>
---
Changes in v3:
- Address Sashiko comments
- Another runtime-PM fix for driver remove()
- Add a fix for NHCWB16 bounds calculation
- Link to v2: https://patch.msgid.link/20260904-ethosu-fixes-v2-0-3767738756a4@xxxxxxxxxx

Changes in v2:
- Dropped first 5 patches which are already applied
- Patches 11-17 and 19 are new patches with more cmd stream validation
- Add fix to diable clocks on PM setup failure
- Rework the runtime-PM to suspend after initialization and before
drm_dev_register(). This simplifies the error clean-up in probe.
- Handle quiescing jobs before scheduler teardown
- Rework the cmd stream register initialization tracking to use a bitmap
of registers instead of relying on initial state values.
- Handle U85 DMA 2D/3D modes correctly
- Link to v1: https://patch.msgid.link/20260827-ethosu-fixes-v1-0-346f9ea8791c@xxxxxxxxxx

---
Rob Herring (Arm) (22):
accel: ethosu: Suspend after initialization
accel: ethosu: Ensure suspended on removal
accel: ethosu: Fix probe error cleanup
accel: ethosu: Disable clocks on PM setup failure
accel: ethosu: Quiesce jobs before scheduler teardown
accel: ethosu: Prevent command stream export
accel: ethosu: Move DMA mode to src/dst struct
accel: ethosu: Track command stream register setup
accel: ethosu: Factor buffer bounds checks
accel: ethosu: Fix NHCWB16 bounds calculation
accel: ethosu: Validate secondary streams
accel: ethosu: Reject unsupported commands
accel: ethosu: Validate all feature map tiles
accel: ethosu: Account for feature map element size
accel: ethosu: Validate convolution parameter
accel: ethosu: Account for kernel dilation in IFM size
accel: ethosu: Reject reserved command encodings
accel: ethosu: Validate accumulator input
accel: ethosu: Restrict dynamic IFM2 weights
accel: ethosu: Split U65 and U85 DMA length validation
accel: ethosu: Validate OFM transpose
accel: ethosu: Validate resize operations

drivers/accel/ethosu/ethosu_device.h | 23 +
drivers/accel/ethosu/ethosu_drv.c | 27 +-
drivers/accel/ethosu/ethosu_drv.h | 2 +
drivers/accel/ethosu/ethosu_gem.c | 850 +++++++++++++++++++++++++++++++----
drivers/accel/ethosu/ethosu_job.c | 29 +-
5 files changed, 840 insertions(+), 91 deletions(-)
---
base-commit: 2b39d680c9e0fb4d625f2916980977622e84248c
change-id: 20260827-ethosu-fixes-ee58386e9000

Best regards,
--
Rob Herring (Arm) <robh@xxxxxxxxxx>