[PATCH v2 0/2] dmaengine: idxd: Add basic DSA 3.0 capability and SGL support

From: Yi Sun
Date: Fri Jun 20 2025 - 09:13:08 EST


This patch series introduces foundational support for DSA 3.0 features,
exposing hardware capability registers to userspace in the IDXD driver.

DSA 3.0 introduces several new features that require awareness and
configuration from both kernel and userspace. It is necessary to
understand the hardware's capabilities for userspace tools (e.g.,
idxd-config, libraries, and applications) to make use of the features
properly, such as supported features, memory layouts, and opcode
compatibility.

Patch 1/2 exposes the three new capability registers (dsacap0-2)
introduced in the DSA 3.0 specification through a new sysfs entry.
This allows tools and users to query hardware capabilities such as
supported SGL formats, floating-point options, and maximum supported
sizes.

Patch 2/2 enables configuration of the maximum SGL size for DSA 3.0
devices. Some DSA 3.0 opcodes (e.g., Gather Copy, Gather Reduce) require
that the workqueue's SGL size is explicitly configured. This patch sets
that value based on hardware capabilities at initialization time,
allowing these opcodes to function without additional user configuration.

---
Changes in v2:
- Added the link to the DSA 3.0 spec in the commit message (Dave)
- Fixed typos in the commit messages (Fenghua)
- Updated the sysfs ABI documentation for accuracy (Fenghua)
- Renamed the ABI entry from 'dsacap' to 'dsacaps' (Fenghua, Philip)
- Moved the definition of dsacap0_reg from patch #2 to patch #1 (Fenghua)
- Fixed the output format (Fenghua, Philip)
- Reordered the capability registers to match the DSA 3.0 spec (Fenghua)
- Add conditon checking to avoid accessing dsacaps when DSA 3.0 is not
supported (Fenghua)

Yi Sun (2):
dmaengine: idxd: Expose DSA3.0 capabilities through sysfs
dmaengine: idxd: Add Max SGL Size Support for DSA3.0

.../ABI/stable/sysfs-driver-dma-idxd | 15 ++++++++++
drivers/dma/idxd/device.c | 5 ++++
drivers/dma/idxd/idxd.h | 19 +++++++++++++
drivers/dma/idxd/init.c | 11 ++++++++
drivers/dma/idxd/registers.h | 28 ++++++++++++++++++-
drivers/dma/idxd/sysfs.c | 24 ++++++++++++++++
6 files changed, 101 insertions(+), 1 deletion(-)

--
2.43.0