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 _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel