2012-10-20 18:53:42 +04:00
/* exynos_drm_iommu.h
*
* Copyright ( c ) 2012 Samsung Electronics Co . , Ltd .
* Authoer : Inki Dae < inki . dae @ samsung . com >
*
2012-12-17 21:30:17 +04:00
* This program is free software ; you can redistribute it and / or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation ; either version 2 of the License , or ( at your
* option ) any later version .
2012-10-20 18:53:42 +04:00
*/
# ifndef _EXYNOS_DRM_IOMMU_H_
# define _EXYNOS_DRM_IOMMU_H_
# define EXYNOS_DEV_ADDR_START 0x20000000
# define EXYNOS_DEV_ADDR_SIZE 0x40000000
# ifdef CONFIG_DRM_EXYNOS_IOMMU
int drm_create_iommu_mapping ( struct drm_device * drm_dev ) ;
void drm_release_iommu_mapping ( struct drm_device * drm_dev ) ;
int drm_iommu_attach_device ( struct drm_device * drm_dev ,
struct device * subdrv_dev ) ;
void drm_iommu_detach_device ( struct drm_device * dev_dev ,
struct device * subdrv_dev ) ;
static inline bool is_drm_iommu_supported ( struct drm_device * drm_dev )
{
struct device * dev = drm_dev - > dev ;
return dev - > archdata . mapping ? true : false ;
}
2015-06-22 13:05:04 +03:00
int drm_iommu_attach_device_if_possible (
struct exynos_drm_crtc * exynos_crtc , struct drm_device * drm_dev ,
struct device * subdrv_dev ) ;
2012-10-20 18:53:42 +04:00
# else
static inline int drm_create_iommu_mapping ( struct drm_device * drm_dev )
{
return 0 ;
}
static inline void drm_release_iommu_mapping ( struct drm_device * drm_dev )
{
}
static inline int drm_iommu_attach_device ( struct drm_device * drm_dev ,
struct device * subdrv_dev )
{
return 0 ;
}
static inline void drm_iommu_detach_device ( struct drm_device * drm_dev ,
struct device * subdrv_dev )
{
}
static inline bool is_drm_iommu_supported ( struct drm_device * drm_dev )
{
return false ;
}
2015-06-22 13:05:04 +03:00
static inline int drm_iommu_attach_device_if_possible (
struct exynos_drm_crtc * exynos_crtc , struct drm_device * drm_dev ,
struct device * subdrv_dev )
{
return 0 ;
}
2012-10-20 18:53:42 +04:00
# endif
# endif