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

Christian König deathsimple at vodafone.de
Sat Oct 22 17:45:44 UTC 2016


Reviewed-by: Christian König <christian.koenig at amd.com>.

Am 22.10.2016 um 10:20 schrieb Edward O'Callaghan:
> Acked-by: Edward O'Callaghan <funfunctor at folklore1984.net>
>
> On 10/22/2016 06:31 AM, Alex Deucher wrote:
>> Rather than open coding it.
>>
>> Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
>> ---
>>   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(&adev->wb.wb_obj);
>> -		adev->wb.wb = NULL;
>> +		amdgpu_bo_free_kernel(&adev->wb.wb_obj,
>> +				      &adev->wb.gpu_addr,
>> +				      (void **)&adev->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,
>> -				     &adev->wb.wb_obj);
>> +		r = amdgpu_bo_create_kernel(adev, AMDGPU_MAX_WB * 4,
>> +					    PAGE_SIZE, AMDGPU_GEM_DOMAIN_GTT,
>> +					    &adev->wb.wb_obj, &adev->wb.gpu_addr,
>> +					    (void **)&adev->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,
>> -				&adev->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 **)&adev->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(&adev->wb.used, 0, sizeof(adev->wb.used));
>>
>
>
> _______________________________________________
> amd-gfx mailing list
> amd-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/amd-gfx/attachments/20161022/7ee6cc79/attachment.html>


More information about the amd-gfx mailing list