Re: [PATCH] drm/amdgpu: use amdgpu_bo_[create|free]_kernel for wb

2016-10-22 Thread Christian König

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

2016-10-22 Thread 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));
> 



signature.asc
Description: OpenPGP digital signature
___
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx