[PATCH 0/2] Exynos DRM: resolve problems with DMA and virtual exynos-drm device

Marek Szyprowski m.szyprowski at samsung.com
Thu Feb 18 13:34:15 UTC 2016


Hello,

This patchset resolves the issues with using 'exynos-drm' virtual device
for allocating DMA buffers and performing various DMA-mapping operations
inside Exynos DRM driver.

'exynos-drm' is a pure virtual device and some architectures (like
ARM64) doesn't configure DMA-mapping operations for such devices. Also
on ARM architecture some hacks were needed to setup IOMMU-based
DMA-mapping ops for this virtual device to use common IO/DMA address
space for all devices, which are a part of Exynos DRM subsystem.

Instead of configuring DMA-mapping ops for virtual device (like I
initially proposed in this patch:
http://www.spinics.net/lists/linux-samsung-soc/msg50699.html ),
different device is is used by Exynos GEM code for DMA-mapping operations.
In this approach, the real device of one of the CRTC devices is used for
all DMA-mapping operations. This way all hacks related to configuring
DMA-mapping ops for virtual device are avoided. This approach also works
fine in case of Exynos DRM driver built as module. Patch no 2 implements
this approach.

Patch no 1 is a simple refactoring of driver and device registeration
procedure. It groups all pointers to the subdrivers in one array with
additional flags, instead of having them in 3 separate arrays (with
possible duplication). Implementing the main feature of this patchset
without this refactoring would result in one more array with duplicated
entries for all CRTC drivers.

Patches are based on the currect exynos-drm-next branch.

Best regards
Marek Szyprowski
Samsung R&D Institute Poland


Patch summary:

Marek Szyprowski (2):
  drm/exynos: refactor driver and device registration code
  drm/exynos: use real device for DMA-mapping operations

 drivers/gpu/drm/exynos/exynos_drm_drv.c   | 265 ++++++++++++++++--------------
 drivers/gpu/drm/exynos/exynos_drm_drv.h   |   9 +-
 drivers/gpu/drm/exynos/exynos_drm_fbdev.c |   2 +-
 drivers/gpu/drm/exynos/exynos_drm_g2d.c   |   6 +-
 drivers/gpu/drm/exynos/exynos_drm_gem.c   |  14 +-
 drivers/gpu/drm/exynos/exynos_drm_iommu.c |  37 +----
 drivers/gpu/drm/exynos/exynos_drm_iommu.h |   5 +-
 7 files changed, 169 insertions(+), 169 deletions(-)

-- 
1.9.2



More information about the dri-devel mailing list