[PATCH] drm/amdgpu: ttm_bind only when user needs gpu_addr in bo pin

Christian König deathsimple at vodafone.de
Wed Jul 12 07:54:32 UTC 2017


Looks like it makes sense, but why should that be useful?

Christian.

Am 12.07.2017 um 06:38 schrieb Chunming Zhou:
> Change-Id: I282e1212346ed76470cadf39153109ab135f32f3
> Signed-off-by: Chunming Zhou <David1.Zhou at amd.com>
> ---
>   drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 13 +++++++------
>   1 file changed, 7 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
> index a0ad0e0..81c1486 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
> @@ -778,15 +778,16 @@ int amdgpu_bo_pin_restricted(struct amdgpu_bo *bo, u32 domain,
>   		dev_err(adev->dev, "%p pin failed\n", bo);
>   		goto error;
>   	}
> -	r = amdgpu_ttm_bind(&bo->tbo, &bo->tbo.mem);
> -	if (unlikely(r)) {
> -		dev_err(adev->dev, "%p bind failed\n", bo);
> -		goto error;
> -	}
>   
>   	bo->pin_count = 1;
> -	if (gpu_addr != NULL)
> +	if (gpu_addr != NULL) {
> +		r = amdgpu_ttm_bind(&bo->tbo, &bo->tbo.mem);
> +		if (unlikely(r)) {
> +			dev_err(adev->dev, "%p bind failed\n", bo);
> +			goto error;
> +		}
>   		*gpu_addr = amdgpu_bo_gpu_offset(bo);
> +	}
>   	if (domain == AMDGPU_GEM_DOMAIN_VRAM) {
>   		adev->vram_pin_size += amdgpu_bo_size(bo);
>   		if (bo->flags & AMDGPU_GEM_CREATE_NO_CPU_ACCESS)




More information about the amd-gfx mailing list