mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-15 23:14:31 +08:00
eb7a3fc74c
Already drm_iommu_attach_device checks whether support iommu internally. It should clear channels always regardless iommu support. We didn't know because we can detect the problem when iommu is enabled, so we don't have to use drm_iommu_attach_device_if_possible and then we can remove drm_iommu_attach_device_if_possible and clear_channels function pointer. Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com> Tested-by: Marek Szyprowski <m.szyprowski@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
66 lines
1.5 KiB
C
66 lines
1.5 KiB
C
/* exynos_drm_iommu.h
|
|
*
|
|
* Copyright (c) 2012 Samsung Electronics Co., Ltd.
|
|
* Authoer: Inki Dae <inki.dae@samsung.com>
|
|
*
|
|
* 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.
|
|
*/
|
|
|
|
#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;
|
|
}
|
|
|
|
#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;
|
|
}
|
|
|
|
#endif
|
|
#endif
|