aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/drm/tegra/gem.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/drivers/gpu/drm/tegra/gem.c b/drivers/gpu/drm/tegra/gem.c
index c888bed4036f..8777b7f75791 100644
--- a/drivers/gpu/drm/tegra/gem.c
+++ b/drivers/gpu/drm/tegra/gem.c
@@ -216,8 +216,7 @@ static void tegra_bo_free(struct drm_device *drm, struct tegra_bo *bo)
216 } 216 }
217} 217}
218 218
219static int tegra_bo_get_pages(struct drm_device *drm, struct tegra_bo *bo, 219static int tegra_bo_get_pages(struct drm_device *drm, struct tegra_bo *bo)
220 size_t size)
221{ 220{
222 struct scatterlist *s; 221 struct scatterlist *s;
223 struct sg_table *sgt; 222 struct sg_table *sgt;
@@ -227,7 +226,7 @@ static int tegra_bo_get_pages(struct drm_device *drm, struct tegra_bo *bo,
227 if (IS_ERR(bo->pages)) 226 if (IS_ERR(bo->pages))
228 return PTR_ERR(bo->pages); 227 return PTR_ERR(bo->pages);
229 228
230 bo->num_pages = size >> PAGE_SHIFT; 229 bo->num_pages = bo->gem.size >> PAGE_SHIFT;
231 230
232 sgt = drm_prime_pages_to_sg(bo->pages, bo->num_pages); 231 sgt = drm_prime_pages_to_sg(bo->pages, bo->num_pages);
233 if (IS_ERR(sgt)) 232 if (IS_ERR(sgt))
@@ -262,14 +261,13 @@ put_pages:
262 return PTR_ERR(sgt); 261 return PTR_ERR(sgt);
263} 262}
264 263
265static int tegra_bo_alloc(struct drm_device *drm, struct tegra_bo *bo, 264static int tegra_bo_alloc(struct drm_device *drm, struct tegra_bo *bo)
266 size_t size)
267{ 265{
268 struct tegra_drm *tegra = drm->dev_private; 266 struct tegra_drm *tegra = drm->dev_private;
269 int err; 267 int err;
270 268
271 if (tegra->domain) { 269 if (tegra->domain) {
272 err = tegra_bo_get_pages(drm, bo, size); 270 err = tegra_bo_get_pages(drm, bo);
273 if (err < 0) 271 if (err < 0)
274 return err; 272 return err;
275 273
@@ -279,6 +277,8 @@ static int tegra_bo_alloc(struct drm_device *drm, struct tegra_bo *bo,
279 return err; 277 return err;
280 } 278 }
281 } else { 279 } else {
280 size_t size = bo->gem.size;
281
282 bo->vaddr = dma_alloc_writecombine(drm->dev, size, &bo->paddr, 282 bo->vaddr = dma_alloc_writecombine(drm->dev, size, &bo->paddr,
283 GFP_KERNEL | __GFP_NOWARN); 283 GFP_KERNEL | __GFP_NOWARN);
284 if (!bo->vaddr) { 284 if (!bo->vaddr) {
@@ -302,7 +302,7 @@ struct tegra_bo *tegra_bo_create(struct drm_device *drm, size_t size,
302 if (IS_ERR(bo)) 302 if (IS_ERR(bo))
303 return bo; 303 return bo;
304 304
305 err = tegra_bo_alloc(drm, bo, size); 305 err = tegra_bo_alloc(drm, bo);
306 if (err < 0) 306 if (err < 0)
307 goto release; 307 goto release;
308 308