fpga: dfl: afu: add DFL_FPGA_PORT_DMA_MAP/UNMAP ioctls support
authorWu Hao <hao.wu@intel.com>
Sat, 30 Jun 2018 00:53:35 +0000 (08:53 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 15 Jul 2018 11:55:47 +0000 (13:55 +0200)
commitfa8dda1edef9ebc3af467c644c5533ac97171e12
tree967916a0db830844d520da691e6b78d4de5748f8
parent857a26222ff75eecf7d701ef0e91e4fbf6efa663
fpga: dfl: afu: add DFL_FPGA_PORT_DMA_MAP/UNMAP ioctls support

DMA memory regions are required for Accelerated Function Unit (AFU) usage.
These two ioctls allow user space applications to map user memory regions
for dma, and unmap them after use. Iova is returned from driver to user
space application via DFL_FPGA_PORT_DMA_MAP ioctl. Application needs to
unmap it after use, otherwise, driver will unmap them in device file
release operation.

Each AFU has its own rb tree to keep track of its mapped DMA regions.

Ioctl interfaces:
* DFL_FPGA_PORT_DMA_MAP
  Do the dma mapping per user_addr and length provided by user.
  Return iova in provided struct dfl_fpga_port_dma_map.

* DFL_FPGA_PORT_DMA_UNMAP
  Unmap the dma region per iova provided by user.

Signed-off-by: Tim Whisonant <tim.whisonant@intel.com>
Signed-off-by: Enno Luebbers <enno.luebbers@intel.com>
Signed-off-by: Shiva Rao <shiva.rao@intel.com>
Signed-off-by: Christopher Rauer <christopher.rauer@intel.com>
Signed-off-by: Xiao Guangrong <guangrong.xiao@linux.intel.com>
Signed-off-by: Wu Hao <hao.wu@intel.com>
Acked-by: Alan Tull <atull@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/fpga/Makefile
drivers/fpga/dfl-afu-dma-region.c [new file with mode: 0644]
drivers/fpga/dfl-afu-main.c
drivers/fpga/dfl-afu.h
include/uapi/linux/fpga-dfl.h