From faa64f633c3762cedd4c539ccb210dc9cc3f8849 Mon Sep 17 00:00:00 2001 From: Frank Min Date: Wed, 10 Apr 2024 21:40:16 +0800 Subject: drm/amdgpu: add sdma 7.0 support for copy dcc buffer MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. Add dcc buffer flag for copy buffer 2. Add sdma 7.0 support copy dcc buffer Signed-off-by: Likun Gao Signed-off-by: Frank Min Reviewed-by: Hawking Zhang Reviewed-by: Alex Deucher Reviewed-by: Christian König Signed-off-by: Alex Deucher --- drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c') diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c index f09f33d1beec..9a92dd3c9fb8 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c @@ -295,8 +295,8 @@ int amdgpu_ttm_copy_mem_to_mem(struct amdgpu_device *adev, struct amdgpu_res_cursor src_mm, dst_mm; struct dma_fence *fence = NULL; int r = 0; - uint32_t copy_flags = 0; + struct amdgpu_bo *abo_src, *abo_dst; if (!adev->mman.buffer_funcs_enabled) { DRM_ERROR("Trying to move memory with ring turned off.\n"); @@ -325,8 +325,14 @@ int amdgpu_ttm_copy_mem_to_mem(struct amdgpu_device *adev, if (r) goto error; + abo_src = ttm_to_amdgpu_bo(src->bo); + abo_dst = ttm_to_amdgpu_bo(dst->bo); if (tmz) copy_flags |= AMDGPU_COPY_FLAGS_TMZ; + if (abo_src->flags & AMDGPU_GEM_CREATE_GFX12_DCC) + copy_flags |= AMDGPU_COPY_FLAGS_READ_DECOMPRESSED; + if (abo_dst->flags & AMDGPU_GEM_CREATE_GFX12_DCC) + copy_flags |= AMDGPU_COPY_FLAGS_WRITE_COMPRESSED; r = amdgpu_copy_buffer(ring, from, to, cur_size, resv, &next, false, true, copy_flags); -- cgit