diff options
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3603-drm-ttm-drop-ttm-dummy_read_page.patch')
-rw-r--r-- | meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3603-drm-ttm-drop-ttm-dummy_read_page.patch | 502 |
1 files changed, 502 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3603-drm-ttm-drop-ttm-dummy_read_page.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3603-drm-ttm-drop-ttm-dummy_read_page.patch new file mode 100644 index 00000000..2f483884 --- /dev/null +++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3603-drm-ttm-drop-ttm-dummy_read_page.patch @@ -0,0 +1,502 @@ +From df190e632b8ceb70d03cc30d69892763e5df3071 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Christian=20K=C3=B6nig?= <christian.koenig@amd.com> +Date: Wed, 21 Feb 2018 20:34:13 +0100 +Subject: [PATCH 3603/4131] drm/ttm: drop ttm->dummy_read_page +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Only used by the AGP backend and there it can be easily accessed using +ttm->bdev->glob. + +Signed-off-by: Christian König <christian.koenig@amd.com> +Reviewed-by: Michel Dänzer <michel.daenzer@amd.com> +Signed-off-by: Alex Deucher <alexander.deucher@amd.com> +Signed-off-by: Kalyan Alle <kalyan.alle@amd.com> +--- + drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 5 ++--- + drivers/gpu/drm/ast/ast_ttm.c | 5 ++--- + drivers/gpu/drm/bochs/bochs_mm.c | 5 ++--- + drivers/gpu/drm/cirrus/cirrus_ttm.c | 5 ++--- + drivers/gpu/drm/hisilicon/hibmc/hibmc_ttm.c | 5 ++--- + drivers/gpu/drm/mgag200/mgag200_ttm.c | 5 ++--- + drivers/gpu/drm/nouveau/nouveau_bo.c | 6 +++--- + drivers/gpu/drm/nouveau/nouveau_sgdma.c | 5 ++--- + drivers/gpu/drm/nouveau/nouveau_ttm.h | 3 +-- + drivers/gpu/drm/qxl/qxl_ttm.c | 6 ++---- + drivers/gpu/drm/radeon/radeon_ttm.c | 7 +++---- + drivers/gpu/drm/ttm/ttm_agp_backend.c | 8 ++++---- + drivers/gpu/drm/ttm/ttm_bo.c | 6 ++---- + drivers/gpu/drm/ttm/ttm_tt.c | 8 ++------ + drivers/gpu/drm/virtio/virtgpu_ttm.c | 6 ++---- + drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c | 9 +++------ + include/drm/ttm/ttm_bo_driver.h | 21 ++++++++------------- + 17 files changed, 44 insertions(+), 71 deletions(-) + +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c +index 8412f6d..36a3d7e 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c +@@ -1043,8 +1043,7 @@ static struct ttm_backend_func amdgpu_backend_func = { + }; + + static struct ttm_tt *amdgpu_ttm_tt_create(struct ttm_bo_device *bdev, +- unsigned long size, uint32_t page_flags, +- struct page *dummy_read_page) ++ unsigned long size, uint32_t page_flags) + { + struct amdgpu_device *adev; + struct amdgpu_ttm_tt *gtt; +@@ -1057,7 +1056,7 @@ static struct ttm_tt *amdgpu_ttm_tt_create(struct ttm_bo_device *bdev, + } + gtt->ttm.ttm.func = &amdgpu_backend_func; + gtt->adev = adev; +- if (ttm_dma_tt_init(>t->ttm, bdev, size, page_flags, dummy_read_page)) { ++ if (ttm_dma_tt_init(>t->ttm, bdev, size, page_flags)) { + kfree(gtt); + return NULL; + } +diff --git a/drivers/gpu/drm/ast/ast_ttm.c b/drivers/gpu/drm/ast/ast_ttm.c +index 696a15d..9c0c44b 100644 +--- a/drivers/gpu/drm/ast/ast_ttm.c ++++ b/drivers/gpu/drm/ast/ast_ttm.c +@@ -200,8 +200,7 @@ static struct ttm_backend_func ast_tt_backend_func = { + + + static struct ttm_tt *ast_ttm_tt_create(struct ttm_bo_device *bdev, +- unsigned long size, uint32_t page_flags, +- struct page *dummy_read_page) ++ unsigned long size, uint32_t page_flags) + { + struct ttm_tt *tt; + +@@ -209,7 +208,7 @@ static struct ttm_tt *ast_ttm_tt_create(struct ttm_bo_device *bdev, + if (tt == NULL) + return NULL; + tt->func = &ast_tt_backend_func; +- if (ttm_tt_init(tt, bdev, size, page_flags, dummy_read_page)) { ++ if (ttm_tt_init(tt, bdev, size, page_flags)) { + kfree(tt); + return NULL; + } +diff --git a/drivers/gpu/drm/bochs/bochs_mm.c b/drivers/gpu/drm/bochs/bochs_mm.c +index c4cadb6..7b48dda 100644 +--- a/drivers/gpu/drm/bochs/bochs_mm.c ++++ b/drivers/gpu/drm/bochs/bochs_mm.c +@@ -178,8 +178,7 @@ static struct ttm_backend_func bochs_tt_backend_func = { + + static struct ttm_tt *bochs_ttm_tt_create(struct ttm_bo_device *bdev, + unsigned long size, +- uint32_t page_flags, +- struct page *dummy_read_page) ++ uint32_t page_flags) + { + struct ttm_tt *tt; + +@@ -187,7 +186,7 @@ static struct ttm_tt *bochs_ttm_tt_create(struct ttm_bo_device *bdev, + if (tt == NULL) + return NULL; + tt->func = &bochs_tt_backend_func; +- if (ttm_tt_init(tt, bdev, size, page_flags, dummy_read_page)) { ++ if (ttm_tt_init(tt, bdev, size, page_flags)) { + kfree(tt); + return NULL; + } +diff --git a/drivers/gpu/drm/cirrus/cirrus_ttm.c b/drivers/gpu/drm/cirrus/cirrus_ttm.c +index 1ff1838..1546efb 100644 +--- a/drivers/gpu/drm/cirrus/cirrus_ttm.c ++++ b/drivers/gpu/drm/cirrus/cirrus_ttm.c +@@ -200,8 +200,7 @@ static struct ttm_backend_func cirrus_tt_backend_func = { + + + static struct ttm_tt *cirrus_ttm_tt_create(struct ttm_bo_device *bdev, +- unsigned long size, uint32_t page_flags, +- struct page *dummy_read_page) ++ unsigned long size, uint32_t page_flags) + { + struct ttm_tt *tt; + +@@ -209,7 +208,7 @@ static struct ttm_tt *cirrus_ttm_tt_create(struct ttm_bo_device *bdev, + if (tt == NULL) + return NULL; + tt->func = &cirrus_tt_backend_func; +- if (ttm_tt_init(tt, bdev, size, page_flags, dummy_read_page)) { ++ if (ttm_tt_init(tt, bdev, size, page_flags)) { + kfree(tt); + return NULL; + } +diff --git a/drivers/gpu/drm/hisilicon/hibmc/hibmc_ttm.c b/drivers/gpu/drm/hisilicon/hibmc/hibmc_ttm.c +index 3518167..8cf4f3c 100644 +--- a/drivers/gpu/drm/hisilicon/hibmc/hibmc_ttm.c ++++ b/drivers/gpu/drm/hisilicon/hibmc/hibmc_ttm.c +@@ -202,8 +202,7 @@ static struct ttm_backend_func hibmc_tt_backend_func = { + + static struct ttm_tt *hibmc_ttm_tt_create(struct ttm_bo_device *bdev, + unsigned long size, +- u32 page_flags, +- struct page *dummy_read_page) ++ u32 page_flags) + { + struct ttm_tt *tt; + int ret; +@@ -214,7 +213,7 @@ static struct ttm_tt *hibmc_ttm_tt_create(struct ttm_bo_device *bdev, + return NULL; + } + tt->func = &hibmc_tt_backend_func; +- ret = ttm_tt_init(tt, bdev, size, page_flags, dummy_read_page); ++ ret = ttm_tt_init(tt, bdev, size, page_flags); + if (ret) { + DRM_ERROR("failed to initialize ttm_tt: %d\n", ret); + kfree(tt); +diff --git a/drivers/gpu/drm/mgag200/mgag200_ttm.c b/drivers/gpu/drm/mgag200/mgag200_ttm.c +index 3e7e1cd..54703b9 100644 +--- a/drivers/gpu/drm/mgag200/mgag200_ttm.c ++++ b/drivers/gpu/drm/mgag200/mgag200_ttm.c +@@ -200,8 +200,7 @@ static struct ttm_backend_func mgag200_tt_backend_func = { + + + static struct ttm_tt *mgag200_ttm_tt_create(struct ttm_bo_device *bdev, +- unsigned long size, uint32_t page_flags, +- struct page *dummy_read_page) ++ unsigned long size, uint32_t page_flags) + { + struct ttm_tt *tt; + +@@ -209,7 +208,7 @@ static struct ttm_tt *mgag200_ttm_tt_create(struct ttm_bo_device *bdev, + if (tt == NULL) + return NULL; + tt->func = &mgag200_tt_backend_func; +- if (ttm_tt_init(tt, bdev, size, page_flags, dummy_read_page)) { ++ if (ttm_tt_init(tt, bdev, size, page_flags)) { + kfree(tt); + return NULL; + } +diff --git a/drivers/gpu/drm/nouveau/nouveau_bo.c b/drivers/gpu/drm/nouveau/nouveau_bo.c +index e427f80..77c9571 100644 +--- a/drivers/gpu/drm/nouveau/nouveau_bo.c ++++ b/drivers/gpu/drm/nouveau/nouveau_bo.c +@@ -542,18 +542,18 @@ nouveau_bo_wr32(struct nouveau_bo *nvbo, unsigned index, u32 val) + + static struct ttm_tt * + nouveau_ttm_tt_create(struct ttm_bo_device *bdev, unsigned long size, +- uint32_t page_flags, struct page *dummy_read) ++ uint32_t page_flags) + { + #if IS_ENABLED(CONFIG_AGP) + struct nouveau_drm *drm = nouveau_bdev(bdev); + + if (drm->agp.bridge) { + return ttm_agp_tt_create(bdev, drm->agp.bridge, size, +- page_flags, dummy_read); ++ page_flags); + } + #endif + +- return nouveau_sgdma_create_ttm(bdev, size, page_flags, dummy_read); ++ return nouveau_sgdma_create_ttm(bdev, size, page_flags); + } + + static int +diff --git a/drivers/gpu/drm/nouveau/nouveau_sgdma.c b/drivers/gpu/drm/nouveau/nouveau_sgdma.c +index fde11ce..99511b6 100644 +--- a/drivers/gpu/drm/nouveau/nouveau_sgdma.c ++++ b/drivers/gpu/drm/nouveau/nouveau_sgdma.c +@@ -91,8 +91,7 @@ static struct ttm_backend_func nv50_sgdma_backend = { + + struct ttm_tt * + nouveau_sgdma_create_ttm(struct ttm_bo_device *bdev, +- unsigned long size, uint32_t page_flags, +- struct page *dummy_read_page) ++ unsigned long size, uint32_t page_flags) + { + struct nouveau_drm *drm = nouveau_bdev(bdev); + struct nouveau_sgdma_be *nvbe; +@@ -106,7 +105,7 @@ nouveau_sgdma_create_ttm(struct ttm_bo_device *bdev, + else + nvbe->ttm.ttm.func = &nv50_sgdma_backend; + +- if (ttm_dma_tt_init(&nvbe->ttm, bdev, size, page_flags, dummy_read_page)) ++ if (ttm_dma_tt_init(&nvbe->ttm, bdev, size, page_flags)) + /* + * A failing ttm_dma_tt_init() will call ttm_tt_destroy() + * and thus our nouveau_sgdma_destroy() hook, so we don't need +diff --git a/drivers/gpu/drm/nouveau/nouveau_ttm.h b/drivers/gpu/drm/nouveau/nouveau_ttm.h +index 96082b6..64e484e 100644 +--- a/drivers/gpu/drm/nouveau/nouveau_ttm.h ++++ b/drivers/gpu/drm/nouveau/nouveau_ttm.h +@@ -13,8 +13,7 @@ extern const struct ttm_mem_type_manager_func nouveau_gart_manager; + extern const struct ttm_mem_type_manager_func nv04_gart_manager; + + struct ttm_tt *nouveau_sgdma_create_ttm(struct ttm_bo_device *, +- unsigned long size, u32 page_flags, +- struct page *dummy_read_page); ++ unsigned long size, u32 page_flags); + + int nouveau_ttm_init(struct nouveau_drm *drm); + void nouveau_ttm_fini(struct nouveau_drm *drm); +diff --git a/drivers/gpu/drm/qxl/qxl_ttm.c b/drivers/gpu/drm/qxl/qxl_ttm.c +index 7ecf8a4..955cd45 100644 +--- a/drivers/gpu/drm/qxl/qxl_ttm.c ++++ b/drivers/gpu/drm/qxl/qxl_ttm.c +@@ -314,8 +314,7 @@ static void qxl_ttm_tt_unpopulate(struct ttm_tt *ttm) + } + + static struct ttm_tt *qxl_ttm_tt_create(struct ttm_bo_device *bdev, +- unsigned long size, uint32_t page_flags, +- struct page *dummy_read_page) ++ unsigned long size, uint32_t page_flags) + { + struct qxl_device *qdev; + struct qxl_ttm_tt *gtt; +@@ -326,8 +325,7 @@ static struct ttm_tt *qxl_ttm_tt_create(struct ttm_bo_device *bdev, + return NULL; + gtt->ttm.ttm.func = &qxl_backend_func; + gtt->qdev = qdev; +- if (ttm_dma_tt_init(>t->ttm, bdev, size, page_flags, +- dummy_read_page)) { ++ if (ttm_dma_tt_init(>t->ttm, bdev, size, page_flags)) { + kfree(gtt); + return NULL; + } +diff --git a/drivers/gpu/drm/radeon/radeon_ttm.c b/drivers/gpu/drm/radeon/radeon_ttm.c +index 8032da5..7bc0b61 100644 +--- a/drivers/gpu/drm/radeon/radeon_ttm.c ++++ b/drivers/gpu/drm/radeon/radeon_ttm.c +@@ -687,8 +687,7 @@ static struct ttm_backend_func radeon_backend_func = { + }; + + static struct ttm_tt *radeon_ttm_tt_create(struct ttm_bo_device *bdev, +- unsigned long size, uint32_t page_flags, +- struct page *dummy_read_page) ++ unsigned long size, uint32_t page_flags) + { + struct radeon_device *rdev; + struct radeon_ttm_tt *gtt; +@@ -697,7 +696,7 @@ static struct ttm_tt *radeon_ttm_tt_create(struct ttm_bo_device *bdev, + #if IS_ENABLED(CONFIG_AGP) + if (rdev->flags & RADEON_IS_AGP) { + return ttm_agp_tt_create(bdev, rdev->ddev->agp->bridge, +- size, page_flags, dummy_read_page); ++ size, page_flags); + } + #endif + +@@ -707,7 +706,7 @@ static struct ttm_tt *radeon_ttm_tt_create(struct ttm_bo_device *bdev, + } + gtt->ttm.ttm.func = &radeon_backend_func; + gtt->rdev = rdev; +- if (ttm_dma_tt_init(>t->ttm, bdev, size, page_flags, dummy_read_page)) { ++ if (ttm_dma_tt_init(>t->ttm, bdev, size, page_flags)) { + kfree(gtt); + return NULL; + } +diff --git a/drivers/gpu/drm/ttm/ttm_agp_backend.c b/drivers/gpu/drm/ttm/ttm_agp_backend.c +index 028ab60..cfd1931 100644 +--- a/drivers/gpu/drm/ttm/ttm_agp_backend.c ++++ b/drivers/gpu/drm/ttm/ttm_agp_backend.c +@@ -50,6 +50,7 @@ struct ttm_agp_backend { + static int ttm_agp_bind(struct ttm_tt *ttm, struct ttm_mem_reg *bo_mem) + { + struct ttm_agp_backend *agp_be = container_of(ttm, struct ttm_agp_backend, ttm); ++ struct page *dummy_read_page = ttm->bdev->glob->dummy_read_page; + struct drm_mm_node *node = bo_mem->mm_node; + struct agp_memory *mem; + int ret, cached = (bo_mem->placement & TTM_PL_FLAG_CACHED); +@@ -64,7 +65,7 @@ static int ttm_agp_bind(struct ttm_tt *ttm, struct ttm_mem_reg *bo_mem) + struct page *page = ttm->pages[i]; + + if (!page) +- page = ttm->dummy_read_page; ++ page = dummy_read_page; + + mem->pages[mem->page_count++] = page; + } +@@ -111,8 +112,7 @@ static struct ttm_backend_func ttm_agp_func = { + + struct ttm_tt *ttm_agp_tt_create(struct ttm_bo_device *bdev, + struct agp_bridge_data *bridge, +- unsigned long size, uint32_t page_flags, +- struct page *dummy_read_page) ++ unsigned long size, uint32_t page_flags) + { + struct ttm_agp_backend *agp_be; + +@@ -124,7 +124,7 @@ struct ttm_tt *ttm_agp_tt_create(struct ttm_bo_device *bdev, + agp_be->bridge = bridge; + agp_be->ttm.func = &ttm_agp_func; + +- if (ttm_tt_init(&agp_be->ttm, bdev, size, page_flags, dummy_read_page)) { ++ if (ttm_tt_init(&agp_be->ttm, bdev, size, page_flags)) { + kfree(agp_be); + return NULL; + } +diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c +index 68eed68..0e9b255 100644 +--- a/drivers/gpu/drm/ttm/ttm_bo.c ++++ b/drivers/gpu/drm/ttm/ttm_bo.c +@@ -230,7 +230,6 @@ EXPORT_SYMBOL(ttm_bo_move_to_lru_tail); + static int ttm_bo_add_ttm(struct ttm_buffer_object *bo, bool zero_alloc) + { + struct ttm_bo_device *bdev = bo->bdev; +- struct ttm_bo_global *glob = bo->glob; + int ret = 0; + uint32_t page_flags = 0; + +@@ -246,14 +245,13 @@ static int ttm_bo_add_ttm(struct ttm_buffer_object *bo, bool zero_alloc) + page_flags |= TTM_PAGE_FLAG_ZERO_ALLOC; + case ttm_bo_type_kernel: + bo->ttm = bdev->driver->ttm_tt_create(bdev, bo->num_pages << PAGE_SHIFT, +- page_flags, glob->dummy_read_page); ++ page_flags); + if (unlikely(bo->ttm == NULL)) + ret = -ENOMEM; + break; + case ttm_bo_type_sg: + bo->ttm = bdev->driver->ttm_tt_create(bdev, bo->num_pages << PAGE_SHIFT, +- page_flags | TTM_PAGE_FLAG_SG, +- glob->dummy_read_page); ++ page_flags | TTM_PAGE_FLAG_SG); + if (unlikely(bo->ttm == NULL)) { + ret = -ENOMEM; + break; +diff --git a/drivers/gpu/drm/ttm/ttm_tt.c b/drivers/gpu/drm/ttm/ttm_tt.c +index 8ebc8d3..52ef502 100644 +--- a/drivers/gpu/drm/ttm/ttm_tt.c ++++ b/drivers/gpu/drm/ttm/ttm_tt.c +@@ -185,15 +185,13 @@ void ttm_tt_destroy(struct ttm_tt *ttm) + } + + int ttm_tt_init(struct ttm_tt *ttm, struct ttm_bo_device *bdev, +- unsigned long size, uint32_t page_flags, +- struct page *dummy_read_page) ++ unsigned long size, uint32_t page_flags) + { + ttm->bdev = bdev; + ttm->glob = bdev->glob; + ttm->num_pages = (size + PAGE_SIZE - 1) >> PAGE_SHIFT; + ttm->caching_state = tt_cached; + ttm->page_flags = page_flags; +- ttm->dummy_read_page = dummy_read_page; + ttm->state = tt_unpopulated; + ttm->swap_storage = NULL; + +@@ -215,8 +213,7 @@ void ttm_tt_fini(struct ttm_tt *ttm) + EXPORT_SYMBOL(ttm_tt_fini); + + int ttm_dma_tt_init(struct ttm_dma_tt *ttm_dma, struct ttm_bo_device *bdev, +- unsigned long size, uint32_t page_flags, +- struct page *dummy_read_page) ++ unsigned long size, uint32_t page_flags) + { + struct ttm_tt *ttm = &ttm_dma->ttm; + +@@ -225,7 +222,6 @@ int ttm_dma_tt_init(struct ttm_dma_tt *ttm_dma, struct ttm_bo_device *bdev, + ttm->num_pages = (size + PAGE_SIZE - 1) >> PAGE_SHIFT; + ttm->caching_state = tt_cached; + ttm->page_flags = page_flags; +- ttm->dummy_read_page = dummy_read_page; + ttm->state = tt_unpopulated; + ttm->swap_storage = NULL; + +diff --git a/drivers/gpu/drm/virtio/virtgpu_ttm.c b/drivers/gpu/drm/virtio/virtgpu_ttm.c +index cd389c5..f94becd 100644 +--- a/drivers/gpu/drm/virtio/virtgpu_ttm.c ++++ b/drivers/gpu/drm/virtio/virtgpu_ttm.c +@@ -339,8 +339,7 @@ static void virtio_gpu_ttm_tt_unpopulate(struct ttm_tt *ttm) + + static struct ttm_tt *virtio_gpu_ttm_tt_create(struct ttm_bo_device *bdev, + unsigned long size, +- uint32_t page_flags, +- struct page *dummy_read_page) ++ uint32_t page_flags) + { + struct virtio_gpu_device *vgdev; + struct virtio_gpu_ttm_tt *gtt; +@@ -351,8 +350,7 @@ static struct ttm_tt *virtio_gpu_ttm_tt_create(struct ttm_bo_device *bdev, + return NULL; + gtt->ttm.ttm.func = &virtio_gpu_backend_func; + gtt->vgdev = vgdev; +- if (ttm_dma_tt_init(>t->ttm, bdev, size, page_flags, +- dummy_read_page)) { ++ if (ttm_dma_tt_init(>t->ttm, bdev, size, page_flags)) { + kfree(gtt); + return NULL; + } +diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c b/drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c +index c705632..c762686 100644 +--- a/drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c ++++ b/drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c +@@ -690,8 +690,7 @@ static struct ttm_backend_func vmw_ttm_func = { + }; + + static struct ttm_tt *vmw_ttm_tt_create(struct ttm_bo_device *bdev, +- unsigned long size, uint32_t page_flags, +- struct page *dummy_read_page) ++ unsigned long size, uint32_t page_flags) + { + struct vmw_ttm_tt *vmw_be; + int ret; +@@ -705,11 +704,9 @@ static struct ttm_tt *vmw_ttm_tt_create(struct ttm_bo_device *bdev, + vmw_be->mob = NULL; + + if (vmw_be->dev_priv->map_mode == vmw_dma_alloc_coherent) +- ret = ttm_dma_tt_init(&vmw_be->dma_ttm, bdev, size, page_flags, +- dummy_read_page); ++ ret = ttm_dma_tt_init(&vmw_be->dma_ttm, bdev, size, page_flags); + else +- ret = ttm_tt_init(&vmw_be->dma_ttm.ttm, bdev, size, page_flags, +- dummy_read_page); ++ ret = ttm_tt_init(&vmw_be->dma_ttm.ttm, bdev, size, page_flags); + if (unlikely(ret != 0)) + goto out_no_init; + +diff --git a/include/drm/ttm/ttm_bo_driver.h b/include/drm/ttm/ttm_bo_driver.h +index b980ed8..0a3b1bf 100644 +--- a/include/drm/ttm/ttm_bo_driver.h ++++ b/include/drm/ttm/ttm_bo_driver.h +@@ -338,11 +338,9 @@ struct ttm_bo_driver { + * Returns: + * NULL: Out of memory. + */ +- struct ttm_tt *(*ttm_tt_create)(struct ttm_bo_device *bdev, +- unsigned long size, +- uint32_t page_flags, +- struct page *dummy_read_page); +- ++ struct ttm_tt *(*ttm_tt_create)(struct ttm_bo_device *bdev, ++ unsigned long size, ++ uint32_t page_flags); + /** + * ttm_tt_populate + * +@@ -630,11 +628,9 @@ ttm_flag_masked(uint32_t *old, uint32_t new, uint32_t mask) + * NULL: Out of memory. + */ + extern int ttm_tt_init(struct ttm_tt *ttm, struct ttm_bo_device *bdev, +- unsigned long size, uint32_t page_flags, +- struct page *dummy_read_page); ++ unsigned long size, uint32_t page_flags); + extern int ttm_dma_tt_init(struct ttm_dma_tt *ttm_dma, struct ttm_bo_device *bdev, +- unsigned long size, uint32_t page_flags, +- struct page *dummy_read_page); ++ unsigned long size, uint32_t page_flags); + + /** + * ttm_tt_fini +@@ -1110,10 +1106,9 @@ extern const struct ttm_mem_type_manager_func ttm_bo_manager_func; + * for TT memory. This function uses the linux agpgart interface to + * bind and unbind memory backing a ttm_tt. + */ +-extern struct ttm_tt *ttm_agp_tt_create(struct ttm_bo_device *bdev, +- struct agp_bridge_data *bridge, +- unsigned long size, uint32_t page_flags, +- struct page *dummy_read_page); ++struct ttm_tt *ttm_agp_tt_create(struct ttm_bo_device *bdev, ++ struct agp_bridge_data *bridge, ++ unsigned long size, uint32_t page_flags); + int ttm_agp_tt_populate(struct ttm_tt *ttm); + void ttm_agp_tt_unpopulate(struct ttm_tt *ttm); + #endif +-- +2.7.4 + |