Merge drm/drm-next into drm-misc-next
[sfrench/cifs-2.6.git] / drivers / gpu / drm / ttm / ttm_tt.c
index d234aab800a08eedf3cbc03936bf1a56f03c6c3c..1a66d9fc589a7b9a94cc76cc2766adc8da8cabe7 100644 (file)
@@ -134,9 +134,10 @@ void ttm_tt_destroy(struct ttm_device *bdev, struct ttm_tt *ttm)
 static void ttm_tt_init_fields(struct ttm_tt *ttm,
                               struct ttm_buffer_object *bo,
                               uint32_t page_flags,
-                              enum ttm_caching caching)
+                              enum ttm_caching caching,
+                              unsigned long extra_pages)
 {
-       ttm->num_pages = PAGE_ALIGN(bo->base.size) >> PAGE_SHIFT;
+       ttm->num_pages = (PAGE_ALIGN(bo->base.size) >> PAGE_SHIFT) + extra_pages;
        ttm->caching = ttm_cached;
        ttm->page_flags = page_flags;
        ttm->dma_address = NULL;
@@ -146,9 +147,10 @@ static void ttm_tt_init_fields(struct ttm_tt *ttm,
 }
 
 int ttm_tt_init(struct ttm_tt *ttm, struct ttm_buffer_object *bo,
-               uint32_t page_flags, enum ttm_caching caching)
+               uint32_t page_flags, enum ttm_caching caching,
+               unsigned long extra_pages)
 {
-       ttm_tt_init_fields(ttm, bo, page_flags, caching);
+       ttm_tt_init_fields(ttm, bo, page_flags, caching, extra_pages);
 
        if (ttm_tt_alloc_page_directory(ttm)) {
                pr_err("Failed allocating page table\n");
@@ -180,7 +182,7 @@ int ttm_sg_tt_init(struct ttm_tt *ttm, struct ttm_buffer_object *bo,
 {
        int ret;
 
-       ttm_tt_init_fields(ttm, bo, page_flags, caching);
+       ttm_tt_init_fields(ttm, bo, page_flags, caching, 0);
 
        if (page_flags & TTM_TT_FLAG_EXTERNAL)
                ret = ttm_sg_tt_alloc_page_directory(ttm);