aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_iommu.h34
1 files changed, 6 insertions, 28 deletions
diff --git a/drivers/gpu/drm/exynos/exynos_drm_iommu.h b/drivers/gpu/drm/exynos/exynos_drm_iommu.h
index 87f6b5672e11..797d9ee5f15a 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_iommu.h
+++ b/drivers/gpu/drm/exynos/exynos_drm_iommu.h
@@ -55,37 +55,12 @@ static inline void __exynos_iommu_detach(struct exynos_drm_private *priv,
static inline int __exynos_iommu_create_mapping(struct exynos_drm_private *priv,
unsigned long start, unsigned long size)
{
- struct iommu_domain *domain;
- int ret;
-
- domain = iommu_domain_alloc(priv->dma_dev->bus);
- if (!domain)
- return -ENOMEM;
-
- ret = iommu_get_dma_cookie(domain);
- if (ret)
- goto free_domain;
-
- ret = iommu_dma_init_domain(domain, start, size, NULL);
- if (ret)
- goto put_cookie;
-
- priv->mapping = domain;
+ priv->mapping = iommu_get_domain_for_dev(priv->dma_dev);
return 0;
-
-put_cookie:
- iommu_put_dma_cookie(domain);
-free_domain:
- iommu_domain_free(domain);
- return ret;
}
static inline void __exynos_iommu_release_mapping(struct exynos_drm_private *priv)
{
- struct iommu_domain *domain = priv->mapping;
-
- iommu_put_dma_cookie(domain);
- iommu_domain_free(domain);
priv->mapping = NULL;
}
@@ -94,7 +69,9 @@ static inline int __exynos_iommu_attach(struct exynos_drm_private *priv,
{
struct iommu_domain *domain = priv->mapping;
- return iommu_attach_device(domain, dev);
+ if (dev != priv->dma_dev)
+ return iommu_attach_device(domain, dev);
+ return 0;
}
static inline void __exynos_iommu_detach(struct exynos_drm_private *priv,
@@ -102,7 +79,8 @@ static inline void __exynos_iommu_detach(struct exynos_drm_private *priv,
{
struct iommu_domain *domain = priv->mapping;
- iommu_detach_device(domain, dev);
+ if (dev != priv->dma_dev)
+ iommu_detach_device(domain, dev);
}
#else
#error Unsupported architecture and IOMMU/DMA-mapping glue code
:34:19 -0400'>2023-08-31drm/amdgpu: add VPE FW version query supportLang Yu2-0/+14 2023-08-31drm/amdgpu: enable VPE for VPE 6.1.0Lang Yu1-0/+19 2023-08-31drm/amdgpu: add user space CS support for VPELang Yu3-0/+9 2023-08-31drm/amdgpu: add PSP loading support for VPELang Yu2-0/+28 2023-08-31drm/amdgpu: add VPE 6.1.0 supportLang Yu6-0/+1019 2023-08-31drm/amdgpu: add nbio 7.11 callback for VPELang Yu1-0/+24 2023-08-31drm/amdgpu: add nbio callback for VPELang Yu1-0/+2 2023-08-31drm/amdgpu: add PSP FW TYPE for VPELang Yu2-0/+8 2023-08-31drm/amdgpu: add UCODE ID for VPELang Yu1-0/+2 2023-08-31drm/amdgpu: add support for VPE firmware name decodingLang Yu1-0/+3 2023-08-31drm/amdgpu: add doorbell index for VPELang Yu2-2/+6