Two patches to implement a generic framework for dma-buf to support
local private interconnects, in particular interconnects that are not
driver-private.

The interconnect support is negotiated as part of an attachment and is
not a property of the dma-buf itself. Just like pcie p2p support.

The first patch adds members to the dma_buf_attach_ops and to the
dma_buf_attachment structure. These are needed for generic check of
interconnect support, typically when an interconnect is shared between
drivers. For truly driver-private interconnects they are not
strictly needed, but still could be convenient.

The second patch implements an interconnect negotiation for xe,
without actually changing the protocol itself from pcie_p2p.
Just as an example. This patch is not intended to be merged.

Note: This RFC only deals with interconnect negotiation. The
attachment state and what data-structure to use to convey the mapping
information is not dealt with in this RFC.

v2:
- Get rid of void pointers and instead provide generic structures
  that are intended to be embedded / subclassed for each interconnect
  implementation.

Thomas Hellström (2):
  dma-buf: Add support for private interconnects
  drm/xe/dma-buf: Add generic interconnect support framework

 drivers/gpu/drm/xe/tests/xe_dma_buf.c | 12 ++---
 drivers/gpu/drm/xe/xe_dma_buf.c       | 73 ++++++++++++++++++++++++---
 drivers/gpu/drm/xe/xe_dma_buf.h       |  1 -
 drivers/gpu/drm/xe/xe_interconnect.h  | 31 ++++++++++++
 include/linux/dma-buf.h               | 51 +++++++++++++++++++
 5 files changed, 155 insertions(+), 13 deletions(-)
 create mode 100644 drivers/gpu/drm/xe/xe_interconnect.h

-- 
2.51.0

Reply via email to