drm/vmwgfx: switch to own vma manager
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
This commit is contained in:
parent
133e880952
commit
293f86b365
|
@ -827,10 +827,13 @@ static int vmw_driver_load(struct drm_device *dev, unsigned long chipset)
|
||||||
goto out_no_fman;
|
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,
|
ret = ttm_bo_device_init(&dev_priv->bdev,
|
||||||
&vmw_bo_driver,
|
&vmw_bo_driver,
|
||||||
dev->anon_inode->i_mapping,
|
dev->anon_inode->i_mapping,
|
||||||
NULL,
|
&dev_priv->vma_manager,
|
||||||
false);
|
false);
|
||||||
if (unlikely(ret != 0)) {
|
if (unlikely(ret != 0)) {
|
||||||
DRM_ERROR("Failed initializing TTM buffer object driver.\n");
|
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)
|
if (dev_priv->has_mob)
|
||||||
(void) ttm_bo_clean_mm(&dev_priv->bdev, VMW_PL_MOB);
|
(void) ttm_bo_clean_mm(&dev_priv->bdev, VMW_PL_MOB);
|
||||||
(void) ttm_bo_device_release(&dev_priv->bdev);
|
(void) ttm_bo_device_release(&dev_priv->bdev);
|
||||||
|
drm_vma_offset_manager_destroy(&dev_priv->vma_manager);
|
||||||
vmw_release_device_late(dev_priv);
|
vmw_release_device_late(dev_priv);
|
||||||
vmw_fence_manager_takedown(dev_priv->fman);
|
vmw_fence_manager_takedown(dev_priv->fman);
|
||||||
if (dev_priv->capabilities & SVGA_CAP_IRQMASK)
|
if (dev_priv->capabilities & SVGA_CAP_IRQMASK)
|
||||||
|
|
|
@ -420,6 +420,7 @@ struct vmw_private {
|
||||||
struct vmw_fifo_state fifo;
|
struct vmw_fifo_state fifo;
|
||||||
|
|
||||||
struct drm_device *dev;
|
struct drm_device *dev;
|
||||||
|
struct drm_vma_offset_manager vma_manager;
|
||||||
unsigned long vmw_chipset;
|
unsigned long vmw_chipset;
|
||||||
unsigned int io_start;
|
unsigned int io_start;
|
||||||
uint32_t vram_start;
|
uint32_t vram_start;
|
||||||
|
|
Loading…
Reference in New Issue