diff options
Diffstat (limited to 'drivers/gpu/drm/msm/msm_gpu.c')
| -rw-r--r-- | drivers/gpu/drm/msm/msm_gpu.c | 32 | 
1 files changed, 16 insertions, 16 deletions
| diff --git a/drivers/gpu/drm/msm/msm_gpu.c b/drivers/gpu/drm/msm/msm_gpu.c index 52db90e34ead..7f64c6667300 100644 --- a/drivers/gpu/drm/msm/msm_gpu.c +++ b/drivers/gpu/drm/msm/msm_gpu.c @@ -219,36 +219,36 @@ static void msm_gpu_devcoredump_free(void *data)  }  static void msm_gpu_crashstate_get_bo(struct msm_gpu_state *state, -		struct msm_gem_object *obj, u64 iova, bool full) +		struct drm_gem_object *obj, u64 iova, bool full)  {  	struct msm_gpu_state_bo *state_bo = &state->bos[state->nr_bos];  	/* Don't record write only objects */ -	state_bo->size = obj->base.size; +	state_bo->size = obj->size;  	state_bo->iova = iova; -	BUILD_BUG_ON(sizeof(state_bo->name) != sizeof(obj->name)); +	BUILD_BUG_ON(sizeof(state_bo->name) != sizeof(to_msm_bo(obj)->name)); -	memcpy(state_bo->name, obj->name, sizeof(state_bo->name)); +	memcpy(state_bo->name, to_msm_bo(obj)->name, sizeof(state_bo->name));  	if (full) {  		void *ptr; -		state_bo->data = kvmalloc(obj->base.size, GFP_KERNEL); +		state_bo->data = kvmalloc(obj->size, GFP_KERNEL);  		if (!state_bo->data)  			goto out; -		msm_gem_lock(&obj->base); -		ptr = msm_gem_get_vaddr_active(&obj->base); -		msm_gem_unlock(&obj->base); +		msm_gem_lock(obj); +		ptr = msm_gem_get_vaddr_active(obj); +		msm_gem_unlock(obj);  		if (IS_ERR(ptr)) {  			kvfree(state_bo->data);  			state_bo->data = NULL;  			goto out;  		} -		memcpy(state_bo->data, ptr, obj->base.size); -		msm_gem_put_vaddr(&obj->base); +		memcpy(state_bo->data, ptr, obj->size); +		msm_gem_put_vaddr(obj);  	}  out:  	state->nr_bos++; @@ -749,13 +749,11 @@ void msm_gpu_submit(struct msm_gpu *gpu, struct msm_gem_submit *submit)  	struct msm_ringbuffer *ring = submit->ring;  	unsigned long flags; -	WARN_ON(!mutex_is_locked(&gpu->lock)); -  	pm_runtime_get_sync(&gpu->pdev->dev); -	msm_gpu_hw_init(gpu); +	mutex_lock(&gpu->lock); -	submit->seqno = submit->hw_fence->seqno; +	msm_gpu_hw_init(gpu);  	update_sw_cntrs(gpu); @@ -781,8 +779,11 @@ void msm_gpu_submit(struct msm_gpu *gpu, struct msm_gem_submit *submit)  	gpu->funcs->submit(gpu, submit);  	gpu->cur_ctx_seqno = submit->queue->ctx->seqno; -	pm_runtime_put(&gpu->pdev->dev);  	hangcheck_timer_reset(gpu); + +	mutex_unlock(&gpu->lock); + +	pm_runtime_put(&gpu->pdev->dev);  }  /* @@ -897,7 +898,6 @@ int msm_gpu_init(struct drm_device *drm, struct platform_device *pdev,  	gpu->irq = platform_get_irq(pdev, 0);  	if (gpu->irq < 0) {  		ret = gpu->irq; -		DRM_DEV_ERROR(drm->dev, "failed to get irq: %d\n", ret);  		goto fail;  	} | 
