drm/vmwgfx: switch to own vma manager
authorGerd Hoffmann <kraxel@redhat.com>
Thu, 5 Sep 2019 07:05:08 +0000 (09:05 +0200)
committerGerd Hoffmann <kraxel@redhat.com>
Wed, 11 Sep 2019 06:03:24 +0000 (08:03 +0200)
Add struct drm_vma_offset_manager to vma_private, initialize it and
pass it to ttm_bo_device_init().

With this in place the last user of ttm's embedded vma offset manager
is gone and we can remove it (in a separate patch).

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Reviewed-by: Thomas Hellström <thellstrom@vmware.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20190905070509.22407-8-kraxel@redhat.com
drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
drivers/gpu/drm/vmwgfx/vmwgfx_drv.h

index 20bc91214e75000e6f383722ae1ace3f7e75fd43..882facd055de7b59c88a02e463052146d19849f6 100644 (file)
@@ -827,10 +827,13 @@ static int vmw_driver_load(struct drm_device *dev, unsigned long chipset)
                goto out_no_fman;
        }
 
+       drm_vma_offset_manager_init(&dev_priv->vma_manager,
+                                   DRM_FILE_PAGE_OFFSET_START,
+                                   DRM_FILE_PAGE_OFFSET_SIZE);
        ret = ttm_bo_device_init(&dev_priv->bdev,
                                 &vmw_bo_driver,
                                 dev->anon_inode->i_mapping,
-                                NULL,
+                                &dev_priv->vma_manager,
                                 false);
        if (unlikely(ret != 0)) {
                DRM_ERROR("Failed initializing TTM buffer object driver.\n");
@@ -987,6 +990,7 @@ static void vmw_driver_unload(struct drm_device *dev)
        if (dev_priv->has_mob)
                (void) ttm_bo_clean_mm(&dev_priv->bdev, VMW_PL_MOB);
        (void) ttm_bo_device_release(&dev_priv->bdev);
+       drm_vma_offset_manager_destroy(&dev_priv->vma_manager);
        vmw_release_device_late(dev_priv);
        vmw_fence_manager_takedown(dev_priv->fman);
        if (dev_priv->capabilities & SVGA_CAP_IRQMASK)
index dbb04dbcf4789718392b45ec3c6e2b896b41dc87..adb0436528c72e442638185e20eef0c1ab14f8b3 100644 (file)
@@ -420,6 +420,7 @@ struct vmw_private {
        struct vmw_fifo_state fifo;
 
        struct drm_device *dev;
+       struct drm_vma_offset_manager vma_manager;
        unsigned long vmw_chipset;
        unsigned int io_start;
        uint32_t vram_start;