[PATCH 2/3] drm/amdgpu: use existing function amdgpu_bo_create_kernel
Leo Liu
leo.liu at amd.com
Thu Jun 1 13:11:03 UTC 2017
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.liu at 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,
>
>
More information about the amd-gfx
mailing list