diff options
| author | Christian König <christian.koenig@amd.com> | 2017-07-27 11:24:36 -0400 |
|---|---|---|
| committer | Alex Deucher <alexander.deucher@amd.com> | 2017-08-15 14:45:56 -0400 |
| commit | a4a02777892c16d98bbcc2ea2add47950bfbf9e0 (patch) | |
| tree | 8bff3ada728d2eff39876ebe6e70b7a444a18fe7 /drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | |
| parent | 9d903cbd9995bd63e04d71362a8b59ce49437544 (diff) | |
drm/amdgpu: use amdgpu_bo_create_kernel more often
Saves us quite a bunch of loc.
Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_device.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 34 |
1 files changed, 5 insertions, 29 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c index 3cd9df890b00..510188477fe5 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | |||
| @@ -336,35 +336,11 @@ static void amdgpu_block_invalid_wreg(struct amdgpu_device *adev, | |||
| 336 | 336 | ||
| 337 | static int amdgpu_vram_scratch_init(struct amdgpu_device *adev) | 337 | static int amdgpu_vram_scratch_init(struct amdgpu_device *adev) |
| 338 | { | 338 | { |
| 339 | int r; | 339 | return amdgpu_bo_create_kernel(adev, AMDGPU_GPU_PAGE_SIZE, |
| 340 | 340 | PAGE_SIZE, AMDGPU_GEM_DOMAIN_VRAM, | |
| 341 | if (adev->vram_scratch.robj == NULL) { | 341 | &adev->vram_scratch.robj, |
| 342 | r = amdgpu_bo_create(adev, AMDGPU_GPU_PAGE_SIZE, | 342 | &adev->vram_scratch.gpu_addr, |
| 343 | PAGE_SIZE, true, AMDGPU_GEM_DOMAIN_VRAM, | 343 | (void **)&adev->vram_scratch.ptr); |
| 344 | AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED | | ||
| 345 | AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS, | ||
| 346 | NULL, NULL, &adev->vram_scratch.robj); | ||
| 347 | if (r) { | ||
| 348 | return r; | ||
| 349 | } | ||
| 350 | } | ||
| 351 | |||
| 352 | r = amdgpu_bo_reserve(adev->vram_scratch.robj, false); | ||
| 353 | if (unlikely(r != 0)) | ||
| 354 | return r; | ||
| 355 | r = amdgpu_bo_pin(adev->vram_scratch.robj, | ||
| 356 | AMDGPU_GEM_DOMAIN_VRAM, &adev->vram_scratch.gpu_addr); | ||
| 357 | if (r) { | ||
| 358 | amdgpu_bo_unreserve(adev->vram_scratch.robj); | ||
| 359 | return r; | ||
| 360 | } | ||
| 361 | r = amdgpu_bo_kmap(adev->vram_scratch.robj, | ||
| 362 | (void **)&adev->vram_scratch.ptr); | ||
| 363 | if (r) | ||
| 364 | amdgpu_bo_unpin(adev->vram_scratch.robj); | ||
| 365 | amdgpu_bo_unreserve(adev->vram_scratch.robj); | ||
| 366 | |||
| 367 | return r; | ||
| 368 | } | 344 | } |
| 369 | 345 | ||
| 370 | static void amdgpu_vram_scratch_fini(struct amdgpu_device *adev) | 346 | static void amdgpu_vram_scratch_fini(struct amdgpu_device *adev) |
