Somalapuram Amaranath
2023-Jan-25 14:24 UTC
[Nouveau] [PATCH v3 2/4] drm/amdkfd: Use cursor start instead of ttm resource start
cleanup PAGE_SHIFT operation and replacing ttm_resource resource->start with cursor start using amdgpu_res_first API. v1 -> v2: reorder patch sequence v2 -> v3: addressing review comment v2 Signed-off-by: Somalapuram Amaranath <Amaranath.Somalapuram at amd.com> --- drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c index c06ada0844ba..9114393d2ee6 100644 --- a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c +++ b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c @@ -200,8 +200,12 @@ static int add_queue_mes(struct device_queue_manager *dqm, struct queue *q, queue_input.wptr_addr = (uint64_t)q->properties.write_ptr; if (q->wptr_bo) { + struct amdgpu_res_cursor cursor; + wptr_addr_off = (uint64_t)q->properties.write_ptr & (PAGE_SIZE - 1); - queue_input.wptr_mc_addr = ((uint64_t)q->wptr_bo->tbo.resource->start << PAGE_SHIFT) + wptr_addr_off; + amdgpu_res_first(q->wptr_bo->tbo.resource, 0, + q->wptr_bo->tbo.resource->size, &cursor); + queue_input.wptr_mc_addr = cursor.start + wptr_addr_off; } queue_input.is_kfd_process = 1; -- 2.32.0
Christian König
2023-Jan-25 14:27 UTC
[Nouveau] [PATCH v3 2/4] drm/amdkfd: Use cursor start instead of ttm resource start
Am 25.01.23 um 15:24 schrieb Somalapuram Amaranath:> cleanup PAGE_SHIFT operation and replacing > ttm_resource resource->start with cursor start > using amdgpu_res_first API. > v1 -> v2: reorder patch sequence > v2 -> v3: addressing review comment v2 > > Signed-off-by: Somalapuram Amaranath <Amaranath.Somalapuram at amd.com>Reviewed-by: Christian K?nig <christian.koenig at amd.com>> --- > drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c > index c06ada0844ba..9114393d2ee6 100644 > --- a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c > +++ b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c > @@ -200,8 +200,12 @@ static int add_queue_mes(struct device_queue_manager *dqm, struct queue *q, > queue_input.wptr_addr = (uint64_t)q->properties.write_ptr; > > if (q->wptr_bo) { > + struct amdgpu_res_cursor cursor; > + > wptr_addr_off = (uint64_t)q->properties.write_ptr & (PAGE_SIZE - 1); > - queue_input.wptr_mc_addr = ((uint64_t)q->wptr_bo->tbo.resource->start << PAGE_SHIFT) + wptr_addr_off; > + amdgpu_res_first(q->wptr_bo->tbo.resource, 0, > + q->wptr_bo->tbo.resource->size, &cursor); > + queue_input.wptr_mc_addr = cursor.start + wptr_addr_off; > } > > queue_input.is_kfd_process = 1;