On Wed, Oct 14, 2026 at 8:41 PM Willian Oliveira
<[email protected]> wrote:
>
> gfx_v7_0_sw_fini() and gfx_v8_0_sw_fini() already call
> amdgpu_gfx_rlc_fini(), which releases the RLC objects used by these
> IP blocks.
>
> Remove the duplicated explicit frees of clear_state_obj and
> cp_table_obj.
>
> Signed-off-by: Willian Oliveira <[email protected]>

Reviewed-by: Alex Deucher <[email protected]>
and applied.

> ---
> v2:
> - Keep amdgpu_gfx_rlc_fini() and remove the explicit RLC object frees
>   as suggested by Alex Deucher.
> - Apply the same cleanup to gfx7.
>
>  drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c | 8 --------
>  drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 9 ---------
>  2 files changed, 17 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c 
> b/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c
> index 5fc19fefca81..7c56e36665c7 100644
> --- a/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c
> @@ -4454,14 +4454,6 @@ static int gfx_v7_0_sw_fini(struct amdgpu_ip_block 
> *ip_block)
>         amdgpu_gfx_mqd_sw_fini(adev, 0);
>         amdgpu_gfx_rlc_fini(adev);
>         gfx_v7_0_mec_fini(adev);
> -       amdgpu_bo_free_kernel(&adev->gfx.rlc.clear_state_obj,
> -                               &adev->gfx.rlc.clear_state_gpu_addr,
> -                               (void **)&adev->gfx.rlc.cs_ptr);
> -       if (adev->gfx.rlc.cp_table_size) {
> -               amdgpu_bo_free_kernel(&adev->gfx.rlc.cp_table_obj,
> -                               &adev->gfx.rlc.cp_table_gpu_addr,
> -                               (void **)&adev->gfx.rlc.cp_table_ptr);
> -       }
>         gfx_v7_0_free_microcode(adev);
>
>         return 0;
> diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c 
> b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
> index 7f91186ef1d1..27fbb5b59645 100644
> --- a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
> @@ -2060,15 +2060,6 @@ static int gfx_v8_0_sw_fini(struct amdgpu_ip_block 
> *ip_block)
>
>         gfx_v8_0_mec_fini(adev);
>         amdgpu_gfx_rlc_fini(adev);
> -       amdgpu_bo_free_kernel(&adev->gfx.rlc.clear_state_obj,
> -                               &adev->gfx.rlc.clear_state_gpu_addr,
> -                               (void **)&adev->gfx.rlc.cs_ptr);
> -       if ((adev->asic_type == CHIP_CARRIZO) ||
> -           (adev->asic_type == CHIP_STONEY)) {
> -               amdgpu_bo_free_kernel(&adev->gfx.rlc.cp_table_obj,
> -                               &adev->gfx.rlc.cp_table_gpu_addr,
> -                               (void **)&adev->gfx.rlc.cp_table_ptr);
> -       }
>         gfx_v8_0_free_microcode(adev);
>
>         return 0;
> --
> 2.47.3
>

Reply via email to