On 29.08.25 15:55, Srinivasan Shanmugam wrote:
> Add a one-page TTM range manager for AMDGPU_PL_MMIO_REMAP via
> amdgpu_ttm_init_on_chip(). This only registers the placement with TTM;
> no BO is allocated in this patch.
> 
> The singleton 4K remap BO is created and freed in the following patch.
> 
> This split follows to separate heap bring-up from BO allocation.
> 
> Cc: Christian König <[email protected]>
> Suggested-by: Alex Deucher <[email protected]>
> Signed-off-by: Srinivasan Shanmugam <[email protected]>
> Reviewed-by: Alex Deucher <[email protected]>

Reviewed-by: Christian König <[email protected]>

> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 9 +++++++++
>  1 file changed, 9 insertions(+)
> 
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c 
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
> index 5f378f5c9350..7305d40a62e7 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
> @@ -2020,6 +2020,13 @@ int amdgpu_ttm_init(struct amdgpu_device *adev)
>               return r;
>       }
>  
> +     /* Initialize MMIO-remap pool (single page 4K) */
> +     r = amdgpu_ttm_init_on_chip(adev, AMDGPU_PL_MMIO_REMAP, 1);
> +     if (r) {
> +             dev_err(adev->dev, "Failed initializing MMIO-remap heap.\n");
> +             return r;
> +     }
> +
>       /* Initialize preemptible memory pool */
>       r = amdgpu_preempt_mgr_init(adev);
>       if (r) {
> @@ -2082,6 +2089,7 @@ void amdgpu_ttm_fini(struct amdgpu_device *adev)
>       }
>       amdgpu_bo_free_kernel(&adev->mman.sdma_access_bo, NULL,
>                                       &adev->mman.sdma_access_ptr);
> +
>       amdgpu_ttm_fw_reserve_vram_fini(adev);
>       amdgpu_ttm_drv_reserve_vram_fini(adev);
>  
> @@ -2103,6 +2111,7 @@ void amdgpu_ttm_fini(struct amdgpu_device *adev)
>       ttm_range_man_fini(&adev->mman.bdev, AMDGPU_PL_GWS);
>       ttm_range_man_fini(&adev->mman.bdev, AMDGPU_PL_OA);
>       ttm_range_man_fini(&adev->mman.bdev, AMDGPU_PL_DOORBELL);
> +     ttm_range_man_fini(&adev->mman.bdev, AMDGPU_PL_MMIO_REMAP);
>       ttm_device_fini(&adev->mman.bdev);
>       adev->mman.initialized = false;
>       dev_info(adev->dev, "amdgpu: ttm finalized\n");

Reply via email to