dmaengine: idxd: Merge definition of dsa_batch_desc into dsa_hw_desc
authorTony Luck <tony.luck@intel.com>
Tue, 10 Mar 2020 22:18:02 +0000 (15:18 -0700)
committerVinod Koul <vkoul@kernel.org>
Wed, 11 Mar 2020 09:38:52 +0000 (15:08 +0530)
We don't need a special structure just for batch descriptors. The
layout matches the general form for other descriptors.

Merge the desc_list_addr field into the union of other aliases for
the the third quadword in the structure.

Create a union to alias "xfer_size" with "desc_count".

Signed-off-by: Tony Luck <tony.luck@intel.com>
Acked-by: Dave Jiang <dave.jiang@intel.com>
Link: https://lore.kernel.org/r/158387868208.35922.5895104426944263789.stgit@djiang5-desk3.ch.intel.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
include/uapi/linux/idxd.h

index 849ef1515d0447409473dd95039b3c302b50dfd4..1f412fbf561bb2262553c2000e6cf938fad23543 100644 (file)
@@ -83,21 +83,6 @@ enum dsa_completion_status {
 #define DSA_COMP_STATUS_MASK           0x7f
 #define DSA_COMP_STATUS_WRITE          0x80
 
-struct dsa_batch_desc {
-       uint32_t        pasid:20;
-       uint32_t        rsvd:11;
-       uint32_t        priv:1;
-       uint32_t        flags:24;
-       uint32_t        opcode:8;
-       uint64_t        completion_addr;
-       uint64_t        desc_list_addr;
-       uint64_t        rsvd1;
-       uint32_t        desc_count;
-       uint16_t        interrupt_handle;
-       uint16_t        rsvd2;
-       uint8_t         rsvd3[24];
-} __attribute__((packed));
-
 struct dsa_hw_desc {
        uint32_t        pasid:20;
        uint32_t        rsvd:11;
@@ -109,6 +94,7 @@ struct dsa_hw_desc {
                uint64_t        src_addr;
                uint64_t        rdback_addr;
                uint64_t        pattern;
+               uint64_t        desc_list_addr;
        };
        union {
                uint64_t        dst_addr;
@@ -116,7 +102,10 @@ struct dsa_hw_desc {
                uint64_t        src2_addr;
                uint64_t        comp_pattern;
        };
-       uint32_t        xfer_size;
+       union {
+               uint32_t        xfer_size;
+               uint32_t        desc_count;
+       };
        uint16_t        int_handle;
        uint16_t        rsvd1;
        union {