This is should be unecessary since a VRAM manager isn't mandatory in
the first place.

It could be that we have some missing checks inside AMDGPU or TTM but
those should then be fixed instead of worked around like that.

Signed-off-by: Christian König <christian.koe...@amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c      | 15 +++--
 drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c | 61 ++------------------
 2 files changed, 13 insertions(+), 63 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
index 9c5df35f05b7..db7980105953 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
@@ -1875,11 +1875,13 @@ int amdgpu_ttm_init(struct amdgpu_device *adev)
        }
        adev->mman.initialized = true;
 
-       /* Initialize VRAM pool with all of VRAM divided into pages */
-       r = amdgpu_vram_mgr_init(adev);
-       if (r) {
-               DRM_ERROR("Failed initializing VRAM heap.\n");
-               return r;
+       if (!adev->gmc.is_app_apu) {
+               /* Initialize VRAM pool with all of VRAM divided into pages */
+               r = amdgpu_vram_mgr_init(adev);
+               if (r) {
+                       DRM_ERROR("Failed initializing VRAM heap.\n");
+                       return r;
+               }
        }
 
        /* Change the size here instead of the init above so only lpfn is 
affected */
@@ -2078,7 +2080,8 @@ void amdgpu_ttm_fini(struct amdgpu_device *adev)
                drm_dev_exit(idx);
        }
 
-       amdgpu_vram_mgr_fini(adev);
+       if (!adev->gmc.is_app_apu)
+               amdgpu_vram_mgr_fini(adev);
        amdgpu_gtt_mgr_fini(adev);
        amdgpu_preempt_mgr_fini(adev);
        amdgpu_doorbell_fini(adev);
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c
index abdc52b0895a..2032310446e7 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c
@@ -396,45 +396,6 @@ int amdgpu_vram_mgr_query_page_status(struct 
amdgpu_vram_mgr *mgr,
        return ret;
 }
 
-static void amdgpu_dummy_vram_mgr_debug(struct ttm_resource_manager *man,
-                                 struct drm_printer *printer)
-{
-       DRM_DEBUG_DRIVER("Dummy vram mgr debug\n");
-}
-
-static bool amdgpu_dummy_vram_mgr_compatible(struct ttm_resource_manager *man,
-                                      struct ttm_resource *res,
-                                      const struct ttm_place *place,
-                                      size_t size)
-{
-       DRM_DEBUG_DRIVER("Dummy vram mgr compatible\n");
-       return false;
-}
-
-static bool amdgpu_dummy_vram_mgr_intersects(struct ttm_resource_manager *man,
-                                      struct ttm_resource *res,
-                                      const struct ttm_place *place,
-                                      size_t size)
-{
-       DRM_DEBUG_DRIVER("Dummy vram mgr intersects\n");
-       return true;
-}
-
-static void amdgpu_dummy_vram_mgr_del(struct ttm_resource_manager *man,
-                               struct ttm_resource *res)
-{
-       DRM_DEBUG_DRIVER("Dummy vram mgr deleted\n");
-}
-
-static int amdgpu_dummy_vram_mgr_new(struct ttm_resource_manager *man,
-                              struct ttm_buffer_object *tbo,
-                              const struct ttm_place *place,
-                              struct ttm_resource **res)
-{
-       DRM_DEBUG_DRIVER("Dummy vram mgr new\n");
-       return -ENOSPC;
-}
-
 /**
  * amdgpu_vram_mgr_new - allocate new ranges
  *
@@ -879,14 +840,6 @@ static void amdgpu_vram_mgr_debug(struct 
ttm_resource_manager *man,
        mutex_unlock(&mgr->lock);
 }
 
-static const struct ttm_resource_manager_func amdgpu_dummy_vram_mgr_func = {
-       .alloc  = amdgpu_dummy_vram_mgr_new,
-       .free   = amdgpu_dummy_vram_mgr_del,
-       .intersects = amdgpu_dummy_vram_mgr_intersects,
-       .compatible = amdgpu_dummy_vram_mgr_compatible,
-       .debug  = amdgpu_dummy_vram_mgr_debug
-};
-
 static const struct ttm_resource_manager_func amdgpu_vram_mgr_func = {
        .alloc  = amdgpu_vram_mgr_new,
        .free   = amdgpu_vram_mgr_del,
@@ -919,16 +872,10 @@ int amdgpu_vram_mgr_init(struct amdgpu_device *adev)
        INIT_LIST_HEAD(&mgr->reserved_pages);
        mgr->default_page_size = PAGE_SIZE;
 
-       if (!adev->gmc.is_app_apu) {
-               man->func = &amdgpu_vram_mgr_func;
-
-               err = drm_buddy_init(&mgr->mm, man->size, PAGE_SIZE);
-               if (err)
-                       return err;
-       } else {
-               man->func = &amdgpu_dummy_vram_mgr_func;
-               DRM_INFO("Setup dummy vram mgr\n");
-       }
+       man->func = &amdgpu_vram_mgr_func;
+       err = drm_buddy_init(&mgr->mm, man->size, PAGE_SIZE);
+       if (err)
+               return err;
 
        ttm_set_driver_manager(&adev->mman.bdev, TTM_PL_VRAM, &mgr->manager);
        ttm_resource_manager_set_used(man, true);
-- 
2.34.1

Reply via email to