mirror of
https://github.com/linux-msm/laptops-kernel.git
synced 2026-08-13 14:19:53 -07:00
drm/msm: Rename msm_gem_address_space -> msm_gem_vm
Re-aligning naming to better match drm_gpuvm terminology will make things less confusing at the end of the drm_gpuvm conversion. This is just rename churn, no functional change. Signed-off-by: Rob Clark <robdclark@chromium.org> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> Signed-off-by: Rob Clark <robin.clark@oss.qualcomm.com> Tested-by: Antonino Maniscalco <antomani103@gmail.com> Reviewed-by: Antonino Maniscalco <antomani103@gmail.com> Patchwork: https://patchwork.freedesktop.org/patch/661466/
This commit is contained in:
@@ -113,7 +113,7 @@ static int a2xx_hw_init(struct msm_gpu *gpu)
|
||||
uint32_t *ptr, len;
|
||||
int i, ret;
|
||||
|
||||
a2xx_gpummu_params(gpu->aspace->mmu, &pt_base, &tran_error);
|
||||
a2xx_gpummu_params(gpu->vm->mmu, &pt_base, &tran_error);
|
||||
|
||||
DBG("%s", gpu->name);
|
||||
|
||||
@@ -466,19 +466,19 @@ static struct msm_gpu_state *a2xx_gpu_state_get(struct msm_gpu *gpu)
|
||||
return state;
|
||||
}
|
||||
|
||||
static struct msm_gem_address_space *
|
||||
a2xx_create_address_space(struct msm_gpu *gpu, struct platform_device *pdev)
|
||||
static struct msm_gem_vm *
|
||||
a2xx_create_vm(struct msm_gpu *gpu, struct platform_device *pdev)
|
||||
{
|
||||
struct msm_mmu *mmu = a2xx_gpummu_new(&pdev->dev, gpu);
|
||||
struct msm_gem_address_space *aspace;
|
||||
struct msm_gem_vm *vm;
|
||||
|
||||
aspace = msm_gem_address_space_create(mmu, "gpu", SZ_16M,
|
||||
vm = msm_gem_vm_create(mmu, "gpu", SZ_16M,
|
||||
0xfff * SZ_64K);
|
||||
|
||||
if (IS_ERR(aspace) && !IS_ERR(mmu))
|
||||
if (IS_ERR(vm) && !IS_ERR(mmu))
|
||||
mmu->funcs->destroy(mmu);
|
||||
|
||||
return aspace;
|
||||
return vm;
|
||||
}
|
||||
|
||||
static u32 a2xx_get_rptr(struct msm_gpu *gpu, struct msm_ringbuffer *ring)
|
||||
@@ -504,7 +504,7 @@ static const struct adreno_gpu_funcs funcs = {
|
||||
#endif
|
||||
.gpu_state_get = a2xx_gpu_state_get,
|
||||
.gpu_state_put = adreno_gpu_state_put,
|
||||
.create_address_space = a2xx_create_address_space,
|
||||
.create_vm = a2xx_create_vm,
|
||||
.get_rptr = a2xx_get_rptr,
|
||||
},
|
||||
};
|
||||
@@ -551,7 +551,7 @@ struct msm_gpu *a2xx_gpu_init(struct drm_device *dev)
|
||||
else
|
||||
adreno_gpu->registers = a220_registers;
|
||||
|
||||
if (!gpu->aspace) {
|
||||
if (!gpu->vm) {
|
||||
dev_err(dev->dev, "No memory protection without MMU\n");
|
||||
if (!allow_vram_carveout) {
|
||||
ret = -ENXIO;
|
||||
|
||||
@@ -526,7 +526,7 @@ static const struct adreno_gpu_funcs funcs = {
|
||||
.gpu_busy = a3xx_gpu_busy,
|
||||
.gpu_state_get = a3xx_gpu_state_get,
|
||||
.gpu_state_put = adreno_gpu_state_put,
|
||||
.create_address_space = adreno_create_address_space,
|
||||
.create_vm = adreno_create_vm,
|
||||
.get_rptr = a3xx_get_rptr,
|
||||
},
|
||||
};
|
||||
@@ -581,7 +581,7 @@ struct msm_gpu *a3xx_gpu_init(struct drm_device *dev)
|
||||
goto fail;
|
||||
}
|
||||
|
||||
if (!gpu->aspace) {
|
||||
if (!gpu->vm) {
|
||||
/* TODO we think it is possible to configure the GPU to
|
||||
* restrict access to VRAM carveout. But the required
|
||||
* registers are unknown. For now just bail out and
|
||||
|
||||
@@ -645,7 +645,7 @@ static const struct adreno_gpu_funcs funcs = {
|
||||
.gpu_busy = a4xx_gpu_busy,
|
||||
.gpu_state_get = a4xx_gpu_state_get,
|
||||
.gpu_state_put = adreno_gpu_state_put,
|
||||
.create_address_space = adreno_create_address_space,
|
||||
.create_vm = adreno_create_vm,
|
||||
.get_rptr = a4xx_get_rptr,
|
||||
},
|
||||
.get_timestamp = a4xx_get_timestamp,
|
||||
@@ -695,7 +695,7 @@ struct msm_gpu *a4xx_gpu_init(struct drm_device *dev)
|
||||
|
||||
adreno_gpu->uche_trap_base = 0xffff0000ffff0000ull;
|
||||
|
||||
if (!gpu->aspace) {
|
||||
if (!gpu->vm) {
|
||||
/* TODO we think it is possible to configure the GPU to
|
||||
* restrict access to VRAM carveout. But the required
|
||||
* registers are unknown. For now just bail out and
|
||||
|
||||
@@ -116,13 +116,13 @@ reset_set(void *data, u64 val)
|
||||
adreno_gpu->fw[ADRENO_FW_PFP] = NULL;
|
||||
|
||||
if (a5xx_gpu->pm4_bo) {
|
||||
msm_gem_unpin_iova(a5xx_gpu->pm4_bo, gpu->aspace);
|
||||
msm_gem_unpin_iova(a5xx_gpu->pm4_bo, gpu->vm);
|
||||
drm_gem_object_put(a5xx_gpu->pm4_bo);
|
||||
a5xx_gpu->pm4_bo = NULL;
|
||||
}
|
||||
|
||||
if (a5xx_gpu->pfp_bo) {
|
||||
msm_gem_unpin_iova(a5xx_gpu->pfp_bo, gpu->aspace);
|
||||
msm_gem_unpin_iova(a5xx_gpu->pfp_bo, gpu->vm);
|
||||
drm_gem_object_put(a5xx_gpu->pfp_bo);
|
||||
a5xx_gpu->pfp_bo = NULL;
|
||||
}
|
||||
|
||||
@@ -622,7 +622,7 @@ static int a5xx_ucode_load(struct msm_gpu *gpu)
|
||||
a5xx_gpu->shadow = msm_gem_kernel_new(gpu->dev,
|
||||
sizeof(u32) * gpu->nr_rings,
|
||||
MSM_BO_WC | MSM_BO_MAP_PRIV,
|
||||
gpu->aspace, &a5xx_gpu->shadow_bo,
|
||||
gpu->vm, &a5xx_gpu->shadow_bo,
|
||||
&a5xx_gpu->shadow_iova);
|
||||
|
||||
if (IS_ERR(a5xx_gpu->shadow))
|
||||
@@ -1042,22 +1042,22 @@ static void a5xx_destroy(struct msm_gpu *gpu)
|
||||
a5xx_preempt_fini(gpu);
|
||||
|
||||
if (a5xx_gpu->pm4_bo) {
|
||||
msm_gem_unpin_iova(a5xx_gpu->pm4_bo, gpu->aspace);
|
||||
msm_gem_unpin_iova(a5xx_gpu->pm4_bo, gpu->vm);
|
||||
drm_gem_object_put(a5xx_gpu->pm4_bo);
|
||||
}
|
||||
|
||||
if (a5xx_gpu->pfp_bo) {
|
||||
msm_gem_unpin_iova(a5xx_gpu->pfp_bo, gpu->aspace);
|
||||
msm_gem_unpin_iova(a5xx_gpu->pfp_bo, gpu->vm);
|
||||
drm_gem_object_put(a5xx_gpu->pfp_bo);
|
||||
}
|
||||
|
||||
if (a5xx_gpu->gpmu_bo) {
|
||||
msm_gem_unpin_iova(a5xx_gpu->gpmu_bo, gpu->aspace);
|
||||
msm_gem_unpin_iova(a5xx_gpu->gpmu_bo, gpu->vm);
|
||||
drm_gem_object_put(a5xx_gpu->gpmu_bo);
|
||||
}
|
||||
|
||||
if (a5xx_gpu->shadow_bo) {
|
||||
msm_gem_unpin_iova(a5xx_gpu->shadow_bo, gpu->aspace);
|
||||
msm_gem_unpin_iova(a5xx_gpu->shadow_bo, gpu->vm);
|
||||
drm_gem_object_put(a5xx_gpu->shadow_bo);
|
||||
}
|
||||
|
||||
@@ -1457,7 +1457,7 @@ static int a5xx_crashdumper_init(struct msm_gpu *gpu,
|
||||
struct a5xx_crashdumper *dumper)
|
||||
{
|
||||
dumper->ptr = msm_gem_kernel_new(gpu->dev,
|
||||
SZ_1M, MSM_BO_WC, gpu->aspace,
|
||||
SZ_1M, MSM_BO_WC, gpu->vm,
|
||||
&dumper->bo, &dumper->iova);
|
||||
|
||||
if (!IS_ERR(dumper->ptr))
|
||||
@@ -1557,7 +1557,7 @@ static void a5xx_gpu_state_get_hlsq_regs(struct msm_gpu *gpu,
|
||||
|
||||
if (a5xx_crashdumper_run(gpu, &dumper)) {
|
||||
kfree(a5xx_state->hlsqregs);
|
||||
msm_gem_kernel_put(dumper.bo, gpu->aspace);
|
||||
msm_gem_kernel_put(dumper.bo, gpu->vm);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1565,7 +1565,7 @@ static void a5xx_gpu_state_get_hlsq_regs(struct msm_gpu *gpu,
|
||||
memcpy(a5xx_state->hlsqregs, dumper.ptr + (256 * SZ_1K),
|
||||
count * sizeof(u32));
|
||||
|
||||
msm_gem_kernel_put(dumper.bo, gpu->aspace);
|
||||
msm_gem_kernel_put(dumper.bo, gpu->vm);
|
||||
}
|
||||
|
||||
static struct msm_gpu_state *a5xx_gpu_state_get(struct msm_gpu *gpu)
|
||||
@@ -1713,7 +1713,7 @@ static const struct adreno_gpu_funcs funcs = {
|
||||
.gpu_busy = a5xx_gpu_busy,
|
||||
.gpu_state_get = a5xx_gpu_state_get,
|
||||
.gpu_state_put = a5xx_gpu_state_put,
|
||||
.create_address_space = adreno_create_address_space,
|
||||
.create_vm = adreno_create_vm,
|
||||
.get_rptr = a5xx_get_rptr,
|
||||
},
|
||||
.get_timestamp = a5xx_get_timestamp,
|
||||
@@ -1786,8 +1786,8 @@ struct msm_gpu *a5xx_gpu_init(struct drm_device *dev)
|
||||
return ERR_PTR(ret);
|
||||
}
|
||||
|
||||
if (gpu->aspace)
|
||||
msm_mmu_set_fault_handler(gpu->aspace->mmu, gpu, a5xx_fault_handler);
|
||||
if (gpu->vm)
|
||||
msm_mmu_set_fault_handler(gpu->vm->mmu, gpu, a5xx_fault_handler);
|
||||
|
||||
/* Set up the preemption specific bits and pieces for each ringbuffer */
|
||||
a5xx_preempt_init(gpu);
|
||||
|
||||
@@ -363,7 +363,7 @@ void a5xx_gpmu_ucode_init(struct msm_gpu *gpu)
|
||||
bosize = (cmds_size + (cmds_size / TYPE4_MAX_PAYLOAD) + 1) << 2;
|
||||
|
||||
ptr = msm_gem_kernel_new(drm, bosize,
|
||||
MSM_BO_WC | MSM_BO_GPU_READONLY, gpu->aspace,
|
||||
MSM_BO_WC | MSM_BO_GPU_READONLY, gpu->vm,
|
||||
&a5xx_gpu->gpmu_bo, &a5xx_gpu->gpmu_iova);
|
||||
if (IS_ERR(ptr))
|
||||
return;
|
||||
|
||||
@@ -255,7 +255,7 @@ static int preempt_init_ring(struct a5xx_gpu *a5xx_gpu,
|
||||
|
||||
ptr = msm_gem_kernel_new(gpu->dev,
|
||||
A5XX_PREEMPT_RECORD_SIZE + A5XX_PREEMPT_COUNTER_SIZE,
|
||||
MSM_BO_WC | MSM_BO_MAP_PRIV, gpu->aspace, &bo, &iova);
|
||||
MSM_BO_WC | MSM_BO_MAP_PRIV, gpu->vm, &bo, &iova);
|
||||
|
||||
if (IS_ERR(ptr))
|
||||
return PTR_ERR(ptr);
|
||||
@@ -263,9 +263,9 @@ static int preempt_init_ring(struct a5xx_gpu *a5xx_gpu,
|
||||
/* The buffer to store counters needs to be unprivileged */
|
||||
counters = msm_gem_kernel_new(gpu->dev,
|
||||
A5XX_PREEMPT_COUNTER_SIZE,
|
||||
MSM_BO_WC, gpu->aspace, &counters_bo, &counters_iova);
|
||||
MSM_BO_WC, gpu->vm, &counters_bo, &counters_iova);
|
||||
if (IS_ERR(counters)) {
|
||||
msm_gem_kernel_put(bo, gpu->aspace);
|
||||
msm_gem_kernel_put(bo, gpu->vm);
|
||||
return PTR_ERR(counters);
|
||||
}
|
||||
|
||||
@@ -296,8 +296,8 @@ void a5xx_preempt_fini(struct msm_gpu *gpu)
|
||||
int i;
|
||||
|
||||
for (i = 0; i < gpu->nr_rings; i++) {
|
||||
msm_gem_kernel_put(a5xx_gpu->preempt_bo[i], gpu->aspace);
|
||||
msm_gem_kernel_put(a5xx_gpu->preempt_counters_bo[i], gpu->aspace);
|
||||
msm_gem_kernel_put(a5xx_gpu->preempt_bo[i], gpu->vm);
|
||||
msm_gem_kernel_put(a5xx_gpu->preempt_counters_bo[i], gpu->vm);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1259,15 +1259,15 @@ int a6xx_gmu_stop(struct a6xx_gpu *a6xx_gpu)
|
||||
|
||||
static void a6xx_gmu_memory_free(struct a6xx_gmu *gmu)
|
||||
{
|
||||
msm_gem_kernel_put(gmu->hfi.obj, gmu->aspace);
|
||||
msm_gem_kernel_put(gmu->debug.obj, gmu->aspace);
|
||||
msm_gem_kernel_put(gmu->icache.obj, gmu->aspace);
|
||||
msm_gem_kernel_put(gmu->dcache.obj, gmu->aspace);
|
||||
msm_gem_kernel_put(gmu->dummy.obj, gmu->aspace);
|
||||
msm_gem_kernel_put(gmu->log.obj, gmu->aspace);
|
||||
msm_gem_kernel_put(gmu->hfi.obj, gmu->vm);
|
||||
msm_gem_kernel_put(gmu->debug.obj, gmu->vm);
|
||||
msm_gem_kernel_put(gmu->icache.obj, gmu->vm);
|
||||
msm_gem_kernel_put(gmu->dcache.obj, gmu->vm);
|
||||
msm_gem_kernel_put(gmu->dummy.obj, gmu->vm);
|
||||
msm_gem_kernel_put(gmu->log.obj, gmu->vm);
|
||||
|
||||
gmu->aspace->mmu->funcs->detach(gmu->aspace->mmu);
|
||||
msm_gem_address_space_put(gmu->aspace);
|
||||
gmu->vm->mmu->funcs->detach(gmu->vm->mmu);
|
||||
msm_gem_vm_put(gmu->vm);
|
||||
}
|
||||
|
||||
static int a6xx_gmu_memory_alloc(struct a6xx_gmu *gmu, struct a6xx_gmu_bo *bo,
|
||||
@@ -1296,7 +1296,7 @@ static int a6xx_gmu_memory_alloc(struct a6xx_gmu *gmu, struct a6xx_gmu_bo *bo,
|
||||
if (IS_ERR(bo->obj))
|
||||
return PTR_ERR(bo->obj);
|
||||
|
||||
ret = msm_gem_get_and_pin_iova_range(bo->obj, gmu->aspace, &bo->iova,
|
||||
ret = msm_gem_get_and_pin_iova_range(bo->obj, gmu->vm, &bo->iova,
|
||||
range_start, range_end);
|
||||
if (ret) {
|
||||
drm_gem_object_put(bo->obj);
|
||||
@@ -1321,9 +1321,9 @@ static int a6xx_gmu_memory_probe(struct a6xx_gmu *gmu)
|
||||
if (IS_ERR(mmu))
|
||||
return PTR_ERR(mmu);
|
||||
|
||||
gmu->aspace = msm_gem_address_space_create(mmu, "gmu", 0x0, 0x80000000);
|
||||
if (IS_ERR(gmu->aspace))
|
||||
return PTR_ERR(gmu->aspace);
|
||||
gmu->vm = msm_gem_vm_create(mmu, "gmu", 0x0, 0x80000000);
|
||||
if (IS_ERR(gmu->vm))
|
||||
return PTR_ERR(gmu->vm);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -62,7 +62,7 @@ struct a6xx_gmu {
|
||||
/* For serializing communication with the GMU: */
|
||||
struct mutex lock;
|
||||
|
||||
struct msm_gem_address_space *aspace;
|
||||
struct msm_gem_vm *vm;
|
||||
|
||||
void __iomem *mmio;
|
||||
void __iomem *rscc;
|
||||
|
||||
@@ -120,7 +120,7 @@ static void a6xx_set_pagetable(struct a6xx_gpu *a6xx_gpu,
|
||||
if (ctx->seqno == ring->cur_ctx_seqno)
|
||||
return;
|
||||
|
||||
if (msm_iommu_pagetable_params(ctx->aspace->mmu, &ttbr, &asid))
|
||||
if (msm_iommu_pagetable_params(ctx->vm->mmu, &ttbr, &asid))
|
||||
return;
|
||||
|
||||
if (adreno_gpu->info->family >= ADRENO_7XX_GEN1) {
|
||||
@@ -970,7 +970,7 @@ static int a6xx_ucode_load(struct msm_gpu *gpu)
|
||||
|
||||
msm_gem_object_set_name(a6xx_gpu->sqe_bo, "sqefw");
|
||||
if (!a6xx_ucode_check_version(a6xx_gpu, a6xx_gpu->sqe_bo)) {
|
||||
msm_gem_unpin_iova(a6xx_gpu->sqe_bo, gpu->aspace);
|
||||
msm_gem_unpin_iova(a6xx_gpu->sqe_bo, gpu->vm);
|
||||
drm_gem_object_put(a6xx_gpu->sqe_bo);
|
||||
|
||||
a6xx_gpu->sqe_bo = NULL;
|
||||
@@ -987,7 +987,7 @@ static int a6xx_ucode_load(struct msm_gpu *gpu)
|
||||
a6xx_gpu->shadow = msm_gem_kernel_new(gpu->dev,
|
||||
sizeof(u32) * gpu->nr_rings,
|
||||
MSM_BO_WC | MSM_BO_MAP_PRIV,
|
||||
gpu->aspace, &a6xx_gpu->shadow_bo,
|
||||
gpu->vm, &a6xx_gpu->shadow_bo,
|
||||
&a6xx_gpu->shadow_iova);
|
||||
|
||||
if (IS_ERR(a6xx_gpu->shadow))
|
||||
@@ -998,7 +998,7 @@ static int a6xx_ucode_load(struct msm_gpu *gpu)
|
||||
|
||||
a6xx_gpu->pwrup_reglist_ptr = msm_gem_kernel_new(gpu->dev, PAGE_SIZE,
|
||||
MSM_BO_WC | MSM_BO_MAP_PRIV,
|
||||
gpu->aspace, &a6xx_gpu->pwrup_reglist_bo,
|
||||
gpu->vm, &a6xx_gpu->pwrup_reglist_bo,
|
||||
&a6xx_gpu->pwrup_reglist_iova);
|
||||
|
||||
if (IS_ERR(a6xx_gpu->pwrup_reglist_ptr))
|
||||
@@ -2211,12 +2211,12 @@ static void a6xx_destroy(struct msm_gpu *gpu)
|
||||
struct a6xx_gpu *a6xx_gpu = to_a6xx_gpu(adreno_gpu);
|
||||
|
||||
if (a6xx_gpu->sqe_bo) {
|
||||
msm_gem_unpin_iova(a6xx_gpu->sqe_bo, gpu->aspace);
|
||||
msm_gem_unpin_iova(a6xx_gpu->sqe_bo, gpu->vm);
|
||||
drm_gem_object_put(a6xx_gpu->sqe_bo);
|
||||
}
|
||||
|
||||
if (a6xx_gpu->shadow_bo) {
|
||||
msm_gem_unpin_iova(a6xx_gpu->shadow_bo, gpu->aspace);
|
||||
msm_gem_unpin_iova(a6xx_gpu->shadow_bo, gpu->vm);
|
||||
drm_gem_object_put(a6xx_gpu->shadow_bo);
|
||||
}
|
||||
|
||||
@@ -2256,8 +2256,8 @@ static void a6xx_gpu_set_freq(struct msm_gpu *gpu, struct dev_pm_opp *opp,
|
||||
mutex_unlock(&a6xx_gpu->gmu.lock);
|
||||
}
|
||||
|
||||
static struct msm_gem_address_space *
|
||||
a6xx_create_address_space(struct msm_gpu *gpu, struct platform_device *pdev)
|
||||
static struct msm_gem_vm *
|
||||
a6xx_create_vm(struct msm_gpu *gpu, struct platform_device *pdev)
|
||||
{
|
||||
struct adreno_gpu *adreno_gpu = to_adreno_gpu(gpu);
|
||||
struct a6xx_gpu *a6xx_gpu = to_a6xx_gpu(adreno_gpu);
|
||||
@@ -2271,22 +2271,22 @@ a6xx_create_address_space(struct msm_gpu *gpu, struct platform_device *pdev)
|
||||
!device_iommu_capable(&pdev->dev, IOMMU_CAP_CACHE_COHERENCY))
|
||||
quirks |= IO_PGTABLE_QUIRK_ARM_OUTER_WBWA;
|
||||
|
||||
return adreno_iommu_create_address_space(gpu, pdev, quirks);
|
||||
return adreno_iommu_create_vm(gpu, pdev, quirks);
|
||||
}
|
||||
|
||||
static struct msm_gem_address_space *
|
||||
a6xx_create_private_address_space(struct msm_gpu *gpu)
|
||||
static struct msm_gem_vm *
|
||||
a6xx_create_private_vm(struct msm_gpu *gpu)
|
||||
{
|
||||
struct msm_mmu *mmu;
|
||||
|
||||
mmu = msm_iommu_pagetable_create(gpu->aspace->mmu);
|
||||
mmu = msm_iommu_pagetable_create(gpu->vm->mmu);
|
||||
|
||||
if (IS_ERR(mmu))
|
||||
return ERR_CAST(mmu);
|
||||
|
||||
return msm_gem_address_space_create(mmu,
|
||||
return msm_gem_vm_create(mmu,
|
||||
"gpu", ADRENO_VM_START,
|
||||
adreno_private_address_space_size(gpu));
|
||||
adreno_private_vm_size(gpu));
|
||||
}
|
||||
|
||||
static uint32_t a6xx_get_rptr(struct msm_gpu *gpu, struct msm_ringbuffer *ring)
|
||||
@@ -2403,8 +2403,8 @@ static const struct adreno_gpu_funcs funcs = {
|
||||
.gpu_state_get = a6xx_gpu_state_get,
|
||||
.gpu_state_put = a6xx_gpu_state_put,
|
||||
#endif
|
||||
.create_address_space = a6xx_create_address_space,
|
||||
.create_private_address_space = a6xx_create_private_address_space,
|
||||
.create_vm = a6xx_create_vm,
|
||||
.create_private_vm = a6xx_create_private_vm,
|
||||
.get_rptr = a6xx_get_rptr,
|
||||
.progress = a6xx_progress,
|
||||
},
|
||||
@@ -2432,8 +2432,8 @@ static const struct adreno_gpu_funcs funcs_gmuwrapper = {
|
||||
.gpu_state_get = a6xx_gpu_state_get,
|
||||
.gpu_state_put = a6xx_gpu_state_put,
|
||||
#endif
|
||||
.create_address_space = a6xx_create_address_space,
|
||||
.create_private_address_space = a6xx_create_private_address_space,
|
||||
.create_vm = a6xx_create_vm,
|
||||
.create_private_vm = a6xx_create_private_vm,
|
||||
.get_rptr = a6xx_get_rptr,
|
||||
.progress = a6xx_progress,
|
||||
},
|
||||
@@ -2463,8 +2463,8 @@ static const struct adreno_gpu_funcs funcs_a7xx = {
|
||||
.gpu_state_get = a6xx_gpu_state_get,
|
||||
.gpu_state_put = a6xx_gpu_state_put,
|
||||
#endif
|
||||
.create_address_space = a6xx_create_address_space,
|
||||
.create_private_address_space = a6xx_create_private_address_space,
|
||||
.create_vm = a6xx_create_vm,
|
||||
.create_private_vm = a6xx_create_private_vm,
|
||||
.get_rptr = a6xx_get_rptr,
|
||||
.progress = a6xx_progress,
|
||||
},
|
||||
@@ -2560,9 +2560,8 @@ struct msm_gpu *a6xx_gpu_init(struct drm_device *dev)
|
||||
|
||||
adreno_gpu->uche_trap_base = 0x1fffffffff000ull;
|
||||
|
||||
if (gpu->aspace)
|
||||
msm_mmu_set_fault_handler(gpu->aspace->mmu, gpu,
|
||||
a6xx_fault_handler);
|
||||
if (gpu->vm)
|
||||
msm_mmu_set_fault_handler(gpu->vm->mmu, gpu, a6xx_fault_handler);
|
||||
|
||||
a6xx_calc_ubwc_config(adreno_gpu);
|
||||
/* Set up the preemption specific bits and pieces for each ringbuffer */
|
||||
|
||||
@@ -132,7 +132,7 @@ static int a6xx_crashdumper_init(struct msm_gpu *gpu,
|
||||
struct a6xx_crashdumper *dumper)
|
||||
{
|
||||
dumper->ptr = msm_gem_kernel_new(gpu->dev,
|
||||
SZ_1M, MSM_BO_WC, gpu->aspace,
|
||||
SZ_1M, MSM_BO_WC, gpu->vm,
|
||||
&dumper->bo, &dumper->iova);
|
||||
|
||||
if (!IS_ERR(dumper->ptr))
|
||||
@@ -1619,7 +1619,7 @@ struct msm_gpu_state *a6xx_gpu_state_get(struct msm_gpu *gpu)
|
||||
a7xx_get_clusters(gpu, a6xx_state, dumper);
|
||||
a7xx_get_dbgahb_clusters(gpu, a6xx_state, dumper);
|
||||
|
||||
msm_gem_kernel_put(dumper->bo, gpu->aspace);
|
||||
msm_gem_kernel_put(dumper->bo, gpu->vm);
|
||||
}
|
||||
|
||||
a7xx_get_post_crashdumper_registers(gpu, a6xx_state);
|
||||
@@ -1631,7 +1631,7 @@ struct msm_gpu_state *a6xx_gpu_state_get(struct msm_gpu *gpu)
|
||||
a6xx_get_clusters(gpu, a6xx_state, dumper);
|
||||
a6xx_get_dbgahb_clusters(gpu, a6xx_state, dumper);
|
||||
|
||||
msm_gem_kernel_put(dumper->bo, gpu->aspace);
|
||||
msm_gem_kernel_put(dumper->bo, gpu->vm);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -344,7 +344,7 @@ static int preempt_init_ring(struct a6xx_gpu *a6xx_gpu,
|
||||
|
||||
ptr = msm_gem_kernel_new(gpu->dev,
|
||||
PREEMPT_RECORD_SIZE(adreno_gpu),
|
||||
MSM_BO_WC | MSM_BO_MAP_PRIV, gpu->aspace, &bo, &iova);
|
||||
MSM_BO_WC | MSM_BO_MAP_PRIV, gpu->vm, &bo, &iova);
|
||||
|
||||
if (IS_ERR(ptr))
|
||||
return PTR_ERR(ptr);
|
||||
@@ -362,7 +362,7 @@ static int preempt_init_ring(struct a6xx_gpu *a6xx_gpu,
|
||||
ptr = msm_gem_kernel_new(gpu->dev,
|
||||
PREEMPT_SMMU_INFO_SIZE,
|
||||
MSM_BO_WC | MSM_BO_MAP_PRIV | MSM_BO_GPU_READONLY,
|
||||
gpu->aspace, &bo, &iova);
|
||||
gpu->vm, &bo, &iova);
|
||||
|
||||
if (IS_ERR(ptr))
|
||||
return PTR_ERR(ptr);
|
||||
@@ -377,7 +377,7 @@ static int preempt_init_ring(struct a6xx_gpu *a6xx_gpu,
|
||||
|
||||
struct a7xx_cp_smmu_info *smmu_info_ptr = ptr;
|
||||
|
||||
msm_iommu_pagetable_params(gpu->aspace->mmu, &ttbr, &asid);
|
||||
msm_iommu_pagetable_params(gpu->vm->mmu, &ttbr, &asid);
|
||||
|
||||
smmu_info_ptr->magic = GEN7_CP_SMMU_INFO_MAGIC;
|
||||
smmu_info_ptr->ttbr0 = ttbr;
|
||||
@@ -405,7 +405,7 @@ void a6xx_preempt_fini(struct msm_gpu *gpu)
|
||||
int i;
|
||||
|
||||
for (i = 0; i < gpu->nr_rings; i++)
|
||||
msm_gem_kernel_put(a6xx_gpu->preempt_bo[i], gpu->aspace);
|
||||
msm_gem_kernel_put(a6xx_gpu->preempt_bo[i], gpu->vm);
|
||||
}
|
||||
|
||||
void a6xx_preempt_init(struct msm_gpu *gpu)
|
||||
@@ -431,7 +431,7 @@ void a6xx_preempt_init(struct msm_gpu *gpu)
|
||||
a6xx_gpu->preempt_postamble_ptr = msm_gem_kernel_new(gpu->dev,
|
||||
PAGE_SIZE,
|
||||
MSM_BO_WC | MSM_BO_MAP_PRIV | MSM_BO_GPU_READONLY,
|
||||
gpu->aspace, &a6xx_gpu->preempt_postamble_bo,
|
||||
gpu->vm, &a6xx_gpu->preempt_postamble_bo,
|
||||
&a6xx_gpu->preempt_postamble_iova);
|
||||
|
||||
preempt_prepare_postamble(a6xx_gpu);
|
||||
|
||||
@@ -191,21 +191,21 @@ int adreno_zap_shader_load(struct msm_gpu *gpu, u32 pasid)
|
||||
return zap_shader_load_mdt(gpu, adreno_gpu->info->zapfw, pasid);
|
||||
}
|
||||
|
||||
struct msm_gem_address_space *
|
||||
adreno_create_address_space(struct msm_gpu *gpu,
|
||||
struct platform_device *pdev)
|
||||
struct msm_gem_vm *
|
||||
adreno_create_vm(struct msm_gpu *gpu,
|
||||
struct platform_device *pdev)
|
||||
{
|
||||
return adreno_iommu_create_address_space(gpu, pdev, 0);
|
||||
return adreno_iommu_create_vm(gpu, pdev, 0);
|
||||
}
|
||||
|
||||
struct msm_gem_address_space *
|
||||
adreno_iommu_create_address_space(struct msm_gpu *gpu,
|
||||
struct platform_device *pdev,
|
||||
unsigned long quirks)
|
||||
struct msm_gem_vm *
|
||||
adreno_iommu_create_vm(struct msm_gpu *gpu,
|
||||
struct platform_device *pdev,
|
||||
unsigned long quirks)
|
||||
{
|
||||
struct iommu_domain_geometry *geometry;
|
||||
struct msm_mmu *mmu;
|
||||
struct msm_gem_address_space *aspace;
|
||||
struct msm_gem_vm *vm;
|
||||
u64 start, size;
|
||||
|
||||
mmu = msm_iommu_gpu_new(&pdev->dev, gpu, quirks);
|
||||
@@ -224,16 +224,15 @@ adreno_iommu_create_address_space(struct msm_gpu *gpu,
|
||||
start = max_t(u64, SZ_16M, geometry->aperture_start);
|
||||
size = geometry->aperture_end - start + 1;
|
||||
|
||||
aspace = msm_gem_address_space_create(mmu, "gpu",
|
||||
start & GENMASK_ULL(48, 0), size);
|
||||
vm = msm_gem_vm_create(mmu, "gpu", start & GENMASK_ULL(48, 0), size);
|
||||
|
||||
if (IS_ERR(aspace) && !IS_ERR(mmu))
|
||||
if (IS_ERR(vm) && !IS_ERR(mmu))
|
||||
mmu->funcs->destroy(mmu);
|
||||
|
||||
return aspace;
|
||||
return vm;
|
||||
}
|
||||
|
||||
u64 adreno_private_address_space_size(struct msm_gpu *gpu)
|
||||
u64 adreno_private_vm_size(struct msm_gpu *gpu)
|
||||
{
|
||||
struct adreno_gpu *adreno_gpu = to_adreno_gpu(gpu);
|
||||
struct adreno_smmu_priv *adreno_smmu = dev_get_drvdata(&gpu->pdev->dev);
|
||||
@@ -275,7 +274,7 @@ void adreno_check_and_reenable_stall(struct adreno_gpu *adreno_gpu)
|
||||
!READ_ONCE(gpu->crashstate)) {
|
||||
priv->stall_enabled = true;
|
||||
|
||||
gpu->aspace->mmu->funcs->set_stall(gpu->aspace->mmu, true);
|
||||
gpu->vm->mmu->funcs->set_stall(gpu->vm->mmu, true);
|
||||
}
|
||||
spin_unlock_irqrestore(&priv->fault_stall_lock, flags);
|
||||
}
|
||||
@@ -303,8 +302,9 @@ int adreno_fault_handler(struct msm_gpu *gpu, unsigned long iova, int flags,
|
||||
if (priv->stall_enabled) {
|
||||
priv->stall_enabled = false;
|
||||
|
||||
gpu->aspace->mmu->funcs->set_stall(gpu->aspace->mmu, false);
|
||||
gpu->vm->mmu->funcs->set_stall(gpu->vm->mmu, false);
|
||||
}
|
||||
|
||||
priv->stall_reenable_time = ktime_add_ms(ktime_get(), 500);
|
||||
spin_unlock_irqrestore(&priv->fault_stall_lock, irq_flags);
|
||||
|
||||
@@ -401,8 +401,8 @@ int adreno_get_param(struct msm_gpu *gpu, struct msm_context *ctx,
|
||||
*value = 0;
|
||||
return 0;
|
||||
case MSM_PARAM_FAULTS:
|
||||
if (ctx->aspace)
|
||||
*value = gpu->global_faults + ctx->aspace->faults;
|
||||
if (ctx->vm)
|
||||
*value = gpu->global_faults + ctx->vm->faults;
|
||||
else
|
||||
*value = gpu->global_faults;
|
||||
return 0;
|
||||
@@ -410,14 +410,14 @@ int adreno_get_param(struct msm_gpu *gpu, struct msm_context *ctx,
|
||||
*value = gpu->suspend_count;
|
||||
return 0;
|
||||
case MSM_PARAM_VA_START:
|
||||
if (ctx->aspace == gpu->aspace)
|
||||
if (ctx->vm == gpu->vm)
|
||||
return UERR(EINVAL, drm, "requires per-process pgtables");
|
||||
*value = ctx->aspace->va_start;
|
||||
*value = ctx->vm->va_start;
|
||||
return 0;
|
||||
case MSM_PARAM_VA_SIZE:
|
||||
if (ctx->aspace == gpu->aspace)
|
||||
if (ctx->vm == gpu->vm)
|
||||
return UERR(EINVAL, drm, "requires per-process pgtables");
|
||||
*value = ctx->aspace->va_size;
|
||||
*value = ctx->vm->va_size;
|
||||
return 0;
|
||||
case MSM_PARAM_HIGHEST_BANK_BIT:
|
||||
*value = adreno_gpu->ubwc_config.highest_bank_bit;
|
||||
@@ -607,7 +607,7 @@ struct drm_gem_object *adreno_fw_create_bo(struct msm_gpu *gpu,
|
||||
void *ptr;
|
||||
|
||||
ptr = msm_gem_kernel_new(gpu->dev, fw->size - 4,
|
||||
MSM_BO_WC | MSM_BO_GPU_READONLY, gpu->aspace, &bo, iova);
|
||||
MSM_BO_WC | MSM_BO_GPU_READONLY, gpu->vm, &bo, iova);
|
||||
|
||||
if (IS_ERR(ptr))
|
||||
return ERR_CAST(ptr);
|
||||
|
||||
@@ -580,7 +580,7 @@ static inline int adreno_is_a7xx(struct adreno_gpu *gpu)
|
||||
|
||||
/* Put vm_start above 32b to catch issues with not setting xyz_BASE_HI */
|
||||
#define ADRENO_VM_START 0x100000000ULL
|
||||
u64 adreno_private_address_space_size(struct msm_gpu *gpu);
|
||||
u64 adreno_private_vm_size(struct msm_gpu *gpu);
|
||||
int adreno_get_param(struct msm_gpu *gpu, struct msm_context *ctx,
|
||||
uint32_t param, uint64_t *value, uint32_t *len);
|
||||
int adreno_set_param(struct msm_gpu *gpu, struct msm_context *ctx,
|
||||
@@ -623,14 +623,14 @@ void adreno_show_object(struct drm_printer *p, void **ptr, int len,
|
||||
* Common helper function to initialize the default address space for arm-smmu
|
||||
* attached targets
|
||||
*/
|
||||
struct msm_gem_address_space *
|
||||
adreno_create_address_space(struct msm_gpu *gpu,
|
||||
struct platform_device *pdev);
|
||||
struct msm_gem_vm *
|
||||
adreno_create_vm(struct msm_gpu *gpu,
|
||||
struct platform_device *pdev);
|
||||
|
||||
struct msm_gem_address_space *
|
||||
adreno_iommu_create_address_space(struct msm_gpu *gpu,
|
||||
struct platform_device *pdev,
|
||||
unsigned long quirks);
|
||||
struct msm_gem_vm *
|
||||
adreno_iommu_create_vm(struct msm_gpu *gpu,
|
||||
struct platform_device *pdev,
|
||||
unsigned long quirks);
|
||||
|
||||
int adreno_fault_handler(struct msm_gpu *gpu, unsigned long iova, int flags,
|
||||
struct adreno_smmu_fault_info *info, const char *block,
|
||||
|
||||
@@ -563,7 +563,7 @@ static void dpu_encoder_phys_wb_prepare_wb_job(struct dpu_encoder_phys *phys_enc
|
||||
struct drm_writeback_job *job)
|
||||
{
|
||||
const struct msm_format *format;
|
||||
struct msm_gem_address_space *aspace;
|
||||
struct msm_gem_vm *vm;
|
||||
struct dpu_hw_wb_cfg *wb_cfg;
|
||||
int ret;
|
||||
struct dpu_encoder_phys_wb *wb_enc = to_dpu_encoder_phys_wb(phys_enc);
|
||||
@@ -573,13 +573,13 @@ static void dpu_encoder_phys_wb_prepare_wb_job(struct dpu_encoder_phys *phys_enc
|
||||
|
||||
wb_enc->wb_job = job;
|
||||
wb_enc->wb_conn = job->connector;
|
||||
aspace = phys_enc->dpu_kms->base.aspace;
|
||||
vm = phys_enc->dpu_kms->base.vm;
|
||||
|
||||
wb_cfg = &wb_enc->wb_cfg;
|
||||
|
||||
memset(wb_cfg, 0, sizeof(struct dpu_hw_wb_cfg));
|
||||
|
||||
ret = msm_framebuffer_prepare(job->fb, aspace, false);
|
||||
ret = msm_framebuffer_prepare(job->fb, vm, false);
|
||||
if (ret) {
|
||||
DPU_ERROR("prep fb failed, %d\n", ret);
|
||||
return;
|
||||
@@ -593,7 +593,7 @@ static void dpu_encoder_phys_wb_prepare_wb_job(struct dpu_encoder_phys *phys_enc
|
||||
return;
|
||||
}
|
||||
|
||||
dpu_format_populate_addrs(aspace, job->fb, &wb_cfg->dest);
|
||||
dpu_format_populate_addrs(vm, job->fb, &wb_cfg->dest);
|
||||
|
||||
wb_cfg->dest.width = job->fb->width;
|
||||
wb_cfg->dest.height = job->fb->height;
|
||||
@@ -616,14 +616,14 @@ static void dpu_encoder_phys_wb_cleanup_wb_job(struct dpu_encoder_phys *phys_enc
|
||||
struct drm_writeback_job *job)
|
||||
{
|
||||
struct dpu_encoder_phys_wb *wb_enc = to_dpu_encoder_phys_wb(phys_enc);
|
||||
struct msm_gem_address_space *aspace;
|
||||
struct msm_gem_vm *vm;
|
||||
|
||||
if (!job->fb)
|
||||
return;
|
||||
|
||||
aspace = phys_enc->dpu_kms->base.aspace;
|
||||
vm = phys_enc->dpu_kms->base.vm;
|
||||
|
||||
msm_framebuffer_cleanup(job->fb, aspace, false);
|
||||
msm_framebuffer_cleanup(job->fb, vm, false);
|
||||
wb_enc->wb_job = NULL;
|
||||
wb_enc->wb_conn = NULL;
|
||||
}
|
||||
|
||||
@@ -274,7 +274,7 @@ int dpu_format_populate_plane_sizes(
|
||||
return _dpu_format_populate_plane_sizes_linear(fmt, fb, layout);
|
||||
}
|
||||
|
||||
static void _dpu_format_populate_addrs_ubwc(struct msm_gem_address_space *aspace,
|
||||
static void _dpu_format_populate_addrs_ubwc(struct msm_gem_vm *vm,
|
||||
struct drm_framebuffer *fb,
|
||||
struct dpu_hw_fmt_layout *layout)
|
||||
{
|
||||
@@ -282,7 +282,7 @@ static void _dpu_format_populate_addrs_ubwc(struct msm_gem_address_space *aspace
|
||||
uint32_t base_addr = 0;
|
||||
bool meta;
|
||||
|
||||
base_addr = msm_framebuffer_iova(fb, aspace, 0);
|
||||
base_addr = msm_framebuffer_iova(fb, vm, 0);
|
||||
|
||||
fmt = msm_framebuffer_format(fb);
|
||||
meta = MSM_FORMAT_IS_UBWC(fmt);
|
||||
@@ -355,7 +355,7 @@ static void _dpu_format_populate_addrs_ubwc(struct msm_gem_address_space *aspace
|
||||
}
|
||||
}
|
||||
|
||||
static void _dpu_format_populate_addrs_linear(struct msm_gem_address_space *aspace,
|
||||
static void _dpu_format_populate_addrs_linear(struct msm_gem_vm *vm,
|
||||
struct drm_framebuffer *fb,
|
||||
struct dpu_hw_fmt_layout *layout)
|
||||
{
|
||||
@@ -363,17 +363,17 @@ static void _dpu_format_populate_addrs_linear(struct msm_gem_address_space *aspa
|
||||
|
||||
/* Populate addresses for simple formats here */
|
||||
for (i = 0; i < layout->num_planes; ++i)
|
||||
layout->plane_addr[i] = msm_framebuffer_iova(fb, aspace, i);
|
||||
}
|
||||
layout->plane_addr[i] = msm_framebuffer_iova(fb, vm, i);
|
||||
}
|
||||
|
||||
/**
|
||||
* dpu_format_populate_addrs - populate buffer addresses based on
|
||||
* mmu, fb, and format found in the fb
|
||||
* @aspace: address space pointer
|
||||
* @vm: address space pointer
|
||||
* @fb: framebuffer pointer
|
||||
* @layout: format layout structure to populate
|
||||
*/
|
||||
void dpu_format_populate_addrs(struct msm_gem_address_space *aspace,
|
||||
void dpu_format_populate_addrs(struct msm_gem_vm *vm,
|
||||
struct drm_framebuffer *fb,
|
||||
struct dpu_hw_fmt_layout *layout)
|
||||
{
|
||||
@@ -384,7 +384,7 @@ void dpu_format_populate_addrs(struct msm_gem_address_space *aspace,
|
||||
/* Populate the addresses given the fb */
|
||||
if (MSM_FORMAT_IS_UBWC(fmt) ||
|
||||
MSM_FORMAT_IS_TILE(fmt))
|
||||
_dpu_format_populate_addrs_ubwc(aspace, fb, layout);
|
||||
_dpu_format_populate_addrs_ubwc(vm, fb, layout);
|
||||
else
|
||||
_dpu_format_populate_addrs_linear(aspace, fb, layout);
|
||||
_dpu_format_populate_addrs_linear(vm, fb, layout);
|
||||
}
|
||||
|
||||
@@ -31,7 +31,7 @@ static inline bool dpu_find_format(u32 format, const u32 *supported_formats,
|
||||
return false;
|
||||
}
|
||||
|
||||
void dpu_format_populate_addrs(struct msm_gem_address_space *aspace,
|
||||
void dpu_format_populate_addrs(struct msm_gem_vm *vm,
|
||||
struct drm_framebuffer *fb,
|
||||
struct dpu_hw_fmt_layout *layout);
|
||||
|
||||
|
||||
@@ -1095,26 +1095,26 @@ static void _dpu_kms_mmu_destroy(struct dpu_kms *dpu_kms)
|
||||
{
|
||||
struct msm_mmu *mmu;
|
||||
|
||||
if (!dpu_kms->base.aspace)
|
||||
if (!dpu_kms->base.vm)
|
||||
return;
|
||||
|
||||
mmu = dpu_kms->base.aspace->mmu;
|
||||
mmu = dpu_kms->base.vm->mmu;
|
||||
|
||||
mmu->funcs->detach(mmu);
|
||||
msm_gem_address_space_put(dpu_kms->base.aspace);
|
||||
msm_gem_vm_put(dpu_kms->base.vm);
|
||||
|
||||
dpu_kms->base.aspace = NULL;
|
||||
dpu_kms->base.vm = NULL;
|
||||
}
|
||||
|
||||
static int _dpu_kms_mmu_init(struct dpu_kms *dpu_kms)
|
||||
{
|
||||
struct msm_gem_address_space *aspace;
|
||||
struct msm_gem_vm *vm;
|
||||
|
||||
aspace = msm_kms_init_aspace(dpu_kms->dev);
|
||||
if (IS_ERR(aspace))
|
||||
return PTR_ERR(aspace);
|
||||
vm = msm_kms_init_vm(dpu_kms->dev);
|
||||
if (IS_ERR(vm))
|
||||
return PTR_ERR(vm);
|
||||
|
||||
dpu_kms->base.aspace = aspace;
|
||||
dpu_kms->base.vm = vm;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -71,7 +71,7 @@ static const uint32_t qcom_compressed_supported_formats[] = {
|
||||
|
||||
/*
|
||||
* struct dpu_plane - local dpu plane structure
|
||||
* @aspace: address space pointer
|
||||
* @vm: address space pointer
|
||||
* @csc_ptr: Points to dpu_csc_cfg structure to use for current
|
||||
* @catalog: Points to dpu catalog structure
|
||||
* @revalidate: force revalidation of all the plane properties
|
||||
@@ -654,8 +654,8 @@ static int dpu_plane_prepare_fb(struct drm_plane *plane,
|
||||
|
||||
DPU_DEBUG_PLANE(pdpu, "FB[%u]\n", fb->base.id);
|
||||
|
||||
/* cache aspace */
|
||||
pstate->aspace = kms->base.aspace;
|
||||
/* cache vm */
|
||||
pstate->vm = kms->base.vm;
|
||||
|
||||
/*
|
||||
* TODO: Need to sort out the msm_framebuffer_prepare() call below so
|
||||
@@ -664,9 +664,9 @@ static int dpu_plane_prepare_fb(struct drm_plane *plane,
|
||||
*/
|
||||
drm_gem_plane_helper_prepare_fb(plane, new_state);
|
||||
|
||||
if (pstate->aspace) {
|
||||
if (pstate->vm) {
|
||||
ret = msm_framebuffer_prepare(new_state->fb,
|
||||
pstate->aspace, pstate->needs_dirtyfb);
|
||||
pstate->vm, pstate->needs_dirtyfb);
|
||||
if (ret) {
|
||||
DPU_ERROR("failed to prepare framebuffer\n");
|
||||
return ret;
|
||||
@@ -689,7 +689,7 @@ static void dpu_plane_cleanup_fb(struct drm_plane *plane,
|
||||
|
||||
DPU_DEBUG_PLANE(pdpu, "FB[%u]\n", old_state->fb->base.id);
|
||||
|
||||
msm_framebuffer_cleanup(old_state->fb, old_pstate->aspace,
|
||||
msm_framebuffer_cleanup(old_state->fb, old_pstate->vm,
|
||||
old_pstate->needs_dirtyfb);
|
||||
}
|
||||
|
||||
@@ -1457,7 +1457,7 @@ static void dpu_plane_sspp_atomic_update(struct drm_plane *plane,
|
||||
pstate->needs_qos_remap |= (is_rt_pipe != pdpu->is_rt_pipe);
|
||||
pdpu->is_rt_pipe = is_rt_pipe;
|
||||
|
||||
dpu_format_populate_addrs(pstate->aspace, new_state->fb, &pstate->layout);
|
||||
dpu_format_populate_addrs(pstate->vm, new_state->fb, &pstate->layout);
|
||||
|
||||
DPU_DEBUG_PLANE(pdpu, "FB[%u] " DRM_RECT_FP_FMT "->crtc%u " DRM_RECT_FMT
|
||||
", %p4cc ubwc %d\n", fb->base.id, DRM_RECT_FP_ARG(&state->src),
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
/**
|
||||
* struct dpu_plane_state: Define dpu extension of drm plane state object
|
||||
* @base: base drm plane state object
|
||||
* @aspace: pointer to address space for input/output buffers
|
||||
* @vm: pointer to address space for input/output buffers
|
||||
* @pipe: software pipe description
|
||||
* @r_pipe: software pipe description of the second pipe
|
||||
* @pipe_cfg: software pipe configuration
|
||||
@@ -34,7 +34,7 @@
|
||||
*/
|
||||
struct dpu_plane_state {
|
||||
struct drm_plane_state base;
|
||||
struct msm_gem_address_space *aspace;
|
||||
struct msm_gem_vm *vm;
|
||||
struct dpu_sw_pipe pipe;
|
||||
struct dpu_sw_pipe r_pipe;
|
||||
struct dpu_sw_pipe_cfg pipe_cfg;
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user