drm/nouveau: switch to new allocator
authorChristian König <christian.koenig@amd.com>
Sat, 24 Oct 2020 11:13:25 +0000 (13:13 +0200)
committerChristian König <christian.koenig@amd.com>
Thu, 29 Oct 2020 14:57:17 +0000 (15:57 +0100)
It should be able to handle all cases now.

Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Madhav Chauhan <madhav.chauhan@amd.com>
Tested-by: Huang Rui <ray.huang@amd.com>
Link: https://patchwork.freedesktop.org/patch/397082/?series=83051&rev=1
drivers/gpu/drm/nouveau/nouveau_bo.c
drivers/gpu/drm/nouveau/nouveau_drv.h

index 75fddbc..746c06e 100644 (file)
@@ -1327,25 +1327,13 @@ nouveau_ttm_tt_populate(struct ttm_bo_device *bdev,
        drm = nouveau_bdev(bdev);
        dev = drm->dev->dev;
 
-#if IS_ENABLED(CONFIG_AGP)
-       if (drm->agp.bridge) {
-               return ttm_pool_populate(ttm, ctx);
-       }
-#endif
-
-#if IS_ENABLED(CONFIG_SWIOTLB) && IS_ENABLED(CONFIG_X86)
-       if (swiotlb_nr_tbl()) {
-               return ttm_dma_populate((void *)ttm, dev, ctx);
-       }
-#endif
-       return ttm_populate_and_map_pages(dev, ttm_dma, ctx);
+       return ttm_pool_alloc(&drm->ttm.bdev.pool, ttm, ctx);
 }
 
 static void
 nouveau_ttm_tt_unpopulate(struct ttm_bo_device *bdev,
                          struct ttm_tt *ttm)
 {
-       struct ttm_tt *ttm_dma = (void *)ttm;
        struct nouveau_drm *drm;
        struct device *dev;
        bool slave = !!(ttm->page_flags & TTM_PAGE_FLAG_SG);
@@ -1356,21 +1344,7 @@ nouveau_ttm_tt_unpopulate(struct ttm_bo_device *bdev,
        drm = nouveau_bdev(bdev);
        dev = drm->dev->dev;
 
-#if IS_ENABLED(CONFIG_AGP)
-       if (drm->agp.bridge) {
-               ttm_pool_unpopulate(ttm);
-               return;
-       }
-#endif
-
-#if IS_ENABLED(CONFIG_SWIOTLB) && IS_ENABLED(CONFIG_X86)
-       if (swiotlb_nr_tbl()) {
-               ttm_dma_unpopulate((void *)ttm, dev);
-               return;
-       }
-#endif
-
-       ttm_unmap_and_unpopulate_pages(dev, ttm_dma);
+       return ttm_pool_free(&drm->ttm.bdev.pool, ttm);
 }
 
 static void
index b802550..9d04d1b 100644 (file)
@@ -56,7 +56,6 @@
 #include <drm/ttm/ttm_placement.h>
 #include <drm/ttm/ttm_memory.h>
 #include <drm/ttm/ttm_module.h>
-#include <drm/ttm/ttm_page_alloc.h>
 
 #include <drm/drm_audio_component.h>