summaryrefslogtreecommitdiff
path: root/include/uapi
diff options
context:
space:
mode:
authorFenghua Yu <fenghua.yu@intel.com>2023-03-03 13:34:13 -0800
committerVinod Koul <vkoul@kernel.org>2023-03-31 17:25:26 +0530
commit6fec8938b7b4fe2b2c503fe87b2783a50bff0415 (patch)
tree97986b15f4be05f5e2b8ea18b9d8bf8b8bf69802 /include/uapi
parent12bbc2c2605516e781cd86e3cde9fe1f889b72cc (diff)
downloadlinux-6fec8938b7b4fe2b2c503fe87b2783a50bff0415.tar.gz
dmaengine: idxd: Add descriptor definitions for translation fetch operation
The translation fetch operation (0x0A) fetches address translations for the address range specified in the descriptor by issuing address translation (ATS) requests to the IOMMU. Add descriptor definitions for the operation so that user can use DSA to accelerate translation fetch. Signed-off-by: Fenghua Yu <fenghua.yu@intel.com> Reviewed-by: Dave Jiang <dave.jiang@intel.com> Link: https://lore.kernel.org/r/20230303213413.3357431-4-fenghua.yu@intel.com Signed-off-by: Vinod Koul <vkoul@kernel.org>
Diffstat (limited to 'include/uapi')
-rw-r--r--include/uapi/linux/idxd.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/include/uapi/linux/idxd.h b/include/uapi/linux/idxd.h
index 4c12e93a6aa6..fc47635b57dc 100644
--- a/include/uapi/linux/idxd.h
+++ b/include/uapi/linux/idxd.h
@@ -72,6 +72,7 @@ enum dsa_opcode {
DSA_OPCODE_CR_DELTA,
DSA_OPCODE_AP_DELTA,
DSA_OPCODE_DUALCAST,
+ DSA_OPCODE_TRANSL_FETCH,
DSA_OPCODE_CRCGEN = 0x10,
DSA_OPCODE_COPY_CRC,
DSA_OPCODE_DIF_CHECK,
@@ -182,6 +183,7 @@ struct dsa_hw_desc {
uint64_t pattern;
uint64_t desc_list_addr;
uint64_t pattern_lower;
+ uint64_t transl_fetch_addr;
};
union {
uint64_t dst_addr;
@@ -192,6 +194,7 @@ struct dsa_hw_desc {
union {
uint32_t xfer_size;
uint32_t desc_count;
+ uint32_t region_size;
};
uint16_t int_handle;
uint16_t rsvd1;
@@ -249,6 +252,12 @@ struct dsa_hw_desc {
/* Fill */
uint64_t pattern_upper;
+ /* Translation fetch */
+ struct {
+ uint64_t transl_fetch_res;
+ uint32_t region_stride;
+ };
+
/* DIX generate */
struct {
uint8_t dix_gen_res;