linux/Documentation/gpu
Thomas Zimmermann 659ab7a49c drm: Use USB controller's DMA mask when importing dmabufs
USB devices cannot perform DMA and hence have no dma_mask set in their
device structure. Therefore importing dmabuf into a USB-based driver
fails, which breaks joining and mirroring of display in X11.

For USB devices, pick the associated USB controller as attachment device.
This allows the DRM import helpers to perform the DMA setup. If the DMA
controller does not support DMA transfers, we're out of luck and cannot
import. Our current USB-based DRM drivers don't use DMA, so the actual
DMA device is not important.

Tested by joining/mirroring displays of udl and radeon under Gnome/X11.

v8:
	* release dmadev if device initialization fails (Noralf)
	* fix commit description (Noralf)
v7:
	* fix use-before-init bug in gm12u320 (Dan)
v6:
	* implement workaround in DRM drivers and hold reference to
	  DMA device while USB device is in use
	* remove dev_is_usb() (Greg)
	* collapse USB helper into usb_intf_get_dma_device() (Alan)
	* integrate Daniel's TODO statement (Daniel)
	* fix typos (Greg)
v5:
	* provide a helper for USB interfaces (Alan)
	* add FIXME item to documentation and TODO list (Daniel)
v4:
	* implement workaround with USB helper functions (Greg)
	* use struct usb_device->bus->sysdev as DMA device (Takashi)
v3:
	* drop gem_create_object
	* use DMA mask of USB controller, if any (Daniel, Christian, Noralf)
v2:
	* move fix to importer side (Christian, Daniel)
	* update SHMEM and CMA helpers for new PRIME callbacks

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Fixes: 6eb0233ec2 ("usb: don't inherity DMA properties for USB devices")
Tested-by: Pavel Machek <pavel@ucw.cz>
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Acked-by: Christian König <christian.koenig@amd.com>
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Acked-by: Noralf Trønnes <noralf@tronnes.org>
Cc: Christoph Hellwig <hch@lst.de>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: <stable@vger.kernel.org> # v5.10+
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Link: https://patchwork.freedesktop.org/patch/msgid/20210303133229.3288-1-tzimmermann@suse.de
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
2021-03-11 11:11:33 +01:00
..
bridge drm: bridge: dw-hdmi: Add Documentation on supported input formats 2017-04-04 17:48:21 +02:00
dp-mst drm/dp_mst: Introduce new refcounting scheme for mstbs and ports 2019-01-10 20:12:19 -05:00
afbc.rst drm/afbc: Add AFBC modifier usage documentation 2019-01-11 17:52:06 +00:00
amdgpu-dc.rst drm/amd/display: Initial documentation for AMDgpu DC 2018-11-05 14:21:37 -05:00
amdgpu.rst gpu: docs: amdgpu.rst: get rid of wrong kernel-doc markups 2020-10-28 11:42:02 -06:00
backlight.rst doc-rst: Wire-up Backlight kernel-doc documentation 2020-07-20 10:26:22 +01:00
drivers.rst drm/tinydrm: Move mipi-dbi 2019-07-25 10:45:07 +02:00
drm-client.rst drm/fb-helper: Remove drm_fb_helper_crtc 2019-06-04 12:13:47 +02:00
drm-internals.rst drm: Add docs for managed resources 2020-03-26 16:09:48 +01:00
drm-kms-helpers.rst drm/doc: Some polish for shmem helpers 2020-06-03 14:48:27 +02:00
drm-kms.rst drm/doc: introduce new section for standard plane properties 2020-12-17 16:56:40 +01:00
drm-mm.rst drm: Remove obsolete GEM and PRIME callbacks from struct drm_driver 2020-09-25 09:21:48 +02:00
drm-uapi.rst drm/doc: render drm.h uapi docs 2021-01-05 14:22:26 +01:00
i915.rst doc: Fix build of documentation after i915 file rename 2020-12-15 06:22:31 -08:00
index.rst doc-rst: Wire-up Backlight kernel-doc documentation 2020-07-20 10:26:22 +01:00
introduction.rst drm/doc: Document kapi doc expectations 2019-07-19 15:02:37 +02:00
kms-properties.csv drm/doc: Drop "content type" from the legacy kms property table 2019-03-26 14:18:51 +01:00
komeda-kms.rst Documentation: gpu/komeda-kms: eliminate duplicated word 2020-07-13 09:44:06 -06:00
mcde.rst drm/mcde: Fix reference to DOC comment 2019-10-05 20:35:14 +02:00
meson.rst Documentation/gpu/meson: Remove link to meson_canvas.c 2019-04-05 08:35:05 -04:00
msm-crash-dump.rst docs: mark orphan documents as such 2019-06-08 13:42:11 -06:00
pl111.rst drm: pl111: Update documentation 2020-07-23 10:06:22 +02:00
tegra.rst drm/tegra: Add driver documentation 2017-06-15 13:58:56 +02:00
todo.rst drm: Use USB controller's DMA mask when importing dmabufs 2021-03-11 11:11:33 +01:00
tve200.rst drm/tve200: fix kernel-doc documentation comment include 2018-02-21 09:26:38 +02:00
v3d.rst drm/v3d: Add missing v3d documentation structure. 2018-07-05 11:42:50 -07:00
vc4.rst drm/vc4: Add a paragraph at the top of vc4 docs introducing what it is. 2017-02-28 12:51:49 -08:00
vga-switcheroo.rst drm/doc: Fix vga_switcheroo xref 2016-08-24 13:11:08 +02:00
vgaarbiter.rst drm: Replace HTTP links with HTTPS ones 2020-07-20 11:47:28 +02:00
vkms.rst drm/vkms: Add information about module options 2021-01-12 17:16:25 -03:00
xen-front.rst drm/xen-front: Remove CMA support 2018-04-18 10:18:27 +03:00