Message ID | 20240812071034.9443-2-baolu.lu@linux.intel.com |
---|---|
State | Handled Elsewhere |
Headers | show |
Series | [1/3] drm/nouveau/tegra: Use iommu_paging_domain_alloc() | expand |
Hi, Thanks for your patch At 2024-08-12 15:10:33, "Lu Baolu" <baolu.lu@linux.intel.com> wrote: >Commit <421be3ee36a4> ("drm/rockchip: Refactor IOMMU initialisation") has >refactored rockchip_drm_init_iommu() to pass a device that the domain is >allocated for. Replace iommu_domain_alloc() with >iommu_paging_domain_alloc() to retire the former. > >Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com> >Reviewed-by: Jason Gunthorpe <jgg@nvidia.com> >Link: https://lore.kernel.org/r/20240610085555.88197-19-baolu.lu@linux.intel.com Acked-by: Andy Yan <andyshrk@163.com> >--- > drivers/gpu/drm/rockchip/rockchip_drm_drv.c | 10 +++++++--- > 1 file changed, 7 insertions(+), 3 deletions(-) > >diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c >index 44d769d9234d..11e5d10de4d7 100644 >--- a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c >+++ b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c >@@ -103,13 +103,17 @@ static int rockchip_drm_init_iommu(struct drm_device *drm_dev) > struct rockchip_drm_private *private = drm_dev->dev_private; > struct iommu_domain_geometry *geometry; > u64 start, end; >+ int ret; > > if (IS_ERR_OR_NULL(private->iommu_dev)) > return 0; > >- private->domain = iommu_domain_alloc(private->iommu_dev->bus); >- if (!private->domain) >- return -ENOMEM; >+ private->domain = iommu_paging_domain_alloc(private->iommu_dev); >+ if (IS_ERR(private->domain)) { >+ ret = PTR_ERR(private->domain); >+ private->domain = NULL; >+ return ret; >+ } > > geometry = &private->domain->geometry; > start = geometry->aperture_start; >-- >2.34.1 >
diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c index 44d769d9234d..11e5d10de4d7 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c @@ -103,13 +103,17 @@ static int rockchip_drm_init_iommu(struct drm_device *drm_dev) struct rockchip_drm_private *private = drm_dev->dev_private; struct iommu_domain_geometry *geometry; u64 start, end; + int ret; if (IS_ERR_OR_NULL(private->iommu_dev)) return 0; - private->domain = iommu_domain_alloc(private->iommu_dev->bus); - if (!private->domain) - return -ENOMEM; + private->domain = iommu_paging_domain_alloc(private->iommu_dev); + if (IS_ERR(private->domain)) { + ret = PTR_ERR(private->domain); + private->domain = NULL; + return ret; + } geometry = &private->domain->geometry; start = geometry->aperture_start;