]> rtime.felk.cvut.cz Git - linux-imx.git/blobdiff - drivers/gpu/drm/ast/ast_ttm.c
drm/ast: invalidate page tables when pinning a BO
[linux-imx.git] / drivers / gpu / drm / ast / ast_ttm.c
index 09da3393c527188f85a5e5f42316c502788e1a93..6e8887fe6c1b44fb83d09df82d10d50483924de5 100644 (file)
@@ -271,26 +271,19 @@ int ast_mm_init(struct ast_private *ast)
                return ret;
        }
 
-       ast->fb_mtrr = drm_mtrr_add(pci_resource_start(dev->pdev, 0),
-                                   pci_resource_len(dev->pdev, 0),
-                                   DRM_MTRR_WC);
+       ast->fb_mtrr = arch_phys_wc_add(pci_resource_start(dev->pdev, 0),
+                                       pci_resource_len(dev->pdev, 0));
 
        return 0;
 }
 
 void ast_mm_fini(struct ast_private *ast)
 {
-       struct drm_device *dev = ast->dev;
        ttm_bo_device_release(&ast->ttm.bdev);
 
        ast_ttm_global_release(ast);
 
-       if (ast->fb_mtrr >= 0) {
-               drm_mtrr_del(ast->fb_mtrr,
-                            pci_resource_start(dev->pdev, 0),
-                            pci_resource_len(dev->pdev, 0), DRM_MTRR_WC);
-               ast->fb_mtrr = -1;
-       }
+       arch_phys_wc_del(ast->fb_mtrr);
 }
 
 void ast_ttm_placement(struct ast_bo *bo, int domain)
@@ -310,24 +303,6 @@ void ast_ttm_placement(struct ast_bo *bo, int domain)
        bo->placement.num_busy_placement = c;
 }
 
-int ast_bo_reserve(struct ast_bo *bo, bool no_wait)
-{
-       int ret;
-
-       ret = ttm_bo_reserve(&bo->bo, true, no_wait, false, 0);
-       if (ret) {
-               if (ret != -ERESTARTSYS && ret != -EBUSY)
-                       DRM_ERROR("reserve failed %p\n", bo);
-               return ret;
-       }
-       return 0;
-}
-
-void ast_bo_unreserve(struct ast_bo *bo)
-{
-       ttm_bo_unreserve(&bo->bo);
-}
-
 int ast_bo_create(struct drm_device *dev, int size, int align,
                  uint32_t flags, struct ast_bo **pastbo)
 {
@@ -348,6 +323,7 @@ int ast_bo_create(struct drm_device *dev, int size, int align,
 
        astbo->gem.driver_private = NULL;
        astbo->bo.bdev = &ast->ttm.bdev;
+       astbo->bo.bdev->dev_mapping = dev->dev_mapping;
 
        ast_ttm_placement(astbo, TTM_PL_FLAG_VRAM | TTM_PL_FLAG_SYSTEM);