diff options
author | Jordan Crouse <jcrouse@codeaurora.org> | 2020-05-22 16:03:15 -0600 |
---|---|---|
committer | Rob Clark <robdclark@chromium.org> | 2020-05-23 13:38:16 -0700 |
commit | ccac7ce373c1b5175bcf733fe6223129b8975788 (patch) | |
tree | 62f147168606dc3ce30287b4a6d7ca7ce8cb3370 /drivers/gpu/drm/msm/msm_iommu.c | |
parent | 52da6d513183cf543df6efc95bf504aee0da70d6 (diff) | |
download | linux-ccac7ce373c1b5175bcf733fe6223129b8975788.tar.gz linux-ccac7ce373c1b5175bcf733fe6223129b8975788.tar.bz2 linux-ccac7ce373c1b5175bcf733fe6223129b8975788.zip |
drm/msm: Refactor address space initialization
Refactor how address space initialization works. Instead of having the
address space function create the MMU object (and thus require separate but
equal functions for gpummu and iommu) use a single function and pass the
MMU struct in. Make the generic code cleaner by using target specific
functions to create the address space so a2xx can do its own thing in its
own space. For all the other targets use a generic helper to initialize
IOMMU but leave the door open for newer targets to use customization
if they need it.
Reviewed-by: Rob Clark <robdclark@gmail.com>
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
Tested-by: Shawn Guo <shawn.guo@linaro.org>
[squash in rebase fixups]
Signed-off-by: Rob Clark <robdclark@chromium.org>
Diffstat (limited to 'drivers/gpu/drm/msm/msm_iommu.c')
-rw-r--r-- | drivers/gpu/drm/msm/msm_iommu.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/gpu/drm/msm/msm_iommu.c b/drivers/gpu/drm/msm/msm_iommu.c index 544c51955717..e773ef8c7203 100644 --- a/drivers/gpu/drm/msm/msm_iommu.c +++ b/drivers/gpu/drm/msm/msm_iommu.c @@ -70,6 +70,9 @@ struct msm_mmu *msm_iommu_new(struct device *dev, struct iommu_domain *domain) struct msm_iommu *iommu; int ret; + if (!domain) + return ERR_PTR(-ENODEV); + iommu = kzalloc(sizeof(*iommu), GFP_KERNEL); if (!iommu) return ERR_PTR(-ENOMEM); |