All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/5] drm: Provide a dedicated DMA device for PRIME import
@ 2025-03-07  8:03 Thomas Zimmermann
  2025-03-07  8:03 ` [PATCH v2 1/5] drm/prime: Support dedicated DMA device for dma-buf imports Thomas Zimmermann
                   ` (6 more replies)
  0 siblings, 7 replies; 15+ messages in thread
From: Thomas Zimmermann @ 2025-03-07  8:03 UTC (permalink / raw)
  To: simona, javierm, airlied, maarten.lankhorst, mripard, hdegoede,
	airlied, sean, sumit.semwal, christian.koenig, admin,
	gargaditya08, jani.nikula
  Cc: dri-devel, Thomas Zimmermann

Importing dma-bufs via PRIME requires a DMA-capable hardware device.
This is not the case for USB, where DMA is performed entirely by the
USB controller instead of the USB devices.

Drivers for USB-based hardware maintain their own workarounds for this
problem. The original idea to resolve this was to provide different
PRIME helpers for such devices, but the dma-buf code internally assumes
DMA functionality as well. So that ideas is not realistic.

Let's instead turn the current workaround into a feature. Patch 1 adds a
dma_dev field to struct drm_device and makes the PRIME code use it. Patches
2 to 5 replace related driver code.

It will also be useful in other code. The exynos and mediatek drivers
already maintain a dedicated DMA device for non-PRIME code. They could
likely use dma_dev as well. GEM-DMA helpers currently allocate DMA
memory with the regular parent device. They should support the dma_dev
settings as well.

Tested with udl.

v2:
- maintain reference on dma_dev (Jani)
- improve docs (Maxime)
- update appletbdrm

Thomas Zimmermann (5):
  drm/prime: Support dedicated DMA device for dma-buf imports
  drm/appletbdrm: Set struct drm_device.dma_dev
  drm/gm12u320: Set struct drm_device.dma_dev
  drm/gud: Set struct drm_device.dma_dev
  drm/udl: Set struct drm_device.dma_dev

 drivers/gpu/drm/drm_drv.c          | 21 ++++++++++++++
 drivers/gpu/drm/drm_prime.c        |  2 +-
 drivers/gpu/drm/gud/gud_drv.c      | 33 ++++++---------------
 drivers/gpu/drm/gud/gud_internal.h |  1 -
 drivers/gpu/drm/tiny/appletbdrm.c  | 27 +++++++-----------
 drivers/gpu/drm/tiny/gm12u320.c    | 46 +++++++++---------------------
 drivers/gpu/drm/udl/udl_drv.c      | 17 -----------
 drivers/gpu/drm/udl/udl_drv.h      |  1 -
 drivers/gpu/drm/udl/udl_main.c     | 14 ++++-----
 include/drm/drm_device.h           | 41 ++++++++++++++++++++++++++
 10 files changed, 102 insertions(+), 101 deletions(-)

-- 
2.48.1


^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2025-03-10 14:30 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-03-07  8:03 [PATCH v2 0/5] drm: Provide a dedicated DMA device for PRIME import Thomas Zimmermann
2025-03-07  8:03 ` [PATCH v2 1/5] drm/prime: Support dedicated DMA device for dma-buf imports Thomas Zimmermann
2025-03-07 12:45   ` Jani Nikula
2025-03-07 13:03   ` Maxime Ripard
2025-03-07  8:04 ` [PATCH v2 2/5] drm/appletbdrm: Set struct drm_device.dma_dev Thomas Zimmermann
2025-03-07 11:14   ` Aditya Garg
2025-03-07  8:04 ` [PATCH v2 3/5] drm/gm12u320: " Thomas Zimmermann
2025-03-07  8:04 ` [PATCH v2 4/5] drm/gud: " Thomas Zimmermann
2025-03-07  8:04 ` [PATCH v2 5/5] drm/udl: " Thomas Zimmermann
2025-03-07 12:50 ` [PATCH v2 0/5] drm: Provide a dedicated DMA device for PRIME import Jani Nikula
2025-03-07 13:32 ` Simona Vetter
2025-03-10  9:50   ` Thomas Zimmermann
2025-03-10 10:04     ` Thomas Zimmermann
2025-03-10 13:56     ` Christian König
2025-03-10 14:30       ` Thomas Zimmermann

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.