diff options
Diffstat (limited to 'drivers/gpu/drm/lima')
| -rw-r--r-- | drivers/gpu/drm/lima/lima_mmu.c | 3 | ||||
| -rw-r--r-- | drivers/gpu/drm/lima/lima_sched.c | 14 | 
2 files changed, 5 insertions, 12 deletions
diff --git a/drivers/gpu/drm/lima/lima_mmu.c b/drivers/gpu/drm/lima/lima_mmu.c index f79d2af427e7..c26b751b0f9d 100644 --- a/drivers/gpu/drm/lima/lima_mmu.c +++ b/drivers/gpu/drm/lima/lima_mmu.c @@ -113,8 +113,7 @@ void lima_mmu_switch_vm(struct lima_ip *ip, struct lima_vm *vm)  			      LIMA_MMU_STATUS, v,  			      v & LIMA_MMU_STATUS_STALL_ACTIVE); -	if (vm) -		mmu_write(LIMA_MMU_DTE_ADDR, vm->pd.dma); +	mmu_write(LIMA_MMU_DTE_ADDR, vm->pd.dma);  	/* flush the TLB */  	mmu_write(LIMA_MMU_COMMAND, LIMA_MMU_COMMAND_ZAP_CACHE); diff --git a/drivers/gpu/drm/lima/lima_sched.c b/drivers/gpu/drm/lima/lima_sched.c index 3ac5797e31fc..eb46db0717cd 100644 --- a/drivers/gpu/drm/lima/lima_sched.c +++ b/drivers/gpu/drm/lima/lima_sched.c @@ -200,7 +200,6 @@ static struct dma_fence *lima_sched_run_job(struct drm_sched_job *job)  	struct lima_sched_pipe *pipe = to_lima_pipe(job->sched);  	struct lima_fence *fence;  	struct dma_fence *ret; -	struct lima_vm *vm = NULL, *last_vm = NULL;  	int i;  	/* after GPU reset */ @@ -239,21 +238,16 @@ static struct dma_fence *lima_sched_run_job(struct drm_sched_job *job)  	for (i = 0; i < pipe->num_l2_cache; i++)  		lima_l2_cache_flush(pipe->l2_cache[i]); -	if (task->vm != pipe->current_vm) { -		vm = lima_vm_get(task->vm); -		last_vm = pipe->current_vm; -		pipe->current_vm = task->vm; -	} +	lima_vm_put(pipe->current_vm); +	pipe->current_vm = lima_vm_get(task->vm);  	if (pipe->bcast_mmu) -		lima_mmu_switch_vm(pipe->bcast_mmu, vm); +		lima_mmu_switch_vm(pipe->bcast_mmu, pipe->current_vm);  	else {  		for (i = 0; i < pipe->num_mmu; i++) -			lima_mmu_switch_vm(pipe->mmu[i], vm); +			lima_mmu_switch_vm(pipe->mmu[i], pipe->current_vm);  	} -	lima_vm_put(last_vm); -  	trace_lima_task_run(task);  	pipe->error = false;  | 
