@@ -1835,8 +1835,6 @@ static int _dpu_kms_mmu_init(struct dpu_kms *dpu_kms)
goto fail;
}
- dpu_kms->aspace[0] = aspace;
-
ret = aspace->mmu->funcs->attach(aspace->mmu,
(const char **)iommu_ports,
ARRAY_SIZE(iommu_ports));
@@ -1845,7 +1843,9 @@ static int _dpu_kms_mmu_init(struct dpu_kms *dpu_kms)
msm_gem_address_space_put(aspace);
goto fail;
}
+
aspace->domain_attached = true;
+ dpu_kms->aspace[0] = aspace;
#endif
return 0;
fail:
@@ -2004,6 +2004,9 @@ static int dpu_kms_hw_init(struct msm_kms *kms)
goto power_error;
}
+ if (dpu_kms->aspace[0])
+ kms->aspace = dpu_kms->aspace[0];
+
#ifdef CONFIG_CHROME_REGDMA
/* Initialize reg dma block which is a singleton */
rc = dpu_reg_dma_init(dpu_kms->reg_dma, dpu_kms->catalog,
display drivers may need to access aspace to allocate internal buffers (e.g. DSI to allocate cmd buffer) This change populates the needed info. Signed-off-by: Jeykumar Sankaran <jsanka@codeaurora.org> --- drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-)