On 06/01/2017 06:55 AM, Christian König wrote:
Am 31.05.2017 um 21:28 schrieb Leo Liu:
To simplify vce bo create

Signed-off-by: Leo Liu <leo....@amd.com>
---
drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c | 27 +++------------------------
  1 file changed, 3 insertions(+), 24 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c
index 735c38d..b9b0906 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c
@@ -165,35 +165,14 @@ int amdgpu_vce_sw_init(struct amdgpu_device *adev, unsigned long size) adev->vce.fw_version = ((version_major << 24) | (version_minor << 16) |
                  (binary_id << 8));
  -    /* allocate firmware, stack and heap BO */
-
-    r = amdgpu_bo_create(adev, size, PAGE_SIZE, true,
-                 AMDGPU_GEM_DOMAIN_VRAM,
-                 AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED |
-                 AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS,
-                 NULL, NULL, &adev->vce.vcpu_bo);
+    r = amdgpu_bo_create_kernel(adev, size, PAGE_SIZE,
+                    AMDGPU_GEM_DOMAIN_VRAM, &adev->vce.vcpu_bo,
+                    &adev->vce.gpu_addr, &adev->vce.cpu_addr);

When you now CPU map the BO you also need to make sure that this mapping is properly destroyed in amdgpu_vce_sw_fini().

In other words use amdgpu_bo_free_kernel() in amdgpu_vce_sw_fini() as well :)

Thanks for pointing this out. I will add it following your comment.

Thanks,
Leo


Apart from that the set looks good to me,
Christian.

      if (r) {
          dev_err(adev->dev, "(%d) failed to allocate VCE bo\n", r);
          return r;
      }
  -    r = amdgpu_bo_reserve(adev->vce.vcpu_bo, false);
-    if (r) {
-        amdgpu_bo_unref(&adev->vce.vcpu_bo);
-        dev_err(adev->dev, "(%d) failed to reserve VCE bo\n", r);
-        return r;
-    }
-
-    r = amdgpu_bo_pin(adev->vce.vcpu_bo, AMDGPU_GEM_DOMAIN_VRAM,
-              &adev->vce.gpu_addr);
-    amdgpu_bo_unreserve(adev->vce.vcpu_bo);
-    if (r) {
-        amdgpu_bo_unref(&adev->vce.vcpu_bo);
-        dev_err(adev->dev, "(%d) VCE bo pin failed\n", r);
-        return r;
-    }
-
-
      ring = &adev->vce.ring[0];
      rq = &ring->sched.sched_rq[AMD_SCHED_PRIORITY_NORMAL];
      r = amd_sched_entity_init(&ring->sched, &adev->vce.entity,



_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

Reply via email to