On 11/13/25 17:05, Pierre-Eric Pelloux-Prayer wrote:
This is the only use case for this function.
v2: amdgpu_ttm_clear_buffer instead of amdgpu_clear_buffer
Signed-off-by: Pierre-Eric Pelloux-Prayer pierre-eric.pelloux-prayer@amd.com
Reviewed-by: Christian König christian.koenig@amd.com
drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 8 +++---- drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 26 ++++++++++------------ drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h | 15 ++++++------- 3 files changed, 23 insertions(+), 26 deletions(-)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c index 4490b19752b8..4b9518097899 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c @@ -725,8 +725,8 @@ int amdgpu_bo_create(struct amdgpu_device *adev, bo->tbo.resource->mem_type == TTM_PL_VRAM) { struct dma_fence *fence;
r = amdgpu_fill_buffer(NULL, bo, 0, NULL, &fence, NULL,true, AMDGPU_KERNEL_JOB_ID_TTM_CLEAR_BUFFER);
r = amdgpu_ttm_clear_buffer(NULL, bo, NULL, &fence, NULL, if (unlikely(r)) goto fail_unreserve;true, AMDGPU_KERNEL_JOB_ID_TTM_CLEAR_BUFFER);@@ -1324,8 +1324,8 @@ void amdgpu_bo_release_notify(struct ttm_buffer_object *bo) if (r) goto out;
- r = amdgpu_fill_buffer(NULL, abo, 0, &bo->base._resv, &fence, NULL,
false, AMDGPU_KERNEL_JOB_ID_CLEAR_ON_RELEASE);
- r = amdgpu_ttm_clear_buffer(NULL, abo, &bo->base._resv, &fence, NULL,
if (WARN_ON(r)) goto out;false, AMDGPU_KERNEL_JOB_ID_CLEAR_ON_RELEASE);diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c index df05768c3817..0a55bc4ea91f 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c @@ -433,9 +433,9 @@ static int amdgpu_move_blit(struct ttm_buffer_object *bo, (abo->flags & AMDGPU_GEM_CREATE_VRAM_WIPE_ON_RELEASE)) { struct dma_fence *wipe_fence = NULL;
r = amdgpu_fill_buffer(entity,abo, 0, NULL, &wipe_fence, fence,false, AMDGPU_KERNEL_JOB_ID_MOVE_BLIT);
r = amdgpu_ttm_clear_buffer(entity,abo, NULL, &wipe_fence, fence, if (r) { goto error; } else if (wipe_fence) {false, AMDGPU_KERNEL_JOB_ID_MOVE_BLIT);@@ -2418,11 +2418,10 @@ static int amdgpu_ttm_fill_mem(struct amdgpu_ring *ring, } /**
- amdgpu_fill_buffer - fill a buffer with a given value
- amdgpu_ttm_clear_buffer - fill a buffer with 0
- @entity: optional entity to use. If NULL, the clearing entities will be
used to load-balance the partial clears- @bo: the bo to fill
- @src_data: the value to set
- @resv: fences contained in this reservation will be used as dependencies.
- @out_fence: the fence from the last clear will be stored here. It might be
NULL if no job was run.@@ -2432,14 +2431,13 @@ static int amdgpu_ttm_fill_mem(struct amdgpu_ring *ring,
- @k_job_id: trace id
*/ -int amdgpu_fill_buffer(struct amdgpu_ttm_buffer_entity *entity,
struct amdgpu_bo *bo,uint32_t src_data,struct dma_resv *resv,struct dma_fence **out_fence,struct dma_fence *dependency,bool consider_clear_status,u64 k_job_id)+int amdgpu_ttm_clear_buffer(struct amdgpu_ttm_buffer_entity *entity,
struct amdgpu_bo *bo,struct dma_resv *resv,struct dma_fence **out_fence,struct dma_fence *dependency,bool consider_clear_status,u64 k_job_id){ struct amdgpu_device *adev = amdgpu_ttm_adev(bo->tbo.bdev); struct dma_fence *fence = NULL; @@ -2486,7 +2484,7 @@ int amdgpu_fill_buffer(struct amdgpu_ttm_buffer_entity *entity, goto error; r = amdgpu_ttm_fill_mem(ring, &entity->base,
src_data, to, cur_size, resv,
if (r) goto error;0, to, cur_size, resv, &next, true, k_job_id);diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h index e01c2173d79f..585aee9a173b 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h @@ -181,14 +181,13 @@ int amdgpu_copy_buffer(struct amdgpu_ring *ring, struct dma_resv *resv, struct dma_fence **fence, bool vm_needs_flush, uint32_t copy_flags); -int amdgpu_fill_buffer(struct amdgpu_ttm_buffer_entity *entity,
struct amdgpu_bo *bo,uint32_t src_data,struct dma_resv *resv,struct dma_fence **out_fence,struct dma_fence *dependency,bool consider_clear_status,u64 k_job_id);+int amdgpu_ttm_clear_buffer(struct amdgpu_ttm_buffer_entity *entity,
struct amdgpu_bo *bo,struct dma_resv *resv,struct dma_fence **out_fence,struct dma_fence *dependency,bool consider_clear_status,u64 k_job_id);int amdgpu_ttm_alloc_gart(struct ttm_buffer_object *bo); void amdgpu_ttm_recover_gart(struct ttm_buffer_object *tbo);