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;