Instead just initialize the memory type parameters
before calling ttm_bo_init_mm.

Signed-off-by: Christian König <christian.koe...@amd.com>
---
 drivers/gpu/drm/vmwgfx/vmwgfx_drv.c        | 18 +++++++++++++++
 drivers/gpu/drm/vmwgfx/vmwgfx_ttm_buffer.c | 27 ----------------------
 2 files changed, 18 insertions(+), 27 deletions(-)

diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c 
b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
index 470428387878..45569e9ad3f5 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
@@ -864,6 +864,9 @@ static int vmw_driver_load(struct drm_device *dev, unsigned 
long chipset)
         * Enable VRAM, but initially don't use it until SVGA is enabled and
         * unhidden.
         */
+       dev_priv->bdev.man[TTM_PL_VRAM].func = &vmw_thp_func;
+       dev_priv->bdev.man[TTM_PL_VRAM].available_caching = TTM_PL_FLAG_CACHED;
+       dev_priv->bdev.man[TTM_PL_VRAM].default_caching = TTM_PL_FLAG_CACHED;
        ret = ttm_bo_init_mm(&dev_priv->bdev, TTM_PL_VRAM,
                             (dev_priv->vram_size >> PAGE_SHIFT));
        if (unlikely(ret != 0)) {
@@ -872,7 +875,17 @@ static int vmw_driver_load(struct drm_device *dev, 
unsigned long chipset)
        }
        dev_priv->bdev.man[TTM_PL_VRAM].use_type = false;
 
+       /*
+        * "Guest Memory Regions" is an aperture like feature with
+        *  one slot per bo. There is an upper limit of the number of
+        *  slots as well as the bo size.
+        */
        dev_priv->has_gmr = true;
+       dev_priv->bdev.man[VMW_PL_GMR].func = &vmw_gmrid_manager_func;
+       dev_priv->bdev.man[VMW_PL_GMR].available_caching = TTM_PL_FLAG_CACHED;
+       dev_priv->bdev.man[VMW_PL_GMR].default_caching = TTM_PL_FLAG_CACHED;
+       /* TODO: This is most likely not correct */
+       dev_priv->bdev.man[VMW_PL_GMR].use_tt = true;
        if (((dev_priv->capabilities & (SVGA_CAP_GMR | SVGA_CAP_GMR2)) == 0) ||
            refuse_dma || ttm_bo_init_mm(&dev_priv->bdev, VMW_PL_GMR,
                                         VMW_PL_GMR) != 0) {
@@ -883,6 +896,11 @@ static int vmw_driver_load(struct drm_device *dev, 
unsigned long chipset)
 
        if (dev_priv->capabilities & SVGA_CAP_GBOBJECTS && !refuse_dma) {
                dev_priv->has_mob = true;
+               dev_priv->bdev.man[VMW_PL_MOB].func = &vmw_gmrid_manager_func;
+               dev_priv->bdev.man[VMW_PL_MOB].available_caching = 
TTM_PL_FLAG_CACHED;
+               dev_priv->bdev.man[VMW_PL_MOB].default_caching = 
TTM_PL_FLAG_CACHED;
+               /* TODO: This is most likely not correct */
+               dev_priv->bdev.man[VMW_PL_MOB].use_tt = true;
                if (ttm_bo_init_mm(&dev_priv->bdev, VMW_PL_MOB,
                                   VMW_PL_MOB) != 0) {
                        DRM_INFO("No MOB memory available. "
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_ttm_buffer.c 
b/drivers/gpu/drm/vmwgfx/vmwgfx_ttm_buffer.c
index 5d8179d9f394..db4b2e2e4edb 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_ttm_buffer.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_ttm_buffer.c
@@ -739,33 +739,6 @@ static struct ttm_tt *vmw_ttm_tt_create(struct 
ttm_buffer_object *bo,
 static int vmw_init_mem_type(struct ttm_bo_device *bdev, uint32_t type,
                      struct ttm_mem_type_manager *man)
 {
-       switch (type) {
-       case TTM_PL_SYSTEM:
-               /* System memory */
-               break;
-       case TTM_PL_VRAM:
-               /* "On-card" video ram */
-               man->func = &vmw_thp_func;
-               man->available_caching = TTM_PL_FLAG_CACHED;
-               man->default_caching = TTM_PL_FLAG_CACHED;
-               break;
-       case VMW_PL_GMR:
-       case VMW_PL_MOB:
-               /*
-                * "Guest Memory Regions" is an aperture like feature with
-                *  one slot per bo. There is an upper limit of the number of
-                *  slots as well as the bo size.
-                */
-               man->func = &vmw_gmrid_manager_func;
-               man->available_caching = TTM_PL_FLAG_CACHED;
-               man->default_caching = TTM_PL_FLAG_CACHED;
-               /* TODO: This is most likely not correct */
-               man->use_tt = true;
-               break;
-       default:
-               DRM_ERROR("Unsupported memory type %u\n", (unsigned)type);
-               return -EINVAL;
-       }
        return 0;
 }
 
-- 
2.17.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to