gpu: ion: Don't flush allocatoins that come from the page pools
Change-Id: I7942a374a3240f683e52560386232f52d9ea4b5c
Signed-off-by: Rebecca Schultz Zavin <rebecca@android.com>
Git-commit: 210d4774f4d4b58cca042d32ea21e1bac784f273
Git-repo: https://android.googlesource.com/kernel/common
[lauraa@codeaurora.org: Change sync API to match what the later
kernel need]
Signed-off-by: Laura Abbott <lauraa@codeaurora.org>
diff --git a/drivers/gpu/ion/ion_system_heap.c b/drivers/gpu/ion/ion_system_heap.c
index 457344f..034df72 100644
--- a/drivers/gpu/ion/ion_system_heap.c
+++ b/drivers/gpu/ion/ion_system_heap.c
@@ -80,14 +80,21 @@
if (!cached) {
page = ion_page_pool_alloc(pool);
} else {
+ struct scatterlist sg;
gfp_t gfp_flags = low_order_gfp_flags;
if (order > 4)
gfp_flags = high_order_gfp_flags;
page = alloc_pages(gfp_flags, order);
+ if (!page)
+ return 0;
+ sg_init_table(&sg, 1);
+ sg_set_page(&sg, page, PAGE_SIZE << order, 0);
+ dma_sync_sg_for_device(NULL, &sg, 1, DMA_BIDIRECTIONAL);
}
if (!page)
return 0;
+
if (split_pages)
split_page(page, order);
return page;
@@ -210,9 +217,6 @@
kfree(info);
}
- dma_sync_sg_for_device(NULL, table->sgl, table->nents,
- DMA_BIDIRECTIONAL);
-
buffer->priv_virt = table;
atomic_add(size, &system_heap_allocated);
return 0;