[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