[PATCH 1/2] drm/amdgpu: Add support for filling a buffer with 64 bit value
Zhao, Yong
Yong.Zhao at amd.com
Thu Jul 27 15:44:59 UTC 2017
Hi Christian,
I used eclipse. The reason why I changed the indent is that the current indents are composed of tabs and spaces, and I will get style warning from checkpatch script when trying to submit it to gerrit, so I made the indents all tabs. In this case, should I still use the previous indents?
Regards,
Yong
________________________________
From: Christian König <deathsimple at vodafone.de>
Sent: Thursday, July 27, 2017 5:34:58 AM
To: Zhao, Yong; amd-gfx at lists.freedesktop.org
Subject: Re: [PATCH 1/2] drm/amdgpu: Add support for filling a buffer with 64 bit value
Am 26.07.2017 um 22:45 schrieb Yong Zhao:
> That function will be used later to support setting a page table
> block with 64 bit value.
>
> Change-Id: Ib142ebd4163d6e23670a3f0ceed536d59133b942
> Signed-off-by: Yong Zhao <Yong.Zhao at amd.com>
> ---
> drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 19 +++++++++++++------
> drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h | 2 +-
> 2 files changed, 14 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
> index 4d2a454..6ab30da 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
> @@ -1509,11 +1509,12 @@ int amdgpu_copy_buffer(struct amdgpu_ring *ring, uint64_t src_offset,
> }
>
> int amdgpu_fill_buffer(struct amdgpu_bo *bo,
> - uint32_t src_data,
> - struct reservation_object *resv,
> - struct dma_fence **fence)
> + uint64_t src_data,
> + struct reservation_object *resv,
> + struct dma_fence **fence)
Looks like you accidentally changed the indentation of the other
function parameters here. What editor do you use?
Please make sure that you only change the type, with that fixed the
patch is Reviewed-by: Christian König <christian.koenig at amd.com>.
Regards,
Christian.
> {
> struct amdgpu_device *adev = amdgpu_ttm_adev(bo->tbo.bdev);
> + /* max_bytes applies to SDMA_OP_PTEPDE as well as SDMA_OP_CONST_FILL*/
> uint32_t max_bytes = adev->mman.buffer_funcs->fill_max_bytes;
> struct amdgpu_ring *ring = adev->mman.buffer_funcs_ring;
>
> @@ -1545,7 +1546,9 @@ int amdgpu_fill_buffer(struct amdgpu_bo *bo,
> num_pages -= mm_node->size;
> ++mm_node;
> }
> - num_dw = num_loops * adev->mman.buffer_funcs->fill_num_dw;
> +
> + /* 10 double words for each SDMA_OP_PTEPDE cmd */
> + num_dw = num_loops * 10;
>
> /* for IB padding */
> num_dw += 64;
> @@ -1570,12 +1573,16 @@ int amdgpu_fill_buffer(struct amdgpu_bo *bo,
> uint32_t byte_count = mm_node->size << PAGE_SHIFT;
> uint64_t dst_addr;
>
> + WARN_ONCE(byte_count & 0x7, "size should be a multiple of 8");
> +
> dst_addr = amdgpu_mm_node_addr(&bo->tbo, mm_node, &bo->tbo.mem);
> while (byte_count) {
> uint32_t cur_size_in_bytes = min(byte_count, max_bytes);
>
> - amdgpu_emit_fill_buffer(adev, &job->ibs[0], src_data,
> - dst_addr, cur_size_in_bytes);
> + amdgpu_vm_set_pte_pde(adev, &job->ibs[0],
> + dst_addr, 0,
> + cur_size_in_bytes >> 3, 0,
> + src_data);
>
> dst_addr += cur_size_in_bytes;
> byte_count -= cur_size_in_bytes;
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h
> index f137c24..0e2399f 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h
> @@ -73,7 +73,7 @@ int amdgpu_copy_buffer(struct amdgpu_ring *ring, uint64_t src_offset,
> struct dma_fence **fence, bool direct_submit,
> bool vm_needs_flush);
> int amdgpu_fill_buffer(struct amdgpu_bo *bo,
> - uint32_t src_data,
> + uint64_t src_data,
> struct reservation_object *resv,
> struct dma_fence **fence);
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/amd-gfx/attachments/20170727/edeb8377/attachment-0001.html>
More information about the amd-gfx
mailing list