aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/exynos/exynos_drm_iommu.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/exynos/exynos_drm_iommu.h')
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_iommu.h47
1 files changed, 13 insertions, 34 deletions
diff --git a/drivers/gpu/drm/exynos/exynos_drm_iommu.h b/drivers/gpu/drm/exynos/exynos_drm_iommu.h
index aa267ba..35d923d 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_iommu.h
+++ b/drivers/gpu/drm/exynos/exynos_drm_iommu.h
@@ -26,54 +26,33 @@
#ifndef _EXYNOS_DRM_IOMMU_H_
#define _EXYNOS_DRM_IOMMU_H_
-enum iommu_types {
- IOMMU_FIMD = 0,
- IOMMU_HDMI,
- IOMMU_G2D,
- IOMMU_FIMC,
- IOMMU_G3D,
- IOMMU_ROTATOR,
- IOMMU_MASK = 0x3f
+struct exynos_iommu_gem_data {
+ unsigned int gem_handle_in;
+ void *gem_obj_out;
};
-struct iommu_gem_map_params {
- struct device *dev;
- struct drm_device *drm_dev;
- struct drm_file *file;
- void *gem_obj;
-};
-
-#define is_iommu_type_valid(t) (((1 << (t)) & ~(IOMMU_MASK)) ? false : true)
-
-void exynos_drm_remove_iommu_list(struct list_head *iommu_list,
- void *gem_obj);
-
/* get all pages to gem object and map them to iommu table. */
-dma_addr_t exynos_drm_iommu_map_gem(struct iommu_gem_map_params *params,
- struct list_head *iommu_list,
- unsigned int gem_handle,
- enum iommu_types type);
+dma_addr_t exynos_drm_iommu_map_gem(struct drm_device *drm_dev,
+ struct drm_gem_object *obj);
/* unmap device address space to gem object from iommu table. */
-void exynos_drm_iommu_unmap_gem(struct iommu_gem_map_params *params,
- dma_addr_t dma_addr,
- enum iommu_types type);
+void exynos_drm_iommu_unmap_gem(struct drm_gem_object *obj);
/* map physical memory region pointed by paddr to iommu table. */
-dma_addr_t exynos_drm_iommu_map(struct device *dev, dma_addr_t paddr,
+dma_addr_t exynos_drm_iommu_map(void *in_vmm, dma_addr_t paddr,
size_t size);
-/* unmap device address space pointed by dma_addr from iommu table. */
-void exynos_drm_iommu_unmap(struct device *dev, dma_addr_t dma_addr);
+/* unmap device address space pointed by dev_addr from iommu table. */
+void exynos_drm_iommu_unmap(void *in_vmm, dma_addr_t dev_addr);
/* setup device address space for device iommu. */
-int exynos_drm_iommu_setup(struct device *dev);
+void *exynos_drm_iommu_setup(unsigned long s_iova, unsigned long size);
-int exynos_drm_iommu_activate(struct device *dev);
+int exynos_drm_iommu_activate(void *in_vmm, struct device *dev);
-void exynos_drm_iommu_deactivate(struct device *dev);
+void exynos_drm_iommu_deactivate(void *in_vmm, struct device *dev);
/* clean up allocated device address space for device iommu. */
-void exynos_drm_iommu_cleanup(struct device *dev);
+void exynos_drm_iommu_cleanup(void *in_vmm);
#endif