OSDN Git Service

drm/amdgpu: use amdgpu_bo_create_kernel in amdgpu_ih.c
authorChristian König <christian.koenig@amd.com>
Mon, 25 Jul 2016 16:06:30 +0000 (18:06 +0200)
committerAlex Deucher <alexander.deucher@amd.com>
Mon, 8 Aug 2016 15:32:20 +0000 (11:32 -0400)
Saves us quite a bunch of code.

Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Chunming Zhou <david1.zhou@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_ih.c

index 534fc04..5ebb3f4 100644 (file)
@@ -40,32 +40,15 @@ static int amdgpu_ih_ring_alloc(struct amdgpu_device *adev)
 
        /* Allocate ring buffer */
        if (adev->irq.ih.ring_obj == NULL) {
-               r = amdgpu_bo_create(adev, adev->irq.ih.ring_size,
-                                    PAGE_SIZE, true,
-                                    AMDGPU_GEM_DOMAIN_GTT, 0,
-                                    NULL, NULL, &adev->irq.ih.ring_obj);
+               r = amdgpu_bo_create_kernel(adev, adev->irq.ih.ring_size,
+                                           PAGE_SIZE, AMDGPU_GEM_DOMAIN_GTT,
+                                           &adev->irq.ih.ring_obj,
+                                           &adev->irq.ih.gpu_addr,
+                                           (void **)&adev->irq.ih.ring);
                if (r) {
                        DRM_ERROR("amdgpu: failed to create ih ring buffer (%d).\n", r);
                        return r;
                }
-               r = amdgpu_bo_reserve(adev->irq.ih.ring_obj, false);
-               if (unlikely(r != 0))
-                       return r;
-               r = amdgpu_bo_pin(adev->irq.ih.ring_obj,
-                                 AMDGPU_GEM_DOMAIN_GTT,
-                                 &adev->irq.ih.gpu_addr);
-               if (r) {
-                       amdgpu_bo_unreserve(adev->irq.ih.ring_obj);
-                       DRM_ERROR("amdgpu: failed to pin ih ring buffer (%d).\n", r);
-                       return r;
-               }
-               r = amdgpu_bo_kmap(adev->irq.ih.ring_obj,
-                                  (void **)&adev->irq.ih.ring);
-               amdgpu_bo_unreserve(adev->irq.ih.ring_obj);
-               if (r) {
-                       DRM_ERROR("amdgpu: failed to map ih ring buffer (%d).\n", r);
-                       return r;
-               }
        }
        return 0;
 }