aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorChristian König <christian.koenig@amd.com>2018-02-21 14:34:13 -0500
committerAlex Deucher <alexander.deucher@amd.com>2018-02-26 23:09:45 -0500
commit231cdafc75434015f3925d6662a1821fcfef16b7 (patch)
treee0dfc38a5e84d186138d4e053327c2ecd09e0602 /drivers
parent3231a7696e22538529e9ee3500f2116a40a22734 (diff)
drm/ttm: drop ttm->dummy_read_page
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>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c5
-rw-r--r--drivers/gpu/drm/ast/ast_ttm.c5
-rw-r--r--drivers/gpu/drm/bochs/bochs_mm.c5
-rw-r--r--drivers/gpu/drm/cirrus/cirrus_ttm.c5
-rw-r--r--drivers/gpu/drm/hisilicon/hibmc/hibmc_ttm.c5
-rw-r--r--drivers/gpu/drm/mgag200/mgag200_ttm.c5
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_bo.c6
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_sgdma.c5
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_ttm.h3
-rw-r--r--drivers/gpu/drm/qxl/qxl_ttm.c6
-rw-r--r--drivers/gpu/drm/radeon/radeon_ttm.c7
-rw-r--r--drivers/gpu/drm/ttm/ttm_agp_backend.c8
-rw-r--r--drivers/gpu/drm/ttm/ttm_bo.c6
-rw-r--r--drivers/gpu/drm/ttm/ttm_tt.c8
-rw-r--r--drivers/gpu/drm/virtio/virtgpu_ttm.c6
-rw-r--r--drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c9
-rw-r--r--drivers/staging/vboxvideo/vbox_ttm.c5
17 files changed, 38 insertions, 61 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
index b372d8d650a5..e38e6db8f760 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
@@ -969,8 +969,7 @@ static struct ttm_backend_func amdgpu_backend_func = {
969}; 969};
970 970
971static struct ttm_tt *amdgpu_ttm_tt_create(struct ttm_bo_device *bdev, 971static struct ttm_tt *amdgpu_ttm_tt_create(struct ttm_bo_device *bdev,
972 unsigned long size, uint32_t page_flags, 972 unsigned long size, uint32_t page_flags)
973 struct page *dummy_read_page)
974{ 973{
975 struct amdgpu_device *adev; 974 struct amdgpu_device *adev;
976 struct amdgpu_ttm_tt *gtt; 975 struct amdgpu_ttm_tt *gtt;
@@ -983,7 +982,7 @@ static struct ttm_tt *amdgpu_ttm_tt_create(struct ttm_bo_device *bdev,
983 } 982 }
984 gtt->ttm.ttm.func = &amdgpu_backend_func; 983 gtt->ttm.ttm.func = &amdgpu_backend_func;
985 gtt->adev = adev; 984 gtt->adev = adev;
986 if (ttm_dma_tt_init(&gtt->ttm, bdev, size, page_flags, dummy_read_page)) { 985 if (ttm_dma_tt_init(&gtt->ttm, bdev, size, page_flags)) {
987 kfree(gtt); 986 kfree(gtt);
988 return NULL; 987 return NULL;
989 } 988 }
diff --git a/drivers/gpu/drm/ast/ast_ttm.c b/drivers/gpu/drm/ast/ast_ttm.c
index 68b9c5522eaa..77d2035dc7b7 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 = {
200 200
201 201
202static struct ttm_tt *ast_ttm_tt_create(struct ttm_bo_device *bdev, 202static struct ttm_tt *ast_ttm_tt_create(struct ttm_bo_device *bdev,
203 unsigned long size, uint32_t page_flags, 203 unsigned long size, uint32_t page_flags)
204 struct page *dummy_read_page)
205{ 204{
206 struct ttm_tt *tt; 205 struct ttm_tt *tt;
207 206
@@ -209,7 +208,7 @@ static struct ttm_tt *ast_ttm_tt_create(struct ttm_bo_device *bdev,
209 if (tt == NULL) 208 if (tt == NULL)
210 return NULL; 209 return NULL;
211 tt->func = &ast_tt_backend_func; 210 tt->func = &ast_tt_backend_func;
212 if (ttm_tt_init(tt, bdev, size, page_flags, dummy_read_page)) { 211 if (ttm_tt_init(tt, bdev, size, page_flags)) {
213 kfree(tt); 212 kfree(tt);
214 return NULL; 213 return NULL;
215 } 214 }
diff --git a/drivers/gpu/drm/bochs/bochs_mm.c b/drivers/gpu/drm/bochs/bochs_mm.c
index 5525b6660340..96edf005bfea 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 = {
178 178
179static struct ttm_tt *bochs_ttm_tt_create(struct ttm_bo_device *bdev, 179static struct ttm_tt *bochs_ttm_tt_create(struct ttm_bo_device *bdev,
180 unsigned long size, 180 unsigned long size,
181 uint32_t page_flags, 181 uint32_t page_flags)
182 struct page *dummy_read_page)
183{ 182{
184 struct ttm_tt *tt; 183 struct ttm_tt *tt;
185 184
@@ -187,7 +186,7 @@ static struct ttm_tt *bochs_ttm_tt_create(struct ttm_bo_device *bdev,
187 if (tt == NULL) 186 if (tt == NULL)
188 return NULL; 187 return NULL;
189 tt->func = &bochs_tt_backend_func; 188 tt->func = &bochs_tt_backend_func;
190 if (ttm_tt_init(tt, bdev, size, page_flags, dummy_read_page)) { 189 if (ttm_tt_init(tt, bdev, size, page_flags)) {
191 kfree(tt); 190 kfree(tt);
192 return NULL; 191 return NULL;
193 } 192 }
diff --git a/drivers/gpu/drm/cirrus/cirrus_ttm.c b/drivers/gpu/drm/cirrus/cirrus_ttm.c
index 33798c76a64b..3413389c0fbe 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 = {
200 200
201 201
202static struct ttm_tt *cirrus_ttm_tt_create(struct ttm_bo_device *bdev, 202static struct ttm_tt *cirrus_ttm_tt_create(struct ttm_bo_device *bdev,
203 unsigned long size, uint32_t page_flags, 203 unsigned long size, uint32_t page_flags)
204 struct page *dummy_read_page)
205{ 204{
206 struct ttm_tt *tt; 205 struct ttm_tt *tt;
207 206
@@ -209,7 +208,7 @@ static struct ttm_tt *cirrus_ttm_tt_create(struct ttm_bo_device *bdev,
209 if (tt == NULL) 208 if (tt == NULL)
210 return NULL; 209 return NULL;
211 tt->func = &cirrus_tt_backend_func; 210 tt->func = &cirrus_tt_backend_func;
212 if (ttm_tt_init(tt, bdev, size, page_flags, dummy_read_page)) { 211 if (ttm_tt_init(tt, bdev, size, page_flags)) {
213 kfree(tt); 212 kfree(tt);
214 return NULL; 213 return NULL;
215 } 214 }
diff --git a/drivers/gpu/drm/hisilicon/hibmc/hibmc_ttm.c b/drivers/gpu/drm/hisilicon/hibmc/hibmc_ttm.c
index 0c93349fbacf..50e317a2a4ca 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 = {
202 202
203static struct ttm_tt *hibmc_ttm_tt_create(struct ttm_bo_device *bdev, 203static struct ttm_tt *hibmc_ttm_tt_create(struct ttm_bo_device *bdev,
204 unsigned long size, 204 unsigned long size,
205 u32 page_flags, 205 u32 page_flags)
206 struct page *dummy_read_page)
207{ 206{
208 struct ttm_tt *tt; 207 struct ttm_tt *tt;
209 int ret; 208 int ret;
@@ -214,7 +213,7 @@ static struct ttm_tt *hibmc_ttm_tt_create(struct ttm_bo_device *bdev,
214 return NULL; 213 return NULL;
215 } 214 }
216 tt->func = &hibmc_tt_backend_func; 215 tt->func = &hibmc_tt_backend_func;
217 ret = ttm_tt_init(tt, bdev, size, page_flags, dummy_read_page); 216 ret = ttm_tt_init(tt, bdev, size, page_flags);
218 if (ret) { 217 if (ret) {
219 DRM_ERROR("failed to initialize ttm_tt: %d\n", ret); 218 DRM_ERROR("failed to initialize ttm_tt: %d\n", ret);
220 kfree(tt); 219 kfree(tt);
diff --git a/drivers/gpu/drm/mgag200/mgag200_ttm.c b/drivers/gpu/drm/mgag200/mgag200_ttm.c
index 26e5f14645c5..cd55ff5f0f0a 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 = {
200 200
201 201
202static struct ttm_tt *mgag200_ttm_tt_create(struct ttm_bo_device *bdev, 202static struct ttm_tt *mgag200_ttm_tt_create(struct ttm_bo_device *bdev,
203 unsigned long size, uint32_t page_flags, 203 unsigned long size, uint32_t page_flags)
204 struct page *dummy_read_page)
205{ 204{
206 struct ttm_tt *tt; 205 struct ttm_tt *tt;
207 206
@@ -209,7 +208,7 @@ static struct ttm_tt *mgag200_ttm_tt_create(struct ttm_bo_device *bdev,
209 if (tt == NULL) 208 if (tt == NULL)
210 return NULL; 209 return NULL;
211 tt->func = &mgag200_tt_backend_func; 210 tt->func = &mgag200_tt_backend_func;
212 if (ttm_tt_init(tt, bdev, size, page_flags, dummy_read_page)) { 211 if (ttm_tt_init(tt, bdev, size, page_flags)) {
213 kfree(tt); 212 kfree(tt);
214 return NULL; 213 return NULL;
215 } 214 }
diff --git a/drivers/gpu/drm/nouveau/nouveau_bo.c b/drivers/gpu/drm/nouveau/nouveau_bo.c
index 80fa68d54bd3..5c01ccfd3066 100644
--- a/drivers/gpu/drm/nouveau/nouveau_bo.c
+++ b/drivers/gpu/drm/nouveau/nouveau_bo.c
@@ -605,18 +605,18 @@ nouveau_bo_wr32(struct nouveau_bo *nvbo, unsigned index, u32 val)
605 605
606static struct ttm_tt * 606static struct ttm_tt *
607nouveau_ttm_tt_create(struct ttm_bo_device *bdev, unsigned long size, 607nouveau_ttm_tt_create(struct ttm_bo_device *bdev, unsigned long size,
608 uint32_t page_flags, struct page *dummy_read) 608 uint32_t page_flags)
609{ 609{
610#if IS_ENABLED(CONFIG_AGP) 610#if IS_ENABLED(CONFIG_AGP)
611 struct nouveau_drm *drm = nouveau_bdev(bdev); 611 struct nouveau_drm *drm = nouveau_bdev(bdev);
612 612
613 if (drm->agp.bridge) { 613 if (drm->agp.bridge) {
614 return ttm_agp_tt_create(bdev, drm->agp.bridge, size, 614 return ttm_agp_tt_create(bdev, drm->agp.bridge, size,
615 page_flags, dummy_read); 615 page_flags);
616 } 616 }
617#endif 617#endif
618 618
619 return nouveau_sgdma_create_ttm(bdev, size, page_flags, dummy_read); 619 return nouveau_sgdma_create_ttm(bdev, size, page_flags);
620} 620}
621 621
622static int 622static int
diff --git a/drivers/gpu/drm/nouveau/nouveau_sgdma.c b/drivers/gpu/drm/nouveau/nouveau_sgdma.c
index 11f6ca89769b..87b030437f4d 100644
--- a/drivers/gpu/drm/nouveau/nouveau_sgdma.c
+++ b/drivers/gpu/drm/nouveau/nouveau_sgdma.c
@@ -83,8 +83,7 @@ static struct ttm_backend_func nv50_sgdma_backend = {
83 83
84struct ttm_tt * 84struct ttm_tt *
85nouveau_sgdma_create_ttm(struct ttm_bo_device *bdev, 85nouveau_sgdma_create_ttm(struct ttm_bo_device *bdev,
86 unsigned long size, uint32_t page_flags, 86 unsigned long size, uint32_t page_flags)
87 struct page *dummy_read_page)
88{ 87{
89 struct nouveau_drm *drm = nouveau_bdev(bdev); 88 struct nouveau_drm *drm = nouveau_bdev(bdev);
90 struct nouveau_sgdma_be *nvbe; 89 struct nouveau_sgdma_be *nvbe;
@@ -98,7 +97,7 @@ nouveau_sgdma_create_ttm(struct ttm_bo_device *bdev,
98 else 97 else
99 nvbe->ttm.ttm.func = &nv50_sgdma_backend; 98 nvbe->ttm.ttm.func = &nv50_sgdma_backend;
100 99
101 if (ttm_dma_tt_init(&nvbe->ttm, bdev, size, page_flags, dummy_read_page)) 100 if (ttm_dma_tt_init(&nvbe->ttm, bdev, size, page_flags))
102 /* 101 /*
103 * A failing ttm_dma_tt_init() will call ttm_tt_destroy() 102 * A failing ttm_dma_tt_init() will call ttm_tt_destroy()
104 * and thus our nouveau_sgdma_destroy() hook, so we don't need 103 * 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 96082b696420..64e484ee5ef1 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;
13extern const struct ttm_mem_type_manager_func nv04_gart_manager; 13extern const struct ttm_mem_type_manager_func nv04_gart_manager;
14 14
15struct ttm_tt *nouveau_sgdma_create_ttm(struct ttm_bo_device *, 15struct ttm_tt *nouveau_sgdma_create_ttm(struct ttm_bo_device *,
16 unsigned long size, u32 page_flags, 16 unsigned long size, u32 page_flags);
17 struct page *dummy_read_page);
18 17
19int nouveau_ttm_init(struct nouveau_drm *drm); 18int nouveau_ttm_init(struct nouveau_drm *drm);
20void nouveau_ttm_fini(struct nouveau_drm *drm); 19void 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 07d4f3fde6c1..2ad70eb96207 100644
--- a/drivers/gpu/drm/qxl/qxl_ttm.c
+++ b/drivers/gpu/drm/qxl/qxl_ttm.c
@@ -292,8 +292,7 @@ static struct ttm_backend_func qxl_backend_func = {
292}; 292};
293 293
294static struct ttm_tt *qxl_ttm_tt_create(struct ttm_bo_device *bdev, 294static struct ttm_tt *qxl_ttm_tt_create(struct ttm_bo_device *bdev,
295 unsigned long size, uint32_t page_flags, 295 unsigned long size, uint32_t page_flags)
296 struct page *dummy_read_page)
297{ 296{
298 struct qxl_device *qdev; 297 struct qxl_device *qdev;
299 struct qxl_ttm_tt *gtt; 298 struct qxl_ttm_tt *gtt;
@@ -304,8 +303,7 @@ static struct ttm_tt *qxl_ttm_tt_create(struct ttm_bo_device *bdev,
304 return NULL; 303 return NULL;
305 gtt->ttm.ttm.func = &qxl_backend_func; 304 gtt->ttm.ttm.func = &qxl_backend_func;
306 gtt->qdev = qdev; 305 gtt->qdev = qdev;
307 if (ttm_dma_tt_init(&gtt->ttm, bdev, size, page_flags, 306 if (ttm_dma_tt_init(&gtt->ttm, bdev, size, page_flags)) {
308 dummy_read_page)) {
309 kfree(gtt); 307 kfree(gtt);
310 return NULL; 308 return NULL;
311 } 309 }
diff --git a/drivers/gpu/drm/radeon/radeon_ttm.c b/drivers/gpu/drm/radeon/radeon_ttm.c
index c50620aadbd0..009f55a2bbf9 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 = {
687}; 687};
688 688
689static struct ttm_tt *radeon_ttm_tt_create(struct ttm_bo_device *bdev, 689static struct ttm_tt *radeon_ttm_tt_create(struct ttm_bo_device *bdev,
690 unsigned long size, uint32_t page_flags, 690 unsigned long size, uint32_t page_flags)
691 struct page *dummy_read_page)
692{ 691{
693 struct radeon_device *rdev; 692 struct radeon_device *rdev;
694 struct radeon_ttm_tt *gtt; 693 struct radeon_ttm_tt *gtt;
@@ -697,7 +696,7 @@ static struct ttm_tt *radeon_ttm_tt_create(struct ttm_bo_device *bdev,
697#if IS_ENABLED(CONFIG_AGP) 696#if IS_ENABLED(CONFIG_AGP)
698 if (rdev->flags & RADEON_IS_AGP) { 697 if (rdev->flags & RADEON_IS_AGP) {
699 return ttm_agp_tt_create(bdev, rdev->ddev->agp->bridge, 698 return ttm_agp_tt_create(bdev, rdev->ddev->agp->bridge,
700 size, page_flags, dummy_read_page); 699 size, page_flags);
701 } 700 }
702#endif 701#endif
703 702
@@ -707,7 +706,7 @@ static struct ttm_tt *radeon_ttm_tt_create(struct ttm_bo_device *bdev,
707 } 706 }
708 gtt->ttm.ttm.func = &radeon_backend_func; 707 gtt->ttm.ttm.func = &radeon_backend_func;
709 gtt->rdev = rdev; 708 gtt->rdev = rdev;
710 if (ttm_dma_tt_init(&gtt->ttm, bdev, size, page_flags, dummy_read_page)) { 709 if (ttm_dma_tt_init(&gtt->ttm, bdev, size, page_flags)) {
711 kfree(gtt); 710 kfree(gtt);
712 return NULL; 711 return NULL;
713 } 712 }
diff --git a/drivers/gpu/drm/ttm/ttm_agp_backend.c b/drivers/gpu/drm/ttm/ttm_agp_backend.c
index 3e795a099d06..f7c2aefbec7c 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 {
50static int ttm_agp_bind(struct ttm_tt *ttm, struct ttm_mem_reg *bo_mem) 50static int ttm_agp_bind(struct ttm_tt *ttm, struct ttm_mem_reg *bo_mem)
51{ 51{
52 struct ttm_agp_backend *agp_be = container_of(ttm, struct ttm_agp_backend, ttm); 52 struct ttm_agp_backend *agp_be = container_of(ttm, struct ttm_agp_backend, ttm);
53 struct page *dummy_read_page = ttm->bdev->glob->dummy_read_page;
53 struct drm_mm_node *node = bo_mem->mm_node; 54 struct drm_mm_node *node = bo_mem->mm_node;
54 struct agp_memory *mem; 55 struct agp_memory *mem;
55 int ret, cached = (bo_mem->placement & TTM_PL_FLAG_CACHED); 56 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)
64 struct page *page = ttm->pages[i]; 65 struct page *page = ttm->pages[i];
65 66
66 if (!page) 67 if (!page)
67 page = ttm->dummy_read_page; 68 page = dummy_read_page;
68 69
69 mem->pages[mem->page_count++] = page; 70 mem->pages[mem->page_count++] = page;
70 } 71 }
@@ -111,8 +112,7 @@ static struct ttm_backend_func ttm_agp_func = {
111 112
112struct ttm_tt *ttm_agp_tt_create(struct ttm_bo_device *bdev, 113struct ttm_tt *ttm_agp_tt_create(struct ttm_bo_device *bdev,
113 struct agp_bridge_data *bridge, 114 struct agp_bridge_data *bridge,
114 unsigned long size, uint32_t page_flags, 115 unsigned long size, uint32_t page_flags)
115 struct page *dummy_read_page)
116{ 116{
117 struct ttm_agp_backend *agp_be; 117 struct ttm_agp_backend *agp_be;
118 118
@@ -124,7 +124,7 @@ struct ttm_tt *ttm_agp_tt_create(struct ttm_bo_device *bdev,
124 agp_be->bridge = bridge; 124 agp_be->bridge = bridge;
125 agp_be->ttm.func = &ttm_agp_func; 125 agp_be->ttm.func = &ttm_agp_func;
126 126
127 if (ttm_tt_init(&agp_be->ttm, bdev, size, page_flags, dummy_read_page)) { 127 if (ttm_tt_init(&agp_be->ttm, bdev, size, page_flags)) {
128 kfree(agp_be); 128 kfree(agp_be);
129 return NULL; 129 return NULL;
130 } 130 }
diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c
index fe4aef6b1a7a..55028745214b 100644
--- a/drivers/gpu/drm/ttm/ttm_bo.c
+++ b/drivers/gpu/drm/ttm/ttm_bo.c
@@ -228,7 +228,6 @@ EXPORT_SYMBOL(ttm_bo_move_to_lru_tail);
228static int ttm_bo_add_ttm(struct ttm_buffer_object *bo, bool zero_alloc) 228static int ttm_bo_add_ttm(struct ttm_buffer_object *bo, bool zero_alloc)
229{ 229{
230 struct ttm_bo_device *bdev = bo->bdev; 230 struct ttm_bo_device *bdev = bo->bdev;
231 struct ttm_bo_global *glob = bdev->glob;
232 int ret = 0; 231 int ret = 0;
233 uint32_t page_flags = 0; 232 uint32_t page_flags = 0;
234 233
@@ -247,14 +246,13 @@ static int ttm_bo_add_ttm(struct ttm_buffer_object *bo, bool zero_alloc)
247 page_flags |= TTM_PAGE_FLAG_ZERO_ALLOC; 246 page_flags |= TTM_PAGE_FLAG_ZERO_ALLOC;
248 case ttm_bo_type_kernel: 247 case ttm_bo_type_kernel:
249 bo->ttm = bdev->driver->ttm_tt_create(bdev, bo->num_pages << PAGE_SHIFT, 248 bo->ttm = bdev->driver->ttm_tt_create(bdev, bo->num_pages << PAGE_SHIFT,
250 page_flags, glob->dummy_read_page); 249 page_flags);
251 if (unlikely(bo->ttm == NULL)) 250 if (unlikely(bo->ttm == NULL))
252 ret = -ENOMEM; 251 ret = -ENOMEM;
253 break; 252 break;
254 case ttm_bo_type_sg: 253 case ttm_bo_type_sg:
255 bo->ttm = bdev->driver->ttm_tt_create(bdev, bo->num_pages << PAGE_SHIFT, 254 bo->ttm = bdev->driver->ttm_tt_create(bdev, bo->num_pages << PAGE_SHIFT,
256 page_flags | TTM_PAGE_FLAG_SG, 255 page_flags | TTM_PAGE_FLAG_SG);
257 glob->dummy_read_page);
258 if (unlikely(bo->ttm == NULL)) { 256 if (unlikely(bo->ttm == NULL)) {
259 ret = -ENOMEM; 257 ret = -ENOMEM;
260 break; 258 break;
diff --git a/drivers/gpu/drm/ttm/ttm_tt.c b/drivers/gpu/drm/ttm/ttm_tt.c
index 5d8f7f9b84b1..f93cd108b19d 100644
--- a/drivers/gpu/drm/ttm/ttm_tt.c
+++ b/drivers/gpu/drm/ttm/ttm_tt.c
@@ -191,14 +191,12 @@ void ttm_tt_destroy(struct ttm_tt *ttm)
191} 191}
192 192
193int ttm_tt_init(struct ttm_tt *ttm, struct ttm_bo_device *bdev, 193int ttm_tt_init(struct ttm_tt *ttm, struct ttm_bo_device *bdev,
194 unsigned long size, uint32_t page_flags, 194 unsigned long size, uint32_t page_flags)
195 struct page *dummy_read_page)
196{ 195{
197 ttm->bdev = bdev; 196 ttm->bdev = bdev;
198 ttm->num_pages = (size + PAGE_SIZE - 1) >> PAGE_SHIFT; 197 ttm->num_pages = (size + PAGE_SIZE - 1) >> PAGE_SHIFT;
199 ttm->caching_state = tt_cached; 198 ttm->caching_state = tt_cached;
200 ttm->page_flags = page_flags; 199 ttm->page_flags = page_flags;
201 ttm->dummy_read_page = dummy_read_page;
202 ttm->state = tt_unpopulated; 200 ttm->state = tt_unpopulated;
203 ttm->swap_storage = NULL; 201 ttm->swap_storage = NULL;
204 202
@@ -219,8 +217,7 @@ void ttm_tt_fini(struct ttm_tt *ttm)
219EXPORT_SYMBOL(ttm_tt_fini); 217EXPORT_SYMBOL(ttm_tt_fini);
220 218
221int ttm_dma_tt_init(struct ttm_dma_tt *ttm_dma, struct ttm_bo_device *bdev, 219int ttm_dma_tt_init(struct ttm_dma_tt *ttm_dma, struct ttm_bo_device *bdev,
222 unsigned long size, uint32_t page_flags, 220 unsigned long size, uint32_t page_flags)
223 struct page *dummy_read_page)
224{ 221{
225 struct ttm_tt *ttm = &ttm_dma->ttm; 222 struct ttm_tt *ttm = &ttm_dma->ttm;
226 223
@@ -228,7 +225,6 @@ int ttm_dma_tt_init(struct ttm_dma_tt *ttm_dma, struct ttm_bo_device *bdev,
228 ttm->num_pages = (size + PAGE_SIZE - 1) >> PAGE_SHIFT; 225 ttm->num_pages = (size + PAGE_SIZE - 1) >> PAGE_SHIFT;
229 ttm->caching_state = tt_cached; 226 ttm->caching_state = tt_cached;
230 ttm->page_flags = page_flags; 227 ttm->page_flags = page_flags;
231 ttm->dummy_read_page = dummy_read_page;
232 ttm->state = tt_unpopulated; 228 ttm->state = tt_unpopulated;
233 ttm->swap_storage = NULL; 229 ttm->swap_storage = NULL;
234 230
diff --git a/drivers/gpu/drm/virtio/virtgpu_ttm.c b/drivers/gpu/drm/virtio/virtgpu_ttm.c
index 1cde060602aa..ee9839fbae66 100644
--- a/drivers/gpu/drm/virtio/virtgpu_ttm.c
+++ b/drivers/gpu/drm/virtio/virtgpu_ttm.c
@@ -326,8 +326,7 @@ static struct ttm_backend_func virtio_gpu_backend_func = {
326 326
327static struct ttm_tt *virtio_gpu_ttm_tt_create(struct ttm_bo_device *bdev, 327static struct ttm_tt *virtio_gpu_ttm_tt_create(struct ttm_bo_device *bdev,
328 unsigned long size, 328 unsigned long size,
329 uint32_t page_flags, 329 uint32_t page_flags)
330 struct page *dummy_read_page)
331{ 330{
332 struct virtio_gpu_device *vgdev; 331 struct virtio_gpu_device *vgdev;
333 struct virtio_gpu_ttm_tt *gtt; 332 struct virtio_gpu_ttm_tt *gtt;
@@ -338,8 +337,7 @@ static struct ttm_tt *virtio_gpu_ttm_tt_create(struct ttm_bo_device *bdev,
338 return NULL; 337 return NULL;
339 gtt->ttm.ttm.func = &virtio_gpu_backend_func; 338 gtt->ttm.ttm.func = &virtio_gpu_backend_func;
340 gtt->vgdev = vgdev; 339 gtt->vgdev = vgdev;
341 if (ttm_dma_tt_init(&gtt->ttm, bdev, size, page_flags, 340 if (ttm_dma_tt_init(&gtt->ttm, bdev, size, page_flags)) {
342 dummy_read_page)) {
343 kfree(gtt); 341 kfree(gtt);
344 return NULL; 342 return NULL;
345 } 343 }
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c b/drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c
index 22231bc9e845..fead3f2dbb46 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c
@@ -694,8 +694,7 @@ static struct ttm_backend_func vmw_ttm_func = {
694}; 694};
695 695
696static struct ttm_tt *vmw_ttm_tt_create(struct ttm_bo_device *bdev, 696static struct ttm_tt *vmw_ttm_tt_create(struct ttm_bo_device *bdev,
697 unsigned long size, uint32_t page_flags, 697 unsigned long size, uint32_t page_flags)
698 struct page *dummy_read_page)
699{ 698{
700 struct vmw_ttm_tt *vmw_be; 699 struct vmw_ttm_tt *vmw_be;
701 int ret; 700 int ret;
@@ -709,11 +708,9 @@ static struct ttm_tt *vmw_ttm_tt_create(struct ttm_bo_device *bdev,
709 vmw_be->mob = NULL; 708 vmw_be->mob = NULL;
710 709
711 if (vmw_be->dev_priv->map_mode == vmw_dma_alloc_coherent) 710 if (vmw_be->dev_priv->map_mode == vmw_dma_alloc_coherent)
712 ret = ttm_dma_tt_init(&vmw_be->dma_ttm, bdev, size, page_flags, 711 ret = ttm_dma_tt_init(&vmw_be->dma_ttm, bdev, size, page_flags);
713 dummy_read_page);
714 else 712 else
715 ret = ttm_tt_init(&vmw_be->dma_ttm.ttm, bdev, size, page_flags, 713 ret = ttm_tt_init(&vmw_be->dma_ttm.ttm, bdev, size, page_flags);
716 dummy_read_page);
717 if (unlikely(ret != 0)) 714 if (unlikely(ret != 0))
718 goto out_no_init; 715 goto out_no_init;
719 716
diff --git a/drivers/staging/vboxvideo/vbox_ttm.c b/drivers/staging/vboxvideo/vbox_ttm.c
index c4b7a6b9abd5..d1a211b61718 100644
--- a/drivers/staging/vboxvideo/vbox_ttm.c
+++ b/drivers/staging/vboxvideo/vbox_ttm.c
@@ -195,8 +195,7 @@ static struct ttm_backend_func vbox_tt_backend_func = {
195 195
196static struct ttm_tt *vbox_ttm_tt_create(struct ttm_bo_device *bdev, 196static struct ttm_tt *vbox_ttm_tt_create(struct ttm_bo_device *bdev,
197 unsigned long size, 197 unsigned long size,
198 u32 page_flags, 198 u32 page_flags)
199 struct page *dummy_read_page)
200{ 199{
201 struct ttm_tt *tt; 200 struct ttm_tt *tt;
202 201
@@ -205,7 +204,7 @@ static struct ttm_tt *vbox_ttm_tt_create(struct ttm_bo_device *bdev,
205 return NULL; 204 return NULL;
206 205
207 tt->func = &vbox_tt_backend_func; 206 tt->func = &vbox_tt_backend_func;
208 if (ttm_tt_init(tt, bdev, size, page_flags, dummy_read_page)) { 207 if (ttm_tt_init(tt, bdev, size, page_flags)) {
209 kfree(tt); 208 kfree(tt);
210 return NULL; 209 return NULL;
211 } 210 }