Re: [PATCH] drm/amdgpu: use amdgpu_bo_[create|free]_kernel for wb
Reviewed-by: Christian König. Am 22.10.2016 um 10:20 schrieb Edward O'Callaghan: Acked-by: Edward O'Callaghan On 10/22/2016 06:31 AM, Alex Deucher wrote: Rather than open coding it. Signed-off-by: Alex Deucher --- drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 37 ++ 1 file changed, 7 insertions(+), 30 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c index b7b6542..314295f 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c @@ -443,13 +443,9 @@ void amdgpu_doorbell_get_kfd_info(struct amdgpu_device *adev, static void amdgpu_wb_fini(struct amdgpu_device *adev) { if (adev->wb.wb_obj) { - if (!amdgpu_bo_reserve(adev->wb.wb_obj, false)) { - amdgpu_bo_kunmap(adev->wb.wb_obj); - amdgpu_bo_unpin(adev->wb.wb_obj); - amdgpu_bo_unreserve(adev->wb.wb_obj); - } - amdgpu_bo_unref(>wb.wb_obj); - adev->wb.wb = NULL; + amdgpu_bo_free_kernel(>wb.wb_obj, + >wb.gpu_addr, + (void **)>wb.wb); adev->wb.wb_obj = NULL; } } @@ -468,33 +464,14 @@ static int amdgpu_wb_init(struct amdgpu_device *adev) int r; if (adev->wb.wb_obj == NULL) { - r = amdgpu_bo_create(adev, AMDGPU_MAX_WB * 4, PAGE_SIZE, true, -AMDGPU_GEM_DOMAIN_GTT, 0, NULL, NULL, ->wb.wb_obj); + r = amdgpu_bo_create_kernel(adev, AMDGPU_MAX_WB * 4, + PAGE_SIZE, AMDGPU_GEM_DOMAIN_GTT, + >wb.wb_obj, >wb.gpu_addr, + (void **)>wb.wb); if (r) { dev_warn(adev->dev, "(%d) create WB bo failed\n", r); return r; } - r = amdgpu_bo_reserve(adev->wb.wb_obj, false); - if (unlikely(r != 0)) { - amdgpu_wb_fini(adev); - return r; - } - r = amdgpu_bo_pin(adev->wb.wb_obj, AMDGPU_GEM_DOMAIN_GTT, - >wb.gpu_addr); - if (r) { - amdgpu_bo_unreserve(adev->wb.wb_obj); - dev_warn(adev->dev, "(%d) pin WB bo failed\n", r); - amdgpu_wb_fini(adev); - return r; - } - r = amdgpu_bo_kmap(adev->wb.wb_obj, (void **)>wb.wb); - amdgpu_bo_unreserve(adev->wb.wb_obj); - if (r) { - dev_warn(adev->dev, "(%d) map WB bo failed\n", r); - amdgpu_wb_fini(adev); - return r; - } adev->wb.num_wb = AMDGPU_MAX_WB; memset(>wb.used, 0, sizeof(adev->wb.used)); ___ amd-gfx mailing list amd-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/amd-gfx ___ amd-gfx mailing list amd-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/amd-gfx
Re: [PATCH] drm/amdgpu: use amdgpu_bo_[create|free]_kernel for wb
Acked-by: Edward O'CallaghanOn 10/22/2016 06:31 AM, Alex Deucher wrote: > Rather than open coding it. > > Signed-off-by: Alex Deucher > --- > drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 37 > ++ > 1 file changed, 7 insertions(+), 30 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c > b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c > index b7b6542..314295f 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c > @@ -443,13 +443,9 @@ void amdgpu_doorbell_get_kfd_info(struct amdgpu_device > *adev, > static void amdgpu_wb_fini(struct amdgpu_device *adev) > { > if (adev->wb.wb_obj) { > - if (!amdgpu_bo_reserve(adev->wb.wb_obj, false)) { > - amdgpu_bo_kunmap(adev->wb.wb_obj); > - amdgpu_bo_unpin(adev->wb.wb_obj); > - amdgpu_bo_unreserve(adev->wb.wb_obj); > - } > - amdgpu_bo_unref(>wb.wb_obj); > - adev->wb.wb = NULL; > + amdgpu_bo_free_kernel(>wb.wb_obj, > + >wb.gpu_addr, > + (void **)>wb.wb); > adev->wb.wb_obj = NULL; > } > } > @@ -468,33 +464,14 @@ static int amdgpu_wb_init(struct amdgpu_device *adev) > int r; > > if (adev->wb.wb_obj == NULL) { > - r = amdgpu_bo_create(adev, AMDGPU_MAX_WB * 4, PAGE_SIZE, true, > - AMDGPU_GEM_DOMAIN_GTT, 0, NULL, NULL, > - >wb.wb_obj); > + r = amdgpu_bo_create_kernel(adev, AMDGPU_MAX_WB * 4, > + PAGE_SIZE, AMDGPU_GEM_DOMAIN_GTT, > + >wb.wb_obj, > >wb.gpu_addr, > + (void **)>wb.wb); > if (r) { > dev_warn(adev->dev, "(%d) create WB bo failed\n", r); > return r; > } > - r = amdgpu_bo_reserve(adev->wb.wb_obj, false); > - if (unlikely(r != 0)) { > - amdgpu_wb_fini(adev); > - return r; > - } > - r = amdgpu_bo_pin(adev->wb.wb_obj, AMDGPU_GEM_DOMAIN_GTT, > - >wb.gpu_addr); > - if (r) { > - amdgpu_bo_unreserve(adev->wb.wb_obj); > - dev_warn(adev->dev, "(%d) pin WB bo failed\n", r); > - amdgpu_wb_fini(adev); > - return r; > - } > - r = amdgpu_bo_kmap(adev->wb.wb_obj, (void **)>wb.wb); > - amdgpu_bo_unreserve(adev->wb.wb_obj); > - if (r) { > - dev_warn(adev->dev, "(%d) map WB bo failed\n", r); > - amdgpu_wb_fini(adev); > - return r; > - } > > adev->wb.num_wb = AMDGPU_MAX_WB; > memset(>wb.used, 0, sizeof(adev->wb.used)); > signature.asc Description: OpenPGP digital signature ___ amd-gfx mailing list amd-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/amd-gfx