[PATCH 0/9] drm/exynos: update codes related with gem

Joonyoung Shim jy0922.shim at samsung.com
Tue Oct 13 00:00:45 PDT 2015


Hi,

This patchset is about gem codes update of exynos-drm.

The first and second patches are cleanup to remove useless codes.
The rest is to support cachable gem allocation.

The exynos-drm uses DMA mapping API to allocate/mmap buffer of gem. If
it is cachable, does it with DMA_ATTR_NON_CONSISTENT attribute, but
DMA_ATTR_NON_CONSISTENT isn't supported in DMA mapping API of ARM, so it
doesn't give any effects.

This patchset introduces new buffer allocation to use
drm_gem_get/put_pages() instead of DMA mapping API. It will be used
for the rest except allocation of physically continuous buffer on
non-iommu, then exynos-drm can support cachable buffer of gem. Also it
can support physically non-continuous buffer on non-iommu.

EXYNOS_BO_CONTIG flag on iommu is ambiguous because it doesn't care
whether buffer is continuous physically if iommu is supported. This
patchset always will use EXYNOS_BO_CONTIG flag on iommu and then can
mean that the buffer is continuous for device.

There is no user API to control cache coherence for the cpu and device
about cachable buffer. This patchset introduces two ioctls for cpu
access of gem object from user. It will be synced properly in order for
the cpu and device if buffer of gem object is cachable.

Thanks.

Joonyoung Shim (9):
  drm/exynos: eliminate useless codes of exynos_drm_gem.h
  drm/exynos: use directly DMA mapping APIs on g2d
  drm/exynos: remove using non-consistent DMA attribute
  drm/exynos: split buffer allocation using DMA mapping API on non-iommu
  drm/exynos: introduce buffer allocation using drm_gem_get/put_pages()
  drm/exynos: switch to new buffer allocation
  drm/exynos: always use EXYNOS_BO_CONTIG flag on iommu
  drm/exynos: use DMA_ERROR_CODE
  drm/exynos: add ioctls for cpu access of gem object from user

 drivers/gpu/drm/exynos/exynos_drm_drv.c   |   4 +
 drivers/gpu/drm/exynos/exynos_drm_fb.c    |  32 +---
 drivers/gpu/drm/exynos/exynos_drm_fbdev.c |  14 +-
 drivers/gpu/drm/exynos/exynos_drm_g2d.c   |  10 +-
 drivers/gpu/drm/exynos/exynos_drm_gem.c   | 288 ++++++++++++++++++------------
 drivers/gpu/drm/exynos/exynos_drm_gem.h   |  56 ++----
 include/uapi/drm/exynos_drm.h             |  23 ++-
 7 files changed, 225 insertions(+), 202 deletions(-)

-- 
1.9.1



More information about the dri-devel mailing list