To initiate a DMA transfer, you need to:
enum gpdma_cdev_buftype { GPDMA_CDEVBUF_BLOCK = 0x1, GPDMA_CDEVBUF_FRAME = 0x2, }; enum gpdma_cdev_op { GPDMA_FILL = 0x1, GPDMA_COPY = 0x2, GPDMA_XOR = 0x4, }; struct gpdma_cdev_buffer { int dcb_type; struct iovec dcb_iov; size_t dcb_stride_width; size_t dcb_stride_spacing; }; struct gpdma_cdev_request { int dcr_op; struct gpdma_cdev_buffer dcr_buffers[8]; #define dcr_dst dcr_buffers[0] #define dcr_src dcr_buffers[1] }; struct gpdma_cdev_response { int drp_status; # errno number }; struct gpdma_cdev_caps { uint32_t dcc_ops; uint32_t dcc_buffers; };